summaryrefslogtreecommitdiff
path: root/packages/linux/linux-wrt-2.4.20
diff options
context:
space:
mode:
Diffstat (limited to 'packages/linux/linux-wrt-2.4.20')
-rw-r--r--packages/linux/linux-wrt-2.4.20/110-sch_htb.patch575
-rw-r--r--packages/linux/linux-wrt-2.4.20/120-openwrt.patch2512
-rw-r--r--packages/linux/linux-wrt-2.4.20/130-nfsswap.patch2345
-rw-r--r--packages/linux/linux-wrt-2.4.20/140-ebtables-brnf-5.patch5557
-rw-r--r--packages/linux/linux-wrt-2.4.20/150-mppe-mppc-0.98.patch1825
-rw-r--r--packages/linux/linux-wrt-2.4.20/160-expr.patch11
-rw-r--r--packages/linux/linux-wrt-2.4.20/2.4.20_broadcom_3_37_2_1109_US.patch10239
-rw-r--r--packages/linux/linux-wrt-2.4.20/defconfig853
-rw-r--r--packages/linux/linux-wrt-2.4.20/diag.c203
-rw-r--r--packages/linux/linux-wrt-2.4.20/gcc3.patch40
-rw-r--r--packages/linux/linux-wrt-2.4.20/gcc_mtune.patch69
-rw-r--r--packages/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch119169
-rw-r--r--packages/linux/linux-wrt-2.4.20/linux-2.4.24-attribute-used.patch136
-rw-r--r--packages/linux/linux-wrt-2.4.20/nobcom.patch67
14 files changed, 0 insertions, 143601 deletions
diff --git a/packages/linux/linux-wrt-2.4.20/110-sch_htb.patch b/packages/linux/linux-wrt-2.4.20/110-sch_htb.patch
deleted file mode 100644
index 0f54d26bc5..0000000000
--- a/packages/linux/linux-wrt-2.4.20/110-sch_htb.patch
+++ /dev/null
@@ -1,575 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/net/sched/sch_htb.c~110-schhtb 2005-01-07 02:53:54.527710000 -0500
-+++ linux-2.4.20/net/sched/sch_htb.c 2005-01-07 02:54:26.350872392 -0500
-@@ -9,6 +9,8 @@
- * Authors: Martin Devera, <devik@cdi.cz>
- *
- * Credits (in time order) for older HTB versions:
-+ * Stef Coene <stef.coene@docum.org>
-+ * HTB support at LARTC mailing list
- * Ondrej Kraus, <krauso@barr.cz>
- * found missing INIT_QDISC(htb)
- * Vladimir Smelhaus, Aamer Akhter, Bert Hubert
-@@ -17,9 +19,13 @@
- * code review and helpful comments on shaping
- * Tomasz Wrona, <tw@eter.tym.pl>
- * created test case so that I was able to fix nasty bug
-+ * Wilfried Weissmann
-+ * spotted bug in dequeue code and helped with fix
-+ * Jiri Fojtasek
-+ * fixed requeue routine
- * and many others. thanks.
- *
-- * $Id: sch_htb.c,v 1.14 2002/09/28 12:55:22 devik Exp devik $
-+ * $Id: sch_htb.c,v 1.25 2003/12/07 11:08:25 devik Exp devik $
- */
- #include <linux/config.h>
- #include <linux/module.h>
-@@ -71,16 +77,12 @@
- #define HTB_HYSTERESIS 1/* whether to use mode hysteresis for speedup */
- #define HTB_QLOCK(S) spin_lock_bh(&(S)->dev->queue_lock)
- #define HTB_QUNLOCK(S) spin_unlock_bh(&(S)->dev->queue_lock)
--#define HTB_VER 0x30007 /* major must be matched with number suplied by TC as version */
-+#define HTB_VER 0x30010 /* major must be matched with number suplied by TC as version */
-
- #if HTB_VER >> 16 != TC_HTB_PROTOVER
- #error "Mismatched sch_htb.c and pkt_sch.h"
- #endif
-
--/* temporary debug defines to be removed after beta stage */
--#define DEVIK_MEND(N)
--#define DEVIK_MSTART(N)
--
- /* debugging support; S is subsystem, these are defined:
- 0 - netlink messages
- 1 - enqueue
-@@ -100,13 +102,16 @@
- from LSB
- */
- #ifdef HTB_DEBUG
--#define HTB_DBG(S,L,FMT,ARG...) if (((q->debug>>(2*S))&3) >= L) \
-+#define HTB_DBG_COND(S,L) (((q->debug>>(2*S))&3) >= L)
-+#define HTB_DBG(S,L,FMT,ARG...) if (HTB_DBG_COND(S,L)) \
- printk(KERN_DEBUG FMT,##ARG)
- #define HTB_CHCL(cl) BUG_TRAP((cl)->magic == HTB_CMAGIC)
- #define HTB_PASSQ q,
- #define HTB_ARGQ struct htb_sched *q,
- #define static
-+#undef __inline__
- #define __inline__
-+#undef inline
- #define inline
- #define HTB_CMAGIC 0xFEFAFEF1
- #define htb_safe_rb_erase(N,R) do { BUG_TRAP((N)->rb_color != -1); \
-@@ -114,6 +119,7 @@
- rb_erase(N,R); \
- (N)->rb_color = -1; } while (0)
- #else
-+#define HTB_DBG_COND(S,L) (0)
- #define HTB_DBG(S,L,FMT,ARG...)
- #define HTB_PASSQ
- #define HTB_ARGQ
-@@ -219,6 +225,9 @@
- /* time of nearest event per level (row) */
- unsigned long near_ev_cache[TC_HTB_MAXDEPTH];
-
-+ /* cached value of jiffies in dequeue */
-+ unsigned long jiffies;
-+
- /* whether we hit non-work conserving class during this dequeue; we use */
- int nwc_hit; /* this to disable mindelay complaint in dequeue */
-
-@@ -297,7 +306,7 @@
- rules in it */
- if (skb->priority == sch->handle)
- return HTB_DIRECT; /* X:0 (direct flow) selected */
-- if ((cl = htb_find(skb->priority,sch)) != NULL)
-+ if ((cl = htb_find(skb->priority,sch)) != NULL && cl->level == 0)
- return cl;
-
- tcf = q->filter_list;
-@@ -338,7 +347,7 @@
- static void htb_debug_dump (struct htb_sched *q)
- {
- int i,p;
-- printk(KERN_DEBUG "htb*g j=%lu\n",jiffies);
-+ printk(KERN_DEBUG "htb*g j=%lu lj=%lu\n",jiffies,q->jiffies);
- /* rows */
- for (i=TC_HTB_MAXDEPTH-1;i>=0;i--) {
- printk(KERN_DEBUG "htb*r%d m=%x",i,q->row_mask[i]);
-@@ -421,26 +430,24 @@
- if ((delay <= 0 || delay > cl->mbuffer) && net_ratelimit())
- printk(KERN_ERR "HTB: suspicious delay in wait_tree d=%ld cl=%X h=%d\n",delay,cl->classid,debug_hint);
- #endif
-- DEVIK_MSTART(9);
-- cl->pq_key = jiffies + PSCHED_US2JIFFIE(delay);
-- if (cl->pq_key == jiffies)
-+ cl->pq_key = q->jiffies + PSCHED_US2JIFFIE(delay);
-+ if (cl->pq_key == q->jiffies)
- cl->pq_key++;
-
- /* update the nearest event cache */
-- if (q->near_ev_cache[cl->level] - cl->pq_key < 0x80000000)
-+ if (time_after(q->near_ev_cache[cl->level], cl->pq_key))
- q->near_ev_cache[cl->level] = cl->pq_key;
-
- while (*p) {
- struct htb_class *c; parent = *p;
- c = rb_entry(parent, struct htb_class, pq_node);
-- if (cl->pq_key - c->pq_key < 0x80000000)
-+ if (time_after_eq(cl->pq_key, c->pq_key))
- p = &parent->rb_right;
- else
- p = &parent->rb_left;
- }
- rb_link_node(&cl->pq_node, parent, p);
- rb_insert_color(&cl->pq_node, &q->wait_pq[cl->level]);
-- DEVIK_MEND(9);
- }
-
- /**
-@@ -453,12 +460,14 @@
- {
- rb_node_t *p;
- if ((*n)->rb_right) {
-+ /* child at right. use it or its leftmost ancestor */
- *n = (*n)->rb_right;
- while ((*n)->rb_left)
- *n = (*n)->rb_left;
- return;
- }
- while ((p = (*n)->rb_parent) != NULL) {
-+ /* if we've arrived from left child then we have next node */
- if (p->rb_left == *n) break;
- *n = p;
- }
-@@ -602,7 +611,7 @@
- long toks;
-
- if ((toks = (cl->ctokens + *diff)) < (
--#ifdef HTB_HYSTERESIS
-+#if HTB_HYSTERESIS
- cl->cmode != HTB_CANT_SEND ? -cl->cbuffer :
- #endif
- 0)) {
-@@ -610,7 +619,7 @@
- return HTB_CANT_SEND;
- }
- if ((toks = (cl->tokens + *diff)) >= (
--#ifdef HTB_HYSTERESIS
-+#if HTB_HYSTERESIS
- cl->cmode == HTB_CAN_SEND ? -cl->buffer :
- #endif
- 0))
-@@ -689,7 +698,6 @@
- struct htb_sched *q = (struct htb_sched *)sch->data;
- struct htb_class *cl = htb_classify(skb,sch);
-
-- DEVIK_MSTART(0);
- if (cl == HTB_DIRECT || !cl) {
- /* enqueue to helper queue */
- if (q->direct_queue.qlen < q->direct_qlen && cl) {
-@@ -698,25 +706,20 @@
- } else {
- kfree_skb (skb);
- sch->stats.drops++;
-- DEVIK_MEND(0);
- return NET_XMIT_DROP;
- }
- } else if (cl->un.leaf.q->enqueue(skb, cl->un.leaf.q) != NET_XMIT_SUCCESS) {
- sch->stats.drops++;
- cl->stats.drops++;
-- DEVIK_MEND(0);
- return NET_XMIT_DROP;
- } else {
- cl->stats.packets++; cl->stats.bytes += skb->len;
-- DEVIK_MSTART(1);
- htb_activate (q,cl);
-- DEVIK_MEND(1);
- }
-
- sch->q.qlen++;
- sch->stats.packets++; sch->stats.bytes += skb->len;
-- HTB_DBG(1,1,"htb_enq_ok cl=%X skb=%p\n",cl?cl->classid:0,skb);
-- DEVIK_MEND(0);
-+ HTB_DBG(1,1,"htb_enq_ok cl=%X skb=%p\n",(cl && cl != HTB_DIRECT)?cl->classid:0,skb);
- return NET_XMIT_SUCCESS;
- }
-
-@@ -725,16 +728,18 @@
- {
- struct htb_sched *q = (struct htb_sched *)sch->data;
- struct htb_class *cl = htb_classify(skb,sch);
-+ struct sk_buff *tskb;
-
- if (cl == HTB_DIRECT || !cl) {
- /* enqueue to helper queue */
- if (q->direct_queue.qlen < q->direct_qlen && cl) {
-- __skb_queue_tail(&q->direct_queue, skb);
-- q->direct_pkts++;
-+ __skb_queue_head(&q->direct_queue, skb);
- } else {
-- kfree_skb (skb);
-- sch->stats.drops++;
-- return NET_XMIT_DROP;
-+ __skb_queue_head(&q->direct_queue, skb);
-+ tskb = __skb_dequeue_tail(&q->direct_queue);
-+ kfree_skb (tskb);
-+ sch->stats.drops++;
-+ return NET_XMIT_CN;
- }
- } else if (cl->un.leaf.q->ops->requeue(skb, cl->un.leaf.q) != NET_XMIT_SUCCESS) {
- sch->stats.drops++;
-@@ -744,7 +749,7 @@
- htb_activate (q,cl);
-
- sch->q.qlen++;
-- HTB_DBG(1,1,"htb_req_ok cl=%X skb=%p\n",cl?cl->classid:0,skb);
-+ HTB_DBG(1,1,"htb_req_ok cl=%X skb=%p\n",(cl && cl != HTB_DIRECT)?cl->classid:0,skb);
- return NET_XMIT_SUCCESS;
- }
-
-@@ -819,7 +824,7 @@
- cl->classid, diff,
- (unsigned long long) q->now,
- (unsigned long long) cl->t_c,
-- jiffies);
-+ q->jiffies);
- diff = 1000;
- }
- #endif
-@@ -862,6 +867,7 @@
- *
- * Scans event queue for pending events and applies them. Returns jiffies to
- * next pending event (0 for no event in pq).
-+ * Note: Aplied are events whose have cl->pq_key <= jiffies.
- */
- static long htb_do_events(struct htb_sched *q,int level)
- {
-@@ -876,9 +882,9 @@
- while (p->rb_left) p = p->rb_left;
-
- cl = rb_entry(p, struct htb_class, pq_node);
-- if (cl->pq_key - (jiffies+1) < 0x80000000) {
-- HTB_DBG(8,3,"htb_do_ev_ret delay=%ld\n",cl->pq_key - jiffies);
-- return cl->pq_key - jiffies;
-+ if (time_after(cl->pq_key, q->jiffies)) {
-+ HTB_DBG(8,3,"htb_do_ev_ret delay=%ld\n",cl->pq_key - q->jiffies);
-+ return cl->pq_key - q->jiffies;
- }
- htb_safe_rb_erase(p,q->wait_pq+level);
- diff = PSCHED_TDIFF_SAFE(q->now, cl->t_c, (u32)cl->mbuffer, 0);
-@@ -889,7 +895,7 @@
- cl->classid, diff,
- (unsigned long long) q->now,
- (unsigned long long) cl->t_c,
-- jiffies);
-+ q->jiffies);
- diff = 1000;
- }
- #endif
-@@ -916,6 +922,7 @@
- rb_node_t **pptr;
- } stk[TC_HTB_MAXDEPTH],*sp = stk;
-
-+ BUG_TRAP(tree->rb_node);
- sp->root = tree->rb_node;
- sp->pptr = pptr;
-
-@@ -949,16 +956,36 @@
- htb_dequeue_tree(struct htb_sched *q,int prio,int level)
- {
- struct sk_buff *skb = NULL;
-- //struct htb_sched *q = (struct htb_sched *)sch->data;
- struct htb_class *cl,*start;
- /* look initial class up in the row */
-- DEVIK_MSTART(6);
- start = cl = htb_lookup_leaf (q->row[level]+prio,prio,q->ptr[level]+prio);
-
- do {
-- BUG_TRAP(cl && cl->un.leaf.q->q.qlen); if (!cl) return NULL;
-+next:
-+ BUG_TRAP(cl);
-+ if (!cl) return NULL;
- HTB_DBG(4,1,"htb_deq_tr prio=%d lev=%d cl=%X defic=%d\n",
- prio,level,cl->classid,cl->un.leaf.deficit[level]);
-+
-+ /* class can be empty - it is unlikely but can be true if leaf
-+ qdisc drops packets in enqueue routine or if someone used
-+ graft operation on the leaf since last dequeue;
-+ simply deactivate and skip such class */
-+ if (unlikely(cl->un.leaf.q->q.qlen == 0)) {
-+ struct htb_class *next;
-+ htb_deactivate(q,cl);
-+
-+ /* row/level might become empty */
-+ if ((q->row_mask[level] & (1 << prio)) == 0)
-+ return NULL;
-+
-+ next = htb_lookup_leaf (q->row[level]+prio,
-+ prio,q->ptr[level]+prio);
-+ if (cl == start) /* fix start if we just deleted it */
-+ start = next;
-+ cl = next;
-+ goto next;
-+ }
-
- if (likely((skb = cl->un.leaf.q->dequeue(cl->un.leaf.q)) != NULL))
- break;
-@@ -971,8 +998,6 @@
- cl = htb_lookup_leaf (q->row[level]+prio,prio,q->ptr[level]+prio);
- } while (cl != start);
-
-- DEVIK_MEND(6);
-- DEVIK_MSTART(7);
- if (likely(skb != NULL)) {
- if ((cl->un.leaf.deficit[level] -= skb->len) < 0) {
- HTB_DBG(4,2,"htb_next_cl oldptr=%p quant_add=%d\n",
-@@ -984,11 +1009,8 @@
- gives us slightly better performance */
- if (!cl->un.leaf.q->q.qlen)
- htb_deactivate (q,cl);
-- DEVIK_MSTART(8);
- htb_charge_class (q,cl,level,skb->len);
-- DEVIK_MEND(8);
- }
-- DEVIK_MEND(7);
- return skb;
- }
-
-@@ -1002,9 +1024,8 @@
- printk(KERN_INFO "HTB delay %ld > 5sec\n", delay);
- delay = 5*HZ;
- }
-- del_timer(&q->timer);
-- q->timer.expires = jiffies + delay;
-- add_timer(&q->timer);
-+ /* why don't use jiffies here ? because expires can be in past */
-+ mod_timer(&q->timer, q->jiffies + delay);
- sch->flags |= TCQ_F_THROTTLED;
- sch->stats.overlimits++;
- HTB_DBG(3,1,"htb_deq t_delay=%ld\n",delay);
-@@ -1016,7 +1037,11 @@
- struct htb_sched *q = (struct htb_sched *)sch->data;
- int level;
- long min_delay;
-+#ifdef HTB_DEBUG
-+ int evs_used = 0;
-+#endif
-
-+ q->jiffies = jiffies;
- HTB_DBG(3,1,"htb_deq dircnt=%d qlen=%d\n",skb_queue_len(&q->direct_queue),
- sch->q.qlen);
-
-@@ -1027,27 +1052,26 @@
- return skb;
- }
-
-- DEVIK_MSTART(2);
- if (!sch->q.qlen) goto fin;
- PSCHED_GET_TIME(q->now);
-
-- min_delay = HZ*5;
-+ min_delay = LONG_MAX;
- q->nwc_hit = 0;
- for (level = 0; level < TC_HTB_MAXDEPTH; level++) {
- /* common case optimization - skip event handler quickly */
- int m;
- long delay;
-- DEVIK_MSTART(3);
-- if (jiffies - q->near_ev_cache[level] < 0x80000000 || 0) {
-+ if (time_after_eq(q->jiffies, q->near_ev_cache[level])) {
- delay = htb_do_events(q,level);
-- q->near_ev_cache[level] += delay ? delay : HZ;
-+ q->near_ev_cache[level] = q->jiffies + (delay ? delay : HZ);
-+#ifdef HTB_DEBUG
-+ evs_used++;
-+#endif
- } else
-- delay = q->near_ev_cache[level] - jiffies;
-+ delay = q->near_ev_cache[level] - q->jiffies;
-
- if (delay && min_delay > delay)
- min_delay = delay;
-- DEVIK_MEND(3);
-- DEVIK_MSTART(5);
- m = ~q->row_mask[level];
- while (m != (int)(-1)) {
- int prio = ffz (m);
-@@ -1056,29 +1080,29 @@
- if (likely(skb != NULL)) {
- sch->q.qlen--;
- sch->flags &= ~TCQ_F_THROTTLED;
-- DEVIK_MEND(5);
- goto fin;
- }
- }
-- DEVIK_MEND(5);
- }
-- DEVIK_MSTART(4);
- #ifdef HTB_DEBUG
-- if (!q->nwc_hit && min_delay >= 5*HZ && net_ratelimit()) {
-- printk(KERN_ERR "HTB: mindelay=%ld, report it please !\n",min_delay);
-- htb_debug_dump(q);
-+ if (!q->nwc_hit && min_delay >= 10*HZ && net_ratelimit()) {
-+ if (min_delay == LONG_MAX) {
-+ printk(KERN_ERR "HTB: dequeue bug (%d,%lu,%lu), report it please !\n",
-+ evs_used,q->jiffies,jiffies);
-+ htb_debug_dump(q);
-+ } else
-+ printk(KERN_WARNING "HTB: mindelay=%ld, some class has "
-+ "too small rate\n",min_delay);
- }
- #endif
-- htb_delay_by (sch,min_delay);
-- DEVIK_MEND(4);
-+ htb_delay_by (sch,min_delay > 5*HZ ? 5*HZ : min_delay);
- fin:
-- HTB_DBG(3,1,"htb_deq_end %s j=%lu skb=%p\n",sch->dev->name,jiffies,skb);
-- DEVIK_MEND(2);
-+ HTB_DBG(3,1,"htb_deq_end %s j=%lu skb=%p\n",sch->dev->name,q->jiffies,skb);
- return skb;
- }
-
- /* try to drop from each class (by prio) until one succeed */
--static int htb_drop(struct Qdisc* sch)
-+static unsigned int htb_drop(struct Qdisc* sch)
- {
- struct htb_sched *q = (struct htb_sched *)sch->data;
- int prio;
-@@ -1086,14 +1110,15 @@
- for (prio = TC_HTB_NUMPRIO - 1; prio >= 0; prio--) {
- struct list_head *p;
- list_for_each (p,q->drops+prio) {
-- struct htb_class *cl = list_entry(p,struct htb_class,
-- un.leaf.drop_list);
-+ struct htb_class *cl = list_entry(p, struct htb_class,
-+ un.leaf.drop_list);
-+ unsigned int len;
- if (cl->un.leaf.q->ops->drop &&
-- cl->un.leaf.q->ops->drop(cl->un.leaf.q)) {
-+ (len = cl->un.leaf.q->ops->drop(cl->un.leaf.q))) {
- sch->q.qlen--;
- if (!cl->un.leaf.q->q.qlen)
- htb_deactivate (q,cl);
-- return 1;
-+ return len;
- }
- }
- }
-@@ -1208,7 +1233,8 @@
- gopt.direct_pkts = q->direct_pkts;
-
- #ifdef HTB_DEBUG
-- htb_debug_dump(q);
-+ if (HTB_DBG_COND(0,2))
-+ htb_debug_dump(q);
- #endif
- gopt.version = HTB_VER;
- gopt.rate2quantum = q->rate2quantum;
-@@ -1289,6 +1315,9 @@
- return -ENOBUFS;
- sch_tree_lock(sch);
- if ((*old = xchg(&cl->un.leaf.q, new)) != NULL) {
-+ if (cl->prio_activity)
-+ htb_deactivate ((struct htb_sched*)sch->data,cl);
-+
- /* TODO: is it correct ? Why CBQ doesn't do it ? */
- sch->q.qlen -= (*old)->q.qlen;
- qdisc_reset(*old);
-@@ -1323,7 +1352,7 @@
-
- while ((tp = *fl) != NULL) {
- *fl = tp->next;
-- tp->ops->destroy(tp);
-+ tcf_destroy(tp);
- }
- }
-
-@@ -1371,11 +1400,16 @@
- #ifdef HTB_RATECM
- del_timer_sync (&q->rttim);
- #endif
-+ /* This line used to be after htb_destroy_class call below
-+ and surprisingly it worked in 2.4. But it must precede it
-+ because filter need its target class alive to be able to call
-+ unbind_filter on it (without Oops). */
-+ htb_destroy_filters(&q->filter_list);
-+
- while (!list_empty(&q->root))
- htb_destroy_class (sch,list_entry(q->root.next,
- struct htb_class,sibling));
-
-- htb_destroy_filters(&q->filter_list);
- __skb_queue_purge(&q->direct_queue);
- MOD_DEC_USE_COUNT;
- }
-@@ -1438,12 +1472,13 @@
- parent = parentid == TC_H_ROOT ? NULL : htb_find (parentid,sch);
-
- hopt = RTA_DATA(tb[TCA_HTB_PARMS-1]);
-- HTB_DBG(0,1,"htb_chg cl=%p, clid=%X, opt/prio=%d, rate=%u, buff=%d, quant=%d\n", cl,cl?cl->classid:0,(int)hopt->prio,hopt->rate.rate,hopt->buffer,hopt->quantum);
-+ HTB_DBG(0,1,"htb_chg cl=%p(%X), clid=%X, parid=%X, opt/prio=%d, rate=%u, buff=%d, quant=%d\n", cl,cl?cl->classid:0,classid,parentid,(int)hopt->prio,hopt->rate.rate,hopt->buffer,hopt->quantum);
- rtab = qdisc_get_rtab(&hopt->rate, tb[TCA_HTB_RTAB-1]);
- ctab = qdisc_get_rtab(&hopt->ceil, tb[TCA_HTB_CTAB-1]);
- if (!rtab || !ctab) goto failure;
-
- if (!cl) { /* new class */
-+ struct Qdisc *new_q;
- /* check for valid classid */
- if (!classid || TC_H_MAJ(classid^sch->handle) || htb_find(classid,sch))
- goto failure;
-@@ -1467,6 +1502,10 @@
- cl->magic = HTB_CMAGIC;
- #endif
-
-+ /* create leaf qdisc early because it uses kmalloc(GFP_KERNEL)
-+ so that can't be used inside of sch_tree_lock
-+ -- thanks to Karlis Peisenieks */
-+ new_q = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops);
- sch_tree_lock(sch);
- if (parent && !parent->level) {
- /* turn parent into inner node */
-@@ -1485,8 +1524,7 @@
- memset (&parent->un.inner,0,sizeof(parent->un.inner));
- }
- /* leaf (we) needs elementary qdisc */
-- if (!(cl->un.leaf.q = qdisc_create_dflt(sch->dev, &pfifo_qdisc_ops)))
-- cl->un.leaf.q = &noop_qdisc;
-+ cl->un.leaf.q = new_q ? new_q : &noop_qdisc;
-
- cl->classid = classid; cl->parent = parent;
-
-@@ -1514,11 +1552,11 @@
- if (!cl->level) {
- cl->un.leaf.quantum = rtab->rate.rate / q->rate2quantum;
- if (!hopt->quantum && cl->un.leaf.quantum < 1000) {
-- printk(KERN_WARNING "HTB: quantum of class %X is small. Consider r2q change.", cl->classid);
-+ printk(KERN_WARNING "HTB: quantum of class %X is small. Consider r2q change.\n", cl->classid);
- cl->un.leaf.quantum = 1000;
- }
- if (!hopt->quantum && cl->un.leaf.quantum > 200000) {
-- printk(KERN_WARNING "HTB: quantum of class %X is big. Consider r2q change.", cl->classid);
-+ printk(KERN_WARNING "HTB: quantum of class %X is big. Consider r2q change.\n", cl->classid);
- cl->un.leaf.quantum = 200000;
- }
- if (hopt->quantum)
---- linux-2.4.20/include/net/pkt_cls.h~110-schhtb 2005-01-07 02:53:54.529709000 -0500
-+++ linux-2.4.20/include/net/pkt_cls.h 2005-01-07 02:53:55.918498816 -0500
-@@ -77,7 +77,11 @@
- return -1;
- }
-
--
-+static inline void tcf_destroy(struct tcf_proto *tp)
-+{
-+ tp->ops->destroy(tp);
-+ kfree(tp);
-+}
-
- extern int register_tcf_proto_ops(struct tcf_proto_ops *ops);
- extern int unregister_tcf_proto_ops(struct tcf_proto_ops *ops);
diff --git a/packages/linux/linux-wrt-2.4.20/120-openwrt.patch b/packages/linux/linux-wrt-2.4.20/120-openwrt.patch
deleted file mode 100644
index a655999604..0000000000
--- a/packages/linux/linux-wrt-2.4.20/120-openwrt.patch
+++ /dev/null
@@ -1,2512 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/Makefile~120-openwrt 2005-01-07 02:52:47.163951000 -0500
-+++ linux-2.4.20/Makefile 2005-01-07 02:54:46.351831784 -0500
-@@ -17,7 +17,7 @@
- FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net $(HPATH)/math-emu
-
- HOSTCC = gcc
--HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-+HOSTCFLAGS = -Wall -Wstrict-prototypes -Os -fomit-frame-pointer
-
- CROSS_COMPILE =
-
-@@ -88,7 +88,7 @@
-
- CPPFLAGS := -D__KERNEL__ -I$(HPATH)
-
--CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
-+CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -Os \
- -fno-strict-aliasing -fno-common
-
- # Turn on -pg to instrument the kernel with calls to mcount().
---- linux-2.4.20/arch/mips/brcm-boards/bcm947xx/setup.c~120-openwrt 2005-01-07 02:52:47.170950000 -0500
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/setup.c 2005-01-07 02:54:46.351831784 -0500
-@@ -28,6 +28,7 @@
- #include <linux/ext2_fs.h>
- #include <linux/romfs_fs.h>
- #include <linux/cramfs_fs.h>
-+#include <linux/squashfs_fs.h>
- #endif
-
- #include <typedefs.h>
-@@ -169,37 +170,38 @@
- #ifdef CONFIG_MTD_PARTITIONS
-
- static struct mtd_partition bcm947xx_parts[] = {
-- { name: "pmon", offset: 0, size: 0, /*mask_flags: MTD_WRITEABLE,*/ },
-+ { name: "pmon", offset: 0, size: 0, mask_flags: MTD_WRITEABLE, },
- { name: "linux", offset: 0, size: 0, },
- { name: "rootfs", offset: 0, size: 0, /*mask_flags: MTD_WRITEABLE,*/ },
- { name: "nvram", offset: 0, size: 0, },
-+ { name: "OpenWrt", offset: 0, size: 0, },
- { name: NULL, },
- };
-
--struct mtd_partition * __init
--init_mtd_partitions(struct mtd_info *mtd, size_t size)
-+
-+static int __init
-+find_root(struct mtd_info *mtd, size_t size, struct mtd_partition *part)
- {
-- struct minix_super_block *minixsb;
-- struct ext2_super_block *ext2sb;
-- struct romfs_super_block *romfsb;
- struct cramfs_super *cramfsb;
-+ struct squashfs_super_block *squashfsb;
- struct trx_header *trx;
-+
- unsigned char buf[512];
- int off;
- size_t len;
-
-- minixsb = (struct minix_super_block *) buf;
-- ext2sb = (struct ext2_super_block *) buf;
-- romfsb = (struct romfs_super_block *) buf;
- cramfsb = (struct cramfs_super *) buf;
-+ squashfsb = (struct squashfs_super_block *) buf;
- trx = (struct trx_header *) buf;
-
-- /* Look at every 64 KB boundary */
-- for (off = 0; off < size; off += (64 * 1024)) {
-+ part->offset = 0;
-+ part->size = 0;
-+
-+ for (off = 0; off < size; off += mtd->erasesize) {
- memset(buf, 0xe5, sizeof(buf));
-
- /*
-- * Read block 0 to test for romfs and cramfs superblock
-+ * Read block 0 to test for cramfs superblock
- */
- if (MTD_READ(mtd, off, sizeof(buf), &len, buf) ||
- len != sizeof(buf))
-@@ -207,75 +209,105 @@
-
- /* Try looking at TRX header for rootfs offset */
- if (le32_to_cpu(trx->magic) == TRX_MAGIC) {
-- bcm947xx_parts[1].offset = off;
- if (le32_to_cpu(trx->offsets[1]) > off)
- off = le32_to_cpu(trx->offsets[1]);
- continue;
- }
-
-- /* romfs is at block zero too */
-- if (romfsb->word0 == ROMSB_WORD0 &&
-- romfsb->word1 == ROMSB_WORD1) {
-- printk(KERN_NOTICE
-- "%s: romfs filesystem found at block %d\n",
-- mtd->name, off / BLOCK_SIZE);
-- goto done;
-- }
--
-- /* so is cramfs */
-+ /* need to find cramfs */
- if (cramfsb->magic == CRAMFS_MAGIC) {
- printk(KERN_NOTICE
- "%s: cramfs filesystem found at block %d\n",
- mtd->name, off / BLOCK_SIZE);
-- goto done;
-- }
-
-- /*
-- * Read block 1 to test for minix and ext2 superblock
-- */
-- if (MTD_READ(mtd, off + BLOCK_SIZE, sizeof(buf), &len, buf) ||
-- len != sizeof(buf))
-- continue;
--
-- /* Try minix */
-- if (minixsb->s_magic == MINIX_SUPER_MAGIC ||
-- minixsb->s_magic == MINIX_SUPER_MAGIC2) {
-- printk(KERN_NOTICE
-- "%s: Minix filesystem found at block %d\n",
-- mtd->name, off / BLOCK_SIZE);
-+ part->size = cramfsb->size;
- goto done;
- }
-
-- /* Try ext2 */
-- if (ext2sb->s_magic == cpu_to_le16(EXT2_SUPER_MAGIC)) {
-+ /* or squashfs */
-+ if (squashfsb->s_magic == SQUASHFS_MAGIC) {
- printk(KERN_NOTICE
-- "%s: ext2 filesystem found at block %d\n",
-+ "%s: squashfs filesystem found at block %d\n",
- mtd->name, off / BLOCK_SIZE);
-+ part->size = squashfsb->bytes_used+2048;
- goto done;
- }
-- }
-
-+ }
- printk(KERN_NOTICE
-- "%s: Couldn't find valid ROM disk image\n",
-+ "%s: Couldn't find valid cramfs image\n",
- mtd->name);
-+ return -1;
-+
-+done:
-+ part->offset = off;
-+ return 0;
-+}
-+
-+
-+struct mtd_partition * __init
-+init_mtd_partitions(struct mtd_info *mtd, size_t size)
-+{
-+
-+ bcm947xx_parts[0].offset=0;
-+ bcm947xx_parts[0].size=256*1024;
-
-- done:
- /* Find and size nvram */
- bcm947xx_parts[3].offset = size - ROUNDUP(NVRAM_SPACE, mtd->erasesize);
- bcm947xx_parts[3].size = size - bcm947xx_parts[3].offset;
-
- /* Find and size rootfs */
-- if (off < size) {
-- bcm947xx_parts[2].offset = off;
-- bcm947xx_parts[2].size = bcm947xx_parts[3].offset - bcm947xx_parts[2].offset;
-- }
-+ //if (off < size) {
-+ // bcm947xx_parts[2].offset = off;
-+ // bcm947xx_parts[2].size = bcm947xx_parts[3].offset - bcm947xx_parts[2].offset;
-+ //}
-+
-+ /* Find and size rootfs */
-+ find_root(mtd,size,&bcm947xx_parts[2]);
-+
-+
-
- /* Size linux (kernel and rootfs) */
-+ bcm947xx_parts[1].offset = bcm947xx_parts[0].size;
- bcm947xx_parts[1].size = bcm947xx_parts[3].offset - bcm947xx_parts[1].offset;
-
-+
-+
-+ /* calculate leftover flash, and assign it to the jffs partition */
-+ size_t spot;
-+ size_t len;
-+ size_t mask;
-+ // get the offset to the end of the root_fs
-+ spot=bcm947xx_parts[2].offset+bcm947xx_parts[2].size;
-+ // round it up to an erase size boundary
-+ spot+=mtd->erasesize-1;
-+ // mask the number to the boundary
-+ mask=mtd->erasesize;
-+ mask=mask-1;
-+ mask=mask^0xffffffff;
-+ spot&=mask;
-+ // length = flashsize - start position - nvram size
-+ len=size-spot;
-+ len=len-bcm947xx_parts[3].size;
-+
-+
-+ bcm947xx_parts[4].offset = spot;
-+ bcm947xx_parts[4].size = len;
-+
-+
-+
-+
- /* Size pmon */
- bcm947xx_parts[0].size = bcm947xx_parts[1].offset - bcm947xx_parts[0].offset;
-
-+ //int x;
-+ //for(x=0; x<5; x++) {
-+ // printk(KERN_NOTICE
-+ // "Partition %d mask_flags %08x\n",
-+ // x,bcm947xx_parts[x].mask_flags);
-+ //}
-+
-+
- return bcm947xx_parts;
- }
-
---- linux-2.4.20/drivers/mtd/maps/bcm947xx-flash.c~120-openwrt 2005-01-07 02:52:47.190946000 -0500
-+++ linux-2.4.20/drivers/mtd/maps/bcm947xx-flash.c 2005-01-07 02:54:46.352831632 -0500
-@@ -82,7 +82,21 @@
-
- void bcm947xx_map_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
- {
-+ //memcpy_fromio(to, map->map_priv_1 + from, len);
-+ if (len==1) {
- memcpy_fromio(to, map->map_priv_1 + from, len);
-+ } else {
-+ int i;
-+ u16 *dest = (u16 *) to;
-+ u16 *src = (u16 *) (map->map_priv_1 + from);
-+
-+ for (i = 0; i < (len / 2); i++) {
-+ dest[i] = src[i];
-+ }
-+
-+ if (len & 1)
-+ *((u8 *)dest+len-1) = src[i] & 0xff;
-+ }
- }
-
- void bcm947xx_map_write8(struct map_info *map, __u8 d, unsigned long adr)
---- linux-2.4.20/drivers/net/Makefile~120-openwrt 2005-01-07 02:52:47.191946000 -0500
-+++ linux-2.4.20/drivers/net/Makefile 2005-01-07 02:54:46.352831632 -0500
-@@ -21,7 +21,7 @@
- list-multi := rcpci.o
- rcpci-objs := rcpci45.o rclanmtl.o
-
--subdir-m += mac
-+# subdir-m += mac
- subdir-m += diag
-
- ifeq ($(CONFIG_HW_QOS),y)
---- linux-2.4.20/fs/Config.in~120-openwrt 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/fs/Config.in 2005-01-07 02:54:46.352831632 -0500
-@@ -47,6 +47,7 @@
- int 'JFFS2 debugging verbosity (0 = quiet, 2 = noisy)' CONFIG_JFFS2_FS_DEBUG 0
- fi
- tristate 'Compressed ROM file system support' CONFIG_CRAMFS
-+tristate 'Squashed file system support' CONFIG_SQUASHFS
- bool 'Virtual memory file system support (former shm fs)' CONFIG_TMPFS
- define_bool CONFIG_RAMFS y
-
---- linux-2.4.20/fs/Makefile~120-openwrt 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/fs/Makefile 2005-01-07 02:54:46.353831480 -0500
-@@ -68,6 +68,7 @@
- subdir-$(CONFIG_SUN_OPENPROMFS) += openpromfs
- subdir-$(CONFIG_BEFS_FS) += befs
- subdir-$(CONFIG_JFS_FS) += jfs
-+subdir-$(CONFIG_SQUASHFS) += squashfs
-
-
- obj-$(CONFIG_BINFMT_AOUT) += binfmt_aout.o
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/fs/squashfs/Makefile 2005-01-07 02:54:46.353831480 -0500
-@@ -0,0 +1,11 @@
-+#
-+# Makefile for the linux squashfs routines.
-+#
-+
-+O_TARGET := squashfs.o
-+
-+obj-y := inode.o
-+
-+obj-m := $(O_TARGET)
-+
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/fs/squashfs/inode.c 2005-01-07 02:54:46.355831176 -0500
-@@ -0,0 +1,1515 @@
-+/*
-+ * Squashfs - a compressed read only filesystem for Linux
-+ *
-+ * Copyright (c) 2002, 2003, 2004 Phillip Lougher <plougher@users.sourceforge.net>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ * Squashfs - a compressed read only filesystem for Linux
-+ *
-+ * inode.c
-+ */
-+
-+#define SQUASHFS_1_0_COMPATIBILITY
-+
-+#include <linux/types.h>
-+#include <linux/squashfs_fs.h>
-+#include <linux/module.h>
-+#include <linux/errno.h>
-+#include <linux/slab.h>
-+#include <linux/fs.h>
-+#include <linux/locks.h>
-+#include <linux/init.h>
-+#include <linux/dcache.h>
-+#include <asm/uaccess.h>
-+#include <linux/wait.h>
-+#include <asm/semaphore.h>
-+#include <linux/zlib.h>
-+#include <linux/blkdev.h>
-+#include <linux/vmalloc.h>
-+
-+#ifdef SQUASHFS_TRACE
-+#define TRACE(s, args...) printk(KERN_NOTICE "SQUASHFS: "s, ## args)
-+#else
-+#define TRACE(s, args...) {}
-+#endif
-+
-+#define ERROR(s, args...) printk(KERN_ERR "SQUASHFS error: "s, ## args)
-+
-+#define SERROR(s, args...) if(!silent) printk(KERN_ERR "SQUASHFS error: "s, ## args)
-+#define WARNING(s, args...) printk(KERN_WARNING "SQUASHFS: "s, ## args)
-+
-+static struct super_block *squashfs_read_super(struct super_block *, void *, int);
-+static void squashfs_put_super(struct super_block *);
-+static int squashfs_statfs(struct super_block *, struct statfs *);
-+static int squashfs_symlink_readpage(struct file *file, struct page *page);
-+static int squashfs_readpage(struct file *file, struct page *page);
-+static int squashfs_readpage4K(struct file *file, struct page *page);
-+static int squashfs_readdir(struct file *, void *, filldir_t);
-+static struct dentry *squashfs_lookup(struct inode *, struct dentry *);
-+static unsigned int read_data(struct super_block *s, char *buffer,
-+ unsigned int index, unsigned int length, int, unsigned int *next_index);
-+static int squashfs_get_cached_block(struct super_block *s, char *buffer,
-+ unsigned int block, unsigned int offset, int length,
-+ unsigned int *next_block, unsigned int *next_offset);
-+static struct inode *squashfs_iget(struct super_block *s, squashfs_inode inode);
-+static unsigned int read_blocklist(struct inode *inode, int index, int readahead_blks,
-+ char *block_list, char **block_p, unsigned int *bsize);
-+static void squashfs_put_super(struct super_block *s);
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+static int squashfs_readpage_lessthan4K(struct file *file, struct page *page);
-+static struct inode *squashfs_iget_1(struct super_block *s, squashfs_inode inode);
-+static unsigned int read_blocklist_1(struct inode *inode, int index, int readahead_blks,
-+ char *block_list, char **block_p, unsigned int *bsize);
-+#endif
-+
-+DECLARE_MUTEX(read_data_mutex);
-+
-+static z_stream stream;
-+
-+static DECLARE_FSTYPE_DEV(squashfs_fs_type, "squashfs", squashfs_read_super);
-+
-+static unsigned char squashfs_filetype_table[] = {
-+ DT_UNKNOWN, DT_DIR, DT_REG, DT_LNK, DT_BLK, DT_CHR, DT_FIFO, DT_SOCK
-+};
-+
-+static struct super_operations squashfs_ops = {
-+ statfs: squashfs_statfs,
-+ put_super: squashfs_put_super,
-+};
-+
-+static struct address_space_operations squashfs_symlink_aops = {
-+ readpage: squashfs_symlink_readpage
-+};
-+
-+static struct address_space_operations squashfs_aops = {
-+ readpage: squashfs_readpage
-+};
-+
-+static struct address_space_operations squashfs_aops_4K = {
-+ readpage: squashfs_readpage4K
-+};
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+static struct address_space_operations squashfs_aops_lessthan4K = {
-+ readpage: squashfs_readpage_lessthan4K
-+};
-+#endif
-+
-+static struct file_operations squashfs_dir_ops = {
-+ read: generic_read_dir,
-+ readdir: squashfs_readdir
-+};
-+
-+static struct inode_operations squashfs_dir_inode_ops = {
-+ lookup: squashfs_lookup
-+};
-+
-+
-+static unsigned int read_data(struct super_block *s, char *buffer,
-+ unsigned int index, unsigned int length, int datablock, unsigned int *next_index)
-+{
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+ struct buffer_head *bh[((SQUASHFS_FILE_MAX_SIZE - 1) >> msBlk->devblksize_log2) + 2];
-+ unsigned int offset = index & ((1 << msBlk->devblksize_log2) - 1);
-+ unsigned int cur_index = index >> msBlk->devblksize_log2;
-+ int bytes, avail_bytes, b, k;
-+ char *c_buffer;
-+ unsigned int compressed;
-+ unsigned int c_byte = length;
-+
-+ if(c_byte) {
-+ bytes = msBlk->devblksize - offset;
-+ if(datablock) {
-+ c_buffer = (compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte)) ? msBlk->read_data : buffer;
-+ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
-+ } else {
-+ c_buffer = (compressed = SQUASHFS_COMPRESSED(c_byte)) ? msBlk->read_data : buffer;
-+ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte);
-+ }
-+
-+ TRACE("Block @ 0x%x, %scompressed size %d\n", index, compressed ? "" : "un", (unsigned int) c_byte);
-+
-+ if(!(bh[0] = sb_getblk(s, cur_index)))
-+ goto block_release;
-+ for(b = 1; bytes < c_byte; b++) {
-+ if(!(bh[b] = sb_getblk(s, ++cur_index)))
-+ goto block_release;
-+ bytes += msBlk->devblksize;
-+ }
-+ ll_rw_block(READ, b, bh);
-+ } else {
-+ unsigned short temp;
-+ if(!(bh[0] = sb_bread(s, cur_index)))
-+ goto read_failure;
-+
-+ if(msBlk->devblksize - offset == 1) {
-+ if(msBlk->swap)
-+ ((unsigned char *) &temp)[1] = *((unsigned char *) (bh[0]->b_data + offset));
-+ else
-+ ((unsigned char *) &temp)[0] = *((unsigned char *) (bh[0]->b_data + offset));
-+ brelse(bh[0]);
-+ if(!(bh[0] = sb_bread(s, ++cur_index)))
-+ goto read_failure;
-+ if(msBlk->swap)
-+ ((unsigned char *) &temp)[0] = *((unsigned char *) bh[0]->b_data);
-+ else
-+ ((unsigned char *) &temp)[1] = *((unsigned char *) bh[0]->b_data);
-+ c_byte = temp;
-+ offset = 1;
-+ }
-+ else {
-+ if(msBlk->swap) {
-+ unsigned short temp;
-+ ((unsigned char *) &temp)[1] = *((unsigned char *) (bh[0]->b_data + offset));
-+ ((unsigned char *) &temp)[0] = *((unsigned char *) (bh[0]->b_data + offset + 1));
-+ c_byte = temp;
-+ } else
-+ c_byte = *((unsigned short *) (bh[0]->b_data + offset));
-+ offset += 2;
-+ }
-+ if(SQUASHFS_CHECK_DATA(msBlk->sBlk.flags)) {
-+ if(offset == msBlk->devblksize) {
-+ brelse(bh[0]);
-+ if(!(bh[0] = sb_bread(s, ++cur_index)))
-+ goto read_failure;
-+ offset = 0;
-+ }
-+ if(*((unsigned char *) (bh[0]->b_data + offset)) != SQUASHFS_MARKER_BYTE) {
-+ ERROR("Metadata block marker corrupt @ %x\n", index);
-+ brelse(bh[0]);
-+ return 0;
-+ }
-+ offset ++;
-+ }
-+
-+ bytes = msBlk->devblksize - offset;
-+ if(datablock) {
-+ c_buffer = (compressed = SQUASHFS_COMPRESSED_BLOCK(c_byte)) ? msBlk->read_data : buffer;
-+ c_byte = SQUASHFS_COMPRESSED_SIZE_BLOCK(c_byte);
-+ } else {
-+ c_buffer = (compressed = SQUASHFS_COMPRESSED(c_byte)) ? msBlk->read_data : buffer;
-+ c_byte = SQUASHFS_COMPRESSED_SIZE(c_byte);
-+ }
-+
-+ TRACE("Block @ 0x%x, %scompressed size %d\n", index, compressed ? "" : "un", (unsigned int) c_byte);
-+
-+ for(b = 1; bytes < c_byte; b++) {
-+ if(!(bh[b] = sb_getblk(s, ++cur_index)))
-+ goto block_release;
-+ bytes += msBlk->devblksize;
-+ }
-+ ll_rw_block(READ, b - 1, bh + 1);
-+ }
-+
-+ if(compressed)
-+ down(&read_data_mutex);
-+
-+ for(bytes = 0, k = 0; k < b; k++) {
-+ avail_bytes = (c_byte - bytes) > (msBlk->devblksize - offset) ? msBlk->devblksize - offset : c_byte - bytes;
-+ wait_on_buffer(bh[k]);
-+ memcpy(c_buffer + bytes, bh[k]->b_data + offset, avail_bytes);
-+ bytes += avail_bytes;
-+ offset = 0;
-+ brelse(bh[k]);
-+ }
-+
-+ /*
-+ * uncompress block
-+ */
-+ if(compressed) {
-+ int zlib_err;
-+
-+ stream.next_in = c_buffer;
-+ stream.avail_in = c_byte;
-+ stream.next_out = buffer;
-+ stream.avail_out = msBlk->read_size;
-+ if(((zlib_err = zlib_inflateInit(&stream)) != Z_OK) ||
-+ ((zlib_err = zlib_inflate(&stream, Z_FINISH)) != Z_STREAM_END) ||
-+ ((zlib_err = zlib_inflateEnd(&stream)) != Z_OK)) {
-+ ERROR("zlib_fs returned unexpected result 0x%x\n", zlib_err);
-+ bytes = 0;
-+ } else
-+ bytes = stream.total_out;
-+ up(&read_data_mutex);
-+ }
-+
-+ if(next_index)
-+ *next_index = index + c_byte + (length ? 0 : (SQUASHFS_CHECK_DATA(msBlk->sBlk.flags) ? 3 : 2));
-+
-+ return bytes;
-+
-+block_release:
-+ while(--b >= 0) brelse(bh[b]);
-+
-+read_failure:
-+ ERROR("sb_bread failed reading block 0x%x\n", cur_index);
-+ return 0;
-+}
-+
-+
-+static int squashfs_get_cached_block(struct super_block *s, char *buffer,
-+ unsigned int block, unsigned int offset, int length,
-+ unsigned int *next_block, unsigned int *next_offset)
-+{
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+ int n, i, bytes, return_length = length;
-+ unsigned int next_index;
-+
-+ TRACE("Entered squashfs_get_cached_block [%x:%x]\n", block, offset);
-+
-+ for(;;) {
-+ for(i = 0; i < SQUASHFS_CACHED_BLKS; i++)
-+ if(msBlk->block_cache[i].block == block)
-+ break;
-+
-+ down(&msBlk->block_cache_mutex);
-+ if(i == SQUASHFS_CACHED_BLKS) {
-+ /* read inode header block */
-+ for(i = msBlk->next_cache, n = SQUASHFS_CACHED_BLKS; n ; n --, i = (i + 1) % SQUASHFS_CACHED_BLKS)
-+ if(msBlk->block_cache[i].block != SQUASHFS_USED_BLK)
-+ break;
-+ if(n == 0) {
-+ up(&msBlk->block_cache_mutex);
-+ sleep_on(&msBlk->waitq);
-+ continue;
-+ }
-+ msBlk->next_cache = (i + 1) % SQUASHFS_CACHED_BLKS;
-+
-+ if(msBlk->block_cache[i].block == SQUASHFS_INVALID_BLK) {
-+ if(!(msBlk->block_cache[i].data = (unsigned char *)
-+ kmalloc(SQUASHFS_METADATA_SIZE, GFP_KERNEL))) {
-+ ERROR("Failed to allocate cache block\n");
-+ up(&msBlk->block_cache_mutex);
-+ return 0;
-+ }
-+ }
-+
-+ msBlk->block_cache[i].block = SQUASHFS_USED_BLK;
-+ up(&msBlk->block_cache_mutex);
-+ if(!(msBlk->block_cache[i].length = read_data(s, msBlk->block_cache[i].data, block, 0, 0,
-+ &next_index))) {
-+ ERROR("Unable to read cache block [%x:%x]\n", block, offset);
-+ return 0;
-+ }
-+ down(&msBlk->block_cache_mutex);
-+ wake_up(&msBlk->waitq);
-+ msBlk->block_cache[i].block = block;
-+ msBlk->block_cache[i].next_index = next_index;
-+ TRACE("Read cache block [%x:%x]\n", block, offset);
-+ }
-+
-+ if(msBlk->block_cache[i].block != block) {
-+ up(&msBlk->block_cache_mutex);
-+ continue;
-+ }
-+
-+ if((bytes = msBlk->block_cache[i].length - offset) >= length) {
-+ if(buffer)
-+ memcpy(buffer, msBlk->block_cache[i].data + offset, length);
-+ if(msBlk->block_cache[i].length - offset == length) {
-+ *next_block = msBlk->block_cache[i].next_index;
-+ *next_offset = 0;
-+ } else {
-+ *next_block = block;
-+ *next_offset = offset + length;
-+ }
-+
-+ up(&msBlk->block_cache_mutex);
-+ return return_length;
-+ } else {
-+ if(buffer) {
-+ memcpy(buffer, msBlk->block_cache[i].data + offset, bytes);
-+ buffer += bytes;
-+ }
-+ block = msBlk->block_cache[i].next_index;
-+ up(&msBlk->block_cache_mutex);
-+ length -= bytes;
-+ offset = 0;
-+ }
-+ }
-+}
-+
-+
-+static int get_fragment_location(struct super_block *s, unsigned int fragment, unsigned int *fragment_start_block, unsigned int *fragment_size)
-+{
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+ unsigned int start_block = msBlk->fragment_index[SQUASHFS_FRAGMENT_INDEX(fragment)];
-+ int offset = SQUASHFS_FRAGMENT_INDEX_OFFSET(fragment);
-+ squashfs_fragment_entry fragment_entry;
-+
-+ if(msBlk->swap) {
-+ squashfs_fragment_entry sfragment_entry;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sfragment_entry, start_block, offset,
-+ sizeof(sfragment_entry), &start_block, &offset))
-+ return 0;
-+ SQUASHFS_SWAP_FRAGMENT_ENTRY(&fragment_entry, &sfragment_entry);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &fragment_entry, start_block, offset,
-+ sizeof(fragment_entry), &start_block, &offset))
-+ return 0;
-+
-+ *fragment_start_block = fragment_entry.start_block;
-+ *fragment_size = fragment_entry.size;
-+
-+ return 1;
-+}
-+
-+
-+void release_cached_fragment(squashfs_sb_info *msBlk, struct squashfs_fragment_cache *fragment)
-+{
-+ down(&msBlk->fragment_mutex);
-+ fragment->locked --;
-+ wake_up(&msBlk->fragment_wait_queue);
-+ up(&msBlk->fragment_mutex);
-+}
-+
-+
-+struct squashfs_fragment_cache *get_cached_fragment(struct super_block *s, unsigned int start_block, int length)
-+{
-+ int i, n;
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+
-+ for(;;) {
-+ down(&msBlk->fragment_mutex);
-+ for(i = 0; i < SQUASHFS_CACHED_FRAGMENTS && msBlk->fragment[i].block != start_block; i++);
-+ if(i == SQUASHFS_CACHED_FRAGMENTS) {
-+ for(i = msBlk->next_fragment, n = SQUASHFS_CACHED_FRAGMENTS;
-+ n && msBlk->fragment[i].locked; n--, i = (i + 1) % SQUASHFS_CACHED_FRAGMENTS);
-+
-+ if(n == 0) {
-+ up(&msBlk->fragment_mutex);
-+ sleep_on(&msBlk->fragment_wait_queue);
-+ continue;
-+ }
-+ msBlk->next_fragment = (msBlk->next_fragment + 1) % SQUASHFS_CACHED_FRAGMENTS;
-+
-+ if(msBlk->fragment[i].data == NULL)
-+ if(!(msBlk->fragment[i].data = (unsigned char *)
-+ kmalloc(SQUASHFS_FILE_MAX_SIZE, GFP_KERNEL))) {
-+ ERROR("Failed to allocate fragment cache block\n");
-+ up(&msBlk->fragment_mutex);
-+ return NULL;
-+ }
-+
-+ msBlk->fragment[i].block = SQUASHFS_INVALID_BLK;
-+ msBlk->fragment[i].locked = 1;
-+ up(&msBlk->fragment_mutex);
-+ if(!(msBlk->fragment[i].length = read_data(s, msBlk->fragment[i].data, start_block, length,
-+ 1, NULL))) {
-+ ERROR("Unable to read fragment cache block [%x]\n", start_block);
-+ msBlk->fragment[i].locked = 0;
-+ return NULL;
-+ }
-+ msBlk->fragment[i].block = start_block;
-+ TRACE("New fragment %d, start block %d, locked %d\n", i, msBlk->fragment[i].block, msBlk->fragment[i].locked);
-+ return &msBlk->fragment[i];
-+ }
-+
-+ msBlk->fragment[i].locked ++;
-+ up(&msBlk->fragment_mutex);
-+
-+ TRACE("Got fragment %d, start block %d, locked %d\n", i, msBlk->fragment[i].block, msBlk->fragment[i].locked);
-+ return &msBlk->fragment[i];
-+ }
-+}
-+
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+static struct inode *squashfs_iget_1(struct super_block *s, squashfs_inode inode)
-+{
-+ struct inode *i = new_inode(s);
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ unsigned int block = SQUASHFS_INODE_BLK(inode) + sBlk->inode_table_start;
-+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
-+ unsigned int next_block, next_offset;
-+ squashfs_base_inode_header_1 inodeb;
-+
-+ TRACE("Entered squashfs_iget_1\n");
-+
-+ if(msBlk->swap) {
-+ squashfs_base_inode_header_1 sinodeb;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodeb, block, offset,
-+ sizeof(sinodeb), &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_BASE_INODE_HEADER_1(&inodeb, &sinodeb, sizeof(sinodeb));
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodeb, block, offset,
-+ sizeof(inodeb), &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_nlink = 1;
-+
-+ i->i_mtime = sBlk->mkfs_time;
-+ i->i_atime = sBlk->mkfs_time;
-+ i->i_ctime = sBlk->mkfs_time;
-+
-+ if(inodeb.inode_type != SQUASHFS_IPC_TYPE)
-+ i->i_uid = msBlk->uid[((inodeb.inode_type - 1) / SQUASHFS_TYPES) * 16 + inodeb.uid];
-+ i->i_ino = SQUASHFS_MK_VFS_INODE(block - sBlk->inode_table_start, offset);
-+
-+ i->i_mode = inodeb.mode;
-+
-+ switch(inodeb.inode_type == SQUASHFS_IPC_TYPE ? SQUASHFS_IPC_TYPE : (inodeb.inode_type - 1) % SQUASHFS_TYPES + 1) {
-+ case SQUASHFS_FILE_TYPE: {
-+ squashfs_reg_inode_header_1 inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_reg_inode_header_1 sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_REG_INODE_HEADER_1(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = inodep.file_size;
-+ i->i_fop = &generic_ro_fops;
-+ if(sBlk->block_size > 4096)
-+ i->i_data.a_ops = &squashfs_aops;
-+ else if(sBlk->block_size == 4096)
-+ i->i_data.a_ops = &squashfs_aops_4K;
-+ else
-+ i->i_data.a_ops = &squashfs_aops_lessthan4K;
-+ i->i_mode |= S_IFREG;
-+ i->i_mtime = inodep.mtime;
-+ i->i_atime = inodep.mtime;
-+ i->i_ctime = inodep.mtime;
-+ i->i_blocks = ((i->i_size - 1) >> 9) + 1;
-+ i->i_blksize = PAGE_CACHE_SIZE;
-+ i->u.squashfs_i.fragment_start_block = SQUASHFS_INVALID_BLK;
-+ i->u.squashfs_i.fragment_offset = 0;
-+ i->u.squashfs_i.start_block = inodep.start_block;
-+ i->u.squashfs_i.block_list_start = next_block;
-+ i->u.squashfs_i.offset = next_offset;
-+ TRACE("File inode %x:%x, start_block %x, block_list_start %x, offset %x\n",
-+ SQUASHFS_INODE_BLK(inode), offset, inodep.start_block, next_block, next_offset);
-+ break;
-+ }
-+ case SQUASHFS_DIR_TYPE: {
-+ squashfs_dir_inode_header_1 inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_dir_inode_header_1 sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_DIR_INODE_HEADER_1(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = inodep.file_size;
-+ i->i_op = &squashfs_dir_inode_ops;
-+ i->i_fop = &squashfs_dir_ops;
-+ i->i_mode |= S_IFDIR;
-+ i->i_mtime = inodep.mtime;
-+ i->i_atime = inodep.mtime;
-+ i->i_ctime = inodep.mtime;
-+ i->u.squashfs_i.start_block = inodep.start_block;
-+ i->u.squashfs_i.offset = inodep.offset;
-+ TRACE("Directory inode %x:%x, start_block %x, offset %x\n", SQUASHFS_INODE_BLK(inode), offset,
-+ inodep.start_block, inodep.offset);
-+ break;
-+ }
-+ case SQUASHFS_SYMLINK_TYPE: {
-+ squashfs_symlink_inode_header_1 inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_symlink_inode_header_1 sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = inodep.symlink_size;
-+ i->i_op = &page_symlink_inode_operations;
-+ i->i_data.a_ops = &squashfs_symlink_aops;
-+ i->i_mode |= S_IFLNK;
-+ i->u.squashfs_i.start_block = next_block;
-+ i->u.squashfs_i.offset = next_offset;
-+ TRACE("Symbolic link inode %x:%x, start_block %x, offset %x\n",
-+ SQUASHFS_INODE_BLK(inode), offset, next_block, next_offset);
-+ break;
-+ }
-+ case SQUASHFS_BLKDEV_TYPE:
-+ case SQUASHFS_CHRDEV_TYPE: {
-+ squashfs_dev_inode_header_1 inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_dev_inode_header_1 sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_DEV_INODE_HEADER_1(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = 0;
-+ i->i_mode |= (inodeb.inode_type == SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : S_IFBLK;
-+ init_special_inode(i, i->i_mode, inodep.rdev);
-+ TRACE("Device inode %x:%x, rdev %x\n", SQUASHFS_INODE_BLK(inode), offset, inodep.rdev);
-+ break;
-+ }
-+ case SQUASHFS_IPC_TYPE: {
-+ squashfs_ipc_inode_header_1 inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_ipc_inode_header_1 sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_IPC_INODE_HEADER_1(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = 0;
-+ i->i_mode |= (inodep.type == SQUASHFS_FIFO_TYPE) ? S_IFIFO : S_IFSOCK;
-+ i->i_uid = msBlk->uid[inodep.offset * 16 + inodeb.uid];
-+ init_special_inode(i, i->i_mode, 0);
-+ break;
-+ }
-+ default:
-+ ERROR("Unknown inode type %d in squashfs_iget!\n", inodeb.inode_type);
-+ goto failed_read1;
-+ }
-+
-+ if(inodeb.guid == SQUASHFS_GUIDS)
-+ i->i_gid = i->i_uid;
-+ else
-+ i->i_gid = msBlk->guid[inodeb.guid];
-+
-+ return i;
-+
-+failed_read:
-+ ERROR("Unable to read inode [%x:%x]\n", block, offset);
-+
-+failed_read1:
-+ return NULL;
-+}
-+#endif
-+
-+
-+static struct inode *squashfs_iget(struct super_block *s, squashfs_inode inode)
-+{
-+ struct inode *i = new_inode(s);
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ unsigned int block = SQUASHFS_INODE_BLK(inode) + sBlk->inode_table_start;
-+ unsigned int offset = SQUASHFS_INODE_OFFSET(inode);
-+ unsigned int next_block, next_offset;
-+ squashfs_base_inode_header inodeb;
-+
-+ TRACE("Entered squashfs_iget\n");
-+
-+ if(msBlk->swap) {
-+ squashfs_base_inode_header sinodeb;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodeb, block, offset,
-+ sizeof(sinodeb), &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(&inodeb, &sinodeb, sizeof(sinodeb));
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodeb, block, offset,
-+ sizeof(inodeb), &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_nlink = 1;
-+
-+ i->i_mtime = sBlk->mkfs_time;
-+ i->i_atime = sBlk->mkfs_time;
-+ i->i_ctime = sBlk->mkfs_time;
-+
-+ if(inodeb.inode_type != SQUASHFS_IPC_TYPE)
-+ i->i_uid = msBlk->uid[((inodeb.inode_type - 1) / SQUASHFS_TYPES) * 16 + inodeb.uid];
-+ i->i_ino = SQUASHFS_MK_VFS_INODE(block - sBlk->inode_table_start, offset);
-+
-+ i->i_mode = inodeb.mode;
-+
-+ switch(inodeb.inode_type) {
-+ case SQUASHFS_FILE_TYPE: {
-+ squashfs_reg_inode_header inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_reg_inode_header sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_REG_INODE_HEADER(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->u.squashfs_i.fragment_start_block = SQUASHFS_INVALID_BLK;
-+ if(inodep.fragment != SQUASHFS_INVALID_BLK && !get_fragment_location(s, inodep.fragment,
-+ &i->u.squashfs_i.fragment_start_block, &i->u.squashfs_i.fragment_size))
-+ goto failed_read;
-+
-+ i->u.squashfs_i.fragment_offset = inodep.offset;
-+ i->i_size = inodep.file_size;
-+ i->i_fop = &generic_ro_fops;
-+ if(sBlk->block_size > 4096)
-+ i->i_data.a_ops = &squashfs_aops;
-+ else
-+ i->i_data.a_ops = &squashfs_aops_4K;
-+ i->i_mode |= S_IFREG;
-+ i->i_mtime = inodep.mtime;
-+ i->i_atime = inodep.mtime;
-+ i->i_ctime = inodep.mtime;
-+ i->i_blocks = ((i->i_size - 1) >> 9) + 1;
-+ i->i_blksize = PAGE_CACHE_SIZE;
-+ i->u.squashfs_i.start_block = inodep.start_block;
-+ i->u.squashfs_i.block_list_start = next_block;
-+ i->u.squashfs_i.offset = next_offset;
-+ TRACE("File inode %x:%x, start_block %x, block_list_start %x, offset %x fragment_index %x fragment_offset %x\n",
-+ SQUASHFS_INODE_BLK(inode), offset, inodep.start_block, next_block, next_offset, inodep.fragment, inodep.offset);
-+ break;
-+ }
-+ case SQUASHFS_DIR_TYPE: {
-+ squashfs_dir_inode_header inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_dir_inode_header sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_DIR_INODE_HEADER(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = inodep.file_size;
-+ i->i_op = &squashfs_dir_inode_ops;
-+ i->i_fop = &squashfs_dir_ops;
-+ i->i_mode |= S_IFDIR;
-+ i->i_mtime = inodep.mtime;
-+ i->i_atime = inodep.mtime;
-+ i->i_ctime = inodep.mtime;
-+ i->u.squashfs_i.start_block = inodep.start_block;
-+ i->u.squashfs_i.offset = inodep.offset;
-+ TRACE("Directory inode %x:%x, start_block %x, offset %x\n", SQUASHFS_INODE_BLK(inode), offset,
-+ inodep.start_block, inodep.offset);
-+ break;
-+ }
-+ case SQUASHFS_SYMLINK_TYPE: {
-+ squashfs_symlink_inode_header inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_symlink_inode_header sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_SYMLINK_INODE_HEADER(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = inodep.symlink_size;
-+ i->i_op = &page_symlink_inode_operations;
-+ i->i_data.a_ops = &squashfs_symlink_aops;
-+ i->i_mode |= S_IFLNK;
-+ i->u.squashfs_i.start_block = next_block;
-+ i->u.squashfs_i.offset = next_offset;
-+ TRACE("Symbolic link inode %x:%x, start_block %x, offset %x\n",
-+ SQUASHFS_INODE_BLK(inode), offset, next_block, next_offset);
-+ break;
-+ }
-+ case SQUASHFS_BLKDEV_TYPE:
-+ case SQUASHFS_CHRDEV_TYPE: {
-+ squashfs_dev_inode_header inodep;
-+
-+ if(msBlk->swap) {
-+ squashfs_dev_inode_header sinodep;
-+
-+ if(!squashfs_get_cached_block(s, (char *) &sinodep, block, offset, sizeof(sinodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+ SQUASHFS_SWAP_DEV_INODE_HEADER(&inodep, &sinodep);
-+ } else
-+ if(!squashfs_get_cached_block(s, (char *) &inodep, block, offset, sizeof(inodep),
-+ &next_block, &next_offset))
-+ goto failed_read;
-+
-+ i->i_size = 0;
-+ i->i_mode |= (inodeb.inode_type == SQUASHFS_CHRDEV_TYPE) ? S_IFCHR : S_IFBLK;
-+ init_special_inode(i, i->i_mode, inodep.rdev);
-+ TRACE("Device inode %x:%x, rdev %x\n", SQUASHFS_INODE_BLK(inode), offset, inodep.rdev);
-+ break;
-+ }
-+ case SQUASHFS_FIFO_TYPE:
-+ case SQUASHFS_SOCKET_TYPE: {
-+ i->i_size = 0;
-+ i->i_mode |= (inodeb.inode_type == SQUASHFS_FIFO_TYPE) ? S_IFIFO : S_IFSOCK;
-+ init_special_inode(i, i->i_mode, 0);
-+ break;
-+ }
-+ default:
-+ ERROR("Unknown inode type %d in squashfs_iget!\n", inodeb.inode_type);
-+ goto failed_read1;
-+ }
-+
-+ if(inodeb.guid == SQUASHFS_GUIDS)
-+ i->i_gid = i->i_uid;
-+ else
-+ i->i_gid = msBlk->guid[inodeb.guid];
-+
-+ return i;
-+
-+failed_read:
-+ ERROR("Unable to read inode [%x:%x]\n", block, offset);
-+
-+failed_read1:
-+ return NULL;
-+}
-+
-+
-+static struct super_block *squashfs_read_super(struct super_block *s,
-+ void *data, int silent)
-+{
-+ kdev_t dev = s->s_dev;
-+ squashfs_sb_info *msBlk = &s->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ int i;
-+
-+ TRACE("Entered squashfs_read_superblock\n");
-+
-+ msBlk->devblksize = get_hardsect_size(dev);
-+ if(msBlk->devblksize < BLOCK_SIZE)
-+ msBlk->devblksize = BLOCK_SIZE;
-+ msBlk->devblksize_log2 = ffz(~msBlk->devblksize);
-+ set_blocksize(dev, msBlk->devblksize);
-+ s->s_blocksize = msBlk->devblksize;
-+ s->s_blocksize_bits = msBlk->devblksize_log2;
-+
-+ init_MUTEX(&msBlk->read_page_mutex);
-+ init_MUTEX(&msBlk->block_cache_mutex);
-+ init_MUTEX(&msBlk->fragment_mutex);
-+
-+ init_waitqueue_head(&msBlk->waitq);
-+ init_waitqueue_head(&msBlk->fragment_wait_queue);
-+
-+ if(!read_data(s, (char *) sBlk, SQUASHFS_START, sizeof(squashfs_super_block) | SQUASHFS_COMPRESSED_BIT, 0, NULL)) {
-+ SERROR("unable to read superblock\n");
-+ goto failed_mount;
-+ }
-+
-+ /* Check it is a SQUASHFS superblock */
-+ msBlk->swap = 0;
-+ if((s->s_magic = sBlk->s_magic) != SQUASHFS_MAGIC) {
-+ if(sBlk->s_magic == SQUASHFS_MAGIC_SWAP) {
-+ squashfs_super_block sblk;
-+ WARNING("Mounting a different endian SQUASHFS filesystem on %s\n", bdevname(dev));
-+ SQUASHFS_SWAP_SUPER_BLOCK(&sblk, sBlk);
-+ memcpy(sBlk, &sblk, sizeof(squashfs_super_block));
-+ msBlk->swap = 1;
-+ } else {
-+ SERROR("Can't find a SQUASHFS superblock on %s\n", bdevname(dev));
-+ goto failed_mount;
-+ }
-+ }
-+
-+ /* Check the MAJOR & MINOR versions */
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+ if((sBlk->s_major != 1) && (sBlk->s_major != 2 || sBlk->s_minor > SQUASHFS_MINOR)) {
-+ SERROR("Major/Minor mismatch, filesystem is (%d:%d), I support (1 : x) or (2 : <= %d)\n",
-+ sBlk->s_major, sBlk->s_minor, SQUASHFS_MINOR);
-+ goto failed_mount;
-+ }
-+ if(sBlk->s_major == 1)
-+ sBlk->block_size = sBlk->block_size_1;
-+#else
-+ if(sBlk->s_major != SQUASHFS_MAJOR || sBlk->s_minor > SQUASHFS_MINOR) {
-+ SERROR("Major/Minor mismatch, filesystem is (%d:%d), I support (%d: <= %d)\n",
-+ sBlk->s_major, sBlk->s_minor, SQUASHFS_MAJOR, SQUASHFS_MINOR);
-+ goto failed_mount;
-+ }
-+#endif
-+
-+ TRACE("Found valid superblock on %s\n", bdevname(dev));
-+ TRACE("Inodes are %scompressed\n", SQUASHFS_UNCOMPRESSED_INODES(sBlk->flags) ? "un" : "");
-+ TRACE("Data is %scompressed\n", SQUASHFS_UNCOMPRESSED_DATA(sBlk->flags) ? "un" : "");
-+ TRACE("Check data is %s present in the filesystem\n", SQUASHFS_CHECK_DATA(sBlk->flags) ? "" : "not");
-+ TRACE("Filesystem size %d bytes\n", sBlk->bytes_used);
-+ TRACE("Block size %d\n", sBlk->block_size);
-+ TRACE("Number of inodes %d\n", sBlk->inodes);
-+ if(sBlk->s_major > 1)
-+ TRACE("Number of fragments %d\n", sBlk->fragments);
-+ TRACE("Number of uids %d\n", sBlk->no_uids);
-+ TRACE("Number of gids %d\n", sBlk->no_guids);
-+ TRACE("sBlk->inode_table_start %x\n", sBlk->inode_table_start);
-+ TRACE("sBlk->directory_table_start %x\n", sBlk->directory_table_start);
-+ if(sBlk->s_major > 1)
-+ TRACE("sBlk->fragment_table_start %x\n", sBlk->fragment_table_start);
-+ TRACE("sBlk->uid_start %x\n", sBlk->uid_start);
-+
-+ s->s_flags |= MS_RDONLY;
-+ s->s_op = &squashfs_ops;
-+
-+ /* Init inode_table block pointer array */
-+ if(!(msBlk->block_cache = (squashfs_cache *) kmalloc(sizeof(squashfs_cache) * SQUASHFS_CACHED_BLKS, GFP_KERNEL))) {
-+ ERROR("Failed to allocate block cache\n");
-+ goto failed_mount;
-+ }
-+
-+ for(i = 0; i < SQUASHFS_CACHED_BLKS; i++)
-+ msBlk->block_cache[i].block = SQUASHFS_INVALID_BLK;
-+
-+ msBlk->next_cache = 0;
-+
-+ /* Allocate read_data block */
-+ msBlk->read_size = (sBlk->block_size < SQUASHFS_METADATA_SIZE) ? SQUASHFS_METADATA_SIZE : sBlk->block_size;
-+ if(!(msBlk->read_data = (char *) kmalloc(msBlk->read_size, GFP_KERNEL))) {
-+ ERROR("Failed to allocate read_data block\n");
-+ goto failed_mount1;
-+ }
-+
-+ /* Allocate read_page block */
-+ if(sBlk->block_size > PAGE_CACHE_SIZE &&
-+ !(msBlk->read_page = (char *) kmalloc(sBlk->block_size, GFP_KERNEL))) {
-+ ERROR("Failed to allocate read_page block\n");
-+ goto failed_mount2;
-+ }
-+
-+ /* Allocate uid and gid tables */
-+ if(!(msBlk->uid = (squashfs_uid *) kmalloc((sBlk->no_uids +
-+ sBlk->no_guids) * sizeof(squashfs_uid), GFP_KERNEL))) {
-+ ERROR("Failed to allocate uid/gid table\n");
-+ goto failed_mount3;
-+ }
-+ msBlk->guid = msBlk->uid + sBlk->no_uids;
-+
-+ if(msBlk->swap) {
-+ squashfs_uid suid[sBlk->no_uids + sBlk->no_guids];
-+
-+ if(!read_data(s, (char *) &suid, sBlk->uid_start, ((sBlk->no_uids + sBlk->no_guids) *
-+ sizeof(squashfs_uid)) | SQUASHFS_COMPRESSED_BIT, 0, NULL)) {
-+ SERROR("unable to read uid/gid table\n");
-+ goto failed_mount4;
-+ }
-+ SQUASHFS_SWAP_DATA(msBlk->uid, suid, (sBlk->no_uids + sBlk->no_guids), (sizeof(squashfs_uid) * 8));
-+ } else
-+ if(!read_data(s, (char *) msBlk->uid, sBlk->uid_start, ((sBlk->no_uids + sBlk->no_guids) *
-+ sizeof(squashfs_uid)) | SQUASHFS_COMPRESSED_BIT, 0, NULL)) {
-+ SERROR("unable to read uid/gid table\n");
-+ goto failed_mount4;
-+ }
-+
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+ if(sBlk->s_major == 1) {
-+ msBlk->iget = squashfs_iget_1;
-+ msBlk->read_blocklist = read_blocklist_1;
-+ msBlk->fragment = (struct squashfs_fragment_cache *) msBlk->fragment_index = NULL;
-+ goto allocate_root;
-+ }
-+#endif
-+ msBlk->iget = squashfs_iget;
-+ msBlk->read_blocklist = read_blocklist;
-+
-+ if(!(msBlk->fragment = (struct squashfs_fragment_cache *) kmalloc(sizeof(struct squashfs_fragment_cache) * SQUASHFS_CACHED_FRAGMENTS, GFP_KERNEL))) {
-+ ERROR("Failed to allocate fragment block cache\n");
-+ goto failed_mount4;
-+ }
-+
-+ for(i = 0; i < SQUASHFS_CACHED_FRAGMENTS; i++) {
-+ msBlk->fragment[i].locked = 0;
-+ msBlk->fragment[i].block = SQUASHFS_INVALID_BLK;
-+ msBlk->fragment[i].data = NULL;
-+ }
-+
-+ msBlk->next_fragment = 0;
-+
-+ /* Allocate fragment index table */
-+ if(!(msBlk->fragment_index = (squashfs_fragment_index *) kmalloc(SQUASHFS_FRAGMENT_INDEX_BYTES(sBlk->fragments), GFP_KERNEL))) {
-+ ERROR("Failed to allocate uid/gid table\n");
-+ goto failed_mount5;
-+ }
-+
-+ if(SQUASHFS_FRAGMENT_INDEX_BYTES(sBlk->fragments) &&
-+ !read_data(s, (char *) msBlk->fragment_index, sBlk->fragment_table_start,
-+ SQUASHFS_FRAGMENT_INDEX_BYTES(sBlk->fragments) | SQUASHFS_COMPRESSED_BIT, 0, NULL)) {
-+ SERROR("unable to read fragment index table\n");
-+ goto failed_mount6;
-+ }
-+
-+ if(msBlk->swap) {
-+ int i;
-+ squashfs_fragment_index fragment;
-+
-+ for(i = 0; i < SQUASHFS_FRAGMENT_INDEXES(sBlk->fragments); i++) {
-+ SQUASHFS_SWAP_FRAGMENT_INDEXES((&fragment), &msBlk->fragment_index[i], 1);
-+ msBlk->fragment_index[i] = fragment;
-+ }
-+ }
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+allocate_root:
-+#endif
-+ if(!(s->s_root = d_alloc_root((msBlk->iget)(s, sBlk->root_inode)))) {
-+ ERROR("Root inode create failed\n");
-+ goto failed_mount5;
-+ }
-+
-+ TRACE("Leaving squashfs_read_super\n");
-+ return s;
-+
-+failed_mount6:
-+ kfree(msBlk->fragment_index);
-+failed_mount5:
-+ kfree(msBlk->fragment);
-+failed_mount4:
-+ kfree(msBlk->uid);
-+failed_mount3:
-+ kfree(msBlk->read_page);
-+failed_mount2:
-+ kfree(msBlk->read_data);
-+failed_mount1:
-+ kfree(msBlk->block_cache);
-+failed_mount:
-+ return NULL;
-+}
-+
-+
-+static int squashfs_statfs(struct super_block *s, struct statfs *buf)
-+{
-+ squashfs_super_block *sBlk = &s->u.squashfs_sb.sBlk;
-+
-+ TRACE("Entered squashfs_statfs\n");
-+ buf->f_type = SQUASHFS_MAGIC;
-+ buf->f_bsize = sBlk->block_size;
-+ buf->f_blocks = ((sBlk->bytes_used - 1) >> sBlk->block_log) + 1;
-+ buf->f_bfree = buf->f_bavail = 0;
-+ buf->f_files = sBlk->inodes;
-+ buf->f_ffree = 0;
-+ buf->f_namelen = SQUASHFS_NAME_LEN;
-+ return 0;
-+}
-+
-+
-+static int squashfs_symlink_readpage(struct file *file, struct page *page)
-+{
-+ struct inode *inode = page->mapping->host;
-+ int index = page->index << PAGE_CACHE_SHIFT, length, bytes;
-+ int block = inode->u.squashfs_i.start_block;
-+ int offset = inode->u.squashfs_i.offset;
-+ void *pageaddr = kmap(page);
-+
-+ TRACE("Entered squashfs_symlink_readpage, page index %x, start block %x, offset %x\n",
-+ (unsigned int) page->index, inode->u.squashfs_i.start_block, inode->u.squashfs_i.offset);
-+
-+ for(length = 0; length < index; length += bytes) {
-+ if(!(bytes = squashfs_get_cached_block(inode->i_sb, NULL, block, offset,
-+ PAGE_CACHE_SIZE, &block, &offset))) {
-+ ERROR("Unable to read symbolic link [%x:%x]\n", block, offset);
-+ goto skip_read;
-+ }
-+ }
-+
-+ if(length != index) {
-+ ERROR("(squashfs_symlink_readpage) length != index\n");
-+ bytes = 0;
-+ goto skip_read;
-+ }
-+
-+ bytes = (inode->i_size - length) > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE : inode->i_size - length;
-+ if(!(bytes = squashfs_get_cached_block(inode->i_sb, pageaddr, block, offset, bytes, &block, &offset)))
-+ ERROR("Unable to read symbolic link [%x:%x]\n", block, offset);
-+
-+skip_read:
-+ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
-+ kunmap(page);
-+ flush_dcache_page(page);
-+ SetPageUptodate(page);
-+ UnlockPage(page);
-+
-+ return 0;
-+}
-+
-+
-+#define SIZE 256
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+static unsigned int read_blocklist_1(struct inode *inode, int index, int readahead_blks,
-+ char *block_list, char **block_p, unsigned int *bsize)
-+{
-+ squashfs_sb_info *msBlk = &inode->i_sb->u.squashfs_sb;
-+ unsigned short *block_listp;
-+ int i = 0;
-+ int block_ptr = inode->u.squashfs_i.block_list_start;
-+ int offset = inode->u.squashfs_i.offset;
-+ int block = inode->u.squashfs_i.start_block;
-+
-+ for(;;) {
-+ int blocks = (index + readahead_blks - i);
-+ if(blocks > (SIZE >> 1)) {
-+ if((index - i) <= (SIZE >> 1))
-+ blocks = index - i;
-+ else
-+ blocks = SIZE >> 1;
-+ }
-+
-+ if(msBlk->swap) {
-+ unsigned char sblock_list[SIZE];
-+ if(!squashfs_get_cached_block(inode->i_sb, (char *) sblock_list, block_ptr, offset, blocks << 1, &block_ptr, &offset)) {
-+ ERROR("Unable to read block list [%d:%x]\n", block_ptr, offset);
-+ return 0;
-+ }
-+ SQUASHFS_SWAP_SHORTS(((unsigned short *)block_list), ((unsigned short *)sblock_list), blocks);
-+ } else
-+ if(!squashfs_get_cached_block(inode->i_sb, (char *) block_list, block_ptr, offset, blocks << 1, &block_ptr, &offset)) {
-+ ERROR("Unable to read block list [%d:%x]\n", block_ptr, offset);
-+ return 0;
-+ }
-+ for(block_listp = (unsigned short *) block_list; i < index && blocks; i ++, block_listp ++, blocks --)
-+ block += SQUASHFS_COMPRESSED_SIZE(*block_listp);
-+ if(blocks >= readahead_blks)
-+ break;
-+ }
-+
-+ if(bsize)
-+ *bsize = SQUASHFS_COMPRESSED_SIZE(*block_listp) | (!SQUASHFS_COMPRESSED(*block_listp) ? SQUASHFS_COMPRESSED_BIT_BLOCK : 0);
-+ else
-+ (unsigned short *) *block_p = block_listp;
-+ return block;
-+}
-+#endif
-+
-+
-+
-+static unsigned int read_blocklist(struct inode *inode, int index, int readahead_blks,
-+ char *block_list, char **block_p, unsigned int *bsize)
-+{
-+ squashfs_sb_info *msBlk = &inode->i_sb->u.squashfs_sb;
-+ unsigned int *block_listp;
-+ int i = 0;
-+ int block_ptr = inode->u.squashfs_i.block_list_start;
-+ int offset = inode->u.squashfs_i.offset;
-+ int block = inode->u.squashfs_i.start_block;
-+
-+ for(;;) {
-+ int blocks = (index + readahead_blks - i);
-+ if(blocks > (SIZE >> 2)) {
-+ if((index - i) <= (SIZE >> 2))
-+ blocks = index - i;
-+ else
-+ blocks = SIZE >> 2;
-+ }
-+
-+ if(msBlk->swap) {
-+ unsigned char sblock_list[SIZE];
-+ if(!squashfs_get_cached_block(inode->i_sb, (char *) sblock_list, block_ptr, offset, blocks << 2, &block_ptr, &offset)) {
-+ ERROR("Unable to read block list [%d:%x]\n", block_ptr, offset);
-+ return 0;
-+ }
-+ SQUASHFS_SWAP_INTS(((unsigned int *)block_list), ((unsigned int *)sblock_list), blocks);
-+ } else
-+ if(!squashfs_get_cached_block(inode->i_sb, (char *) block_list, block_ptr, offset, blocks << 2, &block_ptr, &offset)) {
-+ ERROR("Unable to read block list [%d:%x]\n", block_ptr, offset);
-+ return 0;
-+ }
-+ for(block_listp = (unsigned int *) block_list; i < index && blocks; i ++, block_listp ++, blocks --)
-+ block += SQUASHFS_COMPRESSED_SIZE_BLOCK(*block_listp);
-+ if(blocks >= readahead_blks)
-+ break;
-+ }
-+
-+ *bsize = *block_listp;
-+ return block;
-+}
-+
-+
-+static int squashfs_readpage(struct file *file, struct page *page)
-+{
-+ struct inode *inode = page->mapping->host;
-+ squashfs_sb_info *msBlk = &inode->i_sb->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ unsigned char block_list[SIZE];
-+ unsigned int bsize, block, i = 0, bytes = 0, byte_offset = 0;
-+ int index = page->index >> (sBlk->block_log - PAGE_CACHE_SHIFT);
-+ void *pageaddr = kmap(page);
-+ struct squashfs_fragment_cache *fragment;
-+ char *data_ptr = msBlk->read_page;
-+
-+ int mask = (1 << (sBlk->block_log - PAGE_CACHE_SHIFT)) - 1;
-+ int start_index = page->index & ~mask;
-+ int end_index = start_index | mask;
-+
-+ TRACE("Entered squashfs_readpage, page index %x, start block %x\n", (unsigned int) page->index,
-+ inode->u.squashfs_i.start_block);
-+
-+ if(inode->u.squashfs_i.fragment_start_block == SQUASHFS_INVALID_BLK || index < (inode->i_size >> sBlk->block_log)) {
-+ if((block = (msBlk->read_blocklist)(inode, index, 1, block_list, NULL, &bsize)) == 0)
-+ goto skip_read;
-+
-+ down(&msBlk->read_page_mutex);
-+ if(!(bytes = read_data(inode->i_sb, msBlk->read_page, block, bsize, 1, NULL))) {
-+ ERROR("Unable to read page, block %x, size %x\n", block, bsize);
-+ up(&msBlk->read_page_mutex);
-+ goto skip_read;
-+ }
-+ } else {
-+ if((fragment = get_cached_fragment(inode->i_sb, inode->u.squashfs_i.fragment_start_block, inode->u.squashfs_i.fragment_size)) == NULL) {
-+ ERROR("Unable to read page, block %x, size %x\n", inode->u.squashfs_i.fragment_start_block, (int) inode->u.squashfs_i.fragment_size);
-+ goto skip_read;
-+ }
-+ bytes = inode->u.squashfs_i.fragment_offset + (inode->i_size & (sBlk->block_size - 1));
-+ byte_offset = inode->u.squashfs_i.fragment_offset;
-+ data_ptr = fragment->data;
-+ }
-+
-+ for(i = start_index; i <= end_index && byte_offset < bytes; i++, byte_offset += PAGE_CACHE_SIZE) {
-+ struct page *push_page;
-+ int available_bytes = (bytes - byte_offset) > PAGE_CACHE_SIZE ? PAGE_CACHE_SIZE : bytes - byte_offset;
-+
-+ TRACE("bytes %d, i %d, byte_offset %d, available_bytes %d\n", bytes, i, byte_offset, available_bytes);
-+
-+ if(i == page->index) {
-+ memcpy(pageaddr, data_ptr + byte_offset, available_bytes);
-+ memset(pageaddr + available_bytes, 0, PAGE_CACHE_SIZE - available_bytes);
-+ kunmap(page);
-+ flush_dcache_page(page);
-+ SetPageUptodate(page);
-+ UnlockPage(page);
-+ } else if((push_page = grab_cache_page_nowait(page->mapping, i))) {
-+ void *pageaddr = kmap(push_page);
-+ memcpy(pageaddr, data_ptr + byte_offset, available_bytes);
-+ memset(pageaddr + available_bytes, 0, PAGE_CACHE_SIZE - available_bytes);
-+ kunmap(push_page);
-+ flush_dcache_page(push_page);
-+ SetPageUptodate(push_page);
-+ UnlockPage(push_page);
-+ page_cache_release(push_page);
-+ }
-+ }
-+
-+ if(inode->u.squashfs_i.fragment_start_block == SQUASHFS_INVALID_BLK || index < (inode->i_size >> sBlk->block_log))
-+ up(&msBlk->read_page_mutex);
-+ else
-+ release_cached_fragment(msBlk, fragment);
-+
-+ return 0;
-+
-+skip_read:
-+ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
-+ kunmap(page);
-+ flush_dcache_page(page);
-+ SetPageUptodate(page);
-+ UnlockPage(page);
-+
-+ return 0;
-+}
-+
-+
-+static int squashfs_readpage4K(struct file *file, struct page *page)
-+{
-+ struct inode *inode = page->mapping->host;
-+ squashfs_sb_info *msBlk = &inode->i_sb->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ unsigned char block_list[SIZE];
-+ unsigned int bsize, block, bytes = 0;
-+ void *pageaddr = kmap(page);
-+
-+ TRACE("Entered squashfs_readpage4K, page index %x, start block %x\n", (unsigned int) page->index,
-+ inode->u.squashfs_i.start_block);
-+
-+ if(page->index < (inode->i_size >> sBlk->block_log)) {
-+ block = (msBlk->read_blocklist)(inode, page->index, 1, block_list, NULL, &bsize);
-+
-+ if(!(bytes = read_data(inode->i_sb, pageaddr, block, bsize, 1, NULL)))
-+ ERROR("Unable to read page, block %x, size %x\n", block, bsize);
-+ } else {
-+ struct squashfs_fragment_cache *fragment;
-+
-+ if((fragment = get_cached_fragment(inode->i_sb, inode->u.squashfs_i.fragment_start_block, inode->u.squashfs_i.fragment_size)) == NULL)
-+ ERROR("Unable to read page, block %x, size %x\n", inode->u.squashfs_i.fragment_start_block, (int) inode->u.squashfs_i.fragment_size);
-+ else {
-+ bytes = inode->i_size & (sBlk->block_size - 1);
-+ memcpy(pageaddr, fragment->data + inode->u.squashfs_i.fragment_offset, bytes);
-+ release_cached_fragment(msBlk, fragment);
-+ }
-+ }
-+
-+ memset(pageaddr + bytes, 0, PAGE_CACHE_SIZE - bytes);
-+ kunmap(page);
-+ flush_dcache_page(page);
-+ SetPageUptodate(page);
-+ UnlockPage(page);
-+
-+ return 0;
-+}
-+
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+static int squashfs_readpage_lessthan4K(struct file *file, struct page *page)
-+{
-+ struct inode *inode = page->mapping->host;
-+ squashfs_sb_info *msBlk = &inode->i_sb->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ unsigned char block_list[SIZE];
-+ unsigned short *block_listp, block, bytes = 0;
-+ int index = page->index << (PAGE_CACHE_SHIFT - sBlk->block_log);
-+ int file_blocks = ((inode->i_size - 1) >> sBlk->block_log) + 1;
-+ int readahead_blks = 1 << (PAGE_CACHE_SHIFT - sBlk->block_log);
-+ void *pageaddr = kmap(page);
-+
-+ int i_end = index + (1 << (PAGE_CACHE_SHIFT - sBlk->block_log));
-+ int byte;
-+
-+ TRACE("Entered squashfs_readpage_lessthan4K, page index %x, start block %x\n", (unsigned int) page->index,
-+ inode->u.squashfs_i.start_block);
-+
-+ block = read_blocklist_1(inode, index, readahead_blks, block_list, (char **) &block_listp, NULL);
-+
-+ if(i_end > file_blocks)
-+ i_end = file_blocks;
-+
-+ while(index < i_end) {
-+ if(!(byte = read_data(inode->i_sb, pageaddr, block, *block_listp, 0, NULL))) {
-+ ERROR("Unable to read page, block %x, size %x\n", block, *block_listp);
-+ goto skip_read;
-+ }
-+ block += SQUASHFS_COMPRESSED_SIZE(*block_listp);
-+ pageaddr += byte;
-+ bytes += byte;
-+ index ++;
-+ block_listp ++;
-+ }
-+
-+skip_read:
-+ memset(pageaddr, 0, PAGE_CACHE_SIZE - bytes);
-+ kunmap(page);
-+ flush_dcache_page(page);
-+ SetPageUptodate(page);
-+ UnlockPage(page);
-+
-+ return 0;
-+}
-+#endif
-+
-+
-+static int squashfs_readdir(struct file *file, void *dirent, filldir_t filldir)
-+{
-+ struct inode *i = file->f_dentry->d_inode;
-+ squashfs_sb_info *msBlk = &i->i_sb->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ int next_block = i->u.squashfs_i.start_block + sBlk->directory_table_start, next_offset =
-+ i->u.squashfs_i.offset, length = 0, dirs_read = 0, dir_count;
-+ squashfs_dir_header dirh;
-+ char buffer[sizeof(squashfs_dir_entry) + SQUASHFS_NAME_LEN + 1];
-+ squashfs_dir_entry *dire = (squashfs_dir_entry *) buffer;
-+
-+ TRACE("Entered squashfs_readdir [%x:%x]\n", next_block, next_offset);
-+
-+ while(length < i->i_size) {
-+ /* read directory header */
-+ if(msBlk->swap) {
-+ squashfs_dir_header sdirh;
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, next_block,
-+ next_offset, sizeof(sdirh), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(sdirh);
-+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh);
-+ } else {
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) &dirh, next_block,
-+ next_offset, sizeof(dirh), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(dirh);
-+ }
-+
-+ dir_count = dirh.count + 1;
-+ while(dir_count--) {
-+ if(msBlk->swap) {
-+ squashfs_dir_entry sdire;
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) &sdire, next_block,
-+ next_offset, sizeof(sdire), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(sdire);
-+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire);
-+ } else {
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) dire, next_block,
-+ next_offset, sizeof(*dire), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(*dire);
-+ }
-+
-+ if(!squashfs_get_cached_block(i->i_sb, dire->name, next_block,
-+ next_offset, dire->size + 1, &next_block, &next_offset))
-+ goto failed_read;
-+ length += dire->size + 1;
-+
-+ if(file->f_pos >= length)
-+ continue;
-+
-+ dire->name[dire->size + 1] = '\0';
-+
-+ TRACE("Calling filldir(%x, %s, %d, %d, %x:%x, %d)\n", (unsigned int) dirent,
-+ dire->name, dire->size + 1, (int) file->f_pos,
-+ dirh.start_block, dire->offset, squashfs_filetype_table[dire->type]);
-+
-+ if(filldir(dirent, dire->name, dire->size + 1, file->f_pos, SQUASHFS_MK_VFS_INODE(dirh.start_block,
-+ dire->offset), squashfs_filetype_table[dire->type]) < 0) {
-+ TRACE("Filldir returned less than 0\n");
-+ return dirs_read;
-+ }
-+
-+ file->f_pos = length;
-+ dirs_read ++;
-+ }
-+ }
-+
-+ return dirs_read;
-+
-+failed_read:
-+ ERROR("Unable to read directory block [%x:%x]\n", next_block, next_offset);
-+ return 0;
-+}
-+
-+
-+static struct dentry *squashfs_lookup(struct inode *i, struct dentry *dentry)
-+{
-+ const char *name =dentry->d_name.name;
-+ int len = dentry->d_name.len;
-+ struct inode *inode = NULL;
-+ squashfs_sb_info *msBlk = &i->i_sb->u.squashfs_sb;
-+ squashfs_super_block *sBlk = &msBlk->sBlk;
-+ int next_block = i->u.squashfs_i.start_block + sBlk->directory_table_start, next_offset =
-+ i->u.squashfs_i.offset, length = 0, dir_count;
-+ squashfs_dir_header dirh;
-+ char buffer[sizeof(squashfs_dir_entry) + SQUASHFS_NAME_LEN];
-+ squashfs_dir_entry *dire = (squashfs_dir_entry *) buffer;
-+
-+ TRACE("Entered squashfs_lookup [%x:%x]\n", next_block, next_offset);
-+
-+ while(length < i->i_size) {
-+ /* read directory header */
-+ if(msBlk->swap) {
-+ squashfs_dir_header sdirh;
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) &sdirh, next_block, next_offset,
-+ sizeof(sdirh), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(sdirh);
-+ SQUASHFS_SWAP_DIR_HEADER(&dirh, &sdirh);
-+ } else {
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) &dirh, next_block, next_offset,
-+ sizeof(dirh), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(dirh);
-+ }
-+
-+ dir_count = dirh.count + 1;
-+ while(dir_count--) {
-+ if(msBlk->swap) {
-+ squashfs_dir_entry sdire;
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) &sdire,
-+ next_block,next_offset, sizeof(sdire), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(sdire);
-+ SQUASHFS_SWAP_DIR_ENTRY(dire, &sdire);
-+ } else {
-+ if(!squashfs_get_cached_block(i->i_sb, (char *) dire,
-+ next_block,next_offset, sizeof(*dire), &next_block, &next_offset))
-+ goto failed_read;
-+ length += sizeof(*dire);
-+ }
-+
-+ if(!squashfs_get_cached_block(i->i_sb, dire->name,
-+ next_block, next_offset, dire->size + 1, &next_block, &next_offset))
-+ goto failed_read;
-+ length += dire->size + 1;
-+
-+ if((len == dire->size + 1) && !strncmp(name, dire->name, len)) {
-+ squashfs_inode ino = SQUASHFS_MKINODE(dirh.start_block, dire->offset);
-+
-+ TRACE("calling squashfs_iget for directory entry %s, inode %x:%x\n",
-+ name, dirh.start_block, dire->offset);
-+
-+ inode = (msBlk->iget)(i->i_sb, ino);
-+
-+ goto exit_loop;
-+ }
-+ }
-+ }
-+
-+exit_loop:
-+ d_add(dentry, inode);
-+ return ERR_PTR(0);
-+
-+failed_read:
-+ ERROR("Unable to read directory block [%x:%x]\n", next_block, next_offset);
-+ goto exit_loop;
-+}
-+
-+
-+static void squashfs_put_super(struct super_block *s)
-+{
-+ if(s->u.squashfs_sb.block_cache) kfree(s->u.squashfs_sb.block_cache);
-+ if(s->u.squashfs_sb.read_data) kfree(s->u.squashfs_sb.read_data);
-+ if(s->u.squashfs_sb.read_page) kfree(s->u.squashfs_sb.read_page);
-+ if(s->u.squashfs_sb.uid) kfree(s->u.squashfs_sb.uid);
-+ s->u.squashfs_sb.block_cache = (void *) s->u.squashfs_sb.uid =
-+ s->u.squashfs_sb.read_data = s->u.squashfs_sb.read_page = NULL;
-+}
-+
-+
-+static int __init init_squashfs_fs(void)
-+{
-+
-+ if(!(stream.workspace = (char *) vmalloc(zlib_inflate_workspacesize()))) {
-+ ERROR("Failed to allocate zlib workspace\n");
-+ return -ENOMEM;
-+ }
-+ return register_filesystem(&squashfs_fs_type);
-+}
-+
-+
-+static void __exit exit_squashfs_fs(void)
-+{
-+ vfree(stream.workspace);
-+ unregister_filesystem(&squashfs_fs_type);
-+}
-+
-+
-+EXPORT_NO_SYMBOLS;
-+
-+module_init(init_squashfs_fs);
-+module_exit(exit_squashfs_fs);
-+MODULE_DESCRIPTION("squashfs, a compressed read-only filesystem");
-+MODULE_AUTHOR("Phillip Lougher <plougher@users.sourceforge.net>");
-+MODULE_LICENSE("GPL");
---- linux-2.4.20/include/linux/fs.h~120-openwrt 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/include/linux/fs.h 2005-01-07 02:54:46.357830872 -0500
-@@ -320,6 +320,7 @@
- #include <linux/usbdev_fs_i.h>
- #include <linux/jffs2_fs_i.h>
- #include <linux/cramfs_fs_sb.h>
-+#include <linux/squashfs_fs_i.h>
-
- /*
- * Attribute flags. These should be or-ed together to figure out what
-@@ -510,6 +511,7 @@
- struct socket socket_i;
- struct usbdev_inode_info usbdev_i;
- struct jffs2_inode_info jffs2_i;
-+ struct squashfs_inode_info squashfs_i;
- void *generic_ip;
- } u;
- };
-@@ -704,6 +706,7 @@
- #include <linux/usbdev_fs_sb.h>
- #include <linux/cramfs_fs_sb.h>
- #include <linux/jffs2_fs_sb.h>
-+#include <linux/squashfs_fs_sb.h>
-
- extern struct list_head super_blocks;
- extern spinlock_t sb_lock;
-@@ -762,6 +765,7 @@
- struct usbdev_sb_info usbdevfs_sb;
- struct jffs2_sb_info jffs2_sb;
- struct cramfs_sb_info cramfs_sb;
-+ struct squashfs_sb_info squashfs_sb;
- void *generic_sbp;
- } u;
- /*
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/squashfs_fs.h 2005-01-07 02:54:46.357830872 -0500
-@@ -0,0 +1,474 @@
-+#ifndef SQUASHFS_FS
-+#define SQUASHFS_FS
-+/*
-+ * Squashfs
-+ *
-+ * Copyright (c) 2002, 2003, 2004 Phillip Lougher <plougher@users.sourceforge.net>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * squashfs_fs.h
-+ */
-+
-+#define SQUASHFS_MAJOR 2
-+#define SQUASHFS_MINOR 0
-+#define SQUASHFS_MAGIC 0x73717368
-+#define SQUASHFS_MAGIC_SWAP 0x68737173
-+#define SQUASHFS_START 0
-+
-+/* size of metadata (inode and directory) blocks */
-+#define SQUASHFS_METADATA_SIZE 8192
-+#define SQUASHFS_METADATA_LOG 13
-+
-+/* default size of data blocks */
-+#define SQUASHFS_FILE_SIZE 65536
-+#define SQUASHFS_FILE_LOG 16
-+
-+#define SQUASHFS_FILE_MAX_SIZE 65536
-+
-+/* Max number of uids and gids */
-+#define SQUASHFS_UIDS 256
-+#define SQUASHFS_GUIDS 255
-+
-+/* Max length of filename (not 255) */
-+#define SQUASHFS_NAME_LEN 256
-+
-+#define SQUASHFS_INVALID ((long long) 0xffffffffffff)
-+#define SQUASHFS_INVALID_BLK ((long long) 0xffffffff)
-+#define SQUASHFS_USED_BLK ((long long) 0xfffffffe)
-+
-+/* Filesystem flags */
-+#define SQUASHFS_NOI 0
-+#define SQUASHFS_NOD 1
-+#define SQUASHFS_CHECK 2
-+#define SQUASHFS_NOF 3
-+#define SQUASHFS_NO_FRAG 4
-+#define SQUASHFS_ALWAYS_FRAG 5
-+#define SQUASHFS_DUPLICATE 6
-+#define SQUASHFS_BIT(flag, bit) ((flag >> bit) & 1)
-+#define SQUASHFS_UNCOMPRESSED_INODES(flags) SQUASHFS_BIT(flags, SQUASHFS_NOI)
-+#define SQUASHFS_UNCOMPRESSED_DATA(flags) SQUASHFS_BIT(flags, SQUASHFS_NOD)
-+#define SQUASHFS_UNCOMPRESSED_FRAGMENTS(flags) SQUASHFS_BIT(flags, SQUASHFS_NOF)
-+#define SQUASHFS_NO_FRAGMENTS(flags) SQUASHFS_BIT(flags, SQUASHFS_NO_FRAG)
-+#define SQUASHFS_ALWAYS_FRAGMENTS(flags) SQUASHFS_BIT(flags, SQUASHFS_ALWAYS_FRAG)
-+#define SQUASHFS_DUPLICATES(flags) SQUASHFS_BIT(flags, SQUASHFS_DUPLICATE)
-+#define SQUASHFS_CHECK_DATA(flags) SQUASHFS_BIT(flags, SQUASHFS_CHECK)
-+#define SQUASHFS_MKFLAGS(noi, nod, check_data, nof, no_frag, always_frag, duplicate_checking) (noi | (nod << 1) | (check_data << 2) | (nof << 3) | (no_frag << 4) | (always_frag << 5) | (duplicate_checking << 6))
-+
-+/* Max number of types and file types */
-+#define SQUASHFS_DIR_TYPE 1
-+#define SQUASHFS_FILE_TYPE 2
-+#define SQUASHFS_SYMLINK_TYPE 3
-+#define SQUASHFS_BLKDEV_TYPE 4
-+#define SQUASHFS_CHRDEV_TYPE 5
-+#define SQUASHFS_FIFO_TYPE 6
-+#define SQUASHFS_SOCKET_TYPE 7
-+
-+/* 1.0 filesystem type definitions */
-+#define SQUASHFS_TYPES 5
-+#define SQUASHFS_IPC_TYPE 0
-+
-+/* Flag whether block is compressed or uncompressed, bit is set if block is uncompressed */
-+#define SQUASHFS_COMPRESSED_BIT (1 << 15)
-+#define SQUASHFS_COMPRESSED_SIZE(B) (((B) & ~SQUASHFS_COMPRESSED_BIT) ? \
-+ (B) & ~SQUASHFS_COMPRESSED_BIT : SQUASHFS_COMPRESSED_BIT)
-+
-+#define SQUASHFS_COMPRESSED(B) (!((B) & SQUASHFS_COMPRESSED_BIT))
-+
-+#define SQUASHFS_COMPRESSED_BIT_BLOCK (1 << 24)
-+#define SQUASHFS_COMPRESSED_SIZE_BLOCK(B) (((B) & ~SQUASHFS_COMPRESSED_BIT_BLOCK) ? \
-+ (B) & ~SQUASHFS_COMPRESSED_BIT_BLOCK : SQUASHFS_COMPRESSED_BIT_BLOCK)
-+
-+#define SQUASHFS_COMPRESSED_BLOCK(B) (!((B) & SQUASHFS_COMPRESSED_BIT_BLOCK))
-+
-+/*
-+ * Inode number ops. Inodes consist of a compressed block number, and an uncompressed
-+ * offset within that block
-+ */
-+#define SQUASHFS_INODE_BLK(a) ((unsigned int) ((a) >> 16))
-+#define SQUASHFS_INODE_OFFSET(a) ((unsigned int) ((a) & 0xffff))
-+#define SQUASHFS_MKINODE(A, B) ((squashfs_inode)(((squashfs_inode) (A) << 16)\
-+ + (B)))
-+
-+/* Compute 32 bit VFS inode number from squashfs inode number */
-+#define SQUASHFS_MK_VFS_INODE(a, b) ((unsigned int) (((a) << 8) + ((b) >> 2) + 1))
-+
-+/* Translate between VFS mode and squashfs mode */
-+#define SQUASHFS_MODE(a) ((a) & 0xfff)
-+
-+/* fragment and fragment table defines */
-+typedef unsigned int squashfs_fragment_index;
-+#define SQUASHFS_FRAGMENT_BYTES(A) (A * sizeof(squashfs_fragment_entry))
-+#define SQUASHFS_FRAGMENT_INDEX(A) (SQUASHFS_FRAGMENT_BYTES(A) / SQUASHFS_METADATA_SIZE)
-+#define SQUASHFS_FRAGMENT_INDEX_OFFSET(A) (SQUASHFS_FRAGMENT_BYTES(A) % SQUASHFS_METADATA_SIZE)
-+#define SQUASHFS_FRAGMENT_INDEXES(A) ((SQUASHFS_FRAGMENT_BYTES(A) + SQUASHFS_METADATA_SIZE - 1) / SQUASHFS_METADATA_SIZE)
-+#define SQUASHFS_FRAGMENT_INDEX_BYTES(A) (SQUASHFS_FRAGMENT_INDEXES(A) * sizeof(squashfs_fragment_index))
-+#define SQUASHFS_CACHED_FRAGMENTS 3
-+
-+/* cached data constants for filesystem */
-+#define SQUASHFS_CACHED_BLKS 8
-+
-+#define SQUASHFS_MAX_FILE_SIZE_LOG 32
-+#define SQUASHFS_MAX_FILE_SIZE ((long long) 1 << (SQUASHFS_MAX_FILE_SIZE_LOG - 1))
-+
-+#define SQUASHFS_MARKER_BYTE 0xff
-+
-+/*
-+ * definitions for structures on disk
-+ */
-+
-+typedef unsigned int squashfs_block;
-+typedef long long squashfs_inode;
-+
-+typedef unsigned int squashfs_uid;
-+
-+typedef struct squashfs_super_block {
-+ unsigned int s_magic;
-+ unsigned int inodes;
-+ unsigned int bytes_used;
-+ unsigned int uid_start;
-+ unsigned int guid_start;
-+ unsigned int inode_table_start;
-+ unsigned int directory_table_start;
-+ unsigned int s_major:16;
-+ unsigned int s_minor:16;
-+ unsigned int block_size_1:16;
-+ unsigned int block_log:16;
-+ unsigned int flags:8;
-+ unsigned int no_uids:8;
-+ unsigned int no_guids:8;
-+ time_t mkfs_time /* time of filesystem creation */;
-+ squashfs_inode root_inode;
-+ unsigned int block_size;
-+ unsigned int fragments;
-+ unsigned int fragment_table_start;
-+} __attribute__ ((packed)) squashfs_super_block;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:8; /* index into uid table */
-+ unsigned int guid:8; /* index into guid table */
-+} __attribute__ ((packed)) squashfs_base_inode_header;
-+
-+typedef squashfs_base_inode_header squashfs_ipc_inode_header;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:8; /* index into uid table */
-+ unsigned int guid:8; /* index into guid table */
-+ unsigned short rdev;
-+} __attribute__ ((packed)) squashfs_dev_inode_header;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:8; /* index into uid table */
-+ unsigned int guid:8; /* index into guid table */
-+ unsigned short symlink_size;
-+ char symlink[0];
-+} __attribute__ ((packed)) squashfs_symlink_inode_header;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:8; /* index into uid table */
-+ unsigned int guid:8; /* index into guid table */
-+ time_t mtime;
-+ squashfs_block start_block;
-+ unsigned int fragment;
-+ unsigned int offset;
-+ unsigned int file_size:SQUASHFS_MAX_FILE_SIZE_LOG;
-+ unsigned short block_list[0];
-+} __attribute__ ((packed)) squashfs_reg_inode_header;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:8; /* index into uid table */
-+ unsigned int guid:8; /* index into guid table */
-+ unsigned int file_size:19;
-+ unsigned int offset:13;
-+ time_t mtime;
-+ unsigned int start_block:24;
-+} __attribute__ ((packed)) squashfs_dir_inode_header;
-+
-+typedef union {
-+ squashfs_base_inode_header base;
-+ squashfs_dev_inode_header dev;
-+ squashfs_symlink_inode_header symlink;
-+ squashfs_reg_inode_header reg;
-+ squashfs_dir_inode_header dir;
-+ squashfs_ipc_inode_header ipc;
-+} squashfs_inode_header;
-+
-+typedef struct {
-+ unsigned int offset:13;
-+ unsigned int type:3;
-+ unsigned int size:8;
-+ char name[0];
-+} __attribute__ ((packed)) squashfs_dir_entry;
-+
-+typedef struct {
-+ unsigned int count:8;
-+ unsigned int start_block:24;
-+} __attribute__ ((packed)) squashfs_dir_header;
-+
-+
-+typedef struct {
-+ unsigned int start_block;
-+ unsigned int size;
-+} __attribute__ ((packed)) squashfs_fragment_entry;
-+
-+extern int squashfs_uncompress_block(void *d, int dstlen, void *s, int srclen);
-+extern int squashfs_uncompress_init(void);
-+extern int squashfs_uncompress_exit(void);
-+
-+/*
-+ * macros to convert each packed bitfield structure from little endian to big
-+ * endian and vice versa. These are needed when creating or using a filesystem on a
-+ * machine with different byte ordering to the target architecture.
-+ *
-+ */
-+
-+#define SQUASHFS_SWAP_SUPER_BLOCK(s, d) {\
-+ SQUASHFS_MEMSET(s, d, sizeof(squashfs_super_block));\
-+ SQUASHFS_SWAP((s)->s_magic, d, 0, 32);\
-+ SQUASHFS_SWAP((s)->inodes, d, 32, 32);\
-+ SQUASHFS_SWAP((s)->bytes_used, d, 64, 32);\
-+ SQUASHFS_SWAP((s)->uid_start, d, 96, 32);\
-+ SQUASHFS_SWAP((s)->guid_start, d, 128, 32);\
-+ SQUASHFS_SWAP((s)->inode_table_start, d, 160, 32);\
-+ SQUASHFS_SWAP((s)->directory_table_start, d, 192, 32);\
-+ SQUASHFS_SWAP((s)->s_major, d, 224, 16);\
-+ SQUASHFS_SWAP((s)->s_minor, d, 240, 16);\
-+ SQUASHFS_SWAP((s)->block_size_1, d, 256, 16);\
-+ SQUASHFS_SWAP((s)->block_log, d, 272, 16);\
-+ SQUASHFS_SWAP((s)->flags, d, 288, 8);\
-+ SQUASHFS_SWAP((s)->no_uids, d, 296, 8);\
-+ SQUASHFS_SWAP((s)->no_guids, d, 304, 8);\
-+ SQUASHFS_SWAP((s)->mkfs_time, d, 312, 32);\
-+ SQUASHFS_SWAP((s)->root_inode, d, 344, 64);\
-+ SQUASHFS_SWAP((s)->block_size, d, 408, 32);\
-+ SQUASHFS_SWAP((s)->fragments, d, 440, 32);\
-+ SQUASHFS_SWAP((s)->fragment_table_start, d, 472, 32);\
-+}
-+
-+#define SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, n) {\
-+ SQUASHFS_MEMSET(s, d, n);\
-+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
-+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\
-+ SQUASHFS_SWAP((s)->uid, d, 16, 8);\
-+ SQUASHFS_SWAP((s)->guid, d, 24, 8);\
-+}
-+
-+#define SQUASHFS_SWAP_IPC_INODE_HEADER(s, d) SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_ipc_inode_header))
-+
-+#define SQUASHFS_SWAP_DEV_INODE_HEADER(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_dev_inode_header));\
-+ SQUASHFS_SWAP((s)->rdev, d, 32, 16);\
-+}
-+
-+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_symlink_inode_header));\
-+ SQUASHFS_SWAP((s)->symlink_size, d, 32, 16);\
-+}
-+
-+#define SQUASHFS_SWAP_REG_INODE_HEADER(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_reg_inode_header));\
-+ SQUASHFS_SWAP((s)->mtime, d, 32, 32);\
-+ SQUASHFS_SWAP((s)->start_block, d, 64, 32);\
-+ SQUASHFS_SWAP((s)->fragment, d, 96, 32);\
-+ SQUASHFS_SWAP((s)->offset, d, 128, 32);\
-+ SQUASHFS_SWAP((s)->file_size, d, 160, SQUASHFS_MAX_FILE_SIZE_LOG);\
-+}
-+
-+#define SQUASHFS_SWAP_DIR_INODE_HEADER(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_dir_inode_header));\
-+ SQUASHFS_SWAP((s)->file_size, d, 32, 19);\
-+ SQUASHFS_SWAP((s)->offset, d, 51, 13);\
-+ SQUASHFS_SWAP((s)->mtime, d, 64, 32);\
-+ SQUASHFS_SWAP((s)->start_block, d, 96, 24);\
-+}
-+
-+#define SQUASHFS_SWAP_DIR_HEADER(s, d) {\
-+ SQUASHFS_MEMSET(s, d, sizeof(squashfs_dir_header));\
-+ SQUASHFS_SWAP((s)->count, d, 0, 8);\
-+ SQUASHFS_SWAP((s)->start_block, d, 8, 24);\
-+}
-+
-+#define SQUASHFS_SWAP_DIR_ENTRY(s, d) {\
-+ SQUASHFS_MEMSET(s, d, sizeof(squashfs_dir_entry));\
-+ SQUASHFS_SWAP((s)->offset, d, 0, 13);\
-+ SQUASHFS_SWAP((s)->type, d, 13, 3);\
-+ SQUASHFS_SWAP((s)->size, d, 16, 8);\
-+}
-+
-+#define SQUASHFS_SWAP_FRAGMENT_ENTRY(s, d) {\
-+ SQUASHFS_MEMSET(s, d, sizeof(squashfs_fragment_entry));\
-+ SQUASHFS_SWAP((s)->start_block, d, 0, 32);\
-+ SQUASHFS_SWAP((s)->size, d, 32, 32);\
-+}
-+
-+#define SQUASHFS_SWAP_SHORTS(s, d, n) {\
-+ int entry;\
-+ int bit_position;\
-+ SQUASHFS_MEMSET(s, d, n * 2);\
-+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += 16)\
-+ SQUASHFS_SWAP(s[entry], d, bit_position, 16);\
-+}
-+
-+#define SQUASHFS_SWAP_INTS(s, d, n) {\
-+ int entry;\
-+ int bit_position;\
-+ SQUASHFS_MEMSET(s, d, n * 4);\
-+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += 32)\
-+ SQUASHFS_SWAP(s[entry], d, bit_position, 32);\
-+}
-+
-+#define SQUASHFS_SWAP_DATA(s, d, n, bits) {\
-+ int entry;\
-+ int bit_position;\
-+ SQUASHFS_MEMSET(s, d, n * bits / 8);\
-+ for(entry = 0, bit_position = 0; entry < n; entry++, bit_position += bits)\
-+ SQUASHFS_SWAP(s[entry], d, bit_position, bits);\
-+}
-+
-+#define SQUASHFS_SWAP_FRAGMENT_INDEXES(s, d, n) SQUASHFS_SWAP_INTS(s, d, n)
-+
-+#ifdef SQUASHFS_1_0_COMPATIBILITY
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:4; /* index into uid table */
-+ unsigned int guid:4; /* index into guid table */
-+} __attribute__ ((packed)) squashfs_base_inode_header_1;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:4; /* index into uid table */
-+ unsigned int guid:4; /* index into guid table */
-+ unsigned int type:4;
-+ unsigned int offset:4;
-+} __attribute__ ((packed)) squashfs_ipc_inode_header_1;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:4; /* index into uid table */
-+ unsigned int guid:4; /* index into guid table */
-+ unsigned short rdev;
-+} __attribute__ ((packed)) squashfs_dev_inode_header_1;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:4; /* index into uid table */
-+ unsigned int guid:4; /* index into guid table */
-+ unsigned short symlink_size;
-+ char symlink[0];
-+} __attribute__ ((packed)) squashfs_symlink_inode_header_1;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:4; /* index into uid table */
-+ unsigned int guid:4; /* index into guid table */
-+ time_t mtime;
-+ squashfs_block start_block;
-+ unsigned int file_size:SQUASHFS_MAX_FILE_SIZE_LOG;
-+ unsigned short block_list[0];
-+} __attribute__ ((packed)) squashfs_reg_inode_header_1;
-+
-+typedef struct {
-+ unsigned int inode_type:4;
-+ unsigned int mode:12; /* protection */
-+ unsigned int uid:4; /* index into uid table */
-+ unsigned int guid:4; /* index into guid table */
-+ unsigned int file_size:19;
-+ unsigned int offset:13;
-+ time_t mtime;
-+ unsigned int start_block:24;
-+} __attribute__ ((packed)) squashfs_dir_inode_header_1;
-+
-+#define SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, n) {\
-+ SQUASHFS_MEMSET(s, d, n);\
-+ SQUASHFS_SWAP((s)->inode_type, d, 0, 4);\
-+ SQUASHFS_SWAP((s)->mode, d, 4, 12);\
-+ SQUASHFS_SWAP((s)->uid, d, 16, 4);\
-+ SQUASHFS_SWAP((s)->guid, d, 20, 4);\
-+}
-+
-+#define SQUASHFS_SWAP_IPC_INODE_HEADER_1(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, sizeof(squashfs_ipc_inode_header_1));\
-+ SQUASHFS_SWAP((s)->type, d, 24, 4);\
-+ SQUASHFS_SWAP((s)->offset, d, 28, 4);\
-+}
-+
-+#define SQUASHFS_SWAP_DEV_INODE_HEADER_1(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER_1(s, d, sizeof(squashfs_dev_inode_header_1));\
-+ SQUASHFS_SWAP((s)->rdev, d, 24, 16);\
-+}
-+
-+#define SQUASHFS_SWAP_SYMLINK_INODE_HEADER_1(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_symlink_inode_header_1));\
-+ SQUASHFS_SWAP((s)->symlink_size, d, 24, 16);\
-+}
-+
-+#define SQUASHFS_SWAP_REG_INODE_HEADER_1(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_reg_inode_header_1));\
-+ SQUASHFS_SWAP((s)->mtime, d, 24, 32);\
-+ SQUASHFS_SWAP((s)->start_block, d, 56, 32);\
-+ SQUASHFS_SWAP((s)->file_size, d, 88, SQUASHFS_MAX_FILE_SIZE_LOG);\
-+}
-+
-+#define SQUASHFS_SWAP_DIR_INODE_HEADER_1(s, d) {\
-+ SQUASHFS_SWAP_BASE_INODE_HEADER(s, d, sizeof(squashfs_dir_inode_header_1));\
-+ SQUASHFS_SWAP((s)->file_size, d, 24, 19);\
-+ SQUASHFS_SWAP((s)->offset, d, 43, 13);\
-+ SQUASHFS_SWAP((s)->mtime, d, 56, 32);\
-+ SQUASHFS_SWAP((s)->start_block, d, 88, 24);\
-+}
-+#endif
-+
-+#ifdef __KERNEL__
-+/*
-+ * macros used to swap each structure entry, taking into account
-+ * bitfields and different bitfield placing conventions on differing architectures
-+ */
-+#include <asm/byteorder.h>
-+#ifdef __BIG_ENDIAN
-+ /* convert from little endian to big endian */
-+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, tbits, b_pos)
-+#else
-+ /* convert from big endian to little endian */
-+#define SQUASHFS_SWAP(value, p, pos, tbits) _SQUASHFS_SWAP(value, p, pos, tbits, 64 - tbits - b_pos)
-+#endif
-+
-+#define _SQUASHFS_SWAP(value, p, pos, tbits, SHIFT) {\
-+ int bits;\
-+ int b_pos = pos % 8;\
-+ unsigned long long val = 0;\
-+ unsigned char *s = (unsigned char *)p + (pos / 8);\
-+ unsigned char *d = ((unsigned char *) &val) + 7;\
-+ for(bits = 0; bits < (tbits + b_pos); bits += 8) \
-+ *d-- = *s++;\
-+ value = (val >> (SHIFT))/* & ((1 << tbits) - 1)*/;\
-+}
-+#define SQUASHFS_MEMSET(s, d, n) memset(s, 0, n);
-+#endif
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/squashfs_fs_i.h 2005-01-07 02:54:46.358830720 -0500
-@@ -0,0 +1,33 @@
-+#ifndef SQUASHFS_FS_I
-+#define SQUASHFS_FS_I
-+/*
-+ * Squashfs
-+ *
-+ * Copyright (c) 2002, 2003, 2004 Phillip Lougher <plougher@users.sourceforge.net>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * squashfs_fs_i.h
-+ */
-+
-+typedef struct squashfs_inode_info {
-+ unsigned int start_block;
-+ unsigned int block_list_start;
-+ unsigned int offset;
-+ unsigned int fragment_start_block;
-+ unsigned int fragment_size;
-+ unsigned int fragment_offset;
-+ } squashfs_inode_info;
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/squashfs_fs_sb.h 2005-01-07 02:54:46.358830720 -0500
-@@ -0,0 +1,65 @@
-+#ifndef SQUASHFS_FS_SB
-+#define SQUASHFS_FS_SB
-+/*
-+ * Squashfs
-+ *
-+ * Copyright (c) 2002, 2003, 2004 Phillip Lougher <plougher@users.sourceforge.net>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2,
-+ * or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * squashfs_fs_sb.h
-+ */
-+
-+#include <linux/squashfs_fs.h>
-+
-+typedef struct {
-+ unsigned int block;
-+ int length;
-+ unsigned int next_index;
-+ char *data;
-+ } squashfs_cache;
-+
-+struct squashfs_fragment_cache {
-+ unsigned int block;
-+ int length;
-+ unsigned int locked;
-+ char *data;
-+ };
-+
-+typedef struct squashfs_sb_info {
-+ squashfs_super_block sBlk;
-+ int devblksize;
-+ int devblksize_log2;
-+ int swap;
-+ squashfs_cache *block_cache;
-+ struct squashfs_fragment_cache *fragment;
-+ int next_cache;
-+ int next_fragment;
-+ squashfs_uid *uid;
-+ squashfs_uid *guid;
-+ squashfs_fragment_index *fragment_index;
-+ unsigned int read_size;
-+ char *read_data;
-+ char *read_page;
-+ struct semaphore read_page_mutex;
-+ struct semaphore block_cache_mutex;
-+ struct semaphore fragment_mutex;
-+ wait_queue_head_t waitq;
-+ wait_queue_head_t fragment_wait_queue;
-+ struct inode *(*iget)(struct super_block *s, squashfs_inode inode);
-+ unsigned int (*read_blocklist)(struct inode *inode, int index, int readahead_blks,
-+ char *block_list, char **block_p, unsigned int *bsize);
-+ } squashfs_sb_info;
-+#endif
---- linux-2.4.20/init/do_mounts.c~120-openwrt 2005-01-07 02:52:47.205944000 -0500
-+++ linux-2.4.20/init/do_mounts.c 2005-01-07 02:55:17.301126776 -0500
-@@ -15,6 +15,8 @@
- #include <linux/minix_fs.h>
- #include <linux/ext2_fs.h>
- #include <linux/romfs_fs.h>
-+#include <linux/cramfs_fs.h>
-+#include <linux/squashfs_fs.h>
-
- #define BUILD_CRAMDISK
-
-@@ -469,6 +471,7 @@
- * ext2
- * romfs
- * gzip
-+ * squashfs
- */
- static int __init
- identify_ramdisk_image(int fd, int start_block)
-@@ -478,6 +481,7 @@
- struct ext2_super_block *ext2sb;
- struct romfs_super_block *romfsb;
- struct cramfs_super *cramfsb;
-+ struct squashfs_super_block *squashfsb;
- int nblocks = -1;
- unsigned char *buf;
-
-@@ -489,6 +493,7 @@
- ext2sb = (struct ext2_super_block *) buf;
- romfsb = (struct romfs_super_block *) buf;
- cramfsb = (struct cramfs_super *) buf;
-+ squashfsb = (struct squashfs_super_block *) buf;
- memset(buf, 0xe5, size);
-
- /*
-@@ -535,6 +540,15 @@
- goto done;
- }
-
-+ /* squashfs is at block zero too */
-+ if (squashfsb->s_magic == SQUASHFS_MAGIC) {
-+ printk(KERN_NOTICE
-+ "RAMDISK: squashfs filesystem found at block %d\n",
-+ start_block);
-+ nblocks = (squashfsb->bytes_used+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
-+ goto done;
-+ }
-+
- /*
- * Read block 1 to test for minix and ext2 superblock
- */
---- linux-2.4.20/kernel/ksyms.c~120-openwrt 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/kernel/ksyms.c 2005-01-07 02:54:46.362830112 -0500
-@@ -482,9 +482,9 @@
- EXPORT_SYMBOL(simple_strtoull);
- EXPORT_SYMBOL(system_utsname); /* UTS data */
- EXPORT_SYMBOL(uts_sem); /* UTS semaphore */
--#ifndef __mips__
-+//#ifndef __mips__ //bite me. -mbm.
- EXPORT_SYMBOL(sys_call_table);
--#endif
-+//#endif
- EXPORT_SYMBOL(machine_restart);
- EXPORT_SYMBOL(machine_halt);
- EXPORT_SYMBOL(machine_power_off);
---- linux-2.4.20/lib/Config.in~120-openwrt 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/lib/Config.in 2005-01-07 02:54:46.363829960 -0500
-@@ -8,12 +8,14 @@
- # Do we need the compression support?
- #
- if [ "$CONFIG_CRAMFS" = "y" -o \
-+ "$CONFIG_SQUASHFS" = "y" -o \
- "$CONFIG_PPP_DEFLATE" = "y" -o \
- "$CONFIG_JFFS2_FS" = "y" -o \
- "$CONFIG_ZISOFS_FS" = "y" ]; then
- define_tristate CONFIG_ZLIB_INFLATE y
- else
- if [ "$CONFIG_CRAMFS" = "m" -o \
-+ "$CONFIG_SQUASHFS" = "m" -o \
- "$CONFIG_PPP_DEFLATE" = "m" -o \
- "$CONFIG_JFFS2_FS" = "m" -o \
- "$CONFIG_ZISOFS_FS" = "m" ]; then
diff --git a/packages/linux/linux-wrt-2.4.20/130-nfsswap.patch b/packages/linux/linux-wrt-2.4.20/130-nfsswap.patch
deleted file mode 100644
index 15e215c7da..0000000000
--- a/packages/linux/linux-wrt-2.4.20/130-nfsswap.patch
+++ /dev/null
@@ -1,2345 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/Documentation/netswap.txt 2005-01-07 02:55:48.022456424 -0500
-@@ -0,0 +1,51 @@
-+ Swapping over network
-+
-+Support for this is enabled via the CONFIG_NETSWAP option, which is
-+automatically enabled when enabling swap files located on NFS volumes
-+(CONFIG_SWAP_VIA_NFS).
-+
-+When swapping to files located on a network file system like NFS or
-+CODA or others or to nbd (network block device, see `nbd.txt')
-+partitions there is the problem that this requires additional memory,
-+besides the page which is currently swapped in or out, probably at
-+least two more pages for each page in question.
-+
-+This means that not only there needs to be free space left in the swap
-+file or the swap partition, but in addition there must be enough free
-+memory left in the system to perform the swap out of pages.
-+
-+This is particularly painful as receiving data over the network itself
-+consumes memory, and this memory is allocated from an interrupt
-+context (i.e. in the interrupt handler of the network card). That
-+means that on a congested network there are chances that the machine
-+runs out of memory, simply because the network device's interrupt
-+routines allocate memory faster that it is freed by swapping via
-+network.
-+
-+To cope with this problem, there is a new socket option `SO_SWAPPING'
-+which has to be set on the `SOL_SOCKET' level with setsockopt() (see
-+setsockopt(2)). When this option is set on any network socket, then
-+the system will start to drop network packets it receives on any other
-+socket when the number of free pages falls below a certain threshold.
-+
-+This threshold initially is 4 pages less than `freepages.min' (see
-+`Documentation/sysctl/vm.txt') but can be tuned using the sysctl
-+interface by writing to the file `/proc/sys/net/swapping/threshold'
-+
-+There are two other files:
-+
-+`/proc/sys/net/swapping/dropped':
-+ how many network packets have been dropped so far. This file is
-+ writable, writing to it simply sets the counter to the given value
-+ (useful for resetting the counter).
-+
-+`/proc/sys/net/swapping/sock_count':
-+ How many network sockets have the `SO_SWAPPING' option set (read
-+ only, of course).
-+
-+When using swap-files on NFS volumes, then the `SO_SWAPPING' option is
-+set or cleared by swapon/swapoff system calls, so the user need not
-+care about it.
-+
-+Swapping over the network is insecure unless the data would be
-+encrypted, which is not the case with NFS. It is also very slow.
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/Documentation/nfsswap.txt 2005-01-07 02:55:48.022456424 -0500
-@@ -0,0 +1,41 @@
-+ Swapping to files on NFS volumes
-+
-+To do this you have to say `Y' or `M' to the CONFIG_SWAP_VIA_NFS
-+configuration option. When compling support for this as a module you
-+should read `Documentation/modules.txt'. For auto-loading of the
-+module during the `swapon' system call you have to place a line like
-+
-+alias swapfile-mod nfsswap
-+
-+in `/etc/modules.conf' (or `/etc/conf.modules', depending on your
-+setup). NFS volumes holding swapfile should be mounted with `rsize'
-+and `wsize' set to something less than the size of a page, otherwise
-+deadlocks caused by memory fragmentation can happen, i.e. mount the
-+volume which is to hold the swapfiles with
-+
-+mount -t nfs -o rsize=2048,wsize=2048 NFS_SERVER_IP:/server_volume /mount_point
-+
-+or set the option in `/etc/fstab'. Read `Documentation/nfsroot.txt' to
-+learn how to set mount options for the root file system, if your swap
-+files are to be located on the root file system.
-+
-+Setting the `rsize' and `wsize' to anything less than PAGE_SIZE is a
-+performance hit, so you probably want to have at least two volumes
-+mounted, one for the swapfiles, one for the rest.
-+
-+You may want to read `Documentation/netswap.txt' as well.
-+
-+Swapfiles on NFS volumes can be treated like any other swapfile,
-+i.e.
-+
-+dd if=/dev/zero of=/swapfiles/SWAPFILE bs=1k count=20480
-+mkswap /swapfiles/SWAPFILE
-+swapon /swapfiles/SWAPFILE
-+
-+will create a 20M swapfile and tell the system to use it. Actually,
-+one could use lseek(2) to create an empty swapfile. This is different
-+from swapfiles located on local harddisk.
-+
-+Swapping over the network is insecure unless the data would be
-+encrypted, which is not the case with NFS. It is also very slow.
-+
---- linux-2.4.20/drivers/block/blkpg.c~130-nfsswap 2002-08-02 20:39:43.000000000 -0400
-+++ linux-2.4.20/drivers/block/blkpg.c 2005-01-07 02:55:48.022456424 -0500
-@@ -34,7 +34,7 @@
- #include <linux/blk.h> /* for set_device_ro() */
- #include <linux/blkpg.h>
- #include <linux/genhd.h>
--#include <linux/swap.h> /* for is_swap_partition() */
-+#include <linux/swap.h> /* for swap_run_test() */
- #include <linux/module.h> /* for EXPORT_SYMBOL */
-
- #include <asm/uaccess.h>
-@@ -114,6 +114,29 @@
- return 0;
- }
-
-+/* swap_run_test() applies this hook to all swapfiles until it returns
-+ * "1". If it never returns "1", the result of swap_run_test() is "0",
-+ * otherwise "1".
-+ */
-+static int is_swap_partition_hook(unsigned int flags, struct file *swap_file,
-+ void *testdata)
-+{
-+ kdev_t swap_dev = S_ISBLK(swap_file->f_dentry->d_inode->i_mode)
-+ ? swap_file->f_dentry->d_inode->i_rdev : 0;
-+ kdev_t dev = *((kdev_t *)testdata);
-+
-+ if (flags & SWP_USED && dev == swap_dev) {
-+ return 1;
-+ } else {
-+ return 0;
-+ }
-+}
-+
-+static inline int is_swap_partition(kdev_t dev)
-+{
-+ return swap_run_test(is_swap_partition_hook, &dev);
-+}
-+
- /*
- * Delete a partition given by partition number
- *
---- linux-2.4.20/fs/Config.in~130-nfsswap 2005-01-07 02:54:46.352831000 -0500
-+++ linux-2.4.20/fs/Config.in 2005-01-07 02:55:48.023456272 -0500
-@@ -4,6 +4,12 @@
- mainmenu_option next_comment
- comment 'File systems'
-
-+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-+ tristate 'Swapping to block devices' CONFIG_BLKDEV_SWAP
-+else
-+ define_bool CONFIG_BLKDEV_SWAP y
-+fi
-+
- bool 'Quota support' CONFIG_QUOTA
- tristate 'Kernel automounter support' CONFIG_AUTOFS_FS
- tristate 'Kernel automounter version 4 support (also supports v3)' CONFIG_AUTOFS4_FS
-@@ -104,6 +110,12 @@
- dep_tristate 'NFS file system support' CONFIG_NFS_FS $CONFIG_INET
- dep_mbool ' Provide NFSv3 client support' CONFIG_NFS_V3 $CONFIG_NFS_FS
- dep_bool ' Root file system on NFS' CONFIG_ROOT_NFS $CONFIG_NFS_FS $CONFIG_IP_PNP
-+ if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-+ dep_tristate ' Swapping via NFS (EXPERIMENTAL)' CONFIG_SWAP_VIA_NFS $CONFIG_NFS_FS
-+ if [ "$CONFIG_SWAP_VIA_NFS" = "y" -o "$CONFIG_SWAP_VIA_NFS" = "m" ]; then
-+ define_bool CONFIG_NETSWAP y
-+ fi
-+ fi
-
- dep_tristate 'NFS server support' CONFIG_NFSD $CONFIG_INET
- dep_mbool ' Provide NFSv3 server support' CONFIG_NFSD_V3 $CONFIG_NFSD
---- linux-2.4.20/fs/Makefile~130-nfsswap 2005-01-07 02:54:46.353831000 -0500
-+++ linux-2.4.20/fs/Makefile 2005-01-07 02:55:48.023456272 -0500
-@@ -8,7 +8,7 @@
- O_TARGET := fs.o
-
- export-objs := filesystems.o open.o dcache.o buffer.o
--mod-subdirs := nls
-+mod-subdirs := nls nfs
-
- obj-y := open.o read_write.o devices.o file_table.o buffer.o \
- super.o block_dev.o char_dev.o stat.o exec.o pipe.o namei.o \
-@@ -70,6 +70,7 @@
- subdir-$(CONFIG_JFS_FS) += jfs
- subdir-$(CONFIG_SQUASHFS) += squashfs
-
-+obj-$(CONFIG_BLKDEV_SWAP) += blkdev_swap.o
-
- obj-$(CONFIG_BINFMT_AOUT) += binfmt_aout.o
- obj-$(CONFIG_BINFMT_EM86) += binfmt_em86.o
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/fs/blkdev_swap.c 2005-01-07 02:55:48.023456272 -0500
-@@ -0,0 +1,309 @@
-+/*
-+ * Swapping to partitions or files located on partitions.
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/locks.h>
-+#include <linux/blkdev.h>
-+#include <linux/pagemap.h>
-+#include <linux/swap.h>
-+#include <linux/fs.h>
-+
-+#ifdef DEBUG_BLKDEV_SWAP
-+# define dprintk(fmt...) printk(##fmt)
-+#else
-+# define dprintk(fmt...) do { /* */ } while (0)
-+#endif
-+
-+#define BLKDEV_SWAP_ID "blkdev"
-+#define BLKDEV_FILE_SWAP_ID "blkdev file"
-+
-+/*
-+ * Helper function, copied here from buffer.c
-+ */
-+
-+/*
-+ * Start I/O on a page.
-+ * This function expects the page to be locked and may return
-+ * before I/O is complete. You then have to check page->locked
-+ * and page->uptodate.
-+ *
-+ * brw_page() is SMP-safe, although it's being called with the
-+ * kernel lock held - but the code is ready.
-+ *
-+ * FIXME: we need a swapper_inode->get_block function to remove
-+ * some of the bmap kludges and interface ugliness here.
-+ */
-+int brw_page(int rw, struct page *page, kdev_t dev, int b[], int size)
-+{
-+ struct buffer_head *head, *bh;
-+
-+ if (!PageLocked(page))
-+ panic("brw_page: page not locked for I/O");
-+
-+ if (!page->buffers)
-+ create_empty_buffers(page, dev, size);
-+ head = bh = page->buffers;
-+
-+ /* Stage 1: lock all the buffers */
-+ do {
-+ lock_buffer(bh);
-+ bh->b_blocknr = *(b++);
-+ set_bit(BH_Mapped, &bh->b_state);
-+ set_buffer_async_io(bh);
-+ bh = bh->b_this_page;
-+ } while (bh != head);
-+
-+ /* Stage 2: start the IO */
-+ do {
-+ struct buffer_head *next = bh->b_this_page;
-+ submit_bh(rw, bh);
-+ bh = next;
-+ } while (bh != head);
-+ return 0;
-+}
-+
-+/*
-+ * We implement to methods: swapping to partitions, and swapping to files
-+ * located on partitions.
-+ */
-+
-+struct blkdev_swap_data {
-+ kdev_t dev;
-+};
-+
-+struct test_data {
-+ struct file * filp;
-+ kdev_t dev;
-+};
-+
-+static int is_blkdev_swapping(unsigned int flags,
-+ struct file * swapf,
-+ void *data)
-+{
-+ struct test_data *testdata = (struct test_data *) data;
-+ struct file * filp = testdata->filp;
-+ kdev_t dev = testdata->dev;
-+
-+ /* Only check filp's that don't match the one already opened
-+ * for us by sys_swapon(). Otherwise, we will always flag a
-+ * busy swap file.
-+ */
-+
-+ if (swapf != filp) {
-+ if (dev == swapf->f_dentry->d_inode->i_rdev)
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+static int blkdev_swap_open(struct file * filp, void **dptr)
-+{
-+ int swapfilesize;
-+ kdev_t dev;
-+ struct blkdev_swap_data *data;
-+ int error;
-+ struct test_data testdata;
-+
-+ MOD_INC_USE_COUNT;
-+
-+ if (!S_ISBLK(filp->f_dentry->d_inode->i_mode)) {
-+ dprintk(__FUNCTION__": can't handle this swap file: %s\n",
-+ swapf->d_name.name);
-+ error = 0; /* not for us */
-+ goto bad_swap;
-+ }
-+
-+ dev = filp->f_dentry->d_inode->i_rdev;
-+ set_blocksize(dev, PAGE_SIZE);
-+ error = -ENODEV;
-+ if (!dev ||
-+ (blk_size[MAJOR(dev)] && !blk_size[MAJOR(dev)][MINOR(dev)])) {
-+ printk("blkdev_swap_open: blkdev weirdness for %s\n",
-+ filp->f_dentry->d_name.name);
-+ goto bad_swap;
-+ }
-+
-+ /* Check to make sure that we aren't already swapping. */
-+ error = -EBUSY;
-+ testdata.filp = filp;
-+ testdata.dev = dev;
-+ if (swap_run_test(is_blkdev_swapping, &testdata)) {
-+ printk("blkdev_swap_open: already swapping to %s\n",
-+ filp->f_dentry->d_name.name);
-+ goto bad_swap;
-+ }
-+
-+ swapfilesize = 0;
-+ if (blk_size[MAJOR(dev)])
-+ swapfilesize = blk_size[MAJOR(dev)][MINOR(dev)]
-+ >> (PAGE_SHIFT - 10);
-+
-+ if ((data = kmalloc(sizeof(*data), GFP_KERNEL)) == NULL) {
-+ printk("blkdev_swap_open: can't allocate data for %s\n",
-+ filp->f_dentry->d_name.name);
-+ error = -ENOMEM;
-+ goto bad_swap;
-+ }
-+ data->dev = dev;
-+ *dptr = data;
-+
-+ dprintk("blkdev_swap_open: returning %d\n", swapfilesize);
-+ return swapfilesize;
-+
-+ bad_swap:
-+ MOD_DEC_USE_COUNT;
-+ return error; /* this swap thing is not for us */
-+}
-+
-+static int blkdev_swap_release(struct file * filp, void *data)
-+{
-+ dprintk("blkdev_swap_release: releasing swap device %s\n",
-+ filp->f_dentry->d_name.name);
-+ kfree(data);
-+ MOD_DEC_USE_COUNT;
-+ return 0;
-+}
-+
-+static int blkdev_rw_page(int rw, struct page *page, unsigned long offset,
-+ void *ptr)
-+{
-+ struct blkdev_swap_data *data = (struct blkdev_swap_data *)ptr;
-+ brw_page(rw, page, data->dev, (int *)&offset, PAGE_SIZE);
-+ return 1;
-+}
-+
-+static struct swap_ops blkdev_swap_ops = {
-+ blkdev_swap_open,
-+ blkdev_swap_release,
-+ blkdev_rw_page
-+};
-+
-+struct blkdevfile_swap_data {
-+ struct inode *swapf;
-+};
-+
-+static int is_blkdevfile_swapping(unsigned int flags,
-+ struct file * swapf,
-+ void * data)
-+{
-+ struct file * filp = (struct file *) data;
-+
-+ /* Only check filp's that don't match the one already opened
-+ * for us by sys_swapon(). Otherwise, we will always flag a
-+ * busy swap file.
-+ */
-+
-+ if (swapf != filp) {
-+ if (filp->f_dentry->d_inode == swapf->f_dentry->d_inode)
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+static int blkdevfile_swap_open(struct file *swapf, void **dptr)
-+{
-+ int error = 0;
-+ int swapfilesize;
-+ struct blkdevfile_swap_data *data;
-+
-+ MOD_INC_USE_COUNT;
-+
-+ /* first check whether this is a regular file located on a local
-+ * hard disk
-+ */
-+ if (!S_ISREG(swapf->f_dentry->d_inode->i_mode)) {
-+ dprintk("blkdevfile_swap_open: "
-+ "can't handle this swap file: %s\n",
-+ swapf->d_name.name);
-+ error = 0; /* not for us */
-+ goto bad_swap;
-+ }
-+ if (!swapf->f_dentry->d_inode->i_mapping->a_ops->bmap) {
-+ dprintk("blkdevfile_swap_open: no bmap for file: %s\n",
-+ swapf->d_name.name);
-+ error = 0; /* not for us */
-+ goto bad_swap;
-+ }
-+
-+ if (swap_run_test(is_blkdevfile_swapping, swapf)) {
-+ dprintk("blkdevfile_swap_open: already swapping to %s\n",
-+ swapf->d_name.name);
-+ error = -EBUSY;
-+ goto bad_swap;
-+ }
-+ swapfilesize = swapf->f_dentry->d_inode->i_size >> PAGE_SHIFT;
-+ if ((data = kmalloc(sizeof(*data), GFP_KERNEL)) == NULL) {
-+ error = -ENOMEM;
-+ goto bad_swap;
-+ }
-+ data->swapf = swapf->f_dentry->d_inode;
-+ *dptr = data;
-+ return swapfilesize;
-+
-+ bad_swap:
-+ MOD_DEC_USE_COUNT;
-+ return error;
-+}
-+
-+static int blkdevfile_swap_release(struct file *swapf, void *data)
-+{
-+ kfree(data);
-+ MOD_DEC_USE_COUNT;
-+ return 0;
-+}
-+
-+static int blkdevfile_rw_page(int rw, struct page *page, unsigned long offset,
-+ void *ptr)
-+{
-+ struct blkdevfile_swap_data *data = (struct blkdevfile_swap_data *)ptr;
-+ struct inode * swapf = data->swapf;
-+ int i, j;
-+ unsigned int block = offset
-+ << (PAGE_SHIFT - swapf->i_sb->s_blocksize_bits);
-+ kdev_t dev = swapf->i_dev;
-+ int block_size;
-+ int zones[PAGE_SIZE/512];
-+ int zones_used;
-+
-+ block_size = swapf->i_sb->s_blocksize;
-+ for (i=0, j=0; j< PAGE_SIZE ; i++, j += block_size)
-+ if (!(zones[i] = bmap(swapf,block++))) {
-+ printk("blkdevfile_rw_page: bad swap file\n");
-+ return 0;
-+ }
-+ zones_used = i;
-+
-+ /* block_size == PAGE_SIZE/zones_used */
-+ brw_page(rw, page, dev, zones, block_size);
-+ return 1;
-+}
-+
-+static struct swap_ops blkdevfile_swap_ops = {
-+ blkdevfile_swap_open,
-+ blkdevfile_swap_release,
-+ blkdevfile_rw_page
-+ };
-+
-+int __init blkdev_swap_init(void)
-+{
-+ (void)register_swap_method(BLKDEV_SWAP_ID, &blkdev_swap_ops);
-+ (void)register_swap_method(BLKDEV_FILE_SWAP_ID, &blkdevfile_swap_ops);
-+ return 0;
-+}
-+
-+void __exit blkdev_swap_exit(void)
-+{
-+ unregister_swap_method(BLKDEV_SWAP_ID);
-+ unregister_swap_method(BLKDEV_FILE_SWAP_ID);
-+}
-+
-+module_init(blkdev_swap_init)
-+module_exit(blkdev_swap_exit)
-+
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Many. Stuffed into a module by cH (Claus-Justus Heine)");
-+MODULE_DESCRIPTION("Swapping to partitions and files on local hard-disks");
---- linux-2.4.20/fs/buffer.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/fs/buffer.c 2005-01-07 02:56:22.809168040 -0500
-@@ -743,7 +743,7 @@
- bh->b_private = private;
- }
-
--static void end_buffer_io_async(struct buffer_head * bh, int uptodate)
-+void end_buffer_io_async(struct buffer_head * bh, int uptodate)
- {
- static spinlock_t page_uptodate_lock = SPIN_LOCK_UNLOCKED;
- unsigned long flags;
-@@ -2345,47 +2345,6 @@
- return err;
- }
-
--/*
-- * Start I/O on a page.
-- * This function expects the page to be locked and may return
-- * before I/O is complete. You then have to check page->locked
-- * and page->uptodate.
-- *
-- * brw_page() is SMP-safe, although it's being called with the
-- * kernel lock held - but the code is ready.
-- *
-- * FIXME: we need a swapper_inode->get_block function to remove
-- * some of the bmap kludges and interface ugliness here.
-- */
--int brw_page(int rw, struct page *page, kdev_t dev, int b[], int size)
--{
-- struct buffer_head *head, *bh;
--
-- if (!PageLocked(page))
-- panic("brw_page: page not locked for I/O");
--
-- if (!page->buffers)
-- create_empty_buffers(page, dev, size);
-- head = bh = page->buffers;
--
-- /* Stage 1: lock all the buffers */
-- do {
-- lock_buffer(bh);
-- bh->b_blocknr = *(b++);
-- set_bit(BH_Mapped, &bh->b_state);
-- set_buffer_async_io(bh);
-- bh = bh->b_this_page;
-- } while (bh != head);
--
-- /* Stage 2: start the IO */
-- do {
-- struct buffer_head *next = bh->b_this_page;
-- submit_bh(rw, bh);
-- bh = next;
-- } while (bh != head);
-- return 0;
--}
--
- int block_symlink(struct inode *inode, const char *symname, int len)
- {
- struct address_space *mapping = inode->i_mapping;
---- linux-2.4.20/fs/nfs/Makefile~130-nfsswap 2001-11-09 17:28:15.000000000 -0500
-+++ linux-2.4.20/fs/nfs/Makefile 2005-01-07 02:55:48.026455816 -0500
-@@ -15,6 +15,14 @@
- obj-$(CONFIG_ROOT_NFS) += nfsroot.o mount_clnt.o
- obj-$(CONFIG_NFS_V3) += nfs3proc.o nfs3xdr.o
-
--obj-m := $(O_TARGET)
-+obj-$(CONFIG_SWAP_VIA_NFS) += nfsswap.o
-+ifeq ($(CONFIG_SWAP_VIA_NFS),m)
-+export-objs := nfs_syms.o
-+obj-y += nfs_syms.o
-+endif
-+
-+ifeq ($(CONFIG_NFS_FS),m)
-+obj-m += $(O_TARGET)
-+endif
-
- include $(TOPDIR)/Rules.make
---- linux-2.4.20/fs/nfs/file.c~130-nfsswap 2002-02-25 14:38:09.000000000 -0500
-+++ linux-2.4.20/fs/nfs/file.c 2005-01-07 02:55:48.026455816 -0500
-@@ -58,11 +58,6 @@
- setattr: nfs_notify_change,
- };
-
--/* Hack for future NFS swap support */
--#ifndef IS_SWAPFILE
--# define IS_SWAPFILE(inode) (0)
--#endif
--
- /*
- * Flush all dirty pages, and check for write errors.
- *
-@@ -217,8 +212,6 @@
- inode->i_ino, (unsigned long) count, (unsigned long) *ppos);
-
- result = -EBUSY;
-- if (IS_SWAPFILE(inode))
-- goto out_swapfile;
- result = nfs_revalidate_inode(NFS_SERVER(inode), inode);
- if (result)
- goto out;
-@@ -230,10 +223,6 @@
- result = generic_file_write(file, buf, count, ppos);
- out:
- return result;
--
--out_swapfile:
-- printk(KERN_INFO "NFS: attempt to write to active swap file!\n");
-- goto out;
- }
-
- /*
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/fs/nfs/nfs_syms.c 2005-01-07 02:55:48.026455816 -0500
-@@ -0,0 +1,10 @@
-+#include <linux/config.h>
-+#define __NO_VERSION__
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/sunrpc/clnt.h>
-+#include <linux/nfs_fs.h>
-+
-+EXPORT_SYMBOL(__nfs_refresh_inode);
-+EXPORT_SYMBOL(nfs_write_attributes);
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/fs/nfs/nfsswap.c 2005-01-07 02:55:48.027455664 -0500
-@@ -0,0 +1,350 @@
-+/*
-+ * Swapping to files located on NFS mounted volumes
-+ * Copyright (c) 2000 Claus-Justus Heine
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/types.h>
-+#include <linux/slab.h>
-+#include <linux/swap.h>
-+#include <linux/pagemap.h>
-+#include <linux/file.h>
-+#include <linux/fs.h>
-+#include <linux/socket.h>
-+#include <linux/smp_lock.h>
-+#include <net/netswapping.h>
-+#include <net/sock.h>
-+
-+#include <linux/sunrpc/clnt.h>
-+#include <linux/nfs_fs.h>
-+#include <linux/nfs_fs_sb.h>
-+#include <asm/uaccess.h>
-+
-+#define NFSDBG_FACILITY NFSDBG_SWAP
-+
-+#define NFS_SWAP_ID "nfs file"
-+
-+/* we cache some values here. In principle, we only need the file.
-+ */
-+struct nfs_swap_data {
-+ struct file *file;
-+ struct inode *inode;
-+ struct nfs_server *server;
-+ struct socket *socket;
-+};
-+
-+/* Nearly a clone of nfs_readpage_sync() in read.c, but "struct page" does not
-+ * contain information about the file offset when swapping. So.
-+ */
-+static int nfs_read_swap_page(struct page *page,
-+ struct nfs_server *server,
-+ struct inode *inode,
-+ struct file *file)
-+{
-+ unsigned int rsize = server->rsize;
-+ unsigned int count = PAGE_SIZE;
-+ unsigned int offset = 0; /* always at start of page */
-+ int result, eof;
-+ struct rpc_cred *cred;
-+ struct nfs_fattr fattr;
-+
-+ cred = nfs_file_cred(file);
-+
-+ do {
-+ if (count < rsize)
-+ rsize = count;
-+
-+ lock_kernel();
-+ result = NFS_PROTO(inode)->read(inode, cred,
-+ &fattr,
-+ NFS_RPC_SWAPFLAGS,
-+ offset, rsize, page, &eof);
-+ nfs_refresh_inode(inode, &fattr);
-+ unlock_kernel();
-+
-+ /*
-+ * Even if we had a partial success we can't mark the page
-+ * cache valid.
-+ */
-+ if (result < 0) {
-+ if (result == -EISDIR)
-+ result = -EINVAL;
-+ goto io_error;
-+ }
-+ count -= result;
-+ offset += result;
-+ if (result < rsize) /* NFSv2ism */
-+ break;
-+ } while (count);
-+
-+ if (count) {
-+ char *kaddr = kmap(page);
-+ memset(kaddr + offset, 0, count);
-+ kunmap(page);
-+ }
-+ flush_dcache_page(page);
-+ result = 0;
-+
-+io_error:
-+ return result;
-+}
-+
-+/* Like nfs_writepage_sync(), but when swapping page->index does not encode
-+ * the offset in the swap file alone.
-+ *
-+ */
-+static int nfs_write_swap_page(struct page *page,
-+ struct nfs_server *server,
-+ struct inode *inode,
-+ struct file *file)
-+{
-+ struct rpc_cred *cred;
-+ unsigned int wsize = server->wsize;
-+ unsigned int count = PAGE_SIZE;
-+ unsigned int offset = 0;
-+ int result;
-+ struct nfs_writeverf verf;
-+ struct nfs_fattr fattr;
-+
-+ cred = nfs_file_cred(file);
-+
-+ do {
-+ if (count < wsize)
-+ wsize = count;
-+
-+ lock_kernel();
-+ result = NFS_PROTO(inode)->write(inode, cred, &fattr,
-+ NFS_RW_SWAP|NFS_RW_SYNC,
-+ offset, wsize, page, &verf);
-+ nfs_write_attributes(inode, &fattr);
-+ unlock_kernel();
-+
-+ if (result < 0) {
-+ goto io_error;
-+ }
-+ if (result != wsize)
-+ printk("NFS: short write, wsize=%u, result=%d\n",
-+ wsize, result);
-+ offset += wsize;
-+ count -= wsize;
-+ /*
-+ * If we've extended the file, update the inode
-+ * now so we don't invalidate the cache.
-+ */
-+ if (offset > inode->i_size)
-+ inode->i_size = offset;
-+ } while (count);
-+
-+ result = 0;
-+
-+io_error:
-+
-+ return result;
-+}
-+
-+/* Unluckily (for us) form 2.4.19 -> 2.4.20 the nfs-proc's where
-+ * changed and expect now a proper file-mapping page, where index
-+ * encodes the offset alone.
-+ *
-+ * What we do: we save the original value of page->index, initialize
-+ * page->index to what the NFS/sun-rpc subsystem expects and restore
-+ * the index later.
-+ */
-+static int nfs_rw_swap_page(int rw, struct page *page,
-+ unsigned long offset, void *dptr)
-+{
-+ int error;
-+ struct nfs_swap_data *data = dptr;
-+ unsigned long alloc_flag = current->flags & PF_MEMALLOC;
-+ unsigned long page_index;
-+
-+ if (!PageLocked(page))
-+ panic("nfs_rw_swap_page: page not locked for I/O");
-+
-+ /* prevent memory deadlocks */
-+ if (!(current->flags & PF_MEMALLOC)) {
-+ dprintk("nfs_rw_swap_page: Setting PF_MEMALLOC\n");
-+ }
-+ current->flags |= PF_MEMALLOC;
-+
-+ /* now tweak the page->index field ... */
-+ page_index = page->index;
-+ page->index = ((loff_t)offset*(loff_t)PAGE_SIZE) >> PAGE_CACHE_SHIFT;
-+
-+ if (rw == WRITE) {
-+ error = nfs_write_swap_page(page,
-+ data->server,
-+ data->inode,
-+ data->file);
-+ } else {
-+ error = nfs_read_swap_page(page,
-+ data->server,
-+ data->inode,
-+ data->file);
-+ }
-+
-+ if (!alloc_flag) {
-+ current->flags &= ~PF_MEMALLOC;
-+ }
-+
-+ /* now restore the page->index field ... */
-+ page->index = page_index;
-+
-+ if (error) {
-+ /* Must mark the page invalid after I/O error */
-+ SetPageError(page);
-+ ClearPageUptodate(page);
-+ } else {
-+ ClearPageError(page);
-+ SetPageUptodate(page);
-+ }
-+
-+ if (!error) { /* in case of an error rw_swap_page() likes to unlock
-+ * itself.
-+ */
-+ UnlockPage(page);
-+ }
-+
-+ return error < 0 ? 0 : 1;
-+}
-+
-+static int is_nfsfile_swapping(unsigned int flags,
-+ struct file * swapf,
-+ void * data)
-+{
-+ struct file * filp = (struct file *) data;
-+
-+ /* Only check filp's that don't match the one already opened
-+ * for us by sys_swapon(). Otherwise, we will always flag a
-+ * busy swap file.
-+ */
-+
-+ if (swapf != filp) {
-+ if (filp->f_dentry->d_inode == swapf->f_dentry->d_inode)
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+static int nfs_swap_open(struct file *swapf, void **dptr)
-+{
-+ int error = 0;
-+ int swapfilesize;
-+ struct nfs_swap_data *data;
-+ int on = 1;
-+ mm_segment_t fs;
-+ struct inode *inode = swapf->f_dentry->d_inode;
-+
-+ MOD_INC_USE_COUNT;
-+
-+ if (!S_ISREG(inode->i_mode)) {
-+ dprintk("nfs_swap_open: can't handle this swap file: %s\n",
-+ swapf->f_dentry->d_name.name);
-+ error = 0; /* not for us */
-+ goto bad_swap;
-+ }
-+ /* determine whether this file really is located on an NFS mounted
-+ * volume
-+ */
-+ if (!inode->i_sb || inode->i_sb->s_magic != NFS_SUPER_MAGIC) {
-+ dprintk("nfs_swap_open: %s is not an NFS file.\n",
-+ swapf->f_dentry->d_name.name);
-+ error = 0; /* not for us */
-+ goto bad_swap;
-+ }
-+
-+ if (swap_run_test(is_nfsfile_swapping, swapf)) {
-+ dprintk("nfs_swap_open: already swapping to %s\n",
-+ swapf->f_dentry->d_name.name);
-+ error = -EBUSY;
-+ goto bad_swap;
-+ }
-+ swapfilesize = inode->i_size >> PAGE_SHIFT;
-+ if ((data = kmalloc(sizeof(*data), GFP_KERNEL)) == NULL) {
-+ error = -ENOMEM;
-+ goto bad_swap;
-+ }
-+ data->file = swapf;
-+ data->inode = inode;
-+ data->server = NFS_SERVER(inode);
-+ data->socket = data->server->client->cl_xprt->sock;
-+
-+ /* set socket option SO_SWAPPING */
-+ fs = get_fs();
-+ set_fs(KERNEL_DS);
-+ error = sock_setsockopt(data->socket, SOL_SOCKET, SO_SWAPPING,
-+ (char *)&on, sizeof(on));
-+ set_fs(fs);
-+ if (error) {
-+ dprintk("nfs_swap_open: error setting SO_SWAPPING\n");
-+ goto bad_swap_2;
-+ }
-+
-+ *dptr = data;
-+ return swapfilesize;
-+
-+ bad_swap_2:
-+ kfree(data);
-+ bad_swap:
-+ MOD_DEC_USE_COUNT;
-+ return error;
-+}
-+
-+static int nfs_swap_release(struct file *swapf, void *dptr)
-+{
-+ struct nfs_swap_data *data = (struct nfs_swap_data *)dptr;
-+ int off = 0;
-+ mm_segment_t fs;
-+ int error;
-+
-+#if 1
-+ if (swapf != data->file ||
-+ swapf->f_dentry->d_inode != data->inode ||
-+ !swapf->f_dentry->d_inode->i_sb ||
-+ swapf->f_dentry->d_inode->i_sb->s_magic != NFS_SUPER_MAGIC ||
-+ NFS_SERVER(swapf->f_dentry->d_inode) != data->server ||
-+ data->socket != data->server->client->cl_xprt->sock) {
-+ panic("nfs_swap_release: nfs swap data messed up");
-+ }
-+#endif
-+
-+ /* remove socket option SO_SWAPPING */
-+ fs = get_fs();
-+ set_fs(KERNEL_DS);
-+ error = sock_setsockopt(data->socket, SOL_SOCKET, SO_SWAPPING,
-+ (char *)&off, sizeof(off));
-+ set_fs(fs);
-+ if (error) {
-+ dprintk("nfs_swap_open: error clearing SO_SWAPPING\n");
-+ }
-+ kfree(data);
-+ MOD_DEC_USE_COUNT;
-+ return error;
-+}
-+
-+static struct swap_ops nfs_swap_ops = {
-+ open: nfs_swap_open,
-+ release: nfs_swap_release,
-+ rw_page: nfs_rw_swap_page
-+};
-+
-+int __init nfs_swap_init(void)
-+{
-+ (void)register_swap_method(NFS_SWAP_ID, &nfs_swap_ops);
-+ return 0;
-+}
-+
-+void __exit nfs_swap_exit(void)
-+{
-+ unregister_swap_method(NFS_SWAP_ID);
-+}
-+
-+module_init(nfs_swap_init)
-+module_exit(nfs_swap_exit)
-+
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("(c) 1996-2002 cH (Claus-Justus Heine)");
-+MODULE_DESCRIPTION("Swapping to files located on volumes mounted via NFS");
---- linux-2.4.20/fs/nfs/read.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/fs/nfs/read.c 2005-01-07 02:55:48.027455664 -0500
-@@ -50,11 +50,6 @@
- */
- static void nfs_readpage_result(struct rpc_task *task);
-
--/* Hack for future NFS swap support */
--#ifndef IS_SWAPFILE
--# define IS_SWAPFILE(inode) (0)
--#endif
--
- static kmem_cache_t *nfs_rdata_cachep;
-
- static __inline__ struct nfs_read_data *nfs_readdata_alloc(void)
-@@ -92,7 +87,6 @@
- int rsize = NFS_SERVER(inode)->rsize;
- int result;
- int count = PAGE_CACHE_SIZE;
-- int flags = IS_SWAPFILE(inode)? NFS_RPC_SWAPFLAGS : 0;
- int eof;
-
- dprintk("NFS: nfs_readpage_sync(%p)\n", page);
-@@ -114,7 +108,7 @@
- offset, rsize, page);
-
- lock_kernel();
-- result = NFS_PROTO(inode)->read(inode, cred, &fattr, flags,
-+ result = NFS_PROTO(inode)->read(inode, cred, &fattr, 0,
- offset, rsize, page, &eof);
- nfs_refresh_inode(inode, &fattr);
- unlock_kernel();
-@@ -246,7 +240,7 @@
- task = &data->task;
-
- /* N.B. Do we need to test? Never called for swapfile inode */
-- flags = RPC_TASK_ASYNC | (IS_SWAPFILE(inode)? NFS_RPC_SWAPFLAGS : 0);
-+ flags = RPC_TASK_ASYNC;
-
- nfs_read_rpcsetup(head, data);
-
-@@ -476,8 +470,6 @@
- }
-
- error = nfs_readpage_sync(file, inode, page);
-- if (error < 0 && IS_SWAPFILE(inode))
-- printk("Aiee.. nfs swap-in of page failed!\n");
- out:
- return error;
-
---- linux-2.4.20/fs/nfs/write.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/fs/nfs/write.c 2005-01-07 02:57:10.476921440 -0500
-@@ -49,7 +49,6 @@
- #include <linux/config.h>
- #include <linux/types.h>
- #include <linux/slab.h>
--#include <linux/swap.h>
- #include <linux/pagemap.h>
- #include <linux/file.h>
-
-@@ -92,11 +91,6 @@
- static void nfs_commit_done(struct rpc_task *);
- #endif
-
--/* Hack for future NFS swap support */
--#ifndef IS_SWAPFILE
--# define IS_SWAPFILE(inode) (0)
--#endif
--
- static kmem_cache_t *nfs_wdata_cachep;
-
- static __inline__ struct nfs_write_data *nfs_writedata_alloc(void)
-@@ -128,7 +122,7 @@
- * For the moment, we just call nfs_refresh_inode().
- */
- static __inline__ int
--nfs_write_attributes(struct inode *inode, struct nfs_fattr *fattr)
-+__nfs_write_attributes(struct inode *inode, struct nfs_fattr *fattr)
- {
- if ((fattr->valid & NFS_ATTR_FATTR) && !(fattr->valid & NFS_ATTR_WCC)) {
- fattr->pre_size = NFS_CACHE_ISIZE(inode);
-@@ -139,6 +133,11 @@
- return nfs_refresh_inode(inode, fattr);
- }
-
-+int nfs_write_attributes(struct inode *inode, struct nfs_fattr *fattr)
-+{
-+ return __nfs_write_attributes(inode, fattr);
-+}
-+
- /*
- * Write a page synchronously.
- * Offset is the data offset within the page.
-@@ -150,8 +149,7 @@
- struct rpc_cred *cred = NULL;
- loff_t base;
- unsigned int wsize = NFS_SERVER(inode)->wsize;
-- int result, refresh = 0, written = 0, flags;
-- u8 *buffer;
-+ int result, refresh = 0, written = 0;
- struct nfs_fattr fattr;
- struct nfs_writeverf verf;
-
-@@ -167,15 +165,14 @@
-
- base = page_offset(page) + offset;
-
-- flags = ((IS_SWAPFILE(inode)) ? NFS_RW_SWAP : 0) | NFS_RW_SYNC;
--
- do {
-- if (count < wsize && !IS_SWAPFILE(inode))
-+ if (count < wsize)
- wsize = count;
-
-- result = NFS_PROTO(inode)->write(inode, cred, &fattr, flags,
-+ result = NFS_PROTO(inode)->write(inode, cred, &fattr,
-+ NFS_RW_SYNC,
- offset, wsize, page, &verf);
-- nfs_write_attributes(inode, &fattr);
-+ __nfs_write_attributes(inode, &fattr);
-
- if (result < 0) {
- /* Must mark the page invalid after I/O error */
-@@ -186,7 +183,6 @@
- printk("NFS: short write, wsize=%u, result=%d\n",
- wsize, result);
- refresh = 1;
-- buffer += wsize;
- base += wsize;
- offset += wsize;
- written += wsize;
-@@ -1057,7 +1053,7 @@
- * writebacks since the page->count is kept > 1 for as long
- * as the page has a write request pending.
- */
-- nfs_write_attributes(inode, resp->fattr);
-+ __nfs_write_attributes(inode, resp->fattr);
- while (!list_empty(&data->pages)) {
- req = nfs_list_entry(data->pages.next);
- nfs_list_remove_request(req);
-@@ -1211,7 +1207,7 @@
- if (nfs_async_handle_jukebox(task))
- return;
-
-- nfs_write_attributes(inode, resp->fattr);
-+ __nfs_write_attributes(inode, resp->fattr);
- while (!list_empty(&data->pages)) {
- req = nfs_list_entry(data->pages.next);
- nfs_list_remove_request(req);
---- linux-2.4.20/include/linux/fs.h~130-nfsswap 2005-01-07 02:54:46.357830000 -0500
-+++ linux-2.4.20/include/linux/fs.h 2005-01-07 02:55:48.030455208 -0500
-@@ -1507,6 +1507,10 @@
- extern int inode_change_ok(struct inode *, struct iattr *);
- extern int inode_setattr(struct inode *, struct iattr *);
-
-+/* for swapping to block devices */
-+void create_empty_buffers(struct page *page, kdev_t dev, unsigned long blocksize);
-+void end_buffer_io_async(struct buffer_head * bh, int uptodate);
-+
- /*
- * Common dentry functions for inclusion in the VFS
- * or in other stackable file systems. Some of these
---- linux-2.4.20/include/linux/nfs_fs.h~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/include/linux/nfs_fs.h 2005-01-07 02:55:48.030455208 -0500
-@@ -40,8 +40,8 @@
- */
- #define NFS_MAX_DIRCACHE 16
-
--#define NFS_MAX_FILE_IO_BUFFER_SIZE 32768
--#define NFS_DEF_FILE_IO_BUFFER_SIZE 4096
-+#define NFS_MAX_FILE_IO_BUFFER_SIZE (8*PAGE_SIZE)
-+#define NFS_DEF_FILE_IO_BUFFER_SIZE PAGE_SIZE
-
- /*
- * The upper limit on timeouts for the exponential backoff algorithm.
-@@ -205,6 +205,8 @@
- extern int nfs_writepage(struct page *);
- extern int nfs_flush_incompatible(struct file *file, struct page *page);
- extern int nfs_updatepage(struct file *, struct page *, unsigned int, unsigned int);
-+extern int nfs_write_attributes(struct inode *inode, struct nfs_fattr *fattr);
-+
- /*
- * Try to write back everything synchronously (but check the
- * return value!)
-@@ -375,6 +377,7 @@
- #define NFSDBG_XDR 0x0020
- #define NFSDBG_FILE 0x0040
- #define NFSDBG_ROOT 0x0080
-+#define NFSDBG_SWAP 0x0100
- #define NFSDBG_ALL 0xFFFF
-
- #ifdef __KERNEL__
---- linux-2.4.20/include/linux/slab.h~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/include/linux/slab.h 2005-01-07 02:55:48.030455208 -0500
-@@ -39,6 +39,7 @@
- #define SLAB_HWCACHE_ALIGN 0x00002000UL /* align objs on a h/w cache lines */
- #define SLAB_CACHE_DMA 0x00004000UL /* use GFP_DMA memory */
- #define SLAB_MUST_HWCACHE_ALIGN 0x00008000UL /* force alignment */
-+#define SLAB_LOW_GFP_ORDER 0x00010000UL /* use as low a gfp order as possible */
-
- /* flags passed to a constructor func */
- #define SLAB_CTOR_CONSTRUCTOR 0x001UL /* if not set, then deconstructor */
---- linux-2.4.20/include/linux/swap.h~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/include/linux/swap.h 2005-01-07 02:55:48.031455056 -0500
-@@ -58,15 +58,29 @@
- #define SWAP_MAP_MAX 0x7fff
- #define SWAP_MAP_BAD 0x8000
-
-+struct swap_ops {
-+ int (*open)(struct file *swapf, void **data);
-+ int (*release)(struct file *swapf, void *data);
-+ int (*rw_page)(int rw,
-+ struct page *page, unsigned long offset, void *data);
-+};
-+
-+struct swap_method {
-+ struct swap_method *next;
-+ char * name;
-+ struct swap_ops *ops;
-+ int use_count;
-+};
-+
- /*
- * The in-memory structure used to track swap areas.
- */
- struct swap_info_struct {
- unsigned int flags;
-- kdev_t swap_device;
-+ struct file *swap_file;
-+ struct swap_method *method;
-+ void *data;
- spinlock_t sdev_lock;
-- struct dentry * swap_file;
-- struct vfsmount *swap_vfsmnt;
- unsigned short * swap_map;
- unsigned int lowest_bit;
- unsigned int highest_bit;
-@@ -141,11 +155,15 @@
- extern int total_swap_pages;
- extern unsigned int nr_swapfiles;
- extern struct swap_info_struct swap_info[];
--extern int is_swap_partition(kdev_t);
-+extern int register_swap_method(char *name, struct swap_ops *ops);
-+extern int unregister_swap_method(char *name);
-+extern int swap_run_test(int (*test_fct)(unsigned int flags,
-+ struct file *swap_file,
-+ void *testdata), void *testdata);
- extern void si_swapinfo(struct sysinfo *);
- extern swp_entry_t get_swap_page(void);
--extern void get_swaphandle_info(swp_entry_t, unsigned long *, kdev_t *,
-- struct inode **);
-+struct swap_method *get_swaphandle_info(swp_entry_t entry,
-+ unsigned long *offset, void **data);
- extern int swap_duplicate(swp_entry_t);
- extern int swap_count(struct page *);
- extern int valid_swaphandles(swp_entry_t, unsigned long *);
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/net/netswapping.h 2005-01-07 02:55:48.031455056 -0500
-@@ -0,0 +1,47 @@
-+#ifndef _LINUX_NETSWAPPING_H
-+#define _LINUX_NETSWAPPING_H
-+
-+#include <linux/swap.h>
-+#include <linux/init.h>
-+
-+/* It is a mess. Socket options are defined in asm-ARCH/socket.h */
-+
-+#define SO_SWAPPING 0x00100000 /* hopefully not used by anybody else */
-+
-+#ifdef __KERNEL__
-+
-+#define CTL_NETSWAP 0x00100000
-+
-+enum {
-+ NET_SWAP_DROPPED = 1,
-+ NET_SWAP_DROP_THRESHOLD = 2,
-+ NET_SWAP_SOCK_COUNT = 3
-+};
-+
-+extern unsigned int netswap_free_pages_min;
-+extern int netswap_sock_count;
-+extern unsigned int netswap_dropped;
-+
-+/* this is "#defined" and not inline because sock.h includes us, but we need
-+ * the "struct sock" definition.
-+ */
-+#define netswap_low_memory(sk, skb) \
-+({ \
-+ int _ret = 0; \
-+ \
-+ if (netswap_sock_count > 0 && /* anybody swapping via network? */ \
-+ !(sk)->swapping && /* but we are not needed for swapping */ \
-+ nr_free_pages() < netswap_free_pages_min) { /* so drop us */ \
-+ printk("netswap_low_memory: " \
-+ "dropping skb 0x%p@0x%p\n", skb, sk); \
-+ netswap_dropped ++; \
-+ _ret = 1; \
-+ } \
-+ _ret; \
-+})
-+
-+extern int __init netswap_init(void);
-+
-+#endif
-+
-+#endif
---- linux-2.4.20/include/net/sock.h~130-nfsswap 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/include/net/sock.h 2005-01-07 02:55:48.032454904 -0500
-@@ -103,6 +103,10 @@
- #include <linux/filter.h>
- #endif
-
-+#ifdef CONFIG_NETSWAP
-+#include <net/netswapping.h>
-+#endif
-+
- #include <asm/atomic.h>
- #include <net/dst.h>
-
-@@ -539,6 +543,12 @@
- no_check,
- broadcast,
- bsdism;
-+#ifdef CONFIG_NETSWAP
-+ /* Increased by SO_SWAPPING with arg != 0, decreased by
-+ * SO_SWAPPING with arg 0
-+ */
-+ int swapping;
-+#endif
- unsigned char debug;
- unsigned char rcvtstamp;
- unsigned char use_write_queue;
-@@ -1168,6 +1178,11 @@
- return err; /* Toss packet */
- }
- #endif /* CONFIG_FILTER */
-+#ifdef CONFIG_NETSWAP
-+ /* an inline function defined in net/netswapping.h */
-+ if (netswap_low_memory(sk, skb))
-+ return -ENOMEM;
-+#endif /* CONFIG_NETSWAP */
-
- skb->dev = NULL;
- skb_set_owner_r(skb, sk);
---- linux-2.4.20/kernel/ksyms.c~130-nfsswap 2005-01-07 02:54:46.362830000 -0500
-+++ linux-2.4.20/kernel/ksyms.c 2005-01-07 02:55:48.032454904 -0500
-@@ -41,6 +41,7 @@
- #include <linux/mm.h>
- #include <linux/capability.h>
- #include <linux/highuid.h>
-+#include <linux/swapctl.h>
- #include <linux/brlock.h>
- #include <linux/fs.h>
- #include <linux/tty.h>
-@@ -127,6 +128,11 @@
- EXPORT_SYMBOL(kmap_prot);
- EXPORT_SYMBOL(kmap_pte);
- #endif
-+EXPORT_SYMBOL(nr_free_pages);
-+/* EXPORT_SYMBOL(freepages); */
-+EXPORT_SYMBOL(register_swap_method);
-+EXPORT_SYMBOL(unregister_swap_method);
-+EXPORT_SYMBOL(swap_run_test);
-
- /* filesystem internal functions */
- EXPORT_SYMBOL(def_blk_fops);
-@@ -531,7 +537,7 @@
- EXPORT_SYMBOL(make_bad_inode);
- EXPORT_SYMBOL(is_bad_inode);
- EXPORT_SYMBOL(event);
--EXPORT_SYMBOL(brw_page);
-+EXPORT_SYMBOL(end_buffer_io_async);
- EXPORT_SYMBOL(__inode_dir_notify);
-
- #ifdef CONFIG_UID16
---- linux-2.4.20/mm/page_io.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/mm/page_io.c 2005-01-07 02:55:48.033454752 -0500
-@@ -36,11 +36,8 @@
- static int rw_swap_page_base(int rw, swp_entry_t entry, struct page *page)
- {
- unsigned long offset;
-- int zones[PAGE_SIZE/512];
-- int zones_used;
-- kdev_t dev = 0;
-- int block_size;
-- struct inode *swapf = 0;
-+ struct swap_method *method;
-+ void *data;
-
- if (rw == READ) {
- ClearPageUptodate(page);
-@@ -48,30 +45,11 @@
- } else
- kstat.pswpout++;
-
-- get_swaphandle_info(entry, &offset, &dev, &swapf);
-- if (dev) {
-- zones[0] = offset;
-- zones_used = 1;
-- block_size = PAGE_SIZE;
-- } else if (swapf) {
-- int i, j;
-- unsigned int block = offset
-- << (PAGE_SHIFT - swapf->i_sb->s_blocksize_bits);
--
-- block_size = swapf->i_sb->s_blocksize;
-- for (i=0, j=0; j< PAGE_SIZE ; i++, j += block_size)
-- if (!(zones[i] = bmap(swapf,block++))) {
-- printk("rw_swap_page: bad swap file\n");
-- return 0;
-- }
-- zones_used = i;
-- dev = swapf->i_dev;
-- } else {
-+ method = get_swaphandle_info(entry, &offset, &data);
-+ if (!method || !method->ops->rw_page(rw, page, offset, data)) {
- return 0;
- }
-
-- /* block_size == PAGE_SIZE/zones_used */
-- brw_page(rw, page, dev, zones, block_size);
- return 1;
- }
-
---- linux-2.4.20/mm/slab.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/mm/slab.c 2005-01-07 02:55:48.034454600 -0500
-@@ -111,10 +111,12 @@
- # define CREATE_MASK (SLAB_DEBUG_INITIAL | SLAB_RED_ZONE | \
- SLAB_POISON | SLAB_HWCACHE_ALIGN | \
- SLAB_NO_REAP | SLAB_CACHE_DMA | \
-- SLAB_MUST_HWCACHE_ALIGN)
-+ SLAB_MUST_HWCACHE_ALIGN | \
-+ SLAB_LOW_GFP_ORDER)
- #else
- # define CREATE_MASK (SLAB_HWCACHE_ALIGN | SLAB_NO_REAP | \
-- SLAB_CACHE_DMA | SLAB_MUST_HWCACHE_ALIGN)
-+ SLAB_CACHE_DMA | SLAB_MUST_HWCACHE_ALIGN | \
-+ SLAB_LOW_GFP_ORDER)
- #endif
-
- /*
-@@ -247,8 +249,13 @@
- };
-
- /* internal c_flags */
--#define CFLGS_OFF_SLAB 0x010000UL /* slab management in own cache */
--#define CFLGS_OPTIMIZE 0x020000UL /* optimized slab lookup */
-+#define CFLGS_OFF_SLAB 0x020000UL /* slab management in own cache */
-+#define CFLGS_OPTIMIZE 0x040000UL /* optimized slab lookup */
-+#define CFLGS_MASK (CFLGS_OFF_SLAB | CFLGS_OPTIMIZE)
-+
-+#if (CFLGS_MASK & CREATE_MASK)
-+# error BUG: internal and external SLAB flags overlap
-+#endif
-
- /* c_dflags (dynamic flags). Need to hold the spinlock to access this member */
- #define DFLGS_GROWN 0x000001UL /* don't reap a recently grown */
-@@ -452,7 +459,12 @@
- snprintf(name, sizeof(name), "size-%Zd",sizes->cs_size);
- if (!(sizes->cs_cachep =
- kmem_cache_create(name, sizes->cs_size,
-- 0, SLAB_HWCACHE_ALIGN, NULL, NULL))) {
-+ 0,
-+#if CONFIG_NETSWAP
-+ SLAB_LOW_GFP_ORDER| /* sorry */
-+#endif
-+ SLAB_HWCACHE_ALIGN,
-+ NULL, NULL))) {
- BUG();
- }
-
-@@ -732,6 +744,8 @@
- break;
- if (!cachep->num)
- goto next;
-+ if (cachep->gfporder == 0 && (flags & SLAB_LOW_GFP_ORDER))
-+ break;
- if (flags & CFLGS_OFF_SLAB && cachep->num > offslab_limit) {
- /* Oops, this num of objs will cause problems. */
- cachep->gfporder--;
---- linux-2.4.20/mm/swapfile.c~130-nfsswap 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/mm/swapfile.c 2005-01-07 02:55:48.037454144 -0500
-@@ -11,12 +11,17 @@
- #include <linux/swap.h>
- #include <linux/swapctl.h>
- #include <linux/blkdev.h> /* for blk_size */
-+#include <linux/file.h>
- #include <linux/vmalloc.h>
- #include <linux/pagemap.h>
- #include <linux/shm.h>
-
- #include <asm/pgtable.h>
-
-+#ifdef CONFIG_KMOD
-+#include <linux/kmod.h>
-+#endif
-+
- spinlock_t swaplock = SPIN_LOCK_UNLOCKED;
- unsigned int nr_swapfiles;
- int total_swap_pages;
-@@ -31,8 +36,78 @@
-
- struct swap_info_struct swap_info[MAX_SWAPFILES];
-
-+static struct swap_method *swap_methods = NULL;
-+
- #define SWAPFILE_CLUSTER 256
-
-+int register_swap_method(char *name, struct swap_ops *ops)
-+{
-+ struct swap_method *pos;
-+ struct swap_method *new;
-+ int result = 0;
-+
-+ lock_kernel();
-+
-+ for (pos = swap_methods; pos; pos = pos->next) {
-+ if (strcmp(pos->name, name) == 0) {
-+ printk(KERN_ERR "register_swap_method: "
-+ "method %s already registered\n", name);
-+ result = -EBUSY;
-+ goto out;
-+ }
-+ }
-+
-+ if (!(new = kmalloc(sizeof(*new), GFP_KERNEL))) {
-+ printk(KERN_ERR "register_swap_method: "
-+ "no memory for new method \"%s\"\n", name);
-+ result = -ENOMEM;
-+ goto out;
-+ }
-+
-+ new->name = name;
-+ new->ops = ops;
-+ new->use_count = 0;
-+
-+ /* ok, insert at top of list */
-+ printk("register_swap_method: method %s\n", name);
-+ new->next = swap_methods;
-+ swap_methods = new;
-+ out:
-+ unlock_kernel();
-+ return result;
-+}
-+
-+int unregister_swap_method(char *name)
-+{
-+ struct swap_method **method, *next;
-+ int result = 0;
-+
-+ lock_kernel();
-+
-+ for (method = &swap_methods; *method; method = &(*method)->next) {
-+ if (strcmp((*method)->name, name) == 0) {
-+ if ((*method)->use_count > 0) {
-+ printk(KERN_ERR "unregister_swap_method: "
-+ "method \"%s\" is in use\n", name);
-+ result = -EBUSY;
-+ goto out;
-+ }
-+
-+ next = (*method)->next;
-+ kfree(*method);
-+ *method = next;
-+ printk("unregister_swap_method: method %s\n", name);
-+ goto out;
-+ }
-+ }
-+ /* not found */
-+ printk("unregister_swap_method: no such method %s\n", name);
-+ result = -ENOENT;
-+ out:
-+ unlock_kernel();
-+ return result;
-+}
-+
- static inline int scan_swap_map(struct swap_info_struct *si)
- {
- unsigned long offset;
-@@ -711,13 +786,14 @@
- struct nameidata nd;
- int i, type, prev;
- int err;
-+ struct file *swap_file;
-
- if (!capable(CAP_SYS_ADMIN))
- return -EPERM;
-
- err = user_path_walk(specialfile, &nd);
- if (err)
-- goto out;
-+ return err;
-
- lock_kernel();
- prev = -1;
-@@ -725,15 +801,20 @@
- for (type = swap_list.head; type >= 0; type = swap_info[type].next) {
- p = swap_info + type;
- if ((p->flags & SWP_WRITEOK) == SWP_WRITEOK) {
-- if (p->swap_file == nd.dentry)
-+ if (p->swap_file &&
-+ p->swap_file->f_dentry == nd.dentry)
- break;
- }
- prev = type;
- }
- err = -EINVAL;
-+ /* p->swap_file contains all needed info, no need to keep nd, so
-+ * release it now.
-+ */
-+ path_release(&nd);
- if (type < 0) {
- swap_list_unlock();
-- goto out_dput;
-+ goto out;
- }
-
- if (prev < 0) {
-@@ -767,32 +848,30 @@
- total_swap_pages += p->pages;
- p->flags = SWP_WRITEOK;
- swap_list_unlock();
-- goto out_dput;
-+ goto out;
- }
-- if (p->swap_device)
-- blkdev_put(p->swap_file->d_inode->i_bdev, BDEV_SWAP);
-- path_release(&nd);
-
-+ if (p->method->ops->release)
-+ p->method->ops->release(p->swap_file, p->data);
- swap_list_lock();
- swap_device_lock(p);
-- nd.mnt = p->swap_vfsmnt;
-- nd.dentry = p->swap_file;
-- p->swap_vfsmnt = NULL;
-+ p->method->use_count --;
-+ p->method = NULL;
-+ p->data = NULL;
-+ swap_file = p->swap_file;
- p->swap_file = NULL;
-- p->swap_device = 0;
- p->max = 0;
- swap_map = p->swap_map;
- p->swap_map = NULL;
- p->flags = 0;
- swap_device_unlock(p);
- swap_list_unlock();
-+ filp_close(swap_file, NULL);
- vfree(swap_map);
- err = 0;
-
--out_dput:
-- unlock_kernel();
-- path_release(&nd);
- out:
-+ unlock_kernel();
- return err;
- }
-
-@@ -805,18 +884,17 @@
- if (!page)
- return -ENOMEM;
-
-- len += sprintf(buf, "Filename\t\t\tType\t\tSize\tUsed\tPriority\n");
-+ len += sprintf(buf, "%-32s%-16s%-8s%-8sPriority\n",
-+ "Filename", "Type", "Size", "Used");
- for (i = 0 ; i < nr_swapfiles ; i++, ptr++) {
- if ((ptr->flags & SWP_USED) && ptr->swap_map) {
-- char * path = d_path(ptr->swap_file, ptr->swap_vfsmnt,
-+ char * path = d_path(ptr->swap_file->f_dentry,
-+ ptr->swap_file->f_vfsmnt,
- page, PAGE_SIZE);
-
- len += sprintf(buf + len, "%-31s ", path);
-
-- if (!ptr->swap_device)
-- len += sprintf(buf + len, "file\t\t");
-- else
-- len += sprintf(buf + len, "partition\t");
-+ len += sprintf(buf + len, "%-15s ", ptr->method->name);
-
- usedswap = 0;
- for (j = 0; j < ptr->max; ++j)
-@@ -827,7 +905,7 @@
- default:
- usedswap++;
- }
-- len += sprintf(buf + len, "%d\t%d\t%d\n", ptr->pages << (PAGE_SHIFT - 10),
-+ len += sprintf(buf + len, "%-8d%-8d%d\n", ptr->pages << (PAGE_SHIFT - 10),
- usedswap << (PAGE_SHIFT - 10), ptr->prio);
- }
- }
-@@ -835,18 +913,55 @@
- return len;
- }
-
--int is_swap_partition(kdev_t dev) {
-+/* apply a test function to all active swap objects. E.g. for checking
-+ * whether a partition is used for swapping
-+ */
-+int swap_run_test(int (*test_fct)(unsigned int flags,
-+ struct file * swap_file,
-+ void *testdata), void *testdata)
-+{
- struct swap_info_struct *ptr = swap_info;
- int i;
-
- for (i = 0 ; i < nr_swapfiles ; i++, ptr++) {
-- if (ptr->flags & SWP_USED)
-- if (ptr->swap_device == dev)
-+ if (ptr->swap_file &&
-+ test_fct(ptr->flags, ptr->swap_file, testdata))
- return 1;
- }
- return 0;
- }
-
-+/* Walk through the list of known swap method until somebody wants to
-+ * handle this file. Pick the first one which claims to be able to
-+ * swap to this kind of file.
-+ *
-+ * return value: < 0: error, 0: not found, > 0: swapfilesize
-+ */
-+int find_swap_method(struct file *swap_file,
-+ struct swap_info_struct *p)
-+{
-+ int swapfilesize = 0;
-+ struct swap_method *method;
-+
-+ p->method = NULL;
-+ for (method = swap_methods; method; method = method->next) {
-+ swapfilesize = method->ops->open(swap_file, &p->data);
-+ if (swapfilesize == 0) {
-+ continue;
-+ }
-+ if (swapfilesize > 0) {
-+ p->method = method;
-+ p->method->use_count ++;
-+ p->swap_file = swap_file;
-+ break;
-+ }
-+ if (swapfilesize < 0) {
-+ break;
-+ }
-+ }
-+ return swapfilesize;
-+}
-+
- /*
- * Written 01/25/92 by Simmule Turner, heavily changed by Linus.
- *
-@@ -855,8 +970,6 @@
- asmlinkage long sys_swapon(const char * specialfile, int swap_flags)
- {
- struct swap_info_struct * p;
-- struct nameidata nd;
-- struct inode * swap_inode;
- unsigned int type;
- int i, j, prev;
- int error;
-@@ -866,8 +979,9 @@
- int nr_good_pages = 0;
- unsigned long maxpages = 1;
- int swapfilesize;
-- struct block_device *bdev = NULL;
- unsigned short *swap_map;
-+ char * tmp_specialfile;
-+ struct file *swap_file;
-
- if (!capable(CAP_SYS_ADMIN))
- return -EPERM;
-@@ -886,8 +1000,7 @@
- nr_swapfiles = type+1;
- p->flags = SWP_USED;
- p->swap_file = NULL;
-- p->swap_vfsmnt = NULL;
-- p->swap_device = 0;
-+ p->method = NULL;
- p->swap_map = NULL;
- p->lowest_bit = 0;
- p->highest_bit = 0;
-@@ -901,53 +1014,56 @@
- p->prio = --least_priority;
- }
- swap_list_unlock();
-- error = user_path_walk(specialfile, &nd);
-- if (error)
-+
-+ /* Open the swap using filp_open. Bail out on any errors. */
-+ tmp_specialfile = getname(specialfile);
-+ if (IS_ERR(tmp_specialfile)) {
-+ error = PTR_ERR(tmp_specialfile);
- goto bad_swap_2;
-+ }
-+ p->swap_file = filp_open(tmp_specialfile, O_RDWR, 0600);
-+ putname(tmp_specialfile);
-+ if (IS_ERR(p->swap_file)) {
-+ error = PTR_ERR(p->swap_file);
-+ goto bad_swap_1;
-+ }
-
-- p->swap_file = nd.dentry;
-- p->swap_vfsmnt = nd.mnt;
-- swap_inode = nd.dentry->d_inode;
- error = -EINVAL;
-
-- if (S_ISBLK(swap_inode->i_mode)) {
-- kdev_t dev = swap_inode->i_rdev;
-- struct block_device_operations *bdops;
-- devfs_handle_t de;
--
-- p->swap_device = dev;
-- set_blocksize(dev, PAGE_SIZE);
--
-- bd_acquire(swap_inode);
-- bdev = swap_inode->i_bdev;
-- de = devfs_get_handle_from_inode(swap_inode);
-- bdops = devfs_get_ops(de); /* Increments module use count */
-- if (bdops) bdev->bd_op = bdops;
-+ swapfilesize = find_swap_method(p->swap_file, p);
-+ if (swapfilesize < 0) {
-+ error = swapfilesize;
-+ goto bad_swap_1;
-+ }
-+#ifdef CONFIG_KMOD
-+ if (swapfilesize == 0) {
-+ (void)request_module("swapfile-mod");
-
-- error = blkdev_get(bdev, FMODE_READ|FMODE_WRITE, 0, BDEV_SWAP);
-- devfs_put_ops(de);/*Decrement module use count now we're safe*/
-- if (error)
-- goto bad_swap_2;
-- set_blocksize(dev, PAGE_SIZE);
-- error = -ENODEV;
-- if (!dev || (blk_size[MAJOR(dev)] &&
-- !blk_size[MAJOR(dev)][MINOR(dev)]))
-- goto bad_swap;
-- swapfilesize = 0;
-- if (blk_size[MAJOR(dev)])
-- swapfilesize = blk_size[MAJOR(dev)][MINOR(dev)]
-- >> (PAGE_SHIFT - 10);
-- } else if (S_ISREG(swap_inode->i_mode))
-- swapfilesize = swap_inode->i_size >> PAGE_SHIFT;
-- else
-- goto bad_swap;
-+ swapfilesize = find_swap_method(p->swap_file, p);
-+ if (swapfilesize < 0) {
-+ error = swapfilesize;
-+ goto bad_swap_1;
-+ }
-+ }
-+#endif
-+ if (swapfilesize == 0) {
-+ printk("Don't know how to swap to this kind of file\n");
-+ goto bad_swap_1; /* free swap map */
-+ }
-+
-+ /* After this point, the swap-file has been opened by the swap
-+ * method. We must make sure to use the bad_swap label for any
-+ * errors.
-+ */
-
- error = -EBUSY;
- for (i = 0 ; i < nr_swapfiles ; i++) {
- struct swap_info_struct *q = &swap_info[i];
- if (i == type || !q->swap_file)
- continue;
-- if (swap_inode->i_mapping == q->swap_file->d_inode->i_mapping)
-+ if (p->swap_file->f_dentry->d_inode->i_mapping
-+ ==
-+ q->swap_file->f_dentry->d_inode->i_mapping)
- goto bad_swap;
- }
-
-@@ -1083,17 +1199,27 @@
- swap_list_unlock();
- error = 0;
- goto out;
-+
- bad_swap:
-- if (bdev)
-- blkdev_put(bdev, BDEV_SWAP);
-+ if (p->method->ops->release)
-+ p->method->ops->release(p->swap_file, p->data);
-+ swap_list_lock();
-+ p->method->use_count --;
-+ p->method = NULL;
-+ p->data = NULL;
-+ swap_list_unlock();
-+
-+bad_swap_1:
-+ swap_list_lock();
-+ swap_file = p->swap_file;
-+ p->swap_file = NULL;
-+ swap_list_unlock();
-+ filp_close(swap_file, NULL);
-+
- bad_swap_2:
-+
- swap_list_lock();
- swap_map = p->swap_map;
-- nd.mnt = p->swap_vfsmnt;
-- nd.dentry = p->swap_file;
-- p->swap_device = 0;
-- p->swap_file = NULL;
-- p->swap_vfsmnt = NULL;
- p->swap_map = NULL;
- p->flags = 0;
- if (!(swap_flags & SWAP_FLAG_PREFER))
-@@ -1101,7 +1227,7 @@
- swap_list_unlock();
- if (swap_map)
- vfree(swap_map);
-- path_release(&nd);
-+
- out:
- if (swap_header)
- free_page((long) swap_header);
-@@ -1217,8 +1343,8 @@
- /*
- * Prior swap_duplicate protects against swap device deletion.
- */
--void get_swaphandle_info(swp_entry_t entry, unsigned long *offset,
-- kdev_t *dev, struct inode **swapf)
-+struct swap_method *get_swaphandle_info(swp_entry_t entry,
-+ unsigned long *offset, void **data)
- {
- unsigned long type;
- struct swap_info_struct *p;
-@@ -1226,32 +1352,26 @@
- type = SWP_TYPE(entry);
- if (type >= nr_swapfiles) {
- printk(KERN_ERR "rw_swap_page: %s%08lx\n", Bad_file, entry.val);
-- return;
-+ return NULL;
- }
-
- p = &swap_info[type];
- *offset = SWP_OFFSET(entry);
- if (*offset >= p->max && *offset != 0) {
- printk(KERN_ERR "rw_swap_page: %s%08lx\n", Bad_offset, entry.val);
-- return;
-+ return NULL;
- }
- if (p->swap_map && !p->swap_map[*offset]) {
- printk(KERN_ERR "rw_swap_page: %s%08lx\n", Unused_offset, entry.val);
-- return;
-+ return NULL;
- }
- if (!(p->flags & SWP_USED)) {
- printk(KERN_ERR "rw_swap_page: %s%08lx\n", Unused_file, entry.val);
-- return;
-+ return NULL;
- }
-
-- if (p->swap_device) {
-- *dev = p->swap_device;
-- } else if (p->swap_file) {
-- *swapf = p->swap_file->d_inode;
-- } else {
-- printk(KERN_ERR "rw_swap_page: no swap file or device\n");
-- }
-- return;
-+ *data = p->data;
-+ return p->method;
- }
-
- /*
---- linux-2.4.20/net/Config.in~130-nfsswap 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/Config.in 2005-01-07 02:55:48.037454144 -0500
-@@ -16,6 +16,9 @@
- fi
- bool 'Socket Filtering' CONFIG_FILTER
- tristate 'Unix domain sockets' CONFIG_UNIX
-+if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
-+ bool 'Swapping via network sockets (EXPERIMENTAL)' CONFIG_NETSWAP
-+fi
- bool 'TCP/IP networking' CONFIG_INET
- if [ "$CONFIG_INET" = "y" ]; then
- source net/ipv4/Config.in
---- linux-2.4.20/net/Makefile~130-nfsswap 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/Makefile 2005-01-07 02:55:48.037454144 -0500
-@@ -51,6 +51,7 @@
- ifeq ($(CONFIG_NET),y)
- obj-$(CONFIG_MODULES) += netsyms.o
- obj-$(CONFIG_SYSCTL) += sysctl_net.o
-+obj-$(CONFIG_NETSWAP) += netswapping.o
- endif
-
- include $(TOPDIR)/Rules.make
---- linux-2.4.20/net/core/sock.c~130-nfsswap 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/core/sock.c 2005-01-07 02:55:48.038453992 -0500
-@@ -403,6 +403,21 @@
- ret = -ENONET;
- break;
- #endif
-+#ifdef CONFIG_NETSWAP
-+ case SO_SWAPPING:
-+ if (valbool) {
-+ if (!sk->swapping) {
-+ netswap_sock_count ++;
-+ }
-+ sk->swapping ++;
-+ } else if (sk->swapping > 0) {
-+ sk->swapping --;
-+ if (!sk->swapping) {
-+ netswap_sock_count --;
-+ }
-+ }
-+ break;
-+#endif
- /* We implement the SO_SNDLOWAT etc to
- not be settable (1003.1g 5.3) */
- default:
-@@ -553,6 +568,12 @@
- goto lenout;
- }
-
-+#ifdef CONFIG_NETSWAP
-+ case SO_SWAPPING:
-+ v.val = sk->swapping;
-+ break;
-+#endif
-+
- /* Dubious BSD thing... Probably nobody even uses it, but
- * the UNIX standard wants it for whatever reason... -DaveM
- */
---- linux-2.4.20/net/ipv4/tcp_ipv4.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/ipv4/tcp_ipv4.c 2005-01-07 02:55:48.039453840 -0500
-@@ -1657,6 +1657,12 @@
- if (filter && sk_filter(skb, filter))
- goto discard;
- #endif /* CONFIG_FILTER */
-+#ifdef CONFIG_NETSWAP
-+ /* tcp doesn't use sock_queue_rcv_skb() ... */
-+ /* an inline function defined in net/netswapping.h */
-+ if (netswap_low_memory(sk, skb))
-+ goto discard;
-+#endif /* CONFIG_NETSWAP */
-
- IP_INC_STATS_BH(IpInDelivers);
-
---- linux-2.4.20/net/ipv6/tcp_ipv6.c~130-nfsswap 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/ipv6/tcp_ipv6.c 2005-01-07 02:55:48.042453384 -0500
-@@ -1433,6 +1433,12 @@
- if (filter && sk_filter(skb, filter))
- goto discard;
- #endif /* CONFIG_FILTER */
-+#ifdef CONFIG_NETSWAP
-+ /* tcp doesn't use sock_queue_rcv_skb() ... */
-+ /* an inline function defined in net/netswapping.h */
-+ if (netswap_low_memory(sk, skb))
-+ goto discard;
-+#endif /* CONFIG_NETSWAP */
-
- /*
- * socket locking is here for SMP purposes as backlog rcv
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/netswapping.c 2005-01-07 02:55:48.042453384 -0500
-@@ -0,0 +1,76 @@
-+/*
-+ * linux/net/swapping.c
-+ *
-+ * Support paging over network connections (inet only)
-+ *
-+ * (c) 2000 Claus-Justus Heine <heine@instmath.rwth-aachen.de>
-+ */
-+
-+#include <linux/slab.h>
-+#include <linux/swap.h>
-+#include <linux/swapctl.h>
-+#include <linux/skbuff.h>
-+#include <linux/module.h>
-+#include <linux/sysctl.h>
-+#include <linux/init.h>
-+#include <net/netswapping.h>
-+#include <net/sock.h>
-+#include <asm/uaccess.h>
-+
-+unsigned int netswap_dropped; /* statistics */
-+unsigned int netswap_free_pages_min;
-+int netswap_sock_count; /* how many sockets have swapping option set */
-+
-+#ifdef CONFIG_SYSCTL
-+
-+static ctl_table netswap_table[] = {
-+ {NET_SWAP_DROPPED, "dropped",
-+ &netswap_dropped, sizeof(int), 0644, NULL, &proc_dointvec },
-+ {NET_SWAP_DROP_THRESHOLD, "threshold",
-+ &netswap_free_pages_min, sizeof(int), 0644, NULL, &proc_dointvec },
-+ {NET_SWAP_SOCK_COUNT, "sock_count",
-+ &netswap_sock_count, sizeof(int), 0444, NULL, &proc_dointvec },
-+ {0},
-+};
-+
-+static struct ctl_table_header *netswap_sysctl_header;
-+
-+static ctl_table netswap_net_table[] = {
-+ {CTL_NETSWAP, "swapping", NULL, 0, 0555, netswap_table},
-+ {0}
-+};
-+
-+static ctl_table netswap_root_table[] = {
-+ {CTL_NET, "net", NULL, 0, 0555, netswap_net_table},
-+ {0}
-+};
-+
-+#endif
-+
-+int __init netswap_init(void)
-+{
-+ /* drop packets when below this threshold */
-+ netswap_free_pages_min = 32 /* freepages.min */;
-+#ifdef CONFIG_SYSCTL
-+ netswap_sysctl_header = register_sysctl_table(netswap_root_table, 0);
-+#endif
-+ return 0;
-+}
-+
-+void __exit netswap_exit(void)
-+{
-+#ifdef CONFIG_SYSCTL
-+ unregister_sysctl_table(netswap_sysctl_header);
-+#endif
-+}
-+
-+/* linux/init.h -- VERY nice :-)
-+ *
-+ * On the other hand, we have no control over the order the initcalls
-+ * are performed ...
-+ *
-+ * Actually, we are not compiled as module ...
-+ */
-+
-+module_init(netswap_init)
-+module_exit(netswap_exit)
---- linux-2.4.20/net/netsyms.c~130-nfsswap 2005-01-07 02:52:47.208944000 -0500
-+++ linux-2.4.20/net/netsyms.c 2005-01-07 02:55:48.043453232 -0500
-@@ -596,4 +596,10 @@
- EXPORT_SYMBOL(wireless_send_event);
- #endif /* CONFIG_NET_RADIO || CONFIG_NET_PCMCIA_RADIO */
-
-+#ifdef CONFIG_NETSWAP
-+EXPORT_SYMBOL(netswap_sock_count);
-+EXPORT_SYMBOL(netswap_free_pages_min);
-+EXPORT_SYMBOL(netswap_dropped);
-+#endif
-+
- #endif /* CONFIG_NET */
---- linux-2.4.20/net/packet/af_packet.c~130-nfsswap 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/packet/af_packet.c 2005-01-07 02:55:48.045452928 -0500
-@@ -453,6 +453,12 @@
- snaplen = res;
- }
- #endif /* CONFIG_FILTER */
-+#ifdef CONFIG_NETSWAP
-+ /* packet doesn't use sock_queue_rcv_skb() ... */
-+ /* an inline function defined in net/netswapping.h */
-+ if (netswap_low_memory(sk, skb))
-+ goto drop_n_restore;
-+#endif /* CONFIG_NETSWAP */
-
- if (atomic_read(&sk->rmem_alloc) + skb->truesize >= (unsigned)sk->rcvbuf)
- goto drop_n_acct;
-@@ -500,7 +506,7 @@
- po->stats.tp_drops++;
- spin_unlock(&sk->receive_queue.lock);
-
--#ifdef CONFIG_FILTER
-+#if defined(CONFIG_FILTER) || defined(CONFIG_NETSWAP)
- drop_n_restore:
- #endif
- if (skb_head != skb->data && skb_shared(skb)) {
-@@ -561,6 +567,12 @@
- snaplen = res;
- }
- #endif
-+#ifdef CONFIG_NETSWAP
-+ /* packet doesn't use sock_queue_rcv_skb() ... */
-+ /* an inline function defined in net/netswapping.h */
-+ if (netswap_low_memory(sk, skb))
-+ goto drop_n_restore;
-+#endif /* CONFIG_NETSWAP */
-
- if (sk->type == SOCK_DGRAM) {
- macoff = netoff = TPACKET_ALIGN(TPACKET_HDRLEN) + 16;
---- linux-2.4.20/net/sunrpc/sched.c~130-nfsswap 2002-11-28 18:53:16.000000000 -0500
-+++ linux-2.4.20/net/sunrpc/sched.c 2005-01-07 02:55:48.046452776 -0500
-@@ -79,10 +79,11 @@
- */
- static spinlock_t rpc_sched_lock = SPIN_LOCK_UNLOCKED;
-
-+#if CONFIG_SWAP_VIA_NFS || CONFIG_SWAP_VIA_NFS_MODULE
- /*
- * This is the last-ditch buffer for NFS swap requests
- */
--static u32 swap_buffer[PAGE_SIZE >> 2];
-+static u32 swap_buffer[2*PAGE_SIZE >> 2];
- static long swap_buffer_used;
-
- /*
-@@ -96,6 +97,7 @@
- {
- clear_bit(1, &swap_buffer_used);
- }
-+#endif
-
- /*
- * Disable the timer for a given RPC task. Should be called with
-@@ -501,6 +503,7 @@
- __rpc_execute(struct rpc_task *task)
- {
- int status = 0;
-+ unsigned long alloc_flag = current->flags & PF_MEMALLOC;
-
- dprintk("RPC: %4d rpc_execute flgs %x\n",
- task->tk_pid, task->tk_flags);
-@@ -510,6 +513,13 @@
- return 0;
- }
-
-+ if (task->tk_flags & RPC_TASK_SWAPPER) {
-+ if (!current->flags & PF_MEMALLOC) {
-+ dprintk("__rpc_execute: Setting PF_MEMALLOC\n");
-+ }
-+ current->flags |= PF_MEMALLOC;
-+ }
-+
- restarted:
- while (1) {
- /*
-@@ -554,7 +564,8 @@
- rpc_set_sleeping(task);
- if (RPC_IS_ASYNC(task)) {
- spin_unlock_bh(&rpc_queue_lock);
-- return 0;
-+ status = 0;
-+ goto out;
- }
- }
- spin_unlock_bh(&rpc_queue_lock);
-@@ -563,7 +574,12 @@
- /* sync task: sleep here */
- dprintk("RPC: %4d sync task going to sleep\n",
- task->tk_pid);
-- if (current->pid == rpciod_pid)
-+ /* it's ok to wait for rpciod when swapping,
-+ * because this means it needed memory and is
-+ * doing the swap-out itself.
-+ */
-+ if (current->pid == rpciod_pid &&
-+ !(task->tk_flags & RPC_TASK_SWAPPER))
- printk(KERN_ERR "RPC: rpciod waiting on sync task!\n");
-
- __wait_event(task->tk_wait, !RPC_IS_SLEEPING(task));
-@@ -608,6 +624,10 @@
- /* Release all resources associated with the task */
- rpc_release_task(task);
-
-+ out:
-+ if (!alloc_flag) {
-+ current->flags &= ~PF_MEMALLOC;
-+ }
- return status;
- }
-
-@@ -699,10 +719,16 @@
- {
- u32 *buffer;
- int gfp;
-+ unsigned long alloc_flag = current->flags & PF_MEMALLOC;
-+ void *ret = NULL;
-
-- if (flags & RPC_TASK_SWAPPER)
-+ if (flags & RPC_TASK_SWAPPER) {
- gfp = GFP_ATOMIC;
-- else if (flags & RPC_TASK_ASYNC)
-+ if (!(current->flags & PF_MEMALLOC)) {
-+ dprintk("rpc_allocate: Setting PF_MEMALLOC\n");
-+ }
-+ current->flags |= PF_MEMALLOC;
-+ } else if (flags & RPC_TASK_ASYNC)
- gfp = GFP_RPC;
- else
- gfp = GFP_KERNEL;
-@@ -710,29 +736,44 @@
- do {
- if ((buffer = (u32 *) kmalloc(size, gfp)) != NULL) {
- dprintk("RPC: allocated buffer %p\n", buffer);
-- return buffer;
-+ ret = buffer;
-+ goto out;
- }
-+#if CONFIG_SWAP_VIA_NFS || CONFIG_SWAP_VIA_NFS_MODULE
- if ((flags & RPC_TASK_SWAPPER) && size <= sizeof(swap_buffer)
- && rpc_lock_swapbuf()) {
- dprintk("RPC: used last-ditch swap buffer\n");
-- return swap_buffer;
-+ ret = swap_buffer;
-+ goto out;
-+#endif
-+ }
-+ if (flags & RPC_TASK_ASYNC) {
-+ ret = NULL;
-+ goto out;
- }
-- if (flags & RPC_TASK_ASYNC)
-- return NULL;
- yield();
- } while (!signalled());
-
-- return NULL;
-+ out:
-+ if (!alloc_flag) {
-+ current->flags &= ~PF_MEMALLOC;
-+ }
-+ return ret;
- }
-
- void
- rpc_free(void *buffer)
- {
-+#if CONFIG_SWAP_VIA_NFS || CONFIG_SWAP_VIA_NFS_MODULE
- if (buffer != swap_buffer) {
-+#endif
- kfree(buffer);
- return;
-+#if CONFIG_SWAP_VIA_NFS || CONFIG_SWAP_VIA_NFS_MODULE
- }
- rpc_unlock_swapbuf();
-+ printk("RPC: Released swap buffer\n");
-+#endif
- }
-
- /*
---- linux-2.4.20/net/sunrpc/xprt.c~130-nfsswap 2002-11-28 18:53:16.000000000 -0500
-+++ linux-2.4.20/net/sunrpc/xprt.c 2005-01-07 02:55:48.047452624 -0500
-@@ -139,7 +139,7 @@
- __xprt_lock_write(struct rpc_xprt *xprt, struct rpc_task *task)
- {
- if (!xprt->snd_task) {
-- if (xprt->nocong || __xprt_get_cong(xprt, task))
-+ if (__xprt_get_cong(xprt, task))
- xprt->snd_task = task;
- }
- if (xprt->snd_task != task) {
-@@ -179,7 +179,7 @@
- if (!task)
- return;
- }
-- if (xprt->nocong || __xprt_get_cong(xprt, task))
-+ if (__xprt_get_cong(xprt, task))
- xprt->snd_task = task;
- }
-
-@@ -276,6 +276,9 @@
- {
- struct rpc_rqst *req = task->tk_rqstp;
-
-+ if (xprt->nocong || RPC_IS_SWAPPER(task))
-+ return 1;
-+
- if (req->rq_cong)
- return 1;
- dprintk("RPC: %4d xprt_cwnd_limited cong = %ld cwnd = %ld\n",
diff --git a/packages/linux/linux-wrt-2.4.20/140-ebtables-brnf-5.patch b/packages/linux/linux-wrt-2.4.20/140-ebtables-brnf-5.patch
deleted file mode 100644
index 70fc354496..0000000000
--- a/packages/linux/linux-wrt-2.4.20/140-ebtables-brnf-5.patch
+++ /dev/null
@@ -1,5557 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/net/bridge/br_private.h~140-ebtables-brnf-5 2005-01-07 02:52:47.206944000 -0500
-+++ linux-2.4.20/net/bridge/br_private.h 2005-01-07 02:57:30.880819576 -0500
-@@ -145,8 +145,10 @@
- /* br_forward.c */
- extern void br_deliver(struct net_bridge_port *to,
- struct sk_buff *skb);
-+extern int br_dev_queue_push_xmit(struct sk_buff *skb);
- extern void br_forward(struct net_bridge_port *to,
- struct sk_buff *skb);
-+extern int br_forward_finish(struct sk_buff *skb);
- extern void br_flood_deliver(struct net_bridge *br,
- struct sk_buff *skb,
- int clone);
-@@ -167,7 +169,8 @@
- int *ifindices);
-
- /* br_input.c */
--extern void br_handle_frame(struct sk_buff *skb);
-+extern int br_handle_frame_finish(struct sk_buff *skb);
-+extern int br_handle_frame(struct sk_buff *skb);
-
- /* br_ioctl.c */
- extern void br_call_ioctl_atomic(void (*fn)(void));
-@@ -178,6 +181,10 @@
- unsigned long arg2);
- extern int br_ioctl_deviceless_stub(unsigned long arg);
-
-+/* br_netfilter.c */
-+extern int br_netfilter_init(void);
-+extern void br_netfilter_fini(void);
-+
- /* br_stp.c */
- extern int br_is_root_bridge(struct net_bridge *br);
- extern struct net_bridge_port *br_get_port(struct net_bridge *br,
---- linux-2.4.20/include/linux/if_bridge.h~140-ebtables-brnf-5 2001-11-22 14:47:12.000000000 -0500
-+++ linux-2.4.20/include/linux/if_bridge.h 2005-01-07 02:57:30.880819576 -0500
-@@ -102,7 +102,8 @@
- struct net_bridge_port;
-
- extern int (*br_ioctl_hook)(unsigned long arg);
--extern void (*br_handle_frame_hook)(struct sk_buff *skb);
-+extern int (*br_handle_frame_hook)(struct sk_buff *skb);
-+extern int (*br_should_route_hook)(struct sk_buff **pskb);
-
- #endif
-
---- linux-2.4.20/net/core/dev.c~140-ebtables-brnf-5 2005-01-07 02:52:47.208944000 -0500
-+++ linux-2.4.20/net/core/dev.c 2005-01-07 02:57:30.882819272 -0500
-@@ -1393,7 +1393,7 @@
-
-
- #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
--void (*br_handle_frame_hook)(struct sk_buff *skb) = NULL;
-+int (*br_handle_frame_hook)(struct sk_buff *skb) = NULL;
- #endif
-
- static __inline__ int handle_bridge(struct sk_buff *skb,
-@@ -1410,7 +1410,6 @@
- }
- }
-
-- br_handle_frame_hook(skb);
- return ret;
- }
-
-@@ -1466,11 +1465,16 @@
- if (skb->dev->divert && skb->dev->divert->divert)
- ret = handle_diverter(skb);
- #endif /* CONFIG_NET_DIVERT */
--
-+
- #if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
- if (skb->dev->br_port != NULL &&
-- br_handle_frame_hook != NULL) {
-- return handle_bridge(skb, pt_prev);
-+ br_handle_frame_hook != NULL) {
-+ int ret;
-+
-+ ret = handle_bridge(skb, pt_prev);
-+ if (br_handle_frame_hook(skb) == 0)
-+ return ret;
-+ pt_prev = NULL;
- }
- #endif
-
-@@ -1866,7 +1870,7 @@
- * are adjusted, %RTM_NEWLINK is sent to the routing socket and the
- * function returns zero.
- */
--
-+
- int netdev_set_master(struct net_device *slave, struct net_device *master)
- {
- struct net_device *old = slave->master;
---- linux-2.4.20/net/bridge/br_input.c~140-ebtables-brnf-5 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/bridge/br_input.c 2005-01-07 02:57:30.882819272 -0500
-@@ -24,6 +24,9 @@
-
- static int br_pass_frame_up_finish(struct sk_buff *skb)
- {
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug = 0;
-+#endif
- netif_rx(skb);
-
- return 0;
-@@ -46,7 +49,7 @@
- br_pass_frame_up_finish);
- }
-
--static int br_handle_frame_finish(struct sk_buff *skb)
-+int br_handle_frame_finish(struct sk_buff *skb)
- {
- struct net_bridge *br;
- unsigned char *dest;
-@@ -112,7 +115,7 @@
- return 0;
- }
-
--void br_handle_frame(struct sk_buff *skb)
-+int br_handle_frame(struct sk_buff *skb)
- {
- struct net_bridge *br;
- unsigned char *dest;
-@@ -146,25 +149,35 @@
- goto handle_special_frame;
-
- if (p->state == BR_STATE_FORWARDING) {
-+
-+ if (br_should_route_hook && br_should_route_hook(&skb)) {
-+ read_unlock(&br->lock);
-+ return -1;
-+ }
-+
-+ if (!memcmp(p->br->dev.dev_addr, dest, ETH_ALEN))
-+ skb->pkt_type = PACKET_HOST;
-+
- NF_HOOK(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
- br_handle_frame_finish);
- read_unlock(&br->lock);
-- return;
-+ return 0;
- }
-
- err:
- read_unlock(&br->lock);
- err_nolock:
- kfree_skb(skb);
-- return;
-+ return 0;
-
- handle_special_frame:
- if (!dest[5]) {
- br_stp_handle_bpdu(skb);
- read_unlock(&br->lock);
-- return;
-+ return 0;
- }
-
- read_unlock(&br->lock);
- kfree_skb(skb);
-+ return 0;
- }
---- linux-2.4.20/net/bridge/br_forward.c~140-ebtables-brnf-5 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/bridge/br_forward.c 2005-01-07 02:57:30.883819120 -0500
-@@ -30,18 +30,22 @@
- return 1;
- }
-
--static int __dev_queue_push_xmit(struct sk_buff *skb)
-+int br_dev_queue_push_xmit(struct sk_buff *skb)
- {
-+#ifdef CONFIG_NETFILTER
-+ if (skb->nf_bridge)
-+ memcpy(skb->data - 16, skb->nf_bridge->hh, 16);
-+#endif
- skb_push(skb, ETH_HLEN);
- dev_queue_xmit(skb);
-
- return 0;
- }
-
--static int __br_forward_finish(struct sk_buff *skb)
-+int br_forward_finish(struct sk_buff *skb)
- {
- NF_HOOK(PF_BRIDGE, NF_BR_POST_ROUTING, skb, NULL, skb->dev,
-- __dev_queue_push_xmit);
-+ br_dev_queue_push_xmit);
-
- return 0;
- }
-@@ -49,8 +53,11 @@
- static void __br_deliver(struct net_bridge_port *to, struct sk_buff *skb)
- {
- skb->dev = to->dev;
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug = 0;
-+#endif
- NF_HOOK(PF_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev,
-- __br_forward_finish);
-+ br_forward_finish);
- }
-
- static void __br_forward(struct net_bridge_port *to, struct sk_buff *skb)
-@@ -61,7 +68,7 @@
- skb->dev = to->dev;
-
- NF_HOOK(PF_BRIDGE, NF_BR_FORWARD, skb, indev, skb->dev,
-- __br_forward_finish);
-+ br_forward_finish);
- }
-
- /* called under bridge lock */
---- linux-2.4.20/net/bridge/br.c~140-ebtables-brnf-5 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/bridge/br.c 2005-01-07 02:57:30.885818816 -0500
-@@ -29,6 +29,8 @@
- #include "../atm/lec.h"
- #endif
-
-+int (*br_should_route_hook) (struct sk_buff **pskb) = NULL;
-+
- void br_dec_use_count()
- {
- MOD_DEC_USE_COUNT;
-@@ -43,6 +45,10 @@
- {
- printk(KERN_INFO "NET4: Ethernet Bridge 008 for NET4.0\n");
-
-+#ifdef CONFIG_NETFILTER
-+ if (br_netfilter_init())
-+ return 1;
-+#endif
- br_handle_frame_hook = br_handle_frame;
- br_ioctl_hook = br_ioctl_deviceless_stub;
- #if defined(CONFIG_ATM_LANE) || defined(CONFIG_ATM_LANE_MODULE)
-@@ -61,6 +67,9 @@
-
- static void __exit br_deinit(void)
- {
-+#ifdef CONFIG_NETFILTER
-+ br_netfilter_fini();
-+#endif
- unregister_netdevice_notifier(&br_device_notifier);
- br_call_ioctl_atomic(__br_clear_ioctl_hook);
-
-@@ -74,7 +83,7 @@
- #endif
- }
-
--EXPORT_NO_SYMBOLS;
-+EXPORT_SYMBOL(br_should_route_hook);
-
- module_init(br_init)
- module_exit(br_deinit)
---- linux-2.4.20/net/bridge/Makefile~140-ebtables-brnf-5 2000-12-29 17:07:24.000000000 -0500
-+++ linux-2.4.20/net/bridge/Makefile 2005-01-07 02:57:30.885818816 -0500
-@@ -7,10 +7,17 @@
- #
- # Note 2! The CFLAGS definition is now in the main makefile...
-
-+export-objs := br.o
-+
- O_TARGET := bridge.o
- obj-y := br.o br_device.o br_fdb.o br_forward.o br_if.o br_input.o \
- br_ioctl.o br_notify.o br_stp.o br_stp_bpdu.o \
- br_stp_if.o br_stp_timer.o
-+
-+ifeq ($(CONFIG_NETFILTER),y)
-+obj-y += br_netfilter.o
-+endif
-+
- obj-m := $(O_TARGET)
-
- include $(TOPDIR)/Rules.make
---- linux-2.4.20/include/linux/netfilter_bridge.h~140-ebtables-brnf-5 2001-06-11 22:15:27.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge.h 2005-01-07 02:57:30.885818816 -0500
-@@ -1,11 +1,14 @@
- #ifndef __LINUX_BRIDGE_NETFILTER_H
- #define __LINUX_BRIDGE_NETFILTER_H
-
--/* bridge-specific defines for netfilter.
-+/* bridge-specific defines for netfilter.
- */
-
- #include <linux/config.h>
- #include <linux/netfilter.h>
-+#if defined(__KERNEL__) && defined(CONFIG_NETFILTER)
-+#include <asm/atomic.h>
-+#endif
-
- /* Bridge Hooks */
- /* After promisc drops, checksum checks. */
-@@ -18,7 +21,49 @@
- #define NF_BR_LOCAL_OUT 3
- /* Packets about to hit the wire. */
- #define NF_BR_POST_ROUTING 4
--#define NF_BR_NUMHOOKS 5
-+/* Not really a hook, but used for the ebtables broute table */
-+#define NF_BR_BROUTING 5
-+#define NF_BR_NUMHOOKS 6
-
-+#ifdef __KERNEL__
-
-+#define BRNF_PKT_TYPE 0x01
-+#define BRNF_BRIDGED_DNAT 0x02
-+#define BRNF_DONT_TAKE_PARENT 0x04
-+#define BRNF_BRIDGED 0x08
-+
-+enum nf_br_hook_priorities {
-+ NF_BR_PRI_FIRST = INT_MIN,
-+ NF_BR_PRI_NAT_DST_BRIDGED = -300,
-+ NF_BR_PRI_FILTER_BRIDGED = -200,
-+ NF_BR_PRI_BRNF = 0,
-+ NF_BR_PRI_NAT_DST_OTHER = 100,
-+ NF_BR_PRI_FILTER_OTHER = 200,
-+ NF_BR_PRI_NAT_SRC = 300,
-+ NF_BR_PRI_LAST = INT_MAX,
-+};
-+
-+#ifdef CONFIG_NETFILTER
-+static inline
-+struct nf_bridge_info *nf_bridge_alloc(struct sk_buff *skb)
-+{
-+ struct nf_bridge_info **nf_bridge = &(skb->nf_bridge);
-+
-+ if ((*nf_bridge = kmalloc(sizeof(**nf_bridge), GFP_ATOMIC)) != NULL) {
-+ atomic_set(&(*nf_bridge)->use, 1);
-+ (*nf_bridge)->mask = 0;
-+ (*nf_bridge)->physindev = (*nf_bridge)->physoutdev = NULL;
-+ }
-+
-+ return *nf_bridge;
-+}
-+
-+struct bridge_skb_cb {
-+ union {
-+ __u32 ipv4;
-+ } daddr;
-+};
-+#endif /* CONFIG_NETFILTER */
-+
-+#endif /* __KERNEL__ */
- #endif
---- linux-2.4.20/net/Makefile~140-ebtables-brnf-5 2005-01-07 02:55:48.037454000 -0500
-+++ linux-2.4.20/net/Makefile 2005-01-07 02:57:30.886818664 -0500
-@@ -7,7 +7,8 @@
-
- O_TARGET := network.o
-
--mod-subdirs := ipv4/netfilter ipv6/netfilter ipx irda bluetooth atm netlink sched core
-+mod-subdirs := ipv4/netfilter ipv6/netfilter bridge/netfilter ipx irda \
-+ bluetooth atm netlink sched core
- export-objs := netsyms.o
-
- subdir-y := core ethernet
-@@ -26,6 +27,12 @@
- endif
- endif
-
-+ifneq ($(CONFIG_BRIDGE),n)
-+ifneq ($(CONFIG_BRIDGE),)
-+subdir-$(CONFIG_BRIDGE) += bridge/netfilter
-+endif
-+endif
-+
- subdir-$(CONFIG_KHTTPD) += khttpd
- subdir-$(CONFIG_PACKET) += packet
- subdir-$(CONFIG_NET_SCHED) += sched
---- linux-2.4.20/net/Config.in~140-ebtables-brnf-5 2005-01-07 02:55:48.037454000 -0500
-+++ linux-2.4.20/net/Config.in 2005-01-07 02:57:30.886818664 -0500
-@@ -68,6 +68,9 @@
- source net/decnet/Config.in
- fi
- dep_tristate '802.1d Ethernet Bridging' CONFIG_BRIDGE $CONFIG_INET
-+if [ "$CONFIG_BRIDGE" != "n" -a "$CONFIG_NETFILTER" != "n" ]; then
-+ source net/bridge/netfilter/Config.in
-+fi
- if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
- tristate 'CCITT X.25 Packet Layer (EXPERIMENTAL)' CONFIG_X25
- tristate 'LAPB Data Link Driver (EXPERIMENTAL)' CONFIG_LAPB
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/Makefile 2005-01-07 02:57:30.886818664 -0500
-@@ -0,0 +1,30 @@
-+#
-+# Makefile for the netfilter modules on top of bridging.
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+# Note 2! The CFLAGS definition is now in the main makefile...
-+
-+O_TARGET := netfilter.o
-+
-+export-objs := ebtables.o
-+
-+obj-$(CONFIG_BRIDGE_NF_EBTABLES) += ebtables.o
-+obj-$(CONFIG_BRIDGE_EBT_T_FILTER) += ebtable_filter.o
-+obj-$(CONFIG_BRIDGE_EBT_T_NAT) += ebtable_nat.o
-+obj-$(CONFIG_BRIDGE_EBT_BROUTE) += ebtable_broute.o
-+obj-$(CONFIG_BRIDGE_EBT_IPF) += ebt_ip.o
-+obj-$(CONFIG_BRIDGE_EBT_ARPF) += ebt_arp.o
-+obj-$(CONFIG_BRIDGE_EBT_VLANF) += ebt_vlan.o
-+obj-$(CONFIG_BRIDGE_EBT_MARKF) += ebt_mark_m.o
-+obj-$(CONFIG_BRIDGE_EBT_802_3) += ebt_802_3.o
-+obj-$(CONFIG_BRIDGE_EBT_PKTTYPE) += ebt_pkttype.o
-+obj-$(CONFIG_BRIDGE_EBT_PKTTYPE) += ebt_stp.o
-+obj-$(CONFIG_BRIDGE_EBT_LOG) += ebt_log.o
-+obj-$(CONFIG_BRIDGE_EBT_SNAT) += ebt_snat.o
-+obj-$(CONFIG_BRIDGE_EBT_DNAT) += ebt_dnat.o
-+obj-$(CONFIG_BRIDGE_EBT_REDIRECT) += ebt_redirect.o
-+obj-$(CONFIG_BRIDGE_EBT_MARK_T) += ebt_mark.o
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/Config.in 2005-01-07 02:57:30.886818664 -0500
-@@ -0,0 +1,19 @@
-+#
-+# Bridge netfilter configuration
-+#
-+dep_tristate ' Bridge: ebtables' CONFIG_BRIDGE_NF_EBTABLES $CONFIG_BRIDGE
-+dep_tristate ' ebt: filter table support' CONFIG_BRIDGE_EBT_T_FILTER $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: nat table support' CONFIG_BRIDGE_EBT_T_NAT $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: broute table support' CONFIG_BRIDGE_EBT_BROUTE $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: log support' CONFIG_BRIDGE_EBT_LOG $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: IP filter support' CONFIG_BRIDGE_EBT_IPF $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: ARP filter support' CONFIG_BRIDGE_EBT_ARPF $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: 802.1Q VLAN filter support' CONFIG_BRIDGE_EBT_VLANF $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: 802.3 filter support' CONFIG_BRIDGE_EBT_802_3 $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: packet type filter support' CONFIG_BRIDGE_EBT_PKTTYPE $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: STP filter support' CONFIG_BRIDGE_EBT_STP $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: mark filter support' CONFIG_BRIDGE_EBT_MARKF $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: snat target support' CONFIG_BRIDGE_EBT_SNAT $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: dnat target support' CONFIG_BRIDGE_EBT_DNAT $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: redirect target support' CONFIG_BRIDGE_EBT_REDIRECT $CONFIG_BRIDGE_NF_EBTABLES
-+dep_tristate ' ebt: mark target support' CONFIG_BRIDGE_EBT_MARK_T $CONFIG_BRIDGE_NF_EBTABLES
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebtable_filter.c 2005-01-07 02:57:30.887818512 -0500
-@@ -0,0 +1,90 @@
-+/*
-+ * ebtable_filter
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/module.h>
-+
-+#define FILTER_VALID_HOOKS ((1 << NF_BR_LOCAL_IN) | (1 << NF_BR_FORWARD) | \
-+ (1 << NF_BR_LOCAL_OUT))
-+
-+static struct ebt_entries initial_chains[] =
-+{
-+ {0, "INPUT", 0, EBT_ACCEPT, 0},
-+ {0, "FORWARD", 0, EBT_ACCEPT, 0},
-+ {0, "OUTPUT", 0, EBT_ACCEPT, 0}
-+};
-+
-+static struct ebt_replace initial_table =
-+{
-+ "filter", FILTER_VALID_HOOKS, 0, 3 * sizeof(struct ebt_entries),
-+ { [NF_BR_LOCAL_IN]&initial_chains[0], [NF_BR_FORWARD]&initial_chains[1],
-+ [NF_BR_LOCAL_OUT]&initial_chains[2] }, 0, NULL, (char *)initial_chains
-+};
-+
-+static int check(const struct ebt_table_info *info, unsigned int valid_hooks)
-+{
-+ if (valid_hooks & ~FILTER_VALID_HOOKS)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_table frame_filter =
-+{
-+ {NULL, NULL}, "filter", &initial_table, FILTER_VALID_HOOKS,
-+ RW_LOCK_UNLOCKED, check, NULL
-+};
-+
-+static unsigned int
-+ebt_hook (unsigned int hook, struct sk_buff **pskb, const struct net_device *in,
-+ const struct net_device *out, int (*okfn)(struct sk_buff *))
-+{
-+ return ebt_do_table(hook, pskb, in, out, &frame_filter);
-+}
-+
-+static struct nf_hook_ops ebt_ops_filter[] = {
-+ { { NULL, NULL }, ebt_hook, PF_BRIDGE, NF_BR_LOCAL_IN,
-+ NF_BR_PRI_FILTER_BRIDGED},
-+ { { NULL, NULL }, ebt_hook, PF_BRIDGE, NF_BR_FORWARD,
-+ NF_BR_PRI_FILTER_BRIDGED},
-+ { { NULL, NULL }, ebt_hook, PF_BRIDGE, NF_BR_LOCAL_OUT,
-+ NF_BR_PRI_FILTER_OTHER}
-+};
-+
-+static int __init init(void)
-+{
-+ int i, j, ret;
-+
-+ ret = ebt_register_table(&frame_filter);
-+ if (ret < 0)
-+ return ret;
-+ for (i = 0; i < sizeof(ebt_ops_filter) / sizeof(ebt_ops_filter[0]); i++)
-+ if ((ret = nf_register_hook(&ebt_ops_filter[i])) < 0)
-+ goto cleanup;
-+ return ret;
-+cleanup:
-+ for (j = 0; j < i; j++)
-+ nf_unregister_hook(&ebt_ops_filter[j]);
-+ ebt_unregister_table(&frame_filter);
-+ return ret;
-+}
-+
-+static void __exit fini(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < sizeof(ebt_ops_filter) / sizeof(ebt_ops_filter[0]); i++)
-+ nf_unregister_hook(&ebt_ops_filter[i]);
-+ ebt_unregister_table(&frame_filter);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebtable_nat.c 2005-01-07 02:57:30.887818512 -0500
-@@ -0,0 +1,96 @@
-+/*
-+ * ebtable_nat
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/module.h>
-+#define NAT_VALID_HOOKS ((1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_LOCAL_OUT) | \
-+ (1 << NF_BR_POST_ROUTING))
-+
-+static struct ebt_entries initial_chains[] =
-+{
-+ {0, "PREROUTING", 0, EBT_ACCEPT, 0},
-+ {0, "OUTPUT", 0, EBT_ACCEPT, 0},
-+ {0, "POSTROUTING", 0, EBT_ACCEPT, 0}
-+};
-+
-+static struct ebt_replace initial_table =
-+{
-+ "nat", NAT_VALID_HOOKS, 0, 3 * sizeof(struct ebt_entries),
-+ { [NF_BR_PRE_ROUTING]&initial_chains[0], [NF_BR_LOCAL_OUT]&initial_chains[1],
-+ [NF_BR_POST_ROUTING]&initial_chains[2] }, 0, NULL, (char *)initial_chains
-+};
-+
-+static int check(const struct ebt_table_info *info, unsigned int valid_hooks)
-+{
-+ if (valid_hooks & ~NAT_VALID_HOOKS)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_table frame_nat =
-+{
-+ {NULL, NULL}, "nat", &initial_table, NAT_VALID_HOOKS,
-+ RW_LOCK_UNLOCKED, check, NULL
-+};
-+
-+static unsigned int
-+ebt_nat_dst(unsigned int hook, struct sk_buff **pskb, const struct net_device *in
-+ , const struct net_device *out, int (*okfn)(struct sk_buff *))
-+{
-+ return ebt_do_table(hook, pskb, in, out, &frame_nat);
-+}
-+
-+static unsigned int
-+ebt_nat_src(unsigned int hook, struct sk_buff **pskb, const struct net_device *in
-+ , const struct net_device *out, int (*okfn)(struct sk_buff *))
-+{
-+ return ebt_do_table(hook, pskb, in, out, &frame_nat);
-+}
-+
-+static struct nf_hook_ops ebt_ops_nat[] = {
-+ { { NULL, NULL }, ebt_nat_dst, PF_BRIDGE, NF_BR_LOCAL_OUT,
-+ NF_BR_PRI_NAT_DST_OTHER},
-+ { { NULL, NULL }, ebt_nat_src, PF_BRIDGE, NF_BR_POST_ROUTING,
-+ NF_BR_PRI_NAT_SRC},
-+ { { NULL, NULL }, ebt_nat_dst, PF_BRIDGE, NF_BR_PRE_ROUTING,
-+ NF_BR_PRI_NAT_DST_BRIDGED},
-+};
-+
-+static int __init init(void)
-+{
-+ int i, ret, j;
-+
-+ ret = ebt_register_table(&frame_nat);
-+ if (ret < 0)
-+ return ret;
-+ for (i = 0; i < sizeof(ebt_ops_nat) / sizeof(ebt_ops_nat[0]); i++)
-+ if ((ret = nf_register_hook(&ebt_ops_nat[i])) < 0)
-+ goto cleanup;
-+ return ret;
-+cleanup:
-+ for (j = 0; j < i; j++)
-+ nf_unregister_hook(&ebt_ops_nat[j]);
-+ ebt_unregister_table(&frame_nat);
-+ return ret;
-+}
-+
-+static void __exit fini(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < sizeof(ebt_ops_nat) / sizeof(ebt_ops_nat[0]); i++)
-+ nf_unregister_hook(&ebt_ops_nat[i]);
-+ ebt_unregister_table(&frame_nat);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebtable_broute.c 2005-01-07 02:57:30.887818512 -0500
-@@ -0,0 +1,79 @@
-+/*
-+ * ebtable_broute
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ * This table lets you choose between routing and bridging for frames
-+ * entering on a bridge enslaved nic. This table is traversed before any
-+ * other ebtables table. See net/bridge/br_input.c.
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/module.h>
-+#include <linux/if_bridge.h>
-+#include <linux/brlock.h>
-+
-+// EBT_ACCEPT means the frame will be bridged
-+// EBT_DROP means the frame will be routed
-+static struct ebt_entries initial_chain =
-+ {0, "BROUTING", 0, EBT_ACCEPT, 0};
-+
-+static struct ebt_replace initial_table =
-+{
-+ "broute", 1 << NF_BR_BROUTING, 0, sizeof(struct ebt_entries),
-+ { [NF_BR_BROUTING]&initial_chain}, 0, NULL, (char *)&initial_chain
-+};
-+
-+static int check(const struct ebt_table_info *info, unsigned int valid_hooks)
-+{
-+ if (valid_hooks & ~(1 << NF_BR_BROUTING))
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_table broute_table =
-+{
-+ {NULL, NULL}, "broute", &initial_table, 1 << NF_BR_BROUTING,
-+ RW_LOCK_UNLOCKED, check, NULL
-+};
-+
-+static int ebt_broute(struct sk_buff **pskb)
-+{
-+ int ret;
-+
-+ ret = ebt_do_table(NF_BR_BROUTING, pskb, (*pskb)->dev, NULL,
-+ &broute_table);
-+ if (ret == NF_DROP)
-+ return 1; // route it
-+ return 0; // bridge it
-+}
-+
-+static int __init init(void)
-+{
-+ int ret;
-+
-+ ret = ebt_register_table(&broute_table);
-+ if (ret < 0)
-+ return ret;
-+ br_write_lock_bh(BR_NETPROTO_LOCK);
-+ // see br_input.c
-+ br_should_route_hook = ebt_broute;
-+ br_write_unlock_bh(BR_NETPROTO_LOCK);
-+ return ret;
-+}
-+
-+static void __exit fini(void)
-+{
-+ br_write_lock_bh(BR_NETPROTO_LOCK);
-+ br_should_route_hook = NULL;
-+ br_write_unlock_bh(BR_NETPROTO_LOCK);
-+ ebt_unregister_table(&broute_table);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_802_3.c 2005-01-07 02:57:30.888818360 -0500
-@@ -0,0 +1,74 @@
-+/*
-+ * 802_3
-+ *
-+ * Author:
-+ * Chris Vitale csv@bluetail.com
-+ *
-+ * May 2003
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_802_3.h>
-+#include <linux/module.h>
-+
-+static int ebt_filter_802_3(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *data, unsigned int datalen)
-+{
-+ struct ebt_802_3_info *info = (struct ebt_802_3_info *)data;
-+ struct ebt_802_3_hdr *hdr = (struct ebt_802_3_hdr *)skb->mac.ethernet;
-+ uint16_t type = hdr->llc.ui.ctrl & IS_UI ? hdr->llc.ui.type : hdr->llc.ni.type;
-+
-+ if (info->bitmask & EBT_802_3_SAP) {
-+ if (FWINV(info->sap != hdr->llc.ui.ssap, EBT_802_3_SAP))
-+ return EBT_NOMATCH;
-+ if (FWINV(info->sap != hdr->llc.ui.dsap, EBT_802_3_SAP))
-+ return EBT_NOMATCH;
-+ }
-+
-+ if (info->bitmask & EBT_802_3_TYPE) {
-+ if (!(hdr->llc.ui.dsap == CHECK_TYPE && hdr->llc.ui.ssap == CHECK_TYPE))
-+ return EBT_NOMATCH;
-+ if (FWINV(info->type != type, EBT_802_3_TYPE))
-+ return EBT_NOMATCH;
-+ }
-+
-+ return EBT_MATCH;
-+}
-+
-+static struct ebt_match filter_802_3;
-+static int ebt_802_3_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_802_3_info *info = (struct ebt_802_3_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_802_3_info)))
-+ return -EINVAL;
-+ if (info->bitmask & ~EBT_802_3_MASK || info->invflags & ~EBT_802_3_MASK)
-+ return -EINVAL;
-+
-+ return 0;
-+}
-+
-+static struct ebt_match filter_802_3 =
-+{
-+ .name = EBT_802_3_MATCH,
-+ .match = ebt_filter_802_3,
-+ .check = ebt_802_3_check,
-+ .me = THIS_MODULE,
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_match(&filter_802_3);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_802_3);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_mark.c 2005-01-07 02:57:30.888818360 -0500
-@@ -0,0 +1,66 @@
-+/*
-+ * ebt_mark
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * July, 2002
-+ *
-+ */
-+
-+// The mark target can be used in any chain
-+// I believe adding a mangle table just for marking is total overkill
-+// Marking a frame doesn't really change anything in the frame anyway
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_mark_t.h>
-+#include <linux/module.h>
-+
-+static int ebt_target_mark(struct sk_buff **pskb, unsigned int hooknr,
-+ const struct net_device *in, const struct net_device *out,
-+ const void *data, unsigned int datalen)
-+{
-+ struct ebt_mark_t_info *info = (struct ebt_mark_t_info *)data;
-+
-+ if ((*pskb)->nfmark != info->mark) {
-+ (*pskb)->nfmark = info->mark;
-+ (*pskb)->nfcache |= NFC_ALTERED;
-+ }
-+ return info->target;
-+}
-+
-+static int ebt_target_mark_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_mark_t_info *info = (struct ebt_mark_t_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_mark_t_info)))
-+ return -EINVAL;
-+ if (BASE_CHAIN && info->target == EBT_RETURN)
-+ return -EINVAL;
-+ CLEAR_BASE_CHAIN_BIT;
-+ if (INVALID_TARGET)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_target mark_target =
-+{
-+ {NULL, NULL}, EBT_MARK_TARGET, ebt_target_mark,
-+ ebt_target_mark_check, NULL, THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_target(&mark_target);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_target(&mark_target);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_mark_m.c 2005-01-07 02:57:30.888818360 -0500
-@@ -0,0 +1,61 @@
-+/*
-+ * ebt_mark_m
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * July, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_mark_m.h>
-+#include <linux/module.h>
-+
-+static int ebt_filter_mark(const struct sk_buff *skb,
-+ const struct net_device *in, const struct net_device *out, const void *data,
-+ unsigned int datalen)
-+{
-+ struct ebt_mark_m_info *info = (struct ebt_mark_m_info *) data;
-+
-+ if (info->bitmask & EBT_MARK_OR)
-+ return !(!!(skb->nfmark & info->mask) ^ info->invert);
-+ return !(((skb->nfmark & info->mask) == info->mark) ^ info->invert);
-+}
-+
-+static int ebt_mark_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_mark_m_info *info = (struct ebt_mark_m_info *) data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_mark_m_info)))
-+ return -EINVAL;
-+ if (info->bitmask & ~EBT_MARK_MASK)
-+ return -EINVAL;
-+ if ((info->bitmask & EBT_MARK_OR) && (info->bitmask & EBT_MARK_AND))
-+ return -EINVAL;
-+ if (!info->bitmask)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_match filter_mark =
-+{
-+ {NULL, NULL}, EBT_MARK_MATCH, ebt_filter_mark, ebt_mark_check, NULL,
-+ THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_match(&filter_mark);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_mark);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_pkttype.c 2005-01-07 02:57:30.888818360 -0500
-@@ -0,0 +1,60 @@
-+/*
-+ * ebt_pkttype
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bdschuym@pandora.be>
-+ *
-+ * April, 2003
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_pkttype.h>
-+#include <linux/module.h>
-+
-+static int ebt_filter_pkttype(const struct sk_buff *skb,
-+ const struct net_device *in,
-+ const struct net_device *out,
-+ const void *data,
-+ unsigned int datalen)
-+{
-+ struct ebt_pkttype_info *info = (struct ebt_pkttype_info *)data;
-+
-+ return (skb->pkt_type != info->pkt_type) ^ info->invert;
-+}
-+
-+static int ebt_pkttype_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_pkttype_info *info = (struct ebt_pkttype_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_pkttype_info)))
-+ return -EINVAL;
-+ if (info->invert != 0 && info->invert != 1)
-+ return -EINVAL;
-+ /* Allow any pkt_type value */
-+ return 0;
-+}
-+
-+static struct ebt_match filter_pkttype =
-+{
-+ .name = EBT_PKTTYPE_MATCH,
-+ .match = ebt_filter_pkttype,
-+ .check = ebt_pkttype_check,
-+ .me = THIS_MODULE,
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_match(&filter_pkttype);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_pkttype);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_stp.c 2005-01-07 02:57:30.889818208 -0500
-@@ -0,0 +1,191 @@
-+/*
-+ * ebt_stp
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bdschuym@pandora.be>
-+ * Stephen Hemminger <shemminger@osdl.org>
-+ *
-+ * June, 2003
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_stp.h>
-+#include <linux/module.h>
-+
-+#define BPDU_TYPE_CONFIG 0
-+#define BPDU_TYPE_TCN 0x80
-+
-+struct stp_header {
-+ uint8_t dsap;
-+ uint8_t ssap;
-+ uint8_t ctrl;
-+ uint8_t pid;
-+ uint8_t vers;
-+ uint8_t type;
-+};
-+
-+struct stp_config_pdu {
-+ uint8_t flags;
-+ uint8_t root[8];
-+ uint8_t root_cost[4];
-+ uint8_t sender[8];
-+ uint8_t port[2];
-+ uint8_t msg_age[2];
-+ uint8_t max_age[2];
-+ uint8_t hello_time[2];
-+ uint8_t forward_delay[2];
-+};
-+
-+#define NR16(p) (p[0] << 8 | p[1])
-+#define NR32(p) ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3])
-+
-+static int ebt_filter_config(struct ebt_stp_info *info,
-+ struct stp_config_pdu *stpc)
-+{
-+ struct ebt_stp_config_info *c;
-+ uint16_t v16;
-+ uint32_t v32;
-+ int verdict, i;
-+
-+ c = &info->config;
-+ if ((info->bitmask & EBT_STP_FLAGS) &&
-+ FWINV(c->flags != stpc->flags, EBT_STP_FLAGS))
-+ return EBT_NOMATCH;
-+ if (info->bitmask & EBT_STP_ROOTPRIO) {
-+ v16 = NR16(stpc->root);
-+ if (FWINV(v16 < c->root_priol ||
-+ v16 > c->root_priou, EBT_STP_ROOTPRIO))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_ROOTADDR) {
-+ verdict = 0;
-+ for (i = 0; i < 6; i++)
-+ verdict |= (stpc->root[2+i] ^ c->root_addr[i]) &
-+ c->root_addrmsk[i];
-+ if (FWINV(verdict != 0, EBT_STP_ROOTADDR))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_ROOTCOST) {
-+ v32 = NR32(stpc->root_cost);
-+ if (FWINV(v32 < c->root_costl ||
-+ v32 > c->root_costu, EBT_STP_ROOTCOST))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_SENDERPRIO) {
-+ v16 = NR16(stpc->sender);
-+ if (FWINV(v16 < c->sender_priol ||
-+ v16 > c->sender_priou, EBT_STP_SENDERPRIO))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_SENDERADDR) {
-+ verdict = 0;
-+ for (i = 0; i < 6; i++)
-+ verdict |= (stpc->sender[2+i] ^ c->sender_addr[i]) &
-+ c->sender_addrmsk[i];
-+ if (FWINV(verdict != 0, EBT_STP_SENDERADDR))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_PORT) {
-+ v16 = NR16(stpc->port);
-+ if (FWINV(v16 < c->portl ||
-+ v16 > c->portu, EBT_STP_PORT))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_MSGAGE) {
-+ v16 = NR16(stpc->msg_age);
-+ if (FWINV(v16 < c->msg_agel ||
-+ v16 > c->msg_ageu, EBT_STP_MSGAGE))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_MAXAGE) {
-+ v16 = NR16(stpc->max_age);
-+ if (FWINV(v16 < c->max_agel ||
-+ v16 > c->max_ageu, EBT_STP_MAXAGE))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_HELLOTIME) {
-+ v16 = NR16(stpc->hello_time);
-+ if (FWINV(v16 < c->hello_timel ||
-+ v16 > c->hello_timeu, EBT_STP_HELLOTIME))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_STP_FWDD) {
-+ v16 = NR16(stpc->forward_delay);
-+ if (FWINV(v16 < c->forward_delayl ||
-+ v16 > c->forward_delayu, EBT_STP_FWDD))
-+ return EBT_NOMATCH;
-+ }
-+ return EBT_MATCH;
-+}
-+
-+static int ebt_filter_stp(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *data, unsigned int datalen)
-+{
-+ struct ebt_stp_info *info = (struct ebt_stp_info *)data;
-+ struct stp_header stph;
-+ uint8_t header[6] = {0x42, 0x42, 0x03, 0x00, 0x00, 0x00};
-+ if (skb_copy_bits(skb, 0, &stph, sizeof(stph)))
-+ return EBT_NOMATCH;
-+
-+ /* The stp code only considers these */
-+ if (memcmp(&stph, header, sizeof(header)))
-+ return EBT_NOMATCH;
-+
-+ if (info->bitmask & EBT_STP_TYPE
-+ && FWINV(info->type != stph.type, EBT_STP_TYPE))
-+ return EBT_NOMATCH;
-+
-+ if (stph.type == BPDU_TYPE_CONFIG &&
-+ info->bitmask & EBT_STP_CONFIG_MASK) {
-+ struct stp_config_pdu stpc;
-+
-+ if (skb_copy_bits(skb, sizeof(stph), &stpc, sizeof(stpc)))
-+ return EBT_NOMATCH;
-+ return ebt_filter_config(info, &stpc);
-+ }
-+ return EBT_MATCH;
-+}
-+
-+static int ebt_stp_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_stp_info *info = (struct ebt_stp_info *)data;
-+ int len = EBT_ALIGN(sizeof(struct ebt_stp_info));
-+ uint8_t bridge_ula[6] = { 0x01, 0x80, 0xc2, 0x00, 0x00, 0x00 };
-+ uint8_t msk[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
-+
-+ if (info->bitmask & ~EBT_STP_MASK || info->invflags & ~EBT_STP_MASK ||
-+ !(info->bitmask & EBT_STP_MASK))
-+ return -EINVAL;
-+ if (datalen != len)
-+ return -EINVAL;
-+ /* Make sure the match only receives stp frames */
-+ if (memcmp(e->destmac, bridge_ula, ETH_ALEN) ||
-+ memcmp(e->destmsk, msk, ETH_ALEN) || !(e->bitmask & EBT_DESTMAC))
-+ return -EINVAL;
-+
-+ return 0;
-+}
-+
-+static struct ebt_match filter_stp =
-+{
-+ .name = EBT_STP_MATCH,
-+ .match = ebt_filter_stp,
-+ .check = ebt_stp_check,
-+ .me = THIS_MODULE,
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_match(&filter_stp);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_stp);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_redirect.c 2005-01-07 02:57:30.889818208 -0500
-@@ -0,0 +1,71 @@
-+/*
-+ * ebt_redirect
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_redirect.h>
-+#include <linux/module.h>
-+#include <net/sock.h>
-+#include "../br_private.h"
-+
-+static int ebt_target_redirect(struct sk_buff **pskb, unsigned int hooknr,
-+ const struct net_device *in, const struct net_device *out,
-+ const void *data, unsigned int datalen)
-+{
-+ struct ebt_redirect_info *info = (struct ebt_redirect_info *)data;
-+
-+ if (hooknr != NF_BR_BROUTING)
-+ memcpy((**pskb).mac.ethernet->h_dest,
-+ in->br_port->br->dev.dev_addr, ETH_ALEN);
-+ else {
-+ memcpy((**pskb).mac.ethernet->h_dest,
-+ in->dev_addr, ETH_ALEN);
-+ (*pskb)->pkt_type = PACKET_HOST;
-+ }
-+ return info->target;
-+}
-+
-+static int ebt_target_redirect_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_redirect_info *info = (struct ebt_redirect_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_redirect_info)))
-+ return -EINVAL;
-+ if (BASE_CHAIN && info->target == EBT_RETURN)
-+ return -EINVAL;
-+ CLEAR_BASE_CHAIN_BIT;
-+ if ( (strcmp(tablename, "nat") || hookmask & ~(1 << NF_BR_PRE_ROUTING)) &&
-+ (strcmp(tablename, "broute") || hookmask & ~(1 << NF_BR_BROUTING)) )
-+ return -EINVAL;
-+ if (INVALID_TARGET)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_target redirect_target =
-+{
-+ {NULL, NULL}, EBT_REDIRECT_TARGET, ebt_target_redirect,
-+ ebt_target_redirect_check, NULL, THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_target(&redirect_target);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_target(&redirect_target);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_arp.c 2005-01-07 02:57:30.889818208 -0500
-@@ -0,0 +1,149 @@
-+/*
-+ * ebt_arp
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ * Tim Gardner <timg@tpi.com>
-+ *
-+ * April, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_arp.h>
-+#include <linux/if_arp.h>
-+#include <linux/if_ether.h>
-+#include <linux/module.h>
-+
-+static int ebt_filter_arp(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *data, unsigned int datalen)
-+{
-+ struct ebt_arp_info *info = (struct ebt_arp_info *)data;
-+
-+ if (info->bitmask & EBT_ARP_OPCODE && FWINV(info->opcode !=
-+ ((*skb).nh.arph)->ar_op, EBT_ARP_OPCODE))
-+ return EBT_NOMATCH;
-+ if (info->bitmask & EBT_ARP_HTYPE && FWINV(info->htype !=
-+ ((*skb).nh.arph)->ar_hrd, EBT_ARP_HTYPE))
-+ return EBT_NOMATCH;
-+ if (info->bitmask & EBT_ARP_PTYPE && FWINV(info->ptype !=
-+ ((*skb).nh.arph)->ar_pro, EBT_ARP_PTYPE))
-+ return EBT_NOMATCH;
-+
-+ if (info->bitmask & (EBT_ARP_SRC_IP | EBT_ARP_DST_IP))
-+ {
-+ uint32_t arp_len = sizeof(struct arphdr) +
-+ (2 * (((*skb).nh.arph)->ar_hln)) +
-+ (2 * (((*skb).nh.arph)->ar_pln));
-+ uint32_t dst;
-+ uint32_t src;
-+
-+ // Make sure the packet is long enough.
-+ if ((((*skb).nh.raw) + arp_len) > (*skb).tail)
-+ return EBT_NOMATCH;
-+ // IPv4 addresses are always 4 bytes.
-+ if (((*skb).nh.arph)->ar_pln != sizeof(uint32_t))
-+ return EBT_NOMATCH;
-+
-+ if (info->bitmask & EBT_ARP_SRC_IP) {
-+ memcpy(&src, ((*skb).nh.raw) + sizeof(struct arphdr) +
-+ ((*skb).nh.arph)->ar_hln, sizeof(uint32_t));
-+ if (FWINV(info->saddr != (src & info->smsk),
-+ EBT_ARP_SRC_IP))
-+ return EBT_NOMATCH;
-+ }
-+
-+ if (info->bitmask & EBT_ARP_DST_IP) {
-+ memcpy(&dst, ((*skb).nh.raw)+sizeof(struct arphdr) +
-+ (2*(((*skb).nh.arph)->ar_hln)) +
-+ (((*skb).nh.arph)->ar_pln), sizeof(uint32_t));
-+ if (FWINV(info->daddr != (dst & info->dmsk),
-+ EBT_ARP_DST_IP))
-+ return EBT_NOMATCH;
-+ }
-+ }
-+
-+ if (info->bitmask & (EBT_ARP_SRC_MAC | EBT_ARP_DST_MAC))
-+ {
-+ uint32_t arp_len = sizeof(struct arphdr) +
-+ (2 * (((*skb).nh.arph)->ar_hln)) +
-+ (2 * (((*skb).nh.arph)->ar_pln));
-+ unsigned char dst[ETH_ALEN];
-+ unsigned char src[ETH_ALEN];
-+
-+ // Make sure the packet is long enough.
-+ if ((((*skb).nh.raw) + arp_len) > (*skb).tail)
-+ return EBT_NOMATCH;
-+ // MAC addresses are 6 bytes.
-+ if (((*skb).nh.arph)->ar_hln != ETH_ALEN)
-+ return EBT_NOMATCH;
-+ if (info->bitmask & EBT_ARP_SRC_MAC) {
-+ uint8_t verdict, i;
-+
-+ memcpy(&src, ((*skb).nh.raw) +
-+ sizeof(struct arphdr),
-+ ETH_ALEN);
-+ verdict = 0;
-+ for (i = 0; i < 6; i++)
-+ verdict |= (src[i] ^ info->smaddr[i]) &
-+ info->smmsk[i];
-+ if (FWINV(verdict != 0, EBT_ARP_SRC_MAC))
-+ return EBT_NOMATCH;
-+ }
-+
-+ if (info->bitmask & EBT_ARP_DST_MAC) {
-+ uint8_t verdict, i;
-+
-+ memcpy(&dst, ((*skb).nh.raw) +
-+ sizeof(struct arphdr) +
-+ (((*skb).nh.arph)->ar_hln) +
-+ (((*skb).nh.arph)->ar_pln),
-+ ETH_ALEN);
-+ verdict = 0;
-+ for (i = 0; i < 6; i++)
-+ verdict |= (dst[i] ^ info->dmaddr[i]) &
-+ info->dmmsk[i];
-+ if (FWINV(verdict != 0, EBT_ARP_DST_MAC))
-+ return EBT_NOMATCH;
-+ }
-+ }
-+
-+ return EBT_MATCH;
-+}
-+
-+static int ebt_arp_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_arp_info *info = (struct ebt_arp_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_arp_info)))
-+ return -EINVAL;
-+ if ((e->ethproto != __constant_htons(ETH_P_ARP) &&
-+ e->ethproto != __constant_htons(ETH_P_RARP)) ||
-+ e->invflags & EBT_IPROTO)
-+ return -EINVAL;
-+ if (info->bitmask & ~EBT_ARP_MASK || info->invflags & ~EBT_ARP_MASK)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_match filter_arp =
-+{
-+ {NULL, NULL}, EBT_ARP_MATCH, ebt_filter_arp, ebt_arp_check, NULL,
-+ THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_match(&filter_arp);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_arp);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_ip.c 2005-01-07 02:57:30.890818056 -0500
-@@ -0,0 +1,121 @@
-+/*
-+ * ebt_ip
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ * Changes:
-+ * added ip-sport and ip-dport
-+ * Innominate Security Technologies AG <mhopf@innominate.com>
-+ * September, 2002
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_ip.h>
-+#include <linux/ip.h>
-+#include <linux/in.h>
-+#include <linux/module.h>
-+
-+struct tcpudphdr {
-+ uint16_t src;
-+ uint16_t dst;
-+};
-+
-+union h_u {
-+ unsigned char *raw;
-+ struct tcpudphdr *tuh;
-+};
-+
-+static int ebt_filter_ip(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *data,
-+ unsigned int datalen)
-+{
-+ struct ebt_ip_info *info = (struct ebt_ip_info *)data;
-+
-+ if (info->bitmask & EBT_IP_TOS &&
-+ FWINV(info->tos != ((*skb).nh.iph)->tos, EBT_IP_TOS))
-+ return EBT_NOMATCH;
-+ if (info->bitmask & EBT_IP_PROTO) {
-+ if (FWINV(info->protocol != ((*skb).nh.iph)->protocol,
-+ EBT_IP_PROTO))
-+ return EBT_NOMATCH;
-+ if ( info->protocol == IPPROTO_TCP ||
-+ info->protocol == IPPROTO_UDP )
-+ {
-+ union h_u h;
-+ h.raw = skb->data + skb->nh.iph->ihl*4;
-+ if (info->bitmask & EBT_IP_DPORT) {
-+ uint16_t port = ntohs(h.tuh->dst);
-+ if (FWINV(port < info->dport[0] ||
-+ port > info->dport[1],
-+ EBT_IP_DPORT))
-+ return EBT_NOMATCH;
-+ }
-+ if (info->bitmask & EBT_IP_SPORT) {
-+ uint16_t port = ntohs(h.tuh->src);
-+ if (FWINV(port < info->sport[0] ||
-+ port > info->sport[1],
-+ EBT_IP_SPORT))
-+ return EBT_NOMATCH;
-+ }
-+ }
-+ }
-+ if (info->bitmask & EBT_IP_SOURCE &&
-+ FWINV((((*skb).nh.iph)->saddr & info->smsk) !=
-+ info->saddr, EBT_IP_SOURCE))
-+ return EBT_NOMATCH;
-+ if ((info->bitmask & EBT_IP_DEST) &&
-+ FWINV((((*skb).nh.iph)->daddr & info->dmsk) !=
-+ info->daddr, EBT_IP_DEST))
-+ return EBT_NOMATCH;
-+ return EBT_MATCH;
-+}
-+
-+static int ebt_ip_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_ip_info *info = (struct ebt_ip_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_ip_info)))
-+ return -EINVAL;
-+ if (e->ethproto != __constant_htons(ETH_P_IP) ||
-+ e->invflags & EBT_IPROTO)
-+ return -EINVAL;
-+ if (info->bitmask & ~EBT_IP_MASK || info->invflags & ~EBT_IP_MASK)
-+ return -EINVAL;
-+ if (info->bitmask & (EBT_IP_DPORT | EBT_IP_SPORT)) {
-+ if (!info->bitmask & EBT_IPROTO)
-+ return -EINVAL;
-+ if (info->protocol != IPPROTO_TCP &&
-+ info->protocol != IPPROTO_UDP)
-+ return -EINVAL;
-+ }
-+ if (info->bitmask & EBT_IP_DPORT && info->dport[0] > info->dport[1])
-+ return -EINVAL;
-+ if (info->bitmask & EBT_IP_SPORT && info->sport[0] > info->sport[1])
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_match filter_ip =
-+{
-+ {NULL, NULL}, EBT_IP_MATCH, ebt_filter_ip, ebt_ip_check, NULL,
-+ THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_match(&filter_ip);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_ip);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_vlan.c 2005-01-07 02:57:30.890818056 -0500
-@@ -0,0 +1,259 @@
-+/*
-+ * Description: EBTables 802.1Q match extension kernelspace module.
-+ * Authors: Nick Fedchik <nick@fedchik.org.ua>
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ */
-+
-+#include <linux/if_ether.h>
-+#include <linux/if_vlan.h>
-+#include <linux/module.h>
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_vlan.h>
-+
-+static unsigned char debug;
-+#define MODULE_VERSION "0.6"
-+
-+MODULE_PARM(debug, "0-1b");
-+MODULE_PARM_DESC(debug, "debug=1 is turn on debug messages");
-+MODULE_AUTHOR("Nick Fedchik <nick@fedchik.org.ua>");
-+MODULE_DESCRIPTION("802.1Q match module (ebtables extension), v"
-+ MODULE_VERSION);
-+MODULE_LICENSE("GPL");
-+
-+
-+#define DEBUG_MSG(args...) if (debug) printk (KERN_DEBUG "ebt_vlan: " args)
-+#define INV_FLAG(_inv_flag_) (info->invflags & _inv_flag_) ? "!" : ""
-+#define GET_BITMASK(_BIT_MASK_) info->bitmask & _BIT_MASK_
-+#define SET_BITMASK(_BIT_MASK_) info->bitmask |= _BIT_MASK_
-+#define EXIT_ON_MISMATCH(_MATCH_,_MASK_) if (!((info->_MATCH_ == _MATCH_)^!!(info->invflags & _MASK_))) return 1;
-+
-+/*
-+ * Function description: ebt_filter_vlan() is main engine for
-+ * checking passed 802.1Q frame according to
-+ * the passed extension parameters (in the *data buffer)
-+ * ebt_filter_vlan() is called after successfull check the rule params
-+ * by ebt_check_vlan() function.
-+ * Parameters:
-+ * const struct sk_buff *skb - pointer to passed ethernet frame buffer
-+ * const void *data - pointer to passed extension parameters
-+ * unsigned int datalen - length of passed *data buffer
-+ * const struct net_device *in -
-+ * const struct net_device *out -
-+ * const struct ebt_counter *c -
-+ * Returned values:
-+ * 0 - ok (all rule params matched)
-+ * 1 - miss (rule params not acceptable to the parsed frame)
-+ */
-+static int
-+ebt_filter_vlan(const struct sk_buff *skb,
-+ const struct net_device *in,
-+ const struct net_device *out,
-+ const void *data, unsigned int datalen)
-+{
-+ struct ebt_vlan_info *info = (struct ebt_vlan_info *) data; /* userspace data */
-+ struct vlan_ethhdr *frame = (struct vlan_ethhdr *) skb->mac.raw; /* Passed tagged frame */
-+
-+ unsigned short TCI; /* Whole TCI, given from parsed frame */
-+ unsigned short id; /* VLAN ID, given from frame TCI */
-+ unsigned char prio; /* user_priority, given from frame TCI */
-+ unsigned short encap; /* VLAN encapsulated Type/Length field, given from orig frame */
-+
-+ /*
-+ * Tag Control Information (TCI) consists of the following elements:
-+ * - User_priority. The user_priority field is three bits in length,
-+ * interpreted as a binary number.
-+ * - Canonical Format Indicator (CFI). The Canonical Format Indicator
-+ * (CFI) is a single bit flag value. Currently ignored.
-+ * - VLAN Identifier (VID). The VID is encoded as
-+ * an unsigned binary number.
-+ */
-+ TCI = ntohs(frame->h_vlan_TCI);
-+ id = TCI & VLAN_VID_MASK;
-+ prio = (TCI >> 13) & 0x7;
-+ encap = frame->h_vlan_encapsulated_proto;
-+
-+ /*
-+ * Checking VLAN Identifier (VID)
-+ */
-+ if (GET_BITMASK(EBT_VLAN_ID)) { /* Is VLAN ID parsed? */
-+ EXIT_ON_MISMATCH(id, EBT_VLAN_ID);
-+ }
-+ /*
-+ * Checking user_priority
-+ */
-+ if (GET_BITMASK(EBT_VLAN_PRIO)) { /* Is VLAN user_priority parsed? */
-+ EXIT_ON_MISMATCH(prio, EBT_VLAN_PRIO);
-+ }
-+ /*
-+ * Checking Encapsulated Proto (Length/Type) field
-+ */
-+ if (GET_BITMASK(EBT_VLAN_ENCAP)) { /* Is VLAN Encap parsed? */
-+ EXIT_ON_MISMATCH(encap, EBT_VLAN_ENCAP);
-+ }
-+ /*
-+ * All possible extension parameters was parsed.
-+ * If rule never returned by missmatch, then all ok.
-+ */
-+ return 0;
-+}
-+
-+/*
-+ * Function description: ebt_vlan_check() is called when userspace
-+ * delivers the table entry to the kernel,
-+ * and to check that userspace doesn't give a bad table.
-+ * Parameters:
-+ * const char *tablename - table name string
-+ * unsigned int hooknr - hook number
-+ * const struct ebt_entry *e - ebtables entry basic set
-+ * const void *data - pointer to passed extension parameters
-+ * unsigned int datalen - length of passed *data buffer
-+ * Returned values:
-+ * 0 - ok (all delivered rule params are correct)
-+ * 1 - miss (rule params is out of range, invalid, incompatible, etc.)
-+ */
-+static int
-+ebt_check_vlan(const char *tablename,
-+ unsigned int hooknr,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_vlan_info *info = (struct ebt_vlan_info *) data;
-+
-+ /*
-+ * Parameters buffer overflow check
-+ */
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_vlan_info))) {
-+ DEBUG_MSG
-+ ("passed size %d is not eq to ebt_vlan_info (%d)\n",
-+ datalen, sizeof(struct ebt_vlan_info));
-+ return -EINVAL;
-+ }
-+
-+ /*
-+ * Is it 802.1Q frame checked?
-+ */
-+ if (e->ethproto != __constant_htons(ETH_P_8021Q)) {
-+ DEBUG_MSG
-+ ("passed entry proto %2.4X is not 802.1Q (8100)\n",
-+ (unsigned short) ntohs(e->ethproto));
-+ return -EINVAL;
-+ }
-+
-+ /*
-+ * Check for bitmask range
-+ * True if even one bit is out of mask
-+ */
-+ if (info->bitmask & ~EBT_VLAN_MASK) {
-+ DEBUG_MSG("bitmask %2X is out of mask (%2X)\n",
-+ info->bitmask, EBT_VLAN_MASK);
-+ return -EINVAL;
-+ }
-+
-+ /*
-+ * Check for inversion flags range
-+ */
-+ if (info->invflags & ~EBT_VLAN_MASK) {
-+ DEBUG_MSG("inversion flags %2X is out of mask (%2X)\n",
-+ info->invflags, EBT_VLAN_MASK);
-+ return -EINVAL;
-+ }
-+
-+ /*
-+ * Reserved VLAN ID (VID) values
-+ * -----------------------------
-+ * 0 - The null VLAN ID.
-+ * 1 - The default Port VID (PVID)
-+ * 0x0FFF - Reserved for implementation use.
-+ * if_vlan.h: VLAN_GROUP_ARRAY_LEN 4096.
-+ */
-+ if (GET_BITMASK(EBT_VLAN_ID)) { /* when vlan-id param was spec-ed */
-+ if (!!info->id) { /* if id!=0 => check vid range */
-+ if (info->id > VLAN_GROUP_ARRAY_LEN) {
-+ DEBUG_MSG
-+ ("id %d is out of range (1-4096)\n",
-+ info->id);
-+ return -EINVAL;
-+ }
-+ /*
-+ * Note: This is valid VLAN-tagged frame point.
-+ * Any value of user_priority are acceptable,
-+ * but should be ignored according to 802.1Q Std.
-+ * So we just drop the prio flag.
-+ */
-+ info->bitmask &= ~EBT_VLAN_PRIO;
-+ }
-+ /*
-+ * Else, id=0 (null VLAN ID) => user_priority range (any?)
-+ */
-+ }
-+
-+ if (GET_BITMASK(EBT_VLAN_PRIO)) {
-+ if ((unsigned char) info->prio > 7) {
-+ DEBUG_MSG
-+ ("prio %d is out of range (0-7)\n",
-+ info->prio);
-+ return -EINVAL;
-+ }
-+ }
-+ /*
-+ * Check for encapsulated proto range - it is possible to be
-+ * any value for u_short range.
-+ * if_ether.h: ETH_ZLEN 60 - Min. octets in frame sans FCS
-+ */
-+ if (GET_BITMASK(EBT_VLAN_ENCAP)) {
-+ if ((unsigned short) ntohs(info->encap) < ETH_ZLEN) {
-+ DEBUG_MSG
-+ ("encap frame length %d is less than minimal\n",
-+ ntohs(info->encap));
-+ return -EINVAL;
-+ }
-+ }
-+
-+ return 0;
-+}
-+
-+static struct ebt_match filter_vlan = {
-+ {NULL, NULL},
-+ EBT_VLAN_MATCH,
-+ ebt_filter_vlan,
-+ ebt_check_vlan,
-+ NULL,
-+ THIS_MODULE
-+};
-+
-+/*
-+ * Module initialization function.
-+ */
-+static int __init init(void)
-+{
-+ DEBUG_MSG("ebtables 802.1Q extension module v"
-+ MODULE_VERSION "\n");
-+ DEBUG_MSG("module debug=%d\n", !!debug);
-+ return ebt_register_match(&filter_vlan);
-+}
-+
-+/*
-+ * Module "finalization" function
-+ */
-+static void __exit fini(void)
-+{
-+ ebt_unregister_match(&filter_vlan);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+
-+EXPORT_NO_SYMBOLS;
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_log.c 2005-01-07 02:57:30.890818056 -0500
-@@ -0,0 +1,152 @@
-+/*
-+ * ebt_log
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_log.h>
-+#include <linux/module.h>
-+#include <linux/ip.h>
-+#include <linux/in.h>
-+#include <linux/if_arp.h>
-+#include <linux/spinlock.h>
-+
-+static spinlock_t ebt_log_lock = SPIN_LOCK_UNLOCKED;
-+
-+static int ebt_log_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_log_info *info = (struct ebt_log_info *)data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_log_info)))
-+ return -EINVAL;
-+ if (info->bitmask & ~EBT_LOG_MASK)
-+ return -EINVAL;
-+ if (info->loglevel >= 8)
-+ return -EINVAL;
-+ info->prefix[EBT_LOG_PREFIX_SIZE - 1] = '\0';
-+ return 0;
-+}
-+
-+struct tcpudphdr
-+{
-+ uint16_t src;
-+ uint16_t dst;
-+};
-+
-+struct arppayload
-+{
-+ unsigned char mac_src[ETH_ALEN];
-+ unsigned char ip_src[4];
-+ unsigned char mac_dst[ETH_ALEN];
-+ unsigned char ip_dst[4];
-+};
-+
-+static void print_MAC(unsigned char *p)
-+{
-+ int i;
-+
-+ for (i = 0; i < ETH_ALEN; i++, p++)
-+ printk("%02x%c", *p, i == ETH_ALEN - 1 ? ' ':':');
-+}
-+
-+#define myNIPQUAD(a) a[0], a[1], a[2], a[3]
-+static void ebt_log(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *data, unsigned int datalen)
-+{
-+ struct ebt_log_info *info = (struct ebt_log_info *)data;
-+ char level_string[4] = "< >";
-+ level_string[1] = '0' + info->loglevel;
-+
-+ spin_lock_bh(&ebt_log_lock);
-+ printk(level_string);
-+ printk("%s IN=%s OUT=%s ", info->prefix, in ? in->name : "",
-+ out ? out->name : "");
-+
-+ printk("MAC source = ");
-+ print_MAC((skb->mac.ethernet)->h_source);
-+ printk("MAC dest = ");
-+ print_MAC((skb->mac.ethernet)->h_dest);
-+
-+ printk("proto = 0x%04x", ntohs(((*skb).mac.ethernet)->h_proto));
-+
-+ if ((info->bitmask & EBT_LOG_IP) && skb->mac.ethernet->h_proto ==
-+ htons(ETH_P_IP)){
-+ struct iphdr *iph = skb->nh.iph;
-+ printk(" IP SRC=%u.%u.%u.%u IP DST=%u.%u.%u.%u,",
-+ NIPQUAD(iph->saddr), NIPQUAD(iph->daddr));
-+ printk(" IP tos=0x%02X, IP proto=%d", iph->tos, iph->protocol);
-+ if (iph->protocol == IPPROTO_TCP ||
-+ iph->protocol == IPPROTO_UDP) {
-+ struct tcpudphdr *ports = (struct tcpudphdr *)(skb->data + iph->ihl*4);
-+
-+ if (skb->data + iph->ihl*4 > skb->tail) {
-+ printk(" INCOMPLETE TCP/UDP header");
-+ goto out;
-+ }
-+ printk(" SPT=%u DPT=%u", ntohs(ports->src),
-+ ntohs(ports->dst));
-+ }
-+ goto out;
-+ }
-+
-+ if ((info->bitmask & EBT_LOG_ARP) &&
-+ ((skb->mac.ethernet->h_proto == __constant_htons(ETH_P_ARP)) ||
-+ (skb->mac.ethernet->h_proto == __constant_htons(ETH_P_RARP)))) {
-+ struct arphdr * arph = skb->nh.arph;
-+ printk(" ARP HTYPE=%d, PTYPE=0x%04x, OPCODE=%d",
-+ ntohs(arph->ar_hrd), ntohs(arph->ar_pro),
-+ ntohs(arph->ar_op));
-+ /* If it's for Ethernet and the lengths are OK,
-+ * then log the ARP payload */
-+ if (arph->ar_hrd == __constant_htons(1) &&
-+ arph->ar_hln == ETH_ALEN &&
-+ arph->ar_pln == sizeof(uint32_t)) {
-+ struct arppayload *arpp = (struct arppayload *)(skb->data + sizeof(*arph));
-+
-+ if (skb->data + sizeof(*arph) > skb->tail) {
-+ printk(" INCOMPLETE ARP header");
-+ goto out;
-+ }
-+
-+ printk(" ARP MAC SRC=");
-+ print_MAC(arpp->mac_src);
-+ printk(" ARP IP SRC=%u.%u.%u.%u",
-+ myNIPQUAD(arpp->ip_src));
-+ printk(" ARP MAC DST=");
-+ print_MAC(arpp->mac_dst);
-+ printk(" ARP IP DST=%u.%u.%u.%u",
-+ myNIPQUAD(arpp->ip_dst));
-+ }
-+
-+ }
-+out:
-+ printk("\n");
-+ spin_unlock_bh(&ebt_log_lock);
-+}
-+
-+static struct ebt_watcher log =
-+{
-+ {NULL, NULL}, EBT_LOG_WATCHER, ebt_log, ebt_log_check, NULL,
-+ THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_watcher(&log);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_watcher(&log);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_snat.c 2005-01-07 02:57:30.891817904 -0500
-@@ -0,0 +1,64 @@
-+/*
-+ * ebt_snat
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * June, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_nat.h>
-+#include <linux/module.h>
-+
-+static int ebt_target_snat(struct sk_buff **pskb, unsigned int hooknr,
-+ const struct net_device *in, const struct net_device *out,
-+ const void *data, unsigned int datalen)
-+{
-+ struct ebt_nat_info *info = (struct ebt_nat_info *) data;
-+
-+ memcpy(((**pskb).mac.ethernet)->h_source, info->mac,
-+ ETH_ALEN * sizeof(unsigned char));
-+ return info->target;
-+}
-+
-+static int ebt_target_snat_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_nat_info *info = (struct ebt_nat_info *) data;
-+
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_nat_info)))
-+ return -EINVAL;
-+ if (BASE_CHAIN && info->target == EBT_RETURN)
-+ return -EINVAL;
-+ CLEAR_BASE_CHAIN_BIT;
-+ if (strcmp(tablename, "nat"))
-+ return -EINVAL;
-+ if (hookmask & ~(1 << NF_BR_POST_ROUTING))
-+ return -EINVAL;
-+ if (INVALID_TARGET)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_target snat =
-+{
-+ {NULL, NULL}, EBT_SNAT_TARGET, ebt_target_snat, ebt_target_snat_check,
-+ NULL, THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_target(&snat);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_target(&snat);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebt_dnat.c 2005-01-07 02:57:30.891817904 -0500
-@@ -0,0 +1,65 @@
-+/*
-+ * ebt_dnat
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * June, 2002
-+ *
-+ */
-+
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/netfilter_bridge/ebt_nat.h>
-+#include <linux/module.h>
-+#include <net/sock.h>
-+
-+static int ebt_target_dnat(struct sk_buff **pskb, unsigned int hooknr,
-+ const struct net_device *in, const struct net_device *out,
-+ const void *data, unsigned int datalen)
-+{
-+ struct ebt_nat_info *info = (struct ebt_nat_info *)data;
-+
-+ memcpy(((**pskb).mac.ethernet)->h_dest, info->mac,
-+ ETH_ALEN * sizeof(unsigned char));
-+ return info->target;
-+}
-+
-+static int ebt_target_dnat_check(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *data, unsigned int datalen)
-+{
-+ struct ebt_nat_info *info = (struct ebt_nat_info *)data;
-+
-+ if (BASE_CHAIN && info->target == EBT_RETURN)
-+ return -EINVAL;
-+ CLEAR_BASE_CHAIN_BIT;
-+ if ( (strcmp(tablename, "nat") ||
-+ (hookmask & ~((1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_LOCAL_OUT)))) &&
-+ (strcmp(tablename, "broute") || hookmask & ~(1 << NF_BR_BROUTING)) )
-+ return -EINVAL;
-+ if (datalen != EBT_ALIGN(sizeof(struct ebt_nat_info)))
-+ return -EINVAL;
-+ if (INVALID_TARGET)
-+ return -EINVAL;
-+ return 0;
-+}
-+
-+static struct ebt_target dnat =
-+{
-+ {NULL, NULL}, EBT_DNAT_TARGET, ebt_target_dnat, ebt_target_dnat_check,
-+ NULL, THIS_MODULE
-+};
-+
-+static int __init init(void)
-+{
-+ return ebt_register_target(&dnat);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ebt_unregister_target(&dnat);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+EXPORT_NO_SYMBOLS;
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/netfilter/ebtables.c 2005-01-07 02:57:30.893817600 -0500
-@@ -0,0 +1,1490 @@
-+/*
-+ * ebtables
-+ *
-+ * Author:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * ebtables.c,v 2.0, July, 2002
-+ *
-+ * This code is stongly inspired on the iptables code which is
-+ * Copyright (C) 1999 Paul `Rusty' Russell & Michael J. Neuling
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+
-+// used for print_string
-+#include <linux/sched.h>
-+#include <linux/tty.h>
-+
-+#include <linux/kmod.h>
-+#include <linux/module.h>
-+#include <linux/vmalloc.h>
-+#include <linux/netfilter_bridge/ebtables.h>
-+#include <linux/spinlock.h>
-+#include <asm/uaccess.h>
-+#include <linux/smp.h>
-+#include <net/sock.h>
-+// needed for logical [in,out]-dev filtering
-+#include "../br_private.h"
-+
-+// list_named_find
-+#define ASSERT_READ_LOCK(x)
-+#define ASSERT_WRITE_LOCK(x)
-+#include <linux/netfilter_ipv4/listhelp.h>
-+
-+#if 0 // use this for remote debugging
-+// Copyright (C) 1998 by Ori Pomerantz
-+// Print the string to the appropriate tty, the one
-+// the current task uses
-+static void print_string(char *str)
-+{
-+ struct tty_struct *my_tty;
-+
-+ /* The tty for the current task */
-+ my_tty = current->tty;
-+ if (my_tty != NULL) {
-+ (*(my_tty->driver).write)(my_tty, 0, str, strlen(str));
-+ (*(my_tty->driver).write)(my_tty, 0, "\015\012", 2);
-+ }
-+}
-+
-+#define BUGPRINT(args) print_string(args);
-+#else
-+#define BUGPRINT(format, args...) printk("kernel msg: ebtables bug: please "\
-+ "report to author: "format, ## args)
-+// #define BUGPRINT(format, args...)
-+#endif
-+#define MEMPRINT(format, args...) printk("kernel msg: ebtables "\
-+ ": out of memory: "format, ## args)
-+// #define MEMPRINT(format, args...)
-+
-+
-+
-+// Each cpu has its own set of counters, so there is no need for write_lock in
-+// the softirq
-+// For reading or updating the counters, the user context needs to
-+// get a write_lock
-+
-+// The size of each set of counters is altered to get cache alignment
-+#define SMP_ALIGN(x) (((x) + SMP_CACHE_BYTES-1) & ~(SMP_CACHE_BYTES-1))
-+#define COUNTER_OFFSET(n) (SMP_ALIGN(n * sizeof(struct ebt_counter)))
-+#define COUNTER_BASE(c, n, cpu) ((struct ebt_counter *)(((char *)c) + \
-+ COUNTER_OFFSET(n) * cpu))
-+
-+
-+
-+static DECLARE_MUTEX(ebt_mutex);
-+static LIST_HEAD(ebt_tables);
-+static LIST_HEAD(ebt_targets);
-+static LIST_HEAD(ebt_matches);
-+static LIST_HEAD(ebt_watchers);
-+
-+static struct ebt_target ebt_standard_target =
-+{ {NULL, NULL}, EBT_STANDARD_TARGET, NULL, NULL, NULL, NULL};
-+
-+static inline int ebt_do_watcher (struct ebt_entry_watcher *w,
-+ const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out)
-+{
-+ w->u.watcher->watcher(skb, in, out, w->data,
-+ w->watcher_size);
-+ // watchers don't give a verdict
-+ return 0;
-+}
-+
-+static inline int ebt_do_match (struct ebt_entry_match *m,
-+ const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out)
-+{
-+ return m->u.match->match(skb, in, out, m->data,
-+ m->match_size);
-+}
-+
-+static inline int ebt_dev_check(char *entry, const struct net_device *device)
-+{
-+ if (*entry == '\0')
-+ return 0;
-+ if (!device)
-+ return 1;
-+ return !!strcmp(entry, device->name);
-+}
-+
-+#define FWINV2(bool,invflg) ((bool) ^ !!(e->invflags & invflg))
-+// process standard matches
-+static inline int ebt_basic_match(struct ebt_entry *e, struct ethhdr *h,
-+ const struct net_device *in, const struct net_device *out)
-+{
-+ int verdict, i;
-+
-+ if (e->bitmask & EBT_802_3) {
-+ if (FWINV2(ntohs(h->h_proto) >= 1536, EBT_IPROTO))
-+ return 1;
-+ } else if (!(e->bitmask & EBT_NOPROTO) &&
-+ FWINV2(e->ethproto != h->h_proto, EBT_IPROTO))
-+ return 1;
-+
-+ if (FWINV2(ebt_dev_check(e->in, in), EBT_IIN))
-+ return 1;
-+ if (FWINV2(ebt_dev_check(e->out, out), EBT_IOUT))
-+ return 1;
-+ if ((!in || !in->br_port) ? 0 : FWINV2(ebt_dev_check(
-+ e->logical_in, &in->br_port->br->dev), EBT_ILOGICALIN))
-+ return 1;
-+ if ((!out || !out->br_port) ? 0 : FWINV2(ebt_dev_check(
-+ e->logical_out, &out->br_port->br->dev), EBT_ILOGICALOUT))
-+ return 1;
-+
-+ if (e->bitmask & EBT_SOURCEMAC) {
-+ verdict = 0;
-+ for (i = 0; i < 6; i++)
-+ verdict |= (h->h_source[i] ^ e->sourcemac[i]) &
-+ e->sourcemsk[i];
-+ if (FWINV2(verdict != 0, EBT_ISOURCE) )
-+ return 1;
-+ }
-+ if (e->bitmask & EBT_DESTMAC) {
-+ verdict = 0;
-+ for (i = 0; i < 6; i++)
-+ verdict |= (h->h_dest[i] ^ e->destmac[i]) &
-+ e->destmsk[i];
-+ if (FWINV2(verdict != 0, EBT_IDEST) )
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+// Do some firewalling
-+unsigned int ebt_do_table (unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ struct ebt_table *table)
-+{
-+ int i, nentries;
-+ struct ebt_entry *point;
-+ struct ebt_counter *counter_base, *cb_base;
-+ struct ebt_entry_target *t;
-+ int verdict, sp = 0;
-+ struct ebt_chainstack *cs;
-+ struct ebt_entries *chaininfo;
-+ char *base;
-+ struct ebt_table_info *private = table->private;
-+
-+ read_lock_bh(&table->lock);
-+ cb_base = COUNTER_BASE(private->counters, private->nentries,
-+ cpu_number_map(smp_processor_id()));
-+ if (private->chainstack)
-+ cs = private->chainstack[cpu_number_map(smp_processor_id())];
-+ else
-+ cs = NULL;
-+ chaininfo = private->hook_entry[hook];
-+ nentries = private->hook_entry[hook]->nentries;
-+ point = (struct ebt_entry *)(private->hook_entry[hook]->data);
-+ counter_base = cb_base + private->hook_entry[hook]->counter_offset;
-+ // base for chain jumps
-+ base = private->entries;
-+ i = 0;
-+ while (i < nentries) {
-+ if (ebt_basic_match(point, (**pskb).mac.ethernet, in, out))
-+ goto letscontinue;
-+
-+ if (EBT_MATCH_ITERATE(point, ebt_do_match, *pskb, in, out) != 0)
-+ goto letscontinue;
-+
-+ // increase counter
-+ (*(counter_base + i)).pcnt++;
-+ (*(counter_base + i)).bcnt+=(**pskb).len;
-+
-+ // these should only watch: not modify, nor tell us
-+ // what to do with the packet
-+ EBT_WATCHER_ITERATE(point, ebt_do_watcher, *pskb, in,
-+ out);
-+
-+ t = (struct ebt_entry_target *)
-+ (((char *)point) + point->target_offset);
-+ // standard target
-+ if (!t->u.target->target)
-+ verdict = ((struct ebt_standard_target *)t)->verdict;
-+ else
-+ verdict = t->u.target->target(pskb, hook,
-+ in, out, t->data, t->target_size);
-+ if (verdict == EBT_ACCEPT) {
-+ read_unlock_bh(&table->lock);
-+ return NF_ACCEPT;
-+ }
-+ if (verdict == EBT_DROP) {
-+ read_unlock_bh(&table->lock);
-+ return NF_DROP;
-+ }
-+ if (verdict == EBT_RETURN) {
-+letsreturn:
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ if (sp == 0) {
-+ BUGPRINT("RETURN on base chain");
-+ // act like this is EBT_CONTINUE
-+ goto letscontinue;
-+ }
-+#endif
-+ sp--;
-+ // put all the local variables right
-+ i = cs[sp].n;
-+ chaininfo = cs[sp].chaininfo;
-+ nentries = chaininfo->nentries;
-+ point = cs[sp].e;
-+ counter_base = cb_base +
-+ chaininfo->counter_offset;
-+ continue;
-+ }
-+ if (verdict == EBT_CONTINUE)
-+ goto letscontinue;
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ if (verdict < 0) {
-+ BUGPRINT("bogus standard verdict\n");
-+ read_unlock_bh(&table->lock);
-+ return NF_DROP;
-+ }
-+#endif
-+ // jump to a udc
-+ cs[sp].n = i + 1;
-+ cs[sp].chaininfo = chaininfo;
-+ cs[sp].e = (struct ebt_entry *)
-+ (((char *)point) + point->next_offset);
-+ i = 0;
-+ chaininfo = (struct ebt_entries *) (base + verdict);
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ if (chaininfo->distinguisher) {
-+ BUGPRINT("jump to non-chain\n");
-+ read_unlock_bh(&table->lock);
-+ return NF_DROP;
-+ }
-+#endif
-+ nentries = chaininfo->nentries;
-+ point = (struct ebt_entry *)chaininfo->data;
-+ counter_base = cb_base + chaininfo->counter_offset;
-+ sp++;
-+ continue;
-+letscontinue:
-+ point = (struct ebt_entry *)
-+ (((char *)point) + point->next_offset);
-+ i++;
-+ }
-+
-+ // I actually like this :)
-+ if (chaininfo->policy == EBT_RETURN)
-+ goto letsreturn;
-+ if (chaininfo->policy == EBT_ACCEPT) {
-+ read_unlock_bh(&table->lock);
-+ return NF_ACCEPT;
-+ }
-+ read_unlock_bh(&table->lock);
-+ return NF_DROP;
-+}
-+
-+// If it succeeds, returns element and locks mutex
-+static inline void *
-+find_inlist_lock_noload(struct list_head *head, const char *name, int *error,
-+ struct semaphore *mutex)
-+{
-+ void *ret;
-+
-+ *error = down_interruptible(mutex);
-+ if (*error != 0)
-+ return NULL;
-+
-+ ret = list_named_find(head, name);
-+ if (!ret) {
-+ *error = -ENOENT;
-+ up(mutex);
-+ }
-+ return ret;
-+}
-+
-+#ifndef CONFIG_KMOD
-+#define find_inlist_lock(h,n,p,e,m) find_inlist_lock_noload((h),(n),(e),(m))
-+#else
-+static void *
-+find_inlist_lock(struct list_head *head, const char *name, const char *prefix,
-+ int *error, struct semaphore *mutex)
-+{
-+ void *ret;
-+
-+ ret = find_inlist_lock_noload(head, name, error, mutex);
-+ if (!ret) {
-+ char modulename[EBT_FUNCTION_MAXNAMELEN + strlen(prefix) + 1];
-+ strcpy(modulename, prefix);
-+ strcat(modulename, name);
-+ request_module(modulename);
-+ ret = find_inlist_lock_noload(head, name, error, mutex);
-+ }
-+ return ret;
-+}
-+#endif
-+
-+static inline struct ebt_table *
-+find_table_lock(const char *name, int *error, struct semaphore *mutex)
-+{
-+ return find_inlist_lock(&ebt_tables, name, "ebtable_", error, mutex);
-+}
-+
-+static inline struct ebt_match *
-+find_match_lock(const char *name, int *error, struct semaphore *mutex)
-+{
-+ return find_inlist_lock(&ebt_matches, name, "ebt_", error, mutex);
-+}
-+
-+static inline struct ebt_watcher *
-+find_watcher_lock(const char *name, int *error, struct semaphore *mutex)
-+{
-+ return find_inlist_lock(&ebt_watchers, name, "ebt_", error, mutex);
-+}
-+
-+static inline struct ebt_target *
-+find_target_lock(const char *name, int *error, struct semaphore *mutex)
-+{
-+ return find_inlist_lock(&ebt_targets, name, "ebt_", error, mutex);
-+}
-+
-+static inline int
-+ebt_check_match(struct ebt_entry_match *m, struct ebt_entry *e,
-+ const char *name, unsigned int hookmask, unsigned int *cnt)
-+{
-+ struct ebt_match *match;
-+ int ret;
-+
-+ if (((char *)m) + m->match_size + sizeof(struct ebt_entry_match) >
-+ ((char *)e) + e->watchers_offset)
-+ return -EINVAL;
-+ match = find_match_lock(m->u.name, &ret, &ebt_mutex);
-+ if (!match)
-+ return ret;
-+ m->u.match = match;
-+ if (match->me)
-+ __MOD_INC_USE_COUNT(match->me);
-+ up(&ebt_mutex);
-+ if (match->check &&
-+ match->check(name, hookmask, e, m->data, m->match_size) != 0) {
-+ BUGPRINT("match->check failed\n");
-+ if (match->me)
-+ __MOD_DEC_USE_COUNT(match->me);
-+ return -EINVAL;
-+ }
-+ (*cnt)++;
-+ return 0;
-+}
-+
-+static inline int
-+ebt_check_watcher(struct ebt_entry_watcher *w, struct ebt_entry *e,
-+ const char *name, unsigned int hookmask, unsigned int *cnt)
-+{
-+ struct ebt_watcher *watcher;
-+ int ret;
-+
-+ if (((char *)w) + w->watcher_size + sizeof(struct ebt_entry_watcher) >
-+ ((char *)e) + e->target_offset)
-+ return -EINVAL;
-+ watcher = find_watcher_lock(w->u.name, &ret, &ebt_mutex);
-+ if (!watcher)
-+ return ret;
-+ w->u.watcher = watcher;
-+ if (watcher->me)
-+ __MOD_INC_USE_COUNT(watcher->me);
-+ up(&ebt_mutex);
-+ if (watcher->check &&
-+ watcher->check(name, hookmask, e, w->data, w->watcher_size) != 0) {
-+ BUGPRINT("watcher->check failed\n");
-+ if (watcher->me)
-+ __MOD_DEC_USE_COUNT(watcher->me);
-+ return -EINVAL;
-+ }
-+ (*cnt)++;
-+ return 0;
-+}
-+
-+// this one is very careful, as it is the first function
-+// to parse the userspace data
-+static inline int
-+ebt_check_entry_size_and_hooks(struct ebt_entry *e,
-+ struct ebt_table_info *newinfo, char *base, char *limit,
-+ struct ebt_entries **hook_entries, unsigned int *n, unsigned int *cnt,
-+ unsigned int *totalcnt, unsigned int *udc_cnt, unsigned int valid_hooks)
-+{
-+ int i;
-+
-+ for (i = 0; i < NF_BR_NUMHOOKS; i++) {
-+ if ((valid_hooks & (1 << i)) == 0)
-+ continue;
-+ if ( (char *)hook_entries[i] - base ==
-+ (char *)e - newinfo->entries)
-+ break;
-+ }
-+ // beginning of a new chain
-+ // if i == NF_BR_NUMHOOKS it must be a user defined chain
-+ if (i != NF_BR_NUMHOOKS || !(e->bitmask & EBT_ENTRY_OR_ENTRIES)) {
-+ if ((e->bitmask & EBT_ENTRY_OR_ENTRIES) != 0) {
-+ // we make userspace set this right,
-+ // so there is no misunderstanding
-+ BUGPRINT("EBT_ENTRY_OR_ENTRIES shouldn't be set "
-+ "in distinguisher\n");
-+ return -EINVAL;
-+ }
-+ // this checks if the previous chain has as many entries
-+ // as it said it has
-+ if (*n != *cnt) {
-+ BUGPRINT("nentries does not equal the nr of entries "
-+ "in the chain\n");
-+ return -EINVAL;
-+ }
-+ // before we look at the struct, be sure it is not too big
-+ if ((char *)hook_entries[i] + sizeof(struct ebt_entries)
-+ > limit) {
-+ BUGPRINT("entries_size too small\n");
-+ return -EINVAL;
-+ }
-+ if (((struct ebt_entries *)e)->policy != EBT_DROP &&
-+ ((struct ebt_entries *)e)->policy != EBT_ACCEPT) {
-+ // only RETURN from udc
-+ if (i != NF_BR_NUMHOOKS ||
-+ ((struct ebt_entries *)e)->policy != EBT_RETURN) {
-+ BUGPRINT("bad policy\n");
-+ return -EINVAL;
-+ }
-+ }
-+ if (i == NF_BR_NUMHOOKS) // it's a user defined chain
-+ (*udc_cnt)++;
-+ else
-+ newinfo->hook_entry[i] = (struct ebt_entries *)e;
-+ if (((struct ebt_entries *)e)->counter_offset != *totalcnt) {
-+ BUGPRINT("counter_offset != totalcnt");
-+ return -EINVAL;
-+ }
-+ *n = ((struct ebt_entries *)e)->nentries;
-+ *cnt = 0;
-+ return 0;
-+ }
-+ // a plain old entry, heh
-+ if (sizeof(struct ebt_entry) > e->watchers_offset ||
-+ e->watchers_offset > e->target_offset ||
-+ e->target_offset >= e->next_offset) {
-+ BUGPRINT("entry offsets not in right order\n");
-+ return -EINVAL;
-+ }
-+ // this is not checked anywhere else
-+ if (e->next_offset - e->target_offset < sizeof(struct ebt_entry_target)) {
-+ BUGPRINT("target size too small\n");
-+ return -EINVAL;
-+ }
-+
-+ (*cnt)++;
-+ (*totalcnt)++;
-+ return 0;
-+}
-+
-+struct ebt_cl_stack
-+{
-+ struct ebt_chainstack cs;
-+ int from;
-+ unsigned int hookmask;
-+};
-+
-+// we need these positions to check that the jumps to a different part of the
-+// entries is a jump to the beginning of a new chain.
-+static inline int
-+ebt_get_udc_positions(struct ebt_entry *e, struct ebt_table_info *newinfo,
-+ struct ebt_entries **hook_entries, unsigned int *n, unsigned int valid_hooks,
-+ struct ebt_cl_stack *udc)
-+{
-+ int i;
-+
-+ // we're only interested in chain starts
-+ if (e->bitmask & EBT_ENTRY_OR_ENTRIES)
-+ return 0;
-+ for (i = 0; i < NF_BR_NUMHOOKS; i++) {
-+ if ((valid_hooks & (1 << i)) == 0)
-+ continue;
-+ if (newinfo->hook_entry[i] == (struct ebt_entries *)e)
-+ break;
-+ }
-+ // only care about udc
-+ if (i != NF_BR_NUMHOOKS)
-+ return 0;
-+
-+ udc[*n].cs.chaininfo = (struct ebt_entries *)e;
-+ // these initialisations are depended on later in check_chainloops()
-+ udc[*n].cs.n = 0;
-+ udc[*n].hookmask = 0;
-+
-+ (*n)++;
-+ return 0;
-+}
-+
-+static inline int
-+ebt_cleanup_match(struct ebt_entry_match *m, unsigned int *i)
-+{
-+ if (i && (*i)-- == 0)
-+ return 1;
-+ if (m->u.match->destroy)
-+ m->u.match->destroy(m->data, m->match_size);
-+ if (m->u.match->me)
-+ __MOD_DEC_USE_COUNT(m->u.match->me);
-+
-+ return 0;
-+}
-+
-+static inline int
-+ebt_cleanup_watcher(struct ebt_entry_watcher *w, unsigned int *i)
-+{
-+ if (i && (*i)-- == 0)
-+ return 1;
-+ if (w->u.watcher->destroy)
-+ w->u.watcher->destroy(w->data, w->watcher_size);
-+ if (w->u.watcher->me)
-+ __MOD_DEC_USE_COUNT(w->u.watcher->me);
-+
-+ return 0;
-+}
-+
-+static inline int
-+ebt_cleanup_entry(struct ebt_entry *e, unsigned int *cnt)
-+{
-+ struct ebt_entry_target *t;
-+
-+ if ((e->bitmask & EBT_ENTRY_OR_ENTRIES) == 0)
-+ return 0;
-+ // we're done
-+ if (cnt && (*cnt)-- == 0)
-+ return 1;
-+ EBT_WATCHER_ITERATE(e, ebt_cleanup_watcher, NULL);
-+ EBT_MATCH_ITERATE(e, ebt_cleanup_match, NULL);
-+ t = (struct ebt_entry_target *)(((char *)e) + e->target_offset);
-+ if (t->u.target->destroy)
-+ t->u.target->destroy(t->data, t->target_size);
-+ if (t->u.target->me)
-+ __MOD_DEC_USE_COUNT(t->u.target->me);
-+
-+ return 0;
-+}
-+
-+static inline int
-+ebt_check_entry(struct ebt_entry *e, struct ebt_table_info *newinfo,
-+ const char *name, unsigned int *cnt, unsigned int valid_hooks,
-+ struct ebt_cl_stack *cl_s, unsigned int udc_cnt)
-+{
-+ struct ebt_entry_target *t;
-+ struct ebt_target *target;
-+ unsigned int i, j, hook = 0, hookmask = 0;
-+ int ret;
-+
-+ // Don't mess with the struct ebt_entries
-+ if ((e->bitmask & EBT_ENTRY_OR_ENTRIES) == 0)
-+ return 0;
-+
-+ if (e->bitmask & ~EBT_F_MASK) {
-+ BUGPRINT("Unknown flag for bitmask\n");
-+ return -EINVAL;
-+ }
-+ if (e->invflags & ~EBT_INV_MASK) {
-+ BUGPRINT("Unknown flag for inv bitmask\n");
-+ return -EINVAL;
-+ }
-+ if ( (e->bitmask & EBT_NOPROTO) && (e->bitmask & EBT_802_3) ) {
-+ BUGPRINT("NOPROTO & 802_3 not allowed\n");
-+ return -EINVAL;
-+ }
-+ // what hook do we belong to?
-+ for (i = 0; i < NF_BR_NUMHOOKS; i++) {
-+ if ((valid_hooks & (1 << i)) == 0)
-+ continue;
-+ if ((char *)newinfo->hook_entry[i] < (char *)e)
-+ hook = i;
-+ else
-+ break;
-+ }
-+ // (1 << NF_BR_NUMHOOKS) tells the check functions the rule is on
-+ // a base chain
-+ if (i < NF_BR_NUMHOOKS)
-+ hookmask = (1 << hook) | (1 << NF_BR_NUMHOOKS);
-+ else {
-+ for (i = 0; i < udc_cnt; i++)
-+ if ((char *)(cl_s[i].cs.chaininfo) > (char *)e)
-+ break;
-+ if (i == 0)
-+ hookmask = (1 << hook) | (1 << NF_BR_NUMHOOKS);
-+ else
-+ hookmask = cl_s[i - 1].hookmask;
-+ }
-+ i = 0;
-+ ret = EBT_MATCH_ITERATE(e, ebt_check_match, e, name, hookmask, &i);
-+ if (ret != 0)
-+ goto cleanup_matches;
-+ j = 0;
-+ ret = EBT_WATCHER_ITERATE(e, ebt_check_watcher, e, name, hookmask, &j);
-+ if (ret != 0)
-+ goto cleanup_watchers;
-+ t = (struct ebt_entry_target *)(((char *)e) + e->target_offset);
-+ target = find_target_lock(t->u.name, &ret, &ebt_mutex);
-+ if (!target)
-+ goto cleanup_watchers;
-+ if (target->me)
-+ __MOD_INC_USE_COUNT(target->me);
-+ up(&ebt_mutex);
-+
-+ t->u.target = target;
-+ if (t->u.target == &ebt_standard_target) {
-+ if (e->target_offset + sizeof(struct ebt_standard_target) >
-+ e->next_offset) {
-+ BUGPRINT("Standard target size too big\n");
-+ ret = -EFAULT;
-+ goto cleanup_watchers;
-+ }
-+ if (((struct ebt_standard_target *)t)->verdict <
-+ -NUM_STANDARD_TARGETS) {
-+ BUGPRINT("Invalid standard target\n");
-+ ret = -EFAULT;
-+ goto cleanup_watchers;
-+ }
-+ } else if ((e->target_offset + t->target_size +
-+ sizeof(struct ebt_entry_target) > e->next_offset) ||
-+ (t->u.target->check &&
-+ t->u.target->check(name, hookmask, e, t->data, t->target_size) != 0)){
-+ if (t->u.target->me)
-+ __MOD_DEC_USE_COUNT(t->u.target->me);
-+ ret = -EFAULT;
-+ goto cleanup_watchers;
-+ }
-+ (*cnt)++;
-+ return 0;
-+cleanup_watchers:
-+ EBT_WATCHER_ITERATE(e, ebt_cleanup_watcher, &j);
-+cleanup_matches:
-+ EBT_MATCH_ITERATE(e, ebt_cleanup_match, &i);
-+ return ret;
-+}
-+
-+// checks for loops and sets the hook mask for udc
-+// the hook mask for udc tells us from which base chains the udc can be
-+// accessed. This mask is a parameter to the check() functions of the extensions
-+static int check_chainloops(struct ebt_entries *chain,
-+ struct ebt_cl_stack *cl_s, unsigned int udc_cnt,
-+ unsigned int hooknr, char *base)
-+{
-+ int i, chain_nr = -1, pos = 0, nentries = chain->nentries, verdict;
-+ struct ebt_entry *e = (struct ebt_entry *)chain->data;
-+ struct ebt_entry_target *t;
-+
-+ while (pos < nentries || chain_nr != -1) {
-+ // end of udc, go back one 'recursion' step
-+ if (pos == nentries) {
-+ // put back values of the time when this chain was called
-+ e = cl_s[chain_nr].cs.e;
-+ if (cl_s[chain_nr].from != -1)
-+ nentries =
-+ cl_s[cl_s[chain_nr].from].cs.chaininfo->nentries;
-+ else
-+ nentries = chain->nentries;
-+ pos = cl_s[chain_nr].cs.n;
-+ // make sure we won't see a loop that isn't one
-+ cl_s[chain_nr].cs.n = 0;
-+ chain_nr = cl_s[chain_nr].from;
-+ if (pos == nentries)
-+ continue;
-+ }
-+ t = (struct ebt_entry_target *)
-+ (((char *)e) + e->target_offset);
-+ if (strcmp(t->u.name, EBT_STANDARD_TARGET))
-+ goto letscontinue;
-+ if (e->target_offset + sizeof(struct ebt_standard_target) >
-+ e->next_offset) {
-+ BUGPRINT("Standard target size too big\n");
-+ return -1;
-+ }
-+ verdict = ((struct ebt_standard_target *)t)->verdict;
-+ if (verdict >= 0) { // jump to another chain
-+ struct ebt_entries *hlp2 =
-+ (struct ebt_entries *)(base + verdict);
-+ for (i = 0; i < udc_cnt; i++)
-+ if (hlp2 == cl_s[i].cs.chaininfo)
-+ break;
-+ // bad destination or loop
-+ if (i == udc_cnt) {
-+ BUGPRINT("bad destination\n");
-+ return -1;
-+ }
-+ if (cl_s[i].cs.n) {
-+ BUGPRINT("loop\n");
-+ return -1;
-+ }
-+ // this can't be 0, so the above test is correct
-+ cl_s[i].cs.n = pos + 1;
-+ pos = 0;
-+ cl_s[i].cs.e = ((void *)e + e->next_offset);
-+ e = (struct ebt_entry *)(hlp2->data);
-+ nentries = hlp2->nentries;
-+ cl_s[i].from = chain_nr;
-+ chain_nr = i;
-+ // this udc is accessible from the base chain for hooknr
-+ cl_s[i].hookmask |= (1 << hooknr);
-+ continue;
-+ }
-+letscontinue:
-+ e = (void *)e + e->next_offset;
-+ pos++;
-+ }
-+ return 0;
-+}
-+
-+// do the parsing of the table/chains/entries/matches/watchers/targets, heh
-+static int translate_table(struct ebt_replace *repl,
-+ struct ebt_table_info *newinfo)
-+{
-+ unsigned int i, j, k, udc_cnt;
-+ int ret;
-+ struct ebt_cl_stack *cl_s = NULL; // used in the checking for chain loops
-+
-+ i = 0;
-+ while (i < NF_BR_NUMHOOKS && !(repl->valid_hooks & (1 << i)))
-+ i++;
-+ if (i == NF_BR_NUMHOOKS) {
-+ BUGPRINT("No valid hooks specified\n");
-+ return -EINVAL;
-+ }
-+ if (repl->hook_entry[i] != (struct ebt_entries *)repl->entries) {
-+ BUGPRINT("Chains don't start at beginning\n");
-+ return -EINVAL;
-+ }
-+ // make sure chains are ordered after each other in same order
-+ // as their corresponding hooks
-+ for (j = i + 1; j < NF_BR_NUMHOOKS; j++) {
-+ if (!(repl->valid_hooks & (1 << j)))
-+ continue;
-+ if ( repl->hook_entry[j] <= repl->hook_entry[i] ) {
-+ BUGPRINT("Hook order must be followed\n");
-+ return -EINVAL;
-+ }
-+ i = j;
-+ }
-+
-+ for (i = 0; i < NF_BR_NUMHOOKS; i++)
-+ newinfo->hook_entry[i] = NULL;
-+
-+ newinfo->entries_size = repl->entries_size;
-+ newinfo->nentries = repl->nentries;
-+
-+ // do some early checkings and initialize some things
-+ i = 0; // holds the expected nr. of entries for the chain
-+ j = 0; // holds the up to now counted entries for the chain
-+ k = 0; // holds the total nr. of entries, should equal
-+ // newinfo->nentries afterwards
-+ udc_cnt = 0; // will hold the nr. of user defined chains (udc)
-+ ret = EBT_ENTRY_ITERATE(newinfo->entries, newinfo->entries_size,
-+ ebt_check_entry_size_and_hooks, newinfo, repl->entries,
-+ repl->entries + repl->entries_size, repl->hook_entry, &i, &j, &k,
-+ &udc_cnt, repl->valid_hooks);
-+
-+ if (ret != 0)
-+ return ret;
-+
-+ if (i != j) {
-+ BUGPRINT("nentries does not equal the nr of entries in the "
-+ "(last) chain\n");
-+ return -EINVAL;
-+ }
-+ if (k != newinfo->nentries) {
-+ BUGPRINT("Total nentries is wrong\n");
-+ return -EINVAL;
-+ }
-+
-+ // check if all valid hooks have a chain
-+ for (i = 0; i < NF_BR_NUMHOOKS; i++) {
-+ if (newinfo->hook_entry[i] == NULL &&
-+ (repl->valid_hooks & (1 << i))) {
-+ BUGPRINT("Valid hook without chain\n");
-+ return -EINVAL;
-+ }
-+ }
-+
-+ // Get the location of the udc, put them in an array
-+ // While we're at it, allocate the chainstack
-+ if (udc_cnt) {
-+ // this will get free'd in do_replace()/ebt_register_table()
-+ // if an error occurs
-+ newinfo->chainstack = (struct ebt_chainstack **)
-+ vmalloc(smp_num_cpus * sizeof(struct ebt_chainstack));
-+ if (!newinfo->chainstack)
-+ return -ENOMEM;
-+ for (i = 0; i < smp_num_cpus; i++) {
-+ newinfo->chainstack[i] =
-+ vmalloc(udc_cnt * sizeof(struct ebt_chainstack));
-+ if (!newinfo->chainstack[i]) {
-+ while (i)
-+ vfree(newinfo->chainstack[--i]);
-+ vfree(newinfo->chainstack);
-+ newinfo->chainstack = NULL;
-+ return -ENOMEM;
-+ }
-+ }
-+
-+ cl_s = (struct ebt_cl_stack *)
-+ vmalloc(udc_cnt * sizeof(struct ebt_cl_stack));
-+ if (!cl_s)
-+ return -ENOMEM;
-+ i = 0; // the i'th udc
-+ EBT_ENTRY_ITERATE(newinfo->entries, newinfo->entries_size,
-+ ebt_get_udc_positions, newinfo, repl->hook_entry, &i,
-+ repl->valid_hooks, cl_s);
-+ // sanity check
-+ if (i != udc_cnt) {
-+ BUGPRINT("i != udc_cnt\n");
-+ vfree(cl_s);
-+ return -EFAULT;
-+ }
-+ }
-+
-+ // Check for loops
-+ for (i = 0; i < NF_BR_NUMHOOKS; i++)
-+ if (repl->valid_hooks & (1 << i))
-+ if (check_chainloops(newinfo->hook_entry[i],
-+ cl_s, udc_cnt, i, newinfo->entries)) {
-+ if (cl_s)
-+ vfree(cl_s);
-+ return -EINVAL;
-+ }
-+
-+ // we now know the following (along with E=mc²):
-+ // - the nr of entries in each chain is right
-+ // - the size of the allocated space is right
-+ // - all valid hooks have a corresponding chain
-+ // - there are no loops
-+ // - wrong data can still be on the level of a single entry
-+ // - could be there are jumps to places that are not the
-+ // beginning of a chain. This can only occur in chains that
-+ // are not accessible from any base chains, so we don't care.
-+
-+ // used to know what we need to clean up if something goes wrong
-+ i = 0;
-+ ret = EBT_ENTRY_ITERATE(newinfo->entries, newinfo->entries_size,
-+ ebt_check_entry, newinfo, repl->name, &i, repl->valid_hooks,
-+ cl_s, udc_cnt);
-+ if (ret != 0) {
-+ EBT_ENTRY_ITERATE(newinfo->entries, newinfo->entries_size,
-+ ebt_cleanup_entry, &i);
-+ }
-+ if (cl_s)
-+ vfree(cl_s);
-+ return ret;
-+}
-+
-+// called under write_lock
-+static void get_counters(struct ebt_counter *oldcounters,
-+ struct ebt_counter *counters, unsigned int nentries)
-+{
-+ int i, cpu;
-+ struct ebt_counter *counter_base;
-+
-+ // counters of cpu 0
-+ memcpy(counters, oldcounters,
-+ sizeof(struct ebt_counter) * nentries);
-+ // add other counters to those of cpu 0
-+ for (cpu = 1; cpu < smp_num_cpus; cpu++) {
-+ counter_base = COUNTER_BASE(oldcounters, nentries, cpu);
-+ for (i = 0; i < nentries; i++) {
-+ counters[i].pcnt += counter_base[i].pcnt;
-+ counters[i].bcnt += counter_base[i].bcnt;
-+ }
-+ }
-+}
-+
-+// replace the table
-+static int do_replace(void *user, unsigned int len)
-+{
-+ int ret, i, countersize;
-+ struct ebt_table_info *newinfo;
-+ struct ebt_replace tmp;
-+ struct ebt_table *t;
-+ struct ebt_counter *counterstmp = NULL;
-+ // used to be able to unlock earlier
-+ struct ebt_table_info *table;
-+
-+ if (copy_from_user(&tmp, user, sizeof(tmp)) != 0)
-+ return -EFAULT;
-+
-+ if (len != sizeof(tmp) + tmp.entries_size) {
-+ BUGPRINT("Wrong len argument\n");
-+ return -EINVAL;
-+ }
-+
-+ if (tmp.entries_size == 0) {
-+ BUGPRINT("Entries_size never zero\n");
-+ return -EINVAL;
-+ }
-+ countersize = COUNTER_OFFSET(tmp.nentries) * smp_num_cpus;
-+ newinfo = (struct ebt_table_info *)
-+ vmalloc(sizeof(struct ebt_table_info) + countersize);
-+ if (!newinfo)
-+ return -ENOMEM;
-+
-+ if (countersize)
-+ memset(newinfo->counters, 0, countersize);
-+
-+ newinfo->entries = (char *)vmalloc(tmp.entries_size);
-+ if (!newinfo->entries) {
-+ ret = -ENOMEM;
-+ goto free_newinfo;
-+ }
-+ if (copy_from_user(
-+ newinfo->entries, tmp.entries, tmp.entries_size) != 0) {
-+ BUGPRINT("Couldn't copy entries from userspace\n");
-+ ret = -EFAULT;
-+ goto free_entries;
-+ }
-+
-+ // the user wants counters back
-+ // the check on the size is done later, when we have the lock
-+ if (tmp.num_counters) {
-+ counterstmp = (struct ebt_counter *)
-+ vmalloc(tmp.num_counters * sizeof(struct ebt_counter));
-+ if (!counterstmp) {
-+ ret = -ENOMEM;
-+ goto free_entries;
-+ }
-+ }
-+ else
-+ counterstmp = NULL;
-+
-+ // this can get initialized by translate_table()
-+ newinfo->chainstack = NULL;
-+ ret = translate_table(&tmp, newinfo);
-+
-+ if (ret != 0)
-+ goto free_counterstmp;
-+
-+ t = find_table_lock(tmp.name, &ret, &ebt_mutex);
-+ if (!t)
-+ goto free_iterate;
-+
-+ // the table doesn't like it
-+ if (t->check && (ret = t->check(newinfo, tmp.valid_hooks)))
-+ goto free_unlock;
-+
-+ if (tmp.num_counters && tmp.num_counters != t->private->nentries) {
-+ BUGPRINT("Wrong nr. of counters requested\n");
-+ ret = -EINVAL;
-+ goto free_unlock;
-+ }
-+
-+ // we have the mutex lock, so no danger in reading this pointer
-+ table = t->private;
-+ // we need an atomic snapshot of the counters
-+ write_lock_bh(&t->lock);
-+ if (tmp.num_counters)
-+ get_counters(t->private->counters, counterstmp,
-+ t->private->nentries);
-+
-+ t->private = newinfo;
-+ write_unlock_bh(&t->lock);
-+ up(&ebt_mutex);
-+ // So, a user can change the chains while having messed up her counter
-+ // allocation. Only reason why this is done is because this way the lock
-+ // is held only once, while this doesn't bring the kernel into a
-+ // dangerous state.
-+ if (tmp.num_counters &&
-+ copy_to_user(tmp.counters, counterstmp,
-+ tmp.num_counters * sizeof(struct ebt_counter))) {
-+ BUGPRINT("Couldn't copy counters to userspace\n");
-+ ret = -EFAULT;
-+ }
-+ else
-+ ret = 0;
-+
-+ // decrease module count and free resources
-+ EBT_ENTRY_ITERATE(table->entries, table->entries_size,
-+ ebt_cleanup_entry, NULL);
-+
-+ vfree(table->entries);
-+ if (table->chainstack) {
-+ for (i = 0; i < smp_num_cpus; i++)
-+ vfree(table->chainstack[i]);
-+ vfree(table->chainstack);
-+ }
-+ vfree(table);
-+
-+ if (counterstmp)
-+ vfree(counterstmp);
-+ return ret;
-+
-+free_unlock:
-+ up(&ebt_mutex);
-+free_iterate:
-+ EBT_ENTRY_ITERATE(newinfo->entries, newinfo->entries_size,
-+ ebt_cleanup_entry, NULL);
-+free_counterstmp:
-+ if (counterstmp)
-+ vfree(counterstmp);
-+ // can be initialized in translate_table()
-+ if (newinfo->chainstack) {
-+ for (i = 0; i < smp_num_cpus; i++)
-+ vfree(newinfo->chainstack[i]);
-+ vfree(newinfo->chainstack);
-+ }
-+free_entries:
-+ if (newinfo->entries)
-+ vfree(newinfo->entries);
-+free_newinfo:
-+ if (newinfo)
-+ vfree(newinfo);
-+ return ret;
-+}
-+
-+int ebt_register_target(struct ebt_target *target)
-+{
-+ int ret;
-+
-+ ret = down_interruptible(&ebt_mutex);
-+ if (ret != 0)
-+ return ret;
-+ if (!list_named_insert(&ebt_targets, target)) {
-+ up(&ebt_mutex);
-+ return -EEXIST;
-+ }
-+ up(&ebt_mutex);
-+ MOD_INC_USE_COUNT;
-+
-+ return 0;
-+}
-+
-+void ebt_unregister_target(struct ebt_target *target)
-+{
-+ down(&ebt_mutex);
-+ LIST_DELETE(&ebt_targets, target);
-+ up(&ebt_mutex);
-+ MOD_DEC_USE_COUNT;
-+}
-+
-+int ebt_register_match(struct ebt_match *match)
-+{
-+ int ret;
-+
-+ ret = down_interruptible(&ebt_mutex);
-+ if (ret != 0)
-+ return ret;
-+ if (!list_named_insert(&ebt_matches, match)) {
-+ up(&ebt_mutex);
-+ return -EEXIST;
-+ }
-+ up(&ebt_mutex);
-+ MOD_INC_USE_COUNT;
-+
-+ return 0;
-+}
-+
-+void ebt_unregister_match(struct ebt_match *match)
-+{
-+ down(&ebt_mutex);
-+ LIST_DELETE(&ebt_matches, match);
-+ up(&ebt_mutex);
-+ MOD_DEC_USE_COUNT;
-+}
-+
-+int ebt_register_watcher(struct ebt_watcher *watcher)
-+{
-+ int ret;
-+
-+ ret = down_interruptible(&ebt_mutex);
-+ if (ret != 0)
-+ return ret;
-+ if (!list_named_insert(&ebt_watchers, watcher)) {
-+ up(&ebt_mutex);
-+ return -EEXIST;
-+ }
-+ up(&ebt_mutex);
-+ MOD_INC_USE_COUNT;
-+
-+ return 0;
-+}
-+
-+void ebt_unregister_watcher(struct ebt_watcher *watcher)
-+{
-+ down(&ebt_mutex);
-+ LIST_DELETE(&ebt_watchers, watcher);
-+ up(&ebt_mutex);
-+ MOD_DEC_USE_COUNT;
-+}
-+
-+int ebt_register_table(struct ebt_table *table)
-+{
-+ struct ebt_table_info *newinfo;
-+ int ret, i, countersize;
-+
-+ if (!table || !table->table ||!table->table->entries ||
-+ table->table->entries_size == 0 ||
-+ table->table->counters || table->private) {
-+ BUGPRINT("Bad table data for ebt_register_table!!!\n");
-+ return -EINVAL;
-+ }
-+
-+ countersize = COUNTER_OFFSET(table->table->nentries) * smp_num_cpus;
-+ newinfo = (struct ebt_table_info *)
-+ vmalloc(sizeof(struct ebt_table_info) + countersize);
-+ ret = -ENOMEM;
-+ if (!newinfo)
-+ return -ENOMEM;
-+
-+ newinfo->entries = (char *)vmalloc(table->table->entries_size);
-+ if (!(newinfo->entries))
-+ goto free_newinfo;
-+
-+ memcpy(newinfo->entries, table->table->entries,
-+ table->table->entries_size);
-+
-+ if (countersize)
-+ memset(newinfo->counters, 0, countersize);
-+
-+ // fill in newinfo and parse the entries
-+ newinfo->chainstack = NULL;
-+ ret = translate_table(table->table, newinfo);
-+ if (ret != 0) {
-+ BUGPRINT("Translate_table failed\n");
-+ goto free_chainstack;
-+ }
-+
-+ if (table->check && table->check(newinfo, table->valid_hooks)) {
-+ BUGPRINT("The table doesn't like its own initial data, lol\n");
-+ return -EINVAL;
-+ }
-+
-+ table->private = newinfo;
-+ table->lock = RW_LOCK_UNLOCKED;
-+ ret = down_interruptible(&ebt_mutex);
-+ if (ret != 0)
-+ goto free_chainstack;
-+
-+ if (list_named_find(&ebt_tables, table->name)) {
-+ ret = -EEXIST;
-+ BUGPRINT("Table name already exists\n");
-+ goto free_unlock;
-+ }
-+
-+ list_prepend(&ebt_tables, table);
-+ up(&ebt_mutex);
-+ MOD_INC_USE_COUNT;
-+ return 0;
-+free_unlock:
-+ up(&ebt_mutex);
-+free_chainstack:
-+ if (newinfo->chainstack) {
-+ for (i = 0; i < smp_num_cpus; i++)
-+ vfree(newinfo->chainstack[i]);
-+ vfree(newinfo->chainstack);
-+ }
-+ vfree(newinfo->entries);
-+free_newinfo:
-+ vfree(newinfo);
-+ return ret;
-+}
-+
-+void ebt_unregister_table(struct ebt_table *table)
-+{
-+ int i;
-+
-+ if (!table) {
-+ BUGPRINT("Request to unregister NULL table!!!\n");
-+ return;
-+ }
-+ down(&ebt_mutex);
-+ LIST_DELETE(&ebt_tables, table);
-+ up(&ebt_mutex);
-+ EBT_ENTRY_ITERATE(table->private->entries,
-+ table->private->entries_size, ebt_cleanup_entry, NULL);
-+ if (table->private->entries)
-+ vfree(table->private->entries);
-+ if (table->private->chainstack) {
-+ for (i = 0; i < smp_num_cpus; i++)
-+ vfree(table->private->chainstack[i]);
-+ vfree(table->private->chainstack);
-+ }
-+ vfree(table->private);
-+ MOD_DEC_USE_COUNT;
-+}
-+
-+// userspace just supplied us with counters
-+static int update_counters(void *user, unsigned int len)
-+{
-+ int i, ret;
-+ struct ebt_counter *tmp;
-+ struct ebt_replace hlp;
-+ struct ebt_table *t;
-+
-+ if (copy_from_user(&hlp, user, sizeof(hlp)))
-+ return -EFAULT;
-+
-+ if (len != sizeof(hlp) + hlp.num_counters * sizeof(struct ebt_counter))
-+ return -EINVAL;
-+ if (hlp.num_counters == 0)
-+ return -EINVAL;
-+
-+ if ( !(tmp = (struct ebt_counter *)
-+ vmalloc(hlp.num_counters * sizeof(struct ebt_counter))) ){
-+ MEMPRINT("Update_counters && nomemory\n");
-+ return -ENOMEM;
-+ }
-+
-+ t = find_table_lock(hlp.name, &ret, &ebt_mutex);
-+ if (!t)
-+ goto free_tmp;
-+
-+ if (hlp.num_counters != t->private->nentries) {
-+ BUGPRINT("Wrong nr of counters\n");
-+ ret = -EINVAL;
-+ goto unlock_mutex;
-+ }
-+
-+ if ( copy_from_user(tmp, hlp.counters,
-+ hlp.num_counters * sizeof(struct ebt_counter)) ) {
-+ BUGPRINT("Updata_counters && !cfu\n");
-+ ret = -EFAULT;
-+ goto unlock_mutex;
-+ }
-+
-+ // we want an atomic add of the counters
-+ write_lock_bh(&t->lock);
-+
-+ // we add to the counters of the first cpu
-+ for (i = 0; i < hlp.num_counters; i++) {
-+ t->private->counters[i].pcnt += tmp[i].pcnt;
-+ t->private->counters[i].bcnt += tmp[i].bcnt;
-+ }
-+
-+ write_unlock_bh(&t->lock);
-+ ret = 0;
-+unlock_mutex:
-+ up(&ebt_mutex);
-+free_tmp:
-+ vfree(tmp);
-+ return ret;
-+}
-+
-+static inline int ebt_make_matchname(struct ebt_entry_match *m,
-+ char *base, char *ubase)
-+{
-+ char *hlp = ubase - base + (char *)m;
-+ if (copy_to_user(hlp, m->u.match->name, EBT_FUNCTION_MAXNAMELEN))
-+ return -EFAULT;
-+ return 0;
-+}
-+
-+static inline int ebt_make_watchername(struct ebt_entry_watcher *w,
-+ char *base, char *ubase)
-+{
-+ char *hlp = ubase - base + (char *)w;
-+ if (copy_to_user(hlp , w->u.watcher->name, EBT_FUNCTION_MAXNAMELEN))
-+ return -EFAULT;
-+ return 0;
-+}
-+
-+static inline int ebt_make_names(struct ebt_entry *e, char *base, char *ubase)
-+{
-+ int ret;
-+ char *hlp;
-+ struct ebt_entry_target *t;
-+
-+ if ((e->bitmask & EBT_ENTRY_OR_ENTRIES) == 0)
-+ return 0;
-+
-+ hlp = ubase - base + (char *)e + e->target_offset;
-+ t = (struct ebt_entry_target *)(((char *)e) + e->target_offset);
-+
-+ ret = EBT_MATCH_ITERATE(e, ebt_make_matchname, base, ubase);
-+ if (ret != 0)
-+ return ret;
-+ ret = EBT_WATCHER_ITERATE(e, ebt_make_watchername, base, ubase);
-+ if (ret != 0)
-+ return ret;
-+ if (copy_to_user(hlp, t->u.target->name, EBT_FUNCTION_MAXNAMELEN))
-+ return -EFAULT;
-+ return 0;
-+}
-+
-+// called with ebt_mutex down
-+static int copy_everything_to_user(struct ebt_table *t, void *user,
-+ int *len, int cmd)
-+{
-+ struct ebt_replace tmp;
-+ struct ebt_counter *counterstmp, *oldcounters;
-+ unsigned int entries_size, nentries;
-+ char *entries;
-+
-+ if (cmd == EBT_SO_GET_ENTRIES) {
-+ entries_size = t->private->entries_size;
-+ nentries = t->private->nentries;
-+ entries = t->private->entries;
-+ oldcounters = t->private->counters;
-+ } else {
-+ entries_size = t->table->entries_size;
-+ nentries = t->table->nentries;
-+ entries = t->table->entries;
-+ oldcounters = t->table->counters;
-+ }
-+
-+ if (copy_from_user(&tmp, user, sizeof(tmp))) {
-+ BUGPRINT("Cfu didn't work\n");
-+ return -EFAULT;
-+ }
-+
-+ if (*len != sizeof(struct ebt_replace) + entries_size +
-+ (tmp.num_counters? nentries * sizeof(struct ebt_counter): 0)) {
-+ BUGPRINT("Wrong size\n");
-+ return -EINVAL;
-+ }
-+
-+ if (tmp.nentries != nentries) {
-+ BUGPRINT("Nentries wrong\n");
-+ return -EINVAL;
-+ }
-+
-+ if (tmp.entries_size != entries_size) {
-+ BUGPRINT("Wrong size\n");
-+ return -EINVAL;
-+ }
-+
-+ // userspace might not need the counters
-+ if (tmp.num_counters) {
-+ if (tmp.num_counters != nentries) {
-+ BUGPRINT("Num_counters wrong\n");
-+ return -EINVAL;
-+ }
-+ counterstmp = (struct ebt_counter *)
-+ vmalloc(nentries * sizeof(struct ebt_counter));
-+ if (!counterstmp) {
-+ MEMPRINT("Couldn't copy counters, out of memory\n");
-+ return -ENOMEM;
-+ }
-+ write_lock_bh(&t->lock);
-+ get_counters(oldcounters, counterstmp, nentries);
-+ write_unlock_bh(&t->lock);
-+
-+ if (copy_to_user(tmp.counters, counterstmp,
-+ nentries * sizeof(struct ebt_counter))) {
-+ BUGPRINT("Couldn't copy counters to userspace\n");
-+ vfree(counterstmp);
-+ return -EFAULT;
-+ }
-+ vfree(counterstmp);
-+ }
-+
-+ if (copy_to_user(tmp.entries, entries, entries_size)) {
-+ BUGPRINT("Couldn't copy entries to userspace\n");
-+ return -EFAULT;
-+ }
-+ // set the match/watcher/target names right
-+ return EBT_ENTRY_ITERATE(entries, entries_size,
-+ ebt_make_names, entries, tmp.entries);
-+}
-+
-+static int do_ebt_set_ctl(struct sock *sk,
-+ int cmd, void *user, unsigned int len)
-+{
-+ int ret;
-+
-+ switch(cmd) {
-+ case EBT_SO_SET_ENTRIES:
-+ ret = do_replace(user, len);
-+ break;
-+ case EBT_SO_SET_COUNTERS:
-+ ret = update_counters(user, len);
-+ break;
-+ default:
-+ ret = -EINVAL;
-+ }
-+ return ret;
-+}
-+
-+static int do_ebt_get_ctl(struct sock *sk, int cmd, void *user, int *len)
-+{
-+ int ret;
-+ struct ebt_replace tmp;
-+ struct ebt_table *t;
-+
-+ if (copy_from_user(&tmp, user, sizeof(tmp)))
-+ return -EFAULT;
-+
-+ t = find_table_lock(tmp.name, &ret, &ebt_mutex);
-+ if (!t)
-+ return ret;
-+
-+ switch(cmd) {
-+ case EBT_SO_GET_INFO:
-+ case EBT_SO_GET_INIT_INFO:
-+ if (*len != sizeof(struct ebt_replace)){
-+ ret = -EINVAL;
-+ up(&ebt_mutex);
-+ break;
-+ }
-+ if (cmd == EBT_SO_GET_INFO) {
-+ tmp.nentries = t->private->nentries;
-+ tmp.entries_size = t->private->entries_size;
-+ tmp.valid_hooks = t->valid_hooks;
-+ } else {
-+ tmp.nentries = t->table->nentries;
-+ tmp.entries_size = t->table->entries_size;
-+ tmp.valid_hooks = t->table->valid_hooks;
-+ }
-+ up(&ebt_mutex);
-+ if (copy_to_user(user, &tmp, *len) != 0){
-+ BUGPRINT("c2u Didn't work\n");
-+ ret = -EFAULT;
-+ break;
-+ }
-+ ret = 0;
-+ break;
-+
-+ case EBT_SO_GET_ENTRIES:
-+ case EBT_SO_GET_INIT_ENTRIES:
-+ ret = copy_everything_to_user(t, user, len, cmd);
-+ up(&ebt_mutex);
-+ break;
-+
-+ default:
-+ up(&ebt_mutex);
-+ ret = -EINVAL;
-+ }
-+
-+ return ret;
-+}
-+
-+static struct nf_sockopt_ops ebt_sockopts =
-+{ { NULL, NULL }, PF_INET, EBT_BASE_CTL, EBT_SO_SET_MAX + 1, do_ebt_set_ctl,
-+ EBT_BASE_CTL, EBT_SO_GET_MAX + 1, do_ebt_get_ctl, 0, NULL
-+};
-+
-+static int __init init(void)
-+{
-+ int ret;
-+
-+ down(&ebt_mutex);
-+ list_named_insert(&ebt_targets, &ebt_standard_target);
-+ up(&ebt_mutex);
-+ if ((ret = nf_register_sockopt(&ebt_sockopts)) < 0)
-+ return ret;
-+
-+ printk(KERN_NOTICE "Ebtables v2.0 registered\n");
-+ return 0;
-+}
-+
-+static void __exit fini(void)
-+{
-+ nf_unregister_sockopt(&ebt_sockopts);
-+ printk(KERN_NOTICE "Ebtables v2.0 unregistered\n");
-+}
-+
-+EXPORT_SYMBOL(ebt_register_table);
-+EXPORT_SYMBOL(ebt_unregister_table);
-+EXPORT_SYMBOL(ebt_register_match);
-+EXPORT_SYMBOL(ebt_unregister_match);
-+EXPORT_SYMBOL(ebt_register_watcher);
-+EXPORT_SYMBOL(ebt_unregister_watcher);
-+EXPORT_SYMBOL(ebt_register_target);
-+EXPORT_SYMBOL(ebt_unregister_target);
-+EXPORT_SYMBOL(ebt_do_table);
-+module_init(init);
-+module_exit(fini);
-+MODULE_LICENSE("GPL");
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebtables.h 2005-01-07 02:57:30.893817600 -0500
-@@ -0,0 +1,361 @@
-+/*
-+ * ebtables
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * ebtables.c,v 2.0, September, 2002
-+ *
-+ * This code is stongly inspired on the iptables code which is
-+ * Copyright (C) 1999 Paul `Rusty' Russell & Michael J. Neuling
-+ */
-+
-+#ifndef __LINUX_BRIDGE_EFF_H
-+#define __LINUX_BRIDGE_EFF_H
-+#include <linux/if.h>
-+#include <linux/netfilter_bridge.h>
-+#include <linux/if_ether.h>
-+
-+#define EBT_TABLE_MAXNAMELEN 32
-+#define EBT_CHAIN_MAXNAMELEN EBT_TABLE_MAXNAMELEN
-+#define EBT_FUNCTION_MAXNAMELEN EBT_TABLE_MAXNAMELEN
-+
-+// verdicts >0 are "branches"
-+#define EBT_ACCEPT -1
-+#define EBT_DROP -2
-+#define EBT_CONTINUE -3
-+#define EBT_RETURN -4
-+#define NUM_STANDARD_TARGETS 4
-+
-+struct ebt_replace
-+{
-+ char name[EBT_TABLE_MAXNAMELEN];
-+ unsigned int valid_hooks;
-+ // nr of rules in the table
-+ unsigned int nentries;
-+ // total size of the entries
-+ unsigned int entries_size;
-+ // start of the chains
-+ struct ebt_entries *hook_entry[NF_BR_NUMHOOKS];
-+ // nr of counters userspace expects back
-+ unsigned int num_counters;
-+ // where the kernel will put the old counters
-+ struct ebt_counter *counters;
-+ char *entries;
-+};
-+
-+struct ebt_counter
-+{
-+ uint64_t pcnt;
-+ uint64_t bcnt;
-+};
-+
-+struct ebt_entries {
-+ // this field is always set to zero
-+ // See EBT_ENTRY_OR_ENTRIES.
-+ // Must be same size as ebt_entry.bitmask
-+ unsigned int distinguisher;
-+ // the chain name
-+ char name[EBT_CHAIN_MAXNAMELEN];
-+ // counter offset for this chain
-+ unsigned int counter_offset;
-+ // one standard (accept, drop, return) per hook
-+ int policy;
-+ // nr. of entries
-+ unsigned int nentries;
-+ // entry list
-+ char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-+};
-+
-+// used for the bitmask of struct ebt_entry
-+
-+// This is a hack to make a difference between an ebt_entry struct and an
-+// ebt_entries struct when traversing the entries from start to end.
-+// Using this simplifies the code alot, while still being able to use
-+// ebt_entries.
-+// Contrary, iptables doesn't use something like ebt_entries and therefore uses
-+// different techniques for naming the policy and such. So, iptables doesn't
-+// need a hack like this.
-+#define EBT_ENTRY_OR_ENTRIES 0x01
-+// these are the normal masks
-+#define EBT_NOPROTO 0x02
-+#define EBT_802_3 0x04
-+#define EBT_SOURCEMAC 0x08
-+#define EBT_DESTMAC 0x10
-+#define EBT_F_MASK (EBT_NOPROTO | EBT_802_3 | EBT_SOURCEMAC | EBT_DESTMAC \
-+ | EBT_ENTRY_OR_ENTRIES)
-+
-+#define EBT_IPROTO 0x01
-+#define EBT_IIN 0x02
-+#define EBT_IOUT 0x04
-+#define EBT_ISOURCE 0x8
-+#define EBT_IDEST 0x10
-+#define EBT_ILOGICALIN 0x20
-+#define EBT_ILOGICALOUT 0x40
-+#define EBT_INV_MASK (EBT_IPROTO | EBT_IIN | EBT_IOUT | EBT_ILOGICALIN \
-+ | EBT_ILOGICALOUT | EBT_ISOURCE | EBT_IDEST)
-+
-+struct ebt_entry_match
-+{
-+ union {
-+ char name[EBT_FUNCTION_MAXNAMELEN];
-+ struct ebt_match *match;
-+ } u;
-+ // size of data
-+ unsigned int match_size;
-+ unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-+};
-+
-+struct ebt_entry_watcher
-+{
-+ union {
-+ char name[EBT_FUNCTION_MAXNAMELEN];
-+ struct ebt_watcher *watcher;
-+ } u;
-+ // size of data
-+ unsigned int watcher_size;
-+ unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-+};
-+
-+struct ebt_entry_target
-+{
-+ union {
-+ char name[EBT_FUNCTION_MAXNAMELEN];
-+ struct ebt_target *target;
-+ } u;
-+ // size of data
-+ unsigned int target_size;
-+ unsigned char data[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-+};
-+
-+#define EBT_STANDARD_TARGET "standard"
-+struct ebt_standard_target
-+{
-+ struct ebt_entry_target target;
-+ int verdict;
-+};
-+
-+// one entry
-+struct ebt_entry {
-+ // this needs to be the first field
-+ unsigned int bitmask;
-+ unsigned int invflags;
-+ uint16_t ethproto;
-+ // the physical in-dev
-+ char in[IFNAMSIZ];
-+ // the logical in-dev
-+ char logical_in[IFNAMSIZ];
-+ // the physical out-dev
-+ char out[IFNAMSIZ];
-+ // the logical out-dev
-+ char logical_out[IFNAMSIZ];
-+ unsigned char sourcemac[ETH_ALEN];
-+ unsigned char sourcemsk[ETH_ALEN];
-+ unsigned char destmac[ETH_ALEN];
-+ unsigned char destmsk[ETH_ALEN];
-+ // sizeof ebt_entry + matches
-+ unsigned int watchers_offset;
-+ // sizeof ebt_entry + matches + watchers
-+ unsigned int target_offset;
-+ // sizeof ebt_entry + matches + watchers + target
-+ unsigned int next_offset;
-+ unsigned char elems[0] __attribute__ ((aligned (__alignof__(struct ebt_replace))));
-+};
-+
-+// [gs]etsockopt numbers
-+#define EBT_BASE_CTL 128
-+
-+#define EBT_SO_SET_ENTRIES (EBT_BASE_CTL)
-+#define EBT_SO_SET_COUNTERS (EBT_SO_SET_ENTRIES+1)
-+#define EBT_SO_SET_MAX (EBT_SO_SET_COUNTERS+1)
-+
-+#define EBT_SO_GET_INFO (EBT_BASE_CTL)
-+#define EBT_SO_GET_ENTRIES (EBT_SO_GET_INFO+1)
-+#define EBT_SO_GET_INIT_INFO (EBT_SO_GET_ENTRIES+1)
-+#define EBT_SO_GET_INIT_ENTRIES (EBT_SO_GET_INIT_INFO+1)
-+#define EBT_SO_GET_MAX (EBT_SO_GET_INIT_ENTRIES+1)
-+
-+#ifdef __KERNEL__
-+
-+// return values for match() functions
-+#define EBT_MATCH 0
-+#define EBT_NOMATCH 1
-+
-+struct ebt_match
-+{
-+ struct list_head list;
-+ const char name[EBT_FUNCTION_MAXNAMELEN];
-+ // 0 == it matches
-+ int (*match)(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *matchdata,
-+ unsigned int datalen);
-+ // 0 == let it in
-+ int (*check)(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *matchdata, unsigned int datalen);
-+ void (*destroy)(void *matchdata, unsigned int datalen);
-+ struct module *me;
-+};
-+
-+struct ebt_watcher
-+{
-+ struct list_head list;
-+ const char name[EBT_FUNCTION_MAXNAMELEN];
-+ void (*watcher)(const struct sk_buff *skb, const struct net_device *in,
-+ const struct net_device *out, const void *watcherdata,
-+ unsigned int datalen);
-+ // 0 == let it in
-+ int (*check)(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *watcherdata, unsigned int datalen);
-+ void (*destroy)(void *watcherdata, unsigned int datalen);
-+ struct module *me;
-+};
-+
-+struct ebt_target
-+{
-+ struct list_head list;
-+ const char name[EBT_FUNCTION_MAXNAMELEN];
-+ // returns one of the standard verdicts
-+ int (*target)(struct sk_buff **pskb, unsigned int hooknr,
-+ const struct net_device *in, const struct net_device *out,
-+ const void *targetdata, unsigned int datalen);
-+ // 0 == let it in
-+ int (*check)(const char *tablename, unsigned int hookmask,
-+ const struct ebt_entry *e, void *targetdata, unsigned int datalen);
-+ void (*destroy)(void *targetdata, unsigned int datalen);
-+ struct module *me;
-+};
-+
-+// used for jumping from and into user defined chains (udc)
-+struct ebt_chainstack
-+{
-+ struct ebt_entries *chaininfo; // pointer to chain data
-+ struct ebt_entry *e; // pointer to entry data
-+ unsigned int n; // n'th entry
-+};
-+
-+struct ebt_table_info
-+{
-+ // total size of the entries
-+ unsigned int entries_size;
-+ unsigned int nentries;
-+ // pointers to the start of the chains
-+ struct ebt_entries *hook_entry[NF_BR_NUMHOOKS];
-+ // room to maintain the stack used for jumping from and into udc
-+ struct ebt_chainstack **chainstack;
-+ char *entries;
-+ struct ebt_counter counters[0] ____cacheline_aligned;
-+};
-+
-+struct ebt_table
-+{
-+ struct list_head list;
-+ char name[EBT_TABLE_MAXNAMELEN];
-+ struct ebt_replace *table;
-+ unsigned int valid_hooks;
-+ rwlock_t lock;
-+ // e.g. could be the table explicitly only allows certain
-+ // matches, targets, ... 0 == let it in
-+ int (*check)(const struct ebt_table_info *info,
-+ unsigned int valid_hooks);
-+ // the data used by the kernel
-+ struct ebt_table_info *private;
-+};
-+
-+#define EBT_ALIGN(s) (((s) + (__alignof__(struct ebt_replace)-1)) & \
-+ ~(__alignof__(struct ebt_replace)-1))
-+extern int ebt_register_table(struct ebt_table *table);
-+extern void ebt_unregister_table(struct ebt_table *table);
-+extern int ebt_register_match(struct ebt_match *match);
-+extern void ebt_unregister_match(struct ebt_match *match);
-+extern int ebt_register_watcher(struct ebt_watcher *watcher);
-+extern void ebt_unregister_watcher(struct ebt_watcher *watcher);
-+extern int ebt_register_target(struct ebt_target *target);
-+extern void ebt_unregister_target(struct ebt_target *target);
-+extern unsigned int ebt_do_table(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ struct ebt_table *table);
-+
-+ // Used in the kernel match() functions
-+#define FWINV(bool,invflg) ((bool) ^ !!(info->invflags & invflg))
-+// True if the hook mask denotes that the rule is in a base chain,
-+// used in the check() functions
-+#define BASE_CHAIN (hookmask & (1 << NF_BR_NUMHOOKS))
-+// Clear the bit in the hook mask that tells if the rule is on a base chain
-+#define CLEAR_BASE_CHAIN_BIT (hookmask &= ~(1 << NF_BR_NUMHOOKS))
-+// True if the target is not a standard target
-+#define INVALID_TARGET (info->target < -NUM_STANDARD_TARGETS || info->target >= 0)
-+
-+#endif /* __KERNEL__ */
-+
-+// blatently stolen from ip_tables.h
-+// fn returns 0 to continue iteration
-+#define EBT_MATCH_ITERATE(e, fn, args...) \
-+({ \
-+ unsigned int __i; \
-+ int __ret = 0; \
-+ struct ebt_entry_match *__match; \
-+ \
-+ for (__i = sizeof(struct ebt_entry); \
-+ __i < (e)->watchers_offset; \
-+ __i += __match->match_size + \
-+ sizeof(struct ebt_entry_match)) { \
-+ __match = (void *)(e) + __i; \
-+ \
-+ __ret = fn(__match , ## args); \
-+ if (__ret != 0) \
-+ break; \
-+ } \
-+ if (__ret == 0) { \
-+ if (__i != (e)->watchers_offset) \
-+ __ret = -EINVAL; \
-+ } \
-+ __ret; \
-+})
-+
-+#define EBT_WATCHER_ITERATE(e, fn, args...) \
-+({ \
-+ unsigned int __i; \
-+ int __ret = 0; \
-+ struct ebt_entry_watcher *__watcher; \
-+ \
-+ for (__i = e->watchers_offset; \
-+ __i < (e)->target_offset; \
-+ __i += __watcher->watcher_size + \
-+ sizeof(struct ebt_entry_watcher)) { \
-+ __watcher = (void *)(e) + __i; \
-+ \
-+ __ret = fn(__watcher , ## args); \
-+ if (__ret != 0) \
-+ break; \
-+ } \
-+ if (__ret == 0) { \
-+ if (__i != (e)->target_offset) \
-+ __ret = -EINVAL; \
-+ } \
-+ __ret; \
-+})
-+
-+#define EBT_ENTRY_ITERATE(entries, size, fn, args...) \
-+({ \
-+ unsigned int __i; \
-+ int __ret = 0; \
-+ struct ebt_entry *__entry; \
-+ \
-+ for (__i = 0; __i < (size);) { \
-+ __entry = (void *)(entries) + __i; \
-+ __ret = fn(__entry , ## args); \
-+ if (__ret != 0) \
-+ break; \
-+ if (__entry->bitmask != 0) \
-+ __i += __entry->next_offset; \
-+ else \
-+ __i += sizeof(struct ebt_entries); \
-+ } \
-+ if (__ret == 0) { \
-+ if (__i != (size)) \
-+ __ret = -EINVAL; \
-+ } \
-+ __ret; \
-+})
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_802_3.h 2005-01-07 02:57:30.894817448 -0500
-@@ -0,0 +1,60 @@
-+#ifndef __LINUX_BRIDGE_EBT_802_3_H
-+#define __LINUX_BRIDGE_EBT_802_3_H
-+
-+#define EBT_802_3_SAP 0x01
-+#define EBT_802_3_TYPE 0x02
-+
-+#define EBT_802_3_MATCH "802_3"
-+
-+/*
-+ * If frame has DSAP/SSAP value 0xaa you must check the SNAP type
-+ * to discover what kind of packet we're carrying.
-+ */
-+#define CHECK_TYPE 0xaa
-+
-+/*
-+ * Control field may be one or two bytes. If the first byte has
-+ * the value 0x03 then the entire length is one byte, otherwise it is two.
-+ * One byte controls are used in Unnumbered Information frames.
-+ * Two byte controls are used in Numbered Information frames.
-+ */
-+#define IS_UI 0x03
-+
-+#define EBT_802_3_MASK (EBT_802_3_SAP | EBT_802_3_TYPE | EBT_802_3)
-+
-+/* ui has one byte ctrl, ni has two */
-+struct hdr_ui {
-+ uint8_t dsap;
-+ uint8_t ssap;
-+ uint8_t ctrl;
-+ uint8_t orig[3];
-+ uint16_t type;
-+};
-+
-+struct hdr_ni {
-+ uint8_t dsap;
-+ uint8_t ssap;
-+ uint16_t ctrl;
-+ uint8_t orig[3];
-+ uint16_t type;
-+};
-+
-+struct ebt_802_3_hdr {
-+ uint8_t daddr[6];
-+ uint8_t saddr[6];
-+ uint16_t len;
-+ union {
-+ struct hdr_ui ui;
-+ struct hdr_ni ni;
-+ } llc;
-+};
-+
-+struct ebt_802_3_info
-+{
-+ uint8_t sap;
-+ uint16_t type;
-+ uint8_t bitmask;
-+ uint8_t invflags;
-+};
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_arp.h 2005-01-07 02:57:30.894817448 -0500
-@@ -0,0 +1,32 @@
-+#ifndef __LINUX_BRIDGE_EBT_ARP_H
-+#define __LINUX_BRIDGE_EBT_ARP_H
-+
-+#define EBT_ARP_OPCODE 0x01
-+#define EBT_ARP_HTYPE 0x02
-+#define EBT_ARP_PTYPE 0x04
-+#define EBT_ARP_SRC_IP 0x08
-+#define EBT_ARP_DST_IP 0x10
-+#define EBT_ARP_SRC_MAC 0x20
-+#define EBT_ARP_DST_MAC 0x40
-+#define EBT_ARP_MASK (EBT_ARP_OPCODE | EBT_ARP_HTYPE | EBT_ARP_PTYPE | \
-+ EBT_ARP_SRC_IP | EBT_ARP_DST_IP | EBT_ARP_SRC_MAC | EBT_ARP_DST_MAC)
-+#define EBT_ARP_MATCH "arp"
-+
-+struct ebt_arp_info
-+{
-+ uint16_t htype;
-+ uint16_t ptype;
-+ uint16_t opcode;
-+ uint32_t saddr;
-+ uint32_t smsk;
-+ uint32_t daddr;
-+ uint32_t dmsk;
-+ unsigned char smaddr[ETH_ALEN];
-+ unsigned char smmsk[ETH_ALEN];
-+ unsigned char dmaddr[ETH_ALEN];
-+ unsigned char dmmsk[ETH_ALEN];
-+ uint8_t bitmask;
-+ uint8_t invflags;
-+};
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_ip.h 2005-01-07 02:57:30.894817448 -0500
-@@ -0,0 +1,43 @@
-+/*
-+ * ebt_ip
-+ *
-+ * Authors:
-+ * Bart De Schuymer <bart.de.schuymer@pandora.be>
-+ *
-+ * April, 2002
-+ *
-+ * Changes:
-+ * added ip-sport and ip-dport
-+ * Innominate Security Technologies AG <mhopf@innominate.com>
-+ * September, 2002
-+ */
-+
-+#ifndef __LINUX_BRIDGE_EBT_IP_H
-+#define __LINUX_BRIDGE_EBT_IP_H
-+
-+#define EBT_IP_SOURCE 0x01
-+#define EBT_IP_DEST 0x02
-+#define EBT_IP_TOS 0x04
-+#define EBT_IP_PROTO 0x08
-+#define EBT_IP_SPORT 0x10
-+#define EBT_IP_DPORT 0x20
-+#define EBT_IP_MASK (EBT_IP_SOURCE | EBT_IP_DEST | EBT_IP_TOS | EBT_IP_PROTO |\
-+ EBT_IP_SPORT | EBT_IP_DPORT )
-+#define EBT_IP_MATCH "ip"
-+
-+// the same values are used for the invflags
-+struct ebt_ip_info
-+{
-+ uint32_t saddr;
-+ uint32_t daddr;
-+ uint32_t smsk;
-+ uint32_t dmsk;
-+ uint8_t tos;
-+ uint8_t protocol;
-+ uint8_t bitmask;
-+ uint8_t invflags;
-+ uint16_t sport[2];
-+ uint16_t dport[2];
-+};
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_pkttype.h 2005-01-07 02:57:30.894817448 -0500
-@@ -0,0 +1,11 @@
-+#ifndef __LINUX_BRIDGE_EBT_PKTTYPE_H
-+#define __LINUX_BRIDGE_EBT_PKTTYPE_H
-+
-+struct ebt_pkttype_info
-+{
-+ uint8_t pkt_type;
-+ uint8_t invert;
-+};
-+#define EBT_PKTTYPE_MATCH "pkttype"
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_stp.h 2005-01-07 02:57:30.894817448 -0500
-@@ -0,0 +1,46 @@
-+#ifndef __LINUX_BRIDGE_EBT_STP_H
-+#define __LINUX_BRIDGE_EBT_STP_H
-+
-+#define EBT_STP_TYPE 0x0001
-+
-+#define EBT_STP_FLAGS 0x0002
-+#define EBT_STP_ROOTPRIO 0x0004
-+#define EBT_STP_ROOTADDR 0x0008
-+#define EBT_STP_ROOTCOST 0x0010
-+#define EBT_STP_SENDERPRIO 0x0020
-+#define EBT_STP_SENDERADDR 0x0040
-+#define EBT_STP_PORT 0x0080
-+#define EBT_STP_MSGAGE 0x0100
-+#define EBT_STP_MAXAGE 0x0200
-+#define EBT_STP_HELLOTIME 0x0400
-+#define EBT_STP_FWDD 0x0800
-+
-+#define EBT_STP_MASK 0x0fff
-+#define EBT_STP_CONFIG_MASK 0x0ffe
-+
-+#define EBT_STP_MATCH "stp"
-+
-+struct ebt_stp_config_info
-+{
-+ uint8_t flags;
-+ uint16_t root_priol, root_priou;
-+ char root_addr[6], root_addrmsk[6];
-+ uint32_t root_costl, root_costu;
-+ uint16_t sender_priol, sender_priou;
-+ char sender_addr[6], sender_addrmsk[6];
-+ uint16_t portl, portu;
-+ uint16_t msg_agel, msg_ageu;
-+ uint16_t max_agel, max_ageu;
-+ uint16_t hello_timel, hello_timeu;
-+ uint16_t forward_delayl, forward_delayu;
-+};
-+
-+struct ebt_stp_info
-+{
-+ uint8_t type;
-+ struct ebt_stp_config_info config;
-+ uint16_t bitmask;
-+ uint16_t invflags;
-+};
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_vlan.h 2005-01-07 02:57:30.895817296 -0500
-@@ -0,0 +1,20 @@
-+#ifndef __LINUX_BRIDGE_EBT_VLAN_H
-+#define __LINUX_BRIDGE_EBT_VLAN_H
-+
-+#define EBT_VLAN_ID 0x01
-+#define EBT_VLAN_PRIO 0x02
-+#define EBT_VLAN_ENCAP 0x04
-+#define EBT_VLAN_MASK (EBT_VLAN_ID | EBT_VLAN_PRIO | EBT_VLAN_ENCAP)
-+#define EBT_VLAN_MATCH "vlan"
-+
-+struct ebt_vlan_info {
-+ uint16_t id; /* VLAN ID {1-4095} */
-+ uint8_t prio; /* VLAN User Priority {0-7} */
-+ uint16_t encap; /* VLAN Encapsulated frame code {0-65535} */
-+ uint8_t bitmask; /* Args bitmask bit 1=1 - ID arg,
-+ bit 2=1 User-Priority arg, bit 3=1 encap*/
-+ uint8_t invflags; /* Inverse bitmask bit 1=1 - inversed ID arg,
-+ bit 2=1 - inversed Pirority arg */
-+};
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_log.h 2005-01-07 02:57:30.895817296 -0500
-@@ -0,0 +1,17 @@
-+#ifndef __LINUX_BRIDGE_EBT_LOG_H
-+#define __LINUX_BRIDGE_EBT_LOG_H
-+
-+#define EBT_LOG_IP 0x01 // if the frame is made by ip, log the ip information
-+#define EBT_LOG_ARP 0x02
-+#define EBT_LOG_MASK (EBT_LOG_IP | EBT_LOG_ARP)
-+#define EBT_LOG_PREFIX_SIZE 30
-+#define EBT_LOG_WATCHER "log"
-+
-+struct ebt_log_info
-+{
-+ uint8_t loglevel;
-+ uint8_t prefix[EBT_LOG_PREFIX_SIZE];
-+ uint32_t bitmask;
-+};
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_nat.h 2005-01-07 02:57:30.895817296 -0500
-@@ -0,0 +1,13 @@
-+#ifndef __LINUX_BRIDGE_EBT_NAT_H
-+#define __LINUX_BRIDGE_EBT_NAT_H
-+
-+struct ebt_nat_info
-+{
-+ unsigned char mac[ETH_ALEN];
-+ // EBT_ACCEPT, EBT_DROP, EBT_CONTINUE or EBT_RETURN
-+ int target;
-+};
-+#define EBT_SNAT_TARGET "snat"
-+#define EBT_DNAT_TARGET "dnat"
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_redirect.h 2005-01-07 02:57:30.895817296 -0500
-@@ -0,0 +1,11 @@
-+#ifndef __LINUX_BRIDGE_EBT_REDIRECT_H
-+#define __LINUX_BRIDGE_EBT_REDIRECT_H
-+
-+struct ebt_redirect_info
-+{
-+ // EBT_ACCEPT, EBT_DROP or EBT_CONTINUE or EBT_RETURN
-+ int target;
-+};
-+#define EBT_REDIRECT_TARGET "redirect"
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_mark_m.h 2005-01-07 02:57:30.896817144 -0500
-@@ -0,0 +1,15 @@
-+#ifndef __LINUX_BRIDGE_EBT_MARK_M_H
-+#define __LINUX_BRIDGE_EBT_MARK_M_H
-+
-+#define EBT_MARK_AND 0x01
-+#define EBT_MARK_OR 0x02
-+#define EBT_MARK_MASK (EBT_MARK_AND | EBT_MARK_OR)
-+struct ebt_mark_m_info
-+{
-+ unsigned long mark, mask;
-+ uint8_t invert;
-+ uint8_t bitmask;
-+};
-+#define EBT_MARK_MATCH "mark_m"
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_bridge/ebt_mark_t.h 2005-01-07 02:57:30.896817144 -0500
-@@ -0,0 +1,12 @@
-+#ifndef __LINUX_BRIDGE_EBT_MARK_T_H
-+#define __LINUX_BRIDGE_EBT_MARK_T_H
-+
-+struct ebt_mark_t_info
-+{
-+ unsigned long mark;
-+ // EBT_ACCEPT, EBT_DROP or EBT_CONTINUE or EBT_RETURN
-+ int target;
-+};
-+#define EBT_MARK_TARGET "mark"
-+
-+#endif
---- linux-2.4.20/include/linux/netfilter.h~140-ebtables-brnf-5 2001-11-22 14:47:48.000000000 -0500
-+++ linux-2.4.20/include/linux/netfilter.h 2005-01-07 02:57:30.896817144 -0500
-@@ -117,28 +117,34 @@
- /* This is gross, but inline doesn't cut it for avoiding the function
- call in fast path: gcc doesn't inline (needs value tracking?). --RR */
- #ifdef CONFIG_NETFILTER_DEBUG
--#define NF_HOOK nf_hook_slow
-+#define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \
-+nf_hook_slow((pf), (hook), (skb), (indev), (outdev), (okfn), INT_MIN)
-+#define NF_HOOK_THRESH nf_hook_slow
- #else
- #define NF_HOOK(pf, hook, skb, indev, outdev, okfn) \
- (list_empty(&nf_hooks[(pf)][(hook)]) \
- ? (okfn)(skb) \
-- : nf_hook_slow((pf), (hook), (skb), (indev), (outdev), (okfn)))
-+ : nf_hook_slow((pf), (hook), (skb), (indev), (outdev), (okfn), INT_MIN))
-+#define NF_HOOK_THRESH(pf, hook, skb, indev, outdev, okfn, thresh) \
-+(list_empty(&nf_hooks[(pf)][(hook)]) \
-+ ? (okfn)(skb) \
-+ : nf_hook_slow((pf), (hook), (skb), (indev), (outdev), (okfn), (thresh)))
- #endif
-
- int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *indev, struct net_device *outdev,
-- int (*okfn)(struct sk_buff *));
-+ int (*okfn)(struct sk_buff *), int thresh);
-
- /* Call setsockopt() */
--int nf_setsockopt(struct sock *sk, int pf, int optval, char *opt,
-+int nf_setsockopt(struct sock *sk, int pf, int optval, char *opt,
- int len);
- int nf_getsockopt(struct sock *sk, int pf, int optval, char *opt,
- int *len);
-
- /* Packet queuing */
--typedef int (*nf_queue_outfn_t)(struct sk_buff *skb,
-+typedef int (*nf_queue_outfn_t)(struct sk_buff *skb,
- struct nf_info *info, void *data);
--extern int nf_register_queue_handler(int pf,
-+extern int nf_register_queue_handler(int pf,
- nf_queue_outfn_t outfn, void *data);
- extern int nf_unregister_queue_handler(int pf);
- extern void nf_reinject(struct sk_buff *skb,
---- linux-2.4.20/include/linux/netfilter_ipv4.h~140-ebtables-brnf-5 2002-02-25 14:38:13.000000000 -0500
-+++ linux-2.4.20/include/linux/netfilter_ipv4.h 2005-01-07 02:57:30.896817144 -0500
-@@ -52,8 +52,10 @@
- enum nf_ip_hook_priorities {
- NF_IP_PRI_FIRST = INT_MIN,
- NF_IP_PRI_CONNTRACK = -200,
-+ NF_IP_PRI_BRIDGE_SABOTAGE_FORWARD = -175,
- NF_IP_PRI_MANGLE = -150,
- NF_IP_PRI_NAT_DST = -100,
-+ NF_IP_PRI_BRIDGE_SABOTAGE_LOCAL_OUT = -50,
- NF_IP_PRI_FILTER = 0,
- NF_IP_PRI_NAT_SRC = 100,
- NF_IP_PRI_LAST = INT_MAX,
---- linux-2.4.20/include/linux/skbuff.h~140-ebtables-brnf-5 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/include/linux/skbuff.h 2005-01-07 02:57:30.897816992 -0500
-@@ -92,6 +92,17 @@
- struct nf_ct_info {
- struct nf_conntrack *master;
- };
-+
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+struct nf_bridge_info {
-+ atomic_t use;
-+ struct net_device *physindev;
-+ struct net_device *physoutdev;
-+ unsigned int mask;
-+ unsigned long hh[16 / sizeof(unsigned long)];
-+};
-+#endif
-+
- #endif
-
- struct sk_buff_head {
-@@ -204,6 +215,9 @@
- #ifdef CONFIG_NETFILTER_DEBUG
- unsigned int nf_debug;
- #endif
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ struct nf_bridge_info *nf_bridge; /* Saved data about a bridged frame - see br_netfilter.c */
-+#endif
- #endif /*CONFIG_NETFILTER*/
-
- #if defined(CONFIG_HIPPI)
-@@ -277,7 +291,7 @@
- * If users==1, we are the only owner and are can avoid redundant
- * atomic change.
- */
--
-+
- /**
- * kfree_skb - free an sk_buff
- * @skb: buffer to free
-@@ -285,7 +299,7 @@
- * Drop a reference to the buffer and free it if the usage count has
- * hit zero.
- */
--
-+
- static inline void kfree_skb(struct sk_buff *skb)
- {
- if (atomic_read(&skb->users) == 1 || atomic_dec_and_test(&skb->users))
-@@ -1144,6 +1158,20 @@
- if (nfct)
- atomic_inc(&nfct->master->use);
- }
-+
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+static inline void nf_bridge_put(struct nf_bridge_info *nf_bridge)
-+{
-+ if (nf_bridge && atomic_dec_and_test(&nf_bridge->use))
-+ kfree(nf_bridge);
-+}
-+static inline void nf_bridge_get(struct nf_bridge_info *nf_bridge)
-+{
-+ if (nf_bridge)
-+ atomic_inc(&nf_bridge->use);
-+}
-+#endif
-+
- #endif
-
- #endif /* __KERNEL__ */
---- linux-2.4.20/net/core/netfilter.c~140-ebtables-brnf-5 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/core/netfilter.c 2005-01-07 02:57:30.898816840 -0500
-@@ -1,4 +1,4 @@
--/* netfilter.c: look after the filters for various protocols.
-+/* netfilter.c: look after the filters for various protocols.
- * Heavily influenced by the old firewall.c by David Bonn and Alan Cox.
- *
- * Thanks to Rob `CmdrTaco' Malda for not influencing this code in any
-@@ -342,10 +342,15 @@
- const struct net_device *indev,
- const struct net_device *outdev,
- struct list_head **i,
-- int (*okfn)(struct sk_buff *))
-+ int (*okfn)(struct sk_buff *),
-+ int hook_thresh)
- {
- for (*i = (*i)->next; *i != head; *i = (*i)->next) {
- struct nf_hook_ops *elem = (struct nf_hook_ops *)*i;
-+
-+ if (hook_thresh > elem->priority)
-+ continue;
-+
- switch (elem->hook(hook, skb, indev, outdev, okfn)) {
- case NF_QUEUE:
- return NF_QUEUE;
-@@ -365,7 +370,7 @@
- break;
-
- default:
-- NFDEBUG("Evil return from %p(%u).\n",
-+ NFDEBUG("Evil return from %p(%u).\n",
- elem->hook, hook);
- #endif
- }
-@@ -374,7 +379,7 @@
- }
-
- int nf_register_queue_handler(int pf, nf_queue_outfn_t outfn, void *data)
--{
-+{
- int ret;
-
- br_write_lock_bh(BR_NETPROTO_LOCK);
-@@ -400,12 +405,12 @@
- return 0;
- }
-
--/*
-- * Any packet that leaves via this function must come back
-+/*
-+ * Any packet that leaves via this function must come back
- * through nf_reinject().
- */
--static void nf_queue(struct sk_buff *skb,
-- struct list_head *elem,
-+static void nf_queue(struct sk_buff *skb,
-+ struct list_head *elem,
- int pf, unsigned int hook,
- struct net_device *indev,
- struct net_device *outdev,
-@@ -413,6 +418,10 @@
- {
- int status;
- struct nf_info *info;
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ struct net_device *physindev = NULL;
-+ struct net_device *physoutdev = NULL;
-+#endif
-
- if (!queue_handler[pf].outfn) {
- kfree_skb(skb);
-@@ -428,18 +437,31 @@
- return;
- }
-
-- *info = (struct nf_info) {
-+ *info = (struct nf_info) {
- (struct nf_hook_ops *)elem, pf, hook, indev, outdev, okfn };
-
- /* Bump dev refs so they don't vanish while packet is out */
- if (indev) dev_hold(indev);
- if (outdev) dev_hold(outdev);
-
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ if (skb->nf_bridge) {
-+ physindev = skb->nf_bridge->physindev;
-+ if (physindev) dev_hold(physindev);
-+ physoutdev = skb->nf_bridge->physoutdev;
-+ if (physoutdev) dev_hold(physoutdev);
-+ }
-+#endif
-+
- status = queue_handler[pf].outfn(skb, info, queue_handler[pf].data);
- if (status < 0) {
- /* James M doesn't say fuck enough. */
- if (indev) dev_put(indev);
- if (outdev) dev_put(outdev);
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ if (physindev) dev_put(physindev);
-+ if (physoutdev) dev_put(physoutdev);
-+#endif
- kfree(info);
- kfree_skb(skb);
- return;
-@@ -449,7 +471,8 @@
- int nf_hook_slow(int pf, unsigned int hook, struct sk_buff *skb,
- struct net_device *indev,
- struct net_device *outdev,
-- int (*okfn)(struct sk_buff *))
-+ int (*okfn)(struct sk_buff *),
-+ int hook_thresh)
- {
- struct list_head *elem;
- unsigned int verdict;
-@@ -481,7 +504,7 @@
-
- elem = &nf_hooks[pf][hook];
- verdict = nf_iterate(&nf_hooks[pf][hook], &skb, hook, indev,
-- outdev, &elem, okfn);
-+ outdev, &elem, okfn, hook_thresh);
- if (verdict == NF_QUEUE) {
- NFDEBUG("nf_hook: Verdict = QUEUE.\n");
- nf_queue(skb, elem, pf, hook, indev, outdev, okfn);
-@@ -510,6 +533,14 @@
-
- /* We don't have BR_NETPROTO_LOCK here */
- br_read_lock_bh(BR_NETPROTO_LOCK);
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ if (skb->nf_bridge) {
-+ if (skb->nf_bridge->physindev)
-+ dev_put(skb->nf_bridge->physindev);
-+ if (skb->nf_bridge->physoutdev)
-+ dev_put(skb->nf_bridge->physoutdev);
-+ }
-+#endif
- for (i = nf_hooks[info->pf][info->hook].next; i != elem; i = i->next) {
- if (i == &nf_hooks[info->pf][info->hook]) {
- /* The module which sent it to userspace is gone. */
-@@ -528,9 +559,9 @@
-
- if (verdict == NF_ACCEPT) {
- verdict = nf_iterate(&nf_hooks[info->pf][info->hook],
-- &skb, info->hook,
-+ &skb, info->hook,
- info->indev, info->outdev, &elem,
-- info->okfn);
-+ info->okfn, INT_MIN);
- }
-
- switch (verdict) {
-@@ -539,20 +570,19 @@
- break;
-
- case NF_QUEUE:
-- nf_queue(skb, elem, info->pf, info->hook,
-+ nf_queue(skb, elem, info->pf, info->hook,
- info->indev, info->outdev, info->okfn);
- break;
--
-- case NF_DROP:
-- kfree_skb(skb);
-- break;
- }
- br_read_unlock_bh(BR_NETPROTO_LOCK);
-
- /* Release those devices we held, or Alexey will kill me. */
- if (info->indev) dev_put(info->indev);
- if (info->outdev) dev_put(info->outdev);
--
-+
-+ if (verdict == NF_DROP)
-+ kfree_skb(skb);
-+
- kfree(info);
- return;
- }
---- linux-2.4.20/net/core/skbuff.c~140-ebtables-brnf-5 2002-08-02 20:39:46.000000000 -0400
-+++ linux-2.4.20/net/core/skbuff.c 2005-01-07 02:57:30.899816688 -0500
-@@ -245,6 +245,9 @@
- #ifdef CONFIG_NETFILTER_DEBUG
- skb->nf_debug = 0;
- #endif
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ skb->nf_bridge = NULL;
-+#endif
- #endif
- #ifdef CONFIG_NET_SCHED
- skb->tc_index = 0;
-@@ -325,6 +328,9 @@
- }
- #ifdef CONFIG_NETFILTER
- nf_conntrack_put(skb->nfct);
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ nf_bridge_put(skb->nf_bridge);
-+#endif
- #endif
- skb_headerinit(skb, NULL, 0); /* clean state */
- kfree_skbmem(skb);
-@@ -391,6 +397,9 @@
- #ifdef CONFIG_NETFILTER_DEBUG
- C(nf_debug);
- #endif
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ C(nf_bridge);
-+#endif
- #endif /*CONFIG_NETFILTER*/
- #if defined(CONFIG_HIPPI)
- C(private);
-@@ -403,6 +412,9 @@
- skb->cloned = 1;
- #ifdef CONFIG_NETFILTER
- nf_conntrack_get(skb->nfct);
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ nf_bridge_get(skb->nf_bridge);
-+#endif
- #endif
- return n;
- }
-@@ -437,6 +449,10 @@
- #ifdef CONFIG_NETFILTER_DEBUG
- new->nf_debug=old->nf_debug;
- #endif
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ new->nf_bridge=old->nf_bridge;
-+ nf_bridge_get(new->nf_bridge);
-+#endif
- #endif
- #ifdef CONFIG_NET_SCHED
- new->tc_index = old->tc_index;
---- linux-2.4.20/net/ipv4/netfilter/ip_tables.c~140-ebtables-brnf-5 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/ipv4/netfilter/ip_tables.c 2005-01-07 02:57:30.901816384 -0500
-@@ -122,12 +122,19 @@
- static inline int
- ip_packet_match(const struct iphdr *ip,
- const char *indev,
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ const char *physindev,
-+#endif
- const char *outdev,
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ const char *physoutdev,
-+#endif
- const struct ipt_ip *ipinfo,
- int isfrag)
- {
- size_t i;
- unsigned long ret;
-+ unsigned long ret2 = 1;
-
- #define FWINV(bool,invflg) ((bool) ^ !!(ipinfo->invflags & invflg))
-
-@@ -157,7 +164,15 @@
- & ((const unsigned long *)ipinfo->iniface_mask)[i];
- }
-
-- if (FWINV(ret != 0, IPT_INV_VIA_IN)) {
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ for (i = 0, ret2 = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
-+ ret2 |= (((const unsigned long *)physindev)[i]
-+ ^ ((const unsigned long *)ipinfo->iniface)[i])
-+ & ((const unsigned long *)ipinfo->iniface_mask)[i];
-+ }
-+#endif
-+
-+ if (FWINV(ret != 0 && ret2 != 0, IPT_INV_VIA_IN)) {
- dprintf("VIA in mismatch (%s vs %s).%s\n",
- indev, ipinfo->iniface,
- ipinfo->invflags&IPT_INV_VIA_IN ?" (INV)":"");
-@@ -170,7 +185,15 @@
- & ((const unsigned long *)ipinfo->outiface_mask)[i];
- }
-
-- if (FWINV(ret != 0, IPT_INV_VIA_OUT)) {
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ for (i = 0, ret2 = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
-+ ret2 |= (((const unsigned long *)physoutdev)[i]
-+ ^ ((const unsigned long *)ipinfo->outiface)[i])
-+ & ((const unsigned long *)ipinfo->outiface_mask)[i];
-+ }
-+#endif
-+
-+ if (FWINV(ret != 0 && ret2 != 0, IPT_INV_VIA_OUT)) {
- dprintf("VIA out mismatch (%s vs %s).%s\n",
- outdev, ipinfo->outiface,
- ipinfo->invflags&IPT_INV_VIA_OUT ?" (INV)":"");
-@@ -269,6 +292,9 @@
- /* Initializing verdict to NF_DROP keeps gcc happy. */
- unsigned int verdict = NF_DROP;
- const char *indev, *outdev;
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ const char *physindev, *physoutdev;
-+#endif
- void *table_base;
- struct ipt_entry *e, *back;
-
-@@ -278,6 +304,13 @@
- datalen = (*pskb)->len - ip->ihl * 4;
- indev = in ? in->name : nulldevname;
- outdev = out ? out->name : nulldevname;
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ physindev = ((*pskb)->nf_bridge && (*pskb)->nf_bridge->physindev) ?
-+ (*pskb)->nf_bridge->physindev->name : nulldevname;
-+ physoutdev = ((*pskb)->nf_bridge && (*pskb)->nf_bridge->physoutdev) ?
-+ (*pskb)->nf_bridge->physoutdev->name : nulldevname;
-+#endif
-+
- /* We handle fragments by dealing with the first fragment as
- * if it was a normal packet. All other fragments are treated
- * normally, except that they will NEVER match rules that ask
-@@ -313,7 +346,15 @@
- IP_NF_ASSERT(e);
- IP_NF_ASSERT(back);
- (*pskb)->nfcache |= e->nfcache;
-- if (ip_packet_match(ip, indev, outdev, &e->ip, offset)) {
-+ if (ip_packet_match(ip, indev,
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ physindev,
-+#endif
-+ outdev,
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ physoutdev,
-+#endif
-+ &e->ip, offset)) {
- struct ipt_entry_target *t;
-
- if (IPT_MATCH_ITERATE(e, do_match,
---- linux-2.4.20/net/ipv4/ip_output.c~140-ebtables-brnf-5 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/ipv4/ip_output.c 2005-01-07 02:57:30.902816232 -0500
-@@ -879,6 +879,10 @@
- /* Connection association is same as pre-frag packet */
- skb2->nfct = skb->nfct;
- nf_conntrack_get(skb2->nfct);
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ skb2->nf_bridge = skb->nf_bridge;
-+ nf_bridge_get(skb2->nf_bridge);
-+#endif
- #ifdef CONFIG_NETFILTER_DEBUG
- skb2->nf_debug = skb->nf_debug;
- #endif
---- linux-2.4.20/net/ipv4/netfilter/ipt_LOG.c~140-ebtables-brnf-5 2002-02-25 14:38:14.000000000 -0500
-+++ linux-2.4.20/net/ipv4/netfilter/ipt_LOG.c 2005-01-07 02:57:30.902816232 -0500
-@@ -289,6 +289,18 @@
- loginfo->prefix,
- in ? in->name : "",
- out ? out->name : "");
-+#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
-+ if ((*pskb)->nf_bridge) {
-+ struct net_device *physindev = (*pskb)->nf_bridge->physindev;
-+ struct net_device *physoutdev = (*pskb)->nf_bridge->physoutdev;
-+
-+ if (physindev && in != physindev)
-+ printk("PHYSIN=%s ", physindev->name);
-+ if (physoutdev && out != physoutdev)
-+ printk("PHYSOUT=%s ", physoutdev->name);
-+ }
-+#endif
-+
- if (in && !out) {
- /* MAC logging for input chain only. */
- printk("MAC=");
---- linux-2.4.20/net/ipv4/netfilter/Makefile~140-ebtables-brnf-5 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/ipv4/netfilter/Makefile 2005-01-07 02:57:30.903816080 -0500
-@@ -76,6 +76,8 @@
- obj-$(CONFIG_IP_NF_MATCH_UNCLEAN) += ipt_unclean.o
- obj-$(CONFIG_IP_NF_MATCH_TCPMSS) += ipt_tcpmss.o
-
-+obj-$(CONFIG_IP_NF_MATCH_PHYSDEV) += ipt_physdev.o
-+
- # targets
- obj-$(CONFIG_IP_NF_TARGET_REJECT) += ipt_REJECT.o
- obj-$(CONFIG_IP_NF_TARGET_MIRROR) += ipt_MIRROR.o
---- linux-2.4.20/net/ipv4/netfilter/Config.in~140-ebtables-brnf-5 2002-11-28 18:53:15.000000000 -0500
-+++ linux-2.4.20/net/ipv4/netfilter/Config.in 2005-01-07 02:57:30.903816080 -0500
-@@ -41,6 +41,9 @@
- dep_tristate ' Unclean match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_UNCLEAN $CONFIG_IP_NF_IPTABLES
- dep_tristate ' Owner match support (EXPERIMENTAL)' CONFIG_IP_NF_MATCH_OWNER $CONFIG_IP_NF_IPTABLES
- fi
-+ if [ "$CONFIG_BRIDGE" != "n" ]; then
-+ dep_tristate ' Physdev match support' CONFIG_IP_NF_MATCH_PHYSDEV
-+ fi
- # The targets
- dep_tristate ' Packet filtering' CONFIG_IP_NF_FILTER $CONFIG_IP_NF_IPTABLES
- if [ "$CONFIG_IP_NF_FILTER" != "n" ]; then
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/bridge/br_netfilter.c 2005-01-07 02:57:30.904815928 -0500
-@@ -0,0 +1,636 @@
-+/*
-+ * Handle firewalling
-+ * Linux ethernet bridge
-+ *
-+ * Authors:
-+ * Lennert Buytenhek <buytenh@gnu.org>
-+ * Bart De Schuymer <bdschuym@pandora.be>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ *
-+ * Lennert dedicates this file to Kerstin Wurdinger.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/ip.h>
-+#include <linux/netdevice.h>
-+#include <linux/skbuff.h>
-+#include <linux/if_ether.h>
-+#include <linux/netfilter_bridge.h>
-+#include <linux/netfilter_ipv4.h>
-+#include <linux/in_route.h>
-+#include <net/ip.h>
-+#include <asm/uaccess.h>
-+#include <asm/checksum.h>
-+#include "br_private.h"
-+
-+
-+#define skb_origaddr(skb) (((struct bridge_skb_cb *) \
-+ (skb->cb))->daddr.ipv4)
-+#define store_orig_dstaddr(skb) (skb_origaddr(skb) = (skb)->nh.iph->daddr)
-+#define dnat_took_place(skb) (skb_origaddr(skb) != (skb)->nh.iph->daddr)
-+#define clear_cb(skb) (memset(&skb_origaddr(skb), 0, \
-+ sizeof(struct bridge_skb_cb)))
-+
-+#define has_bridge_parent(device) ((device)->br_port != NULL)
-+#define bridge_parent(device) (&((device)->br_port->br->dev))
-+
-+/* We need these fake structures to make netfilter happy --
-+ * lots of places assume that skb->dst != NULL, which isn't
-+ * all that unreasonable.
-+ *
-+ * Currently, we fill in the PMTU entry because netfilter
-+ * refragmentation needs it, and the rt_flags entry because
-+ * ipt_REJECT needs it. Future netfilter modules might
-+ * require us to fill additional fields.
-+ */
-+static struct net_device __fake_net_device = {
-+ .hard_header_len = ETH_HLEN
-+};
-+
-+static struct rtable __fake_rtable = {
-+ u: {
-+ dst: {
-+ __refcnt: ATOMIC_INIT(1),
-+ dev: &__fake_net_device,
-+ pmtu: 1500
-+ }
-+ },
-+
-+ rt_flags: 0
-+};
-+
-+
-+/* PF_BRIDGE/PRE_ROUTING *********************************************/
-+static void __br_dnat_complain(void)
-+{
-+ static unsigned long last_complaint = 0;
-+
-+ if (jiffies - last_complaint >= 5 * HZ) {
-+ printk(KERN_WARNING "Performing cross-bridge DNAT requires IP "
-+ "forwarding to be enabled\n");
-+ last_complaint = jiffies;
-+ }
-+}
-+
-+
-+/* This requires some explaining. If DNAT has taken place,
-+ * we will need to fix up the destination Ethernet address,
-+ * and this is a tricky process.
-+ *
-+ * There are two cases to consider:
-+ * 1. The packet was DNAT'ed to a device in the same bridge
-+ * port group as it was received on. We can still bridge
-+ * the packet.
-+ * 2. The packet was DNAT'ed to a different device, either
-+ * a non-bridged device or another bridge port group.
-+ * The packet will need to be routed.
-+ *
-+ * The correct way of distinguishing between these two cases is to
-+ * call ip_route_input() and to look at skb->dst->dev, which is
-+ * changed to the destination device if ip_route_input() succeeds.
-+ *
-+ * Let us first consider the case that ip_route_input() succeeds:
-+ *
-+ * If skb->dst->dev equals the logical bridge device the packet
-+ * came in on, we can consider this bridging. We then call
-+ * skb->dst->output() which will make the packet enter br_nf_local_out()
-+ * not much later. In that function it is assured that the iptables
-+ * FORWARD chain is traversed for the packet.
-+ *
-+ * Otherwise, the packet is considered to be routed and we just
-+ * change the destination MAC address so that the packet will
-+ * later be passed up to the IP stack to be routed.
-+ *
-+ * Let us now consider the case that ip_route_input() fails:
-+ *
-+ * After a "echo '0' > /proc/sys/net/ipv4/ip_forward" ip_route_input()
-+ * will fail, while __ip_route_output_key() will return success. The source
-+ * address for __ip_route_output_key() is set to zero, so __ip_route_output_key
-+ * thinks we're handling a locally generated packet and won't care
-+ * if IP forwarding is allowed. We send a warning message to the users's
-+ * log telling her to put IP forwarding on.
-+ *
-+ * ip_route_input() will also fail if there is no route available.
-+ * In that case we just drop the packet.
-+ *
-+ * --Lennert, 20020411
-+ * --Bart, 20020416 (updated)
-+ * --Bart, 20021007 (updated)
-+ */
-+
-+static int br_nf_pre_routing_finish_bridge(struct sk_buff *skb)
-+{
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug |= (1 << NF_BR_PRE_ROUTING) | (1 << NF_BR_FORWARD);
-+#endif
-+
-+ if (skb->pkt_type == PACKET_OTHERHOST) {
-+ skb->pkt_type = PACKET_HOST;
-+ skb->nf_bridge->mask |= BRNF_PKT_TYPE;
-+ }
-+
-+ skb->dev = bridge_parent(skb->dev);
-+ skb->dst->output(skb);
-+ return 0;
-+}
-+
-+static int br_nf_pre_routing_finish(struct sk_buff *skb)
-+{
-+ struct net_device *dev = skb->dev;
-+ struct iphdr *iph = skb->nh.iph;
-+ struct nf_bridge_info *nf_bridge = skb->nf_bridge;
-+
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug ^= (1 << NF_BR_PRE_ROUTING);
-+#endif
-+
-+ if (nf_bridge->mask & BRNF_PKT_TYPE) {
-+ skb->pkt_type = PACKET_OTHERHOST;
-+ nf_bridge->mask ^= BRNF_PKT_TYPE;
-+ }
-+
-+ if (dnat_took_place(skb)) {
-+ if (ip_route_input(skb, iph->daddr, iph->saddr, iph->tos,
-+ dev)) {
-+ struct rtable *rt;
-+
-+ if (!ip_route_output(&rt, iph->daddr, 0, iph->tos, 0)) {
-+ /* Bridged-and-DNAT'ed traffic doesn't
-+ * require ip_forwarding.
-+ */
-+ if (((struct dst_entry *)rt)->dev == dev) {
-+ skb->dst = (struct dst_entry *)rt;
-+ goto bridged_dnat;
-+ }
-+ __br_dnat_complain();
-+ dst_release((struct dst_entry *)rt);
-+ }
-+ kfree_skb(skb);
-+ return 0;
-+ } else {
-+ if (skb->dst->dev == dev) {
-+bridged_dnat:
-+ /* Tell br_nf_local_out this is a
-+ * bridged frame
-+ */
-+ nf_bridge->mask |= BRNF_BRIDGED_DNAT;
-+ skb->dev = nf_bridge->physindev;
-+ clear_cb(skb);
-+ NF_HOOK_THRESH(PF_BRIDGE, NF_BR_PRE_ROUTING,
-+ skb, skb->dev, NULL,
-+ br_nf_pre_routing_finish_bridge,
-+ 1);
-+ return 0;
-+ }
-+ memcpy(skb->mac.ethernet->h_dest, dev->dev_addr,
-+ ETH_ALEN);
-+ }
-+ } else {
-+ skb->dst = (struct dst_entry *)&__fake_rtable;
-+ dst_hold(skb->dst);
-+ }
-+
-+ clear_cb(skb);
-+ skb->dev = nf_bridge->physindev;
-+ NF_HOOK_THRESH(PF_BRIDGE, NF_BR_PRE_ROUTING, skb, skb->dev, NULL,
-+ br_handle_frame_finish, 1);
-+
-+ return 0;
-+}
-+
-+/* Replicate the checks that IPv4 does on packet reception.
-+ * Set skb->dev to the bridge device (i.e. parent of the
-+ * receiving device) to make netfilter happy, the REDIRECT
-+ * target in particular. Save the original destination IP
-+ * address to be able to detect DNAT afterwards.
-+ */
-+static unsigned int br_nf_pre_routing(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*okfn)(struct sk_buff *))
-+{
-+ struct iphdr *iph;
-+ __u32 len;
-+ struct sk_buff *skb;
-+ struct nf_bridge_info *nf_bridge;
-+
-+ if ((*pskb)->protocol != __constant_htons(ETH_P_IP))
-+ return NF_ACCEPT;
-+
-+ if ((skb = skb_share_check(*pskb, GFP_ATOMIC)) == NULL)
-+ goto out;
-+
-+ if (!pskb_may_pull(skb, sizeof(struct iphdr)))
-+ goto inhdr_error;
-+
-+ iph = skb->nh.iph;
-+ if (iph->ihl < 5 || iph->version != 4)
-+ goto inhdr_error;
-+
-+ if (!pskb_may_pull(skb, 4*iph->ihl))
-+ goto inhdr_error;
-+
-+ iph = skb->nh.iph;
-+ if (ip_fast_csum((__u8 *)iph, iph->ihl) != 0)
-+ goto inhdr_error;
-+
-+ len = ntohs(iph->tot_len);
-+ if (skb->len < len || len < 4*iph->ihl)
-+ goto inhdr_error;
-+
-+ if (skb->len > len) {
-+ __pskb_trim(skb, len);
-+ if (skb->ip_summed == CHECKSUM_HW)
-+ skb->ip_summed = CHECKSUM_NONE;
-+ }
-+
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug ^= (1 << NF_IP_PRE_ROUTING);
-+#endif
-+ if ((nf_bridge = nf_bridge_alloc(skb)) == NULL)
-+ return NF_DROP;
-+
-+ if (skb->pkt_type == PACKET_OTHERHOST) {
-+ skb->pkt_type = PACKET_HOST;
-+ nf_bridge->mask |= BRNF_PKT_TYPE;
-+ }
-+
-+ nf_bridge->physindev = skb->dev;
-+ skb->dev = bridge_parent(skb->dev);
-+ store_orig_dstaddr(skb);
-+
-+ NF_HOOK(PF_INET, NF_IP_PRE_ROUTING, skb, skb->dev, NULL,
-+ br_nf_pre_routing_finish);
-+
-+ return NF_STOLEN;
-+
-+inhdr_error:
-+// IP_INC_STATS_BH(IpInHdrErrors);
-+out:
-+ return NF_DROP;
-+}
-+
-+
-+/* PF_BRIDGE/LOCAL_IN ************************************************/
-+/* The packet is locally destined, which requires a real
-+ * dst_entry, so detach the fake one. On the way up, the
-+ * packet would pass through PRE_ROUTING again (which already
-+ * took place when the packet entered the bridge), but we
-+ * register an IPv4 PRE_ROUTING 'sabotage' hook that will
-+ * prevent this from happening.
-+ */
-+static unsigned int br_nf_local_in(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*okfn)(struct sk_buff *))
-+{
-+ struct sk_buff *skb = *pskb;
-+
-+ if (skb->protocol != __constant_htons(ETH_P_IP))
-+ return NF_ACCEPT;
-+
-+ if (skb->dst == (struct dst_entry *)&__fake_rtable) {
-+ dst_release(skb->dst);
-+ skb->dst = NULL;
-+ }
-+
-+ return NF_ACCEPT;
-+}
-+
-+
-+/* PF_BRIDGE/FORWARD *************************************************/
-+static int br_nf_forward_finish(struct sk_buff *skb)
-+{
-+ struct nf_bridge_info *nf_bridge = skb->nf_bridge;
-+
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug ^= (1 << NF_BR_FORWARD);
-+#endif
-+
-+ if (nf_bridge->mask & BRNF_PKT_TYPE) {
-+ skb->pkt_type = PACKET_OTHERHOST;
-+ nf_bridge->mask ^= BRNF_PKT_TYPE;
-+ }
-+
-+ NF_HOOK_THRESH(PF_BRIDGE, NF_BR_FORWARD, skb, nf_bridge->physindev,
-+ skb->dev, br_forward_finish, 1);
-+
-+ return 0;
-+}
-+
-+/* This is the 'purely bridged' case. We pass the packet to
-+ * netfilter with indev and outdev set to the bridge device,
-+ * but we are still able to filter on the 'real' indev/outdev
-+ * because of the ipt_physdev.c module.
-+ */
-+static unsigned int br_nf_forward(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*okfn)(struct sk_buff *))
-+{
-+ struct sk_buff *skb = *pskb;
-+ struct nf_bridge_info *nf_bridge;
-+
-+ if (skb->protocol != __constant_htons(ETH_P_IP))
-+ return NF_ACCEPT;
-+
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug ^= (1 << NF_BR_FORWARD);
-+#endif
-+
-+ nf_bridge = skb->nf_bridge;
-+ if (skb->pkt_type == PACKET_OTHERHOST) {
-+ skb->pkt_type = PACKET_HOST;
-+ nf_bridge->mask |= BRNF_PKT_TYPE;
-+ }
-+
-+ nf_bridge->mask |= BRNF_BRIDGED; /* The physdev module checks on this */
-+ nf_bridge->physoutdev = skb->dev;
-+
-+ NF_HOOK(PF_INET, NF_IP_FORWARD, skb, bridge_parent(nf_bridge->physindev),
-+ bridge_parent(skb->dev), br_nf_forward_finish);
-+
-+ return NF_STOLEN;
-+}
-+
-+
-+/* PF_BRIDGE/LOCAL_OUT ***********************************************/
-+static int br_nf_local_out_finish(struct sk_buff *skb)
-+{
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug &= ~(1 << NF_BR_LOCAL_OUT);
-+#endif
-+
-+ NF_HOOK_THRESH(PF_BRIDGE, NF_BR_LOCAL_OUT, skb, NULL, skb->dev,
-+ br_forward_finish, NF_BR_PRI_FIRST + 1);
-+
-+ return 0;
-+}
-+
-+
-+/* This function sees both locally originated IP packets and forwarded
-+ * IP packets (in both cases the destination device is a bridge
-+ * device). It also sees bridged-and-DNAT'ed packets.
-+ * To be able to filter on the physical bridge devices (with the ipt_physdev.c
-+ * module), we steal packets destined to a bridge device away from the
-+ * PF_INET/FORWARD and PF_INET/OUTPUT hook functions, and give them back later,
-+ * when we have determined the real output device. This is done in here.
-+ *
-+ * If (nf_bridge->mask & BRNF_BRIDGED_DNAT) then the packet is bridged
-+ * and we fake the PF_BRIDGE/FORWARD hook. The function br_nf_forward()
-+ * will then fake the PF_INET/FORWARD hook. br_nf_local_out() has priority
-+ * NF_BR_PRI_FIRST, so no relevant PF_BRIDGE/INPUT functions have been nor
-+ * will be executed.
-+ * Otherwise, if nf_bridge->physindev is NULL, the bridge-nf code never touched
-+ * this packet before, and so the packet was locally originated. We fake
-+ * the PF_INET/LOCAL_OUT hook.
-+ * Finally, if nf_bridge->physindev isn't NULL, then the packet was IP routed,
-+ * so we fake the PF_INET/FORWARD hook. ipv4_sabotage_out() makes sure
-+ * even routed packets that didn't arrive on a bridge interface have their
-+ * nf_bridge->physindev set.
-+ */
-+
-+static unsigned int br_nf_local_out(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*_okfn)(struct sk_buff *))
-+{
-+ int (*okfn)(struct sk_buff *skb);
-+ struct net_device *realindev;
-+ struct sk_buff *skb = *pskb;
-+ struct nf_bridge_info *nf_bridge;
-+
-+ if (skb->protocol != __constant_htons(ETH_P_IP))
-+ return NF_ACCEPT;
-+
-+ /* Sometimes we get packets with NULL ->dst here (for example,
-+ * running a dhcp client daemon triggers this).
-+ */
-+ if (skb->dst == NULL)
-+ return NF_ACCEPT;
-+
-+ nf_bridge = skb->nf_bridge;
-+ nf_bridge->physoutdev = skb->dev;
-+
-+ realindev = nf_bridge->physindev;
-+
-+ /* Bridged, take PF_BRIDGE/FORWARD.
-+ * (see big note in front of br_nf_pre_routing_finish)
-+ */
-+ if (nf_bridge->mask & BRNF_BRIDGED_DNAT) {
-+ okfn = br_forward_finish;
-+
-+ if (nf_bridge->mask & BRNF_PKT_TYPE) {
-+ skb->pkt_type = PACKET_OTHERHOST;
-+ nf_bridge->mask ^= BRNF_PKT_TYPE;
-+ }
-+
-+ NF_HOOK(PF_BRIDGE, NF_BR_FORWARD, skb, realindev,
-+ skb->dev, okfn);
-+ } else {
-+ okfn = br_nf_local_out_finish;
-+ /* IP forwarded traffic has a physindev, locally
-+ * generated traffic hasn't.
-+ */
-+ if (realindev != NULL) {
-+ if (((nf_bridge->mask & BRNF_DONT_TAKE_PARENT) == 0) &&
-+ has_bridge_parent(realindev))
-+ realindev = bridge_parent(realindev);
-+
-+ NF_HOOK_THRESH(PF_INET, NF_IP_FORWARD, skb, realindev,
-+ bridge_parent(skb->dev), okfn,
-+ NF_IP_PRI_BRIDGE_SABOTAGE_FORWARD + 1);
-+ } else {
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug ^= (1 << NF_IP_LOCAL_OUT);
-+#endif
-+
-+ NF_HOOK_THRESH(PF_INET, NF_IP_LOCAL_OUT, skb, realindev,
-+ bridge_parent(skb->dev), okfn,
-+ NF_IP_PRI_BRIDGE_SABOTAGE_LOCAL_OUT + 1);
-+ }
-+ }
-+
-+ return NF_STOLEN;
-+}
-+
-+
-+/* PF_BRIDGE/POST_ROUTING ********************************************/
-+static unsigned int br_nf_post_routing(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*okfn)(struct sk_buff *))
-+{
-+ struct sk_buff *skb = *pskb;
-+ struct nf_bridge_info *nf_bridge = (*pskb)->nf_bridge;
-+
-+ /* Be very paranoid. Must be a device driver bug. */
-+ if (skb->mac.raw < skb->head || skb->mac.raw + ETH_HLEN > skb->data) {
-+ printk(KERN_CRIT "br_netfilter: Argh!! br_nf_post_routing: "
-+ "bad mac.raw pointer.");
-+ if (skb->dev != NULL) {
-+ printk("[%s]", skb->dev->name);
-+ if (has_bridge_parent(skb->dev))
-+ printk("[%s]", bridge_parent(skb->dev)->name);
-+ }
-+ printk("\n");
-+ return NF_ACCEPT;
-+ }
-+
-+ if (skb->protocol != __constant_htons(ETH_P_IP))
-+ return NF_ACCEPT;
-+
-+ /* Sometimes we get packets with NULL ->dst here (for example,
-+ * running a dhcp client daemon triggers this).
-+ */
-+ if (skb->dst == NULL)
-+ return NF_ACCEPT;
-+
-+#ifdef CONFIG_NETFILTER_DEBUG
-+ skb->nf_debug ^= (1 << NF_IP_POST_ROUTING);
-+#endif
-+
-+ /* We assume any code from br_dev_queue_push_xmit onwards doesn't care
-+ * about the value of skb->pkt_type.
-+ */
-+ if (skb->pkt_type == PACKET_OTHERHOST) {
-+ skb->pkt_type = PACKET_HOST;
-+ nf_bridge->mask |= BRNF_PKT_TYPE;
-+ }
-+
-+ memcpy(nf_bridge->hh, skb->data - 16, 16);
-+
-+ NF_HOOK(PF_INET, NF_IP_POST_ROUTING, skb, NULL,
-+ bridge_parent(skb->dev), br_dev_queue_push_xmit);
-+
-+ return NF_STOLEN;
-+}
-+
-+
-+/* IPv4/SABOTAGE *****************************************************/
-+
-+/* Don't hand locally destined packets to PF_INET/PRE_ROUTING
-+ * for the second time.
-+ */
-+static unsigned int ipv4_sabotage_in(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*okfn)(struct sk_buff *))
-+{
-+ if (in->hard_start_xmit == br_dev_xmit &&
-+ okfn != br_nf_pre_routing_finish) {
-+ okfn(*pskb);
-+ return NF_STOLEN;
-+ }
-+
-+ return NF_ACCEPT;
-+}
-+
-+/* Postpone execution of PF_INET/FORWARD, PF_INET/LOCAL_OUT
-+ * and PF_INET/POST_ROUTING until we have done the forwarding
-+ * decision in the bridge code and have determined skb->physoutdev.
-+ */
-+static unsigned int ipv4_sabotage_out(unsigned int hook, struct sk_buff **pskb,
-+ const struct net_device *in, const struct net_device *out,
-+ int (*okfn)(struct sk_buff *))
-+{
-+ if (out->hard_start_xmit == br_dev_xmit &&
-+ okfn != br_nf_forward_finish &&
-+ okfn != br_nf_local_out_finish &&
-+ okfn != br_dev_queue_push_xmit) {
-+ struct sk_buff *skb = *pskb;
-+ struct nf_bridge_info *nf_bridge;
-+
-+ if (!skb->nf_bridge && !nf_bridge_alloc(skb))
-+ return NF_DROP;
-+
-+ nf_bridge = skb->nf_bridge;
-+
-+ /* This frame will arrive on PF_BRIDGE/LOCAL_OUT and we
-+ * will need the indev then. For a brouter, the real indev
-+ * can be a bridge port, so we make sure br_nf_local_out()
-+ * doesn't use the bridge parent of the indev by using
-+ * the BRNF_DONT_TAKE_PARENT mask.
-+ */
-+ if (hook == NF_IP_FORWARD && nf_bridge->physindev == NULL) {
-+ nf_bridge->mask &= BRNF_DONT_TAKE_PARENT;
-+ nf_bridge->physindev = (struct net_device *)in;
-+ }
-+ okfn(skb);
-+ return NF_STOLEN;
-+ }
-+
-+ return NF_ACCEPT;
-+}
-+
-+/* For br_nf_local_out we need (prio = NF_BR_PRI_FIRST), to insure that innocent
-+ * PF_BRIDGE/NF_BR_LOCAL_OUT functions don't get bridged traffic as input.
-+ * For br_nf_post_routing, we need (prio = NF_BR_PRI_LAST), because
-+ * ip_refrag() can return NF_STOLEN.
-+ */
-+static struct nf_hook_ops br_nf_ops[] = {
-+ { .hook = br_nf_pre_routing,
-+ .pf = PF_BRIDGE,
-+ .hooknum = NF_BR_PRE_ROUTING,
-+ .priority = NF_BR_PRI_BRNF, },
-+ { .hook = br_nf_local_in,
-+ .pf = PF_BRIDGE,
-+ .hooknum = NF_BR_LOCAL_IN,
-+ .priority = NF_BR_PRI_BRNF, },
-+ { .hook = br_nf_forward,
-+ .pf = PF_BRIDGE,
-+ .hooknum = NF_BR_FORWARD,
-+ .priority = NF_BR_PRI_BRNF, },
-+ { .hook = br_nf_local_out,
-+ .pf = PF_BRIDGE,
-+ .hooknum = NF_BR_LOCAL_OUT,
-+ .priority = NF_BR_PRI_FIRST, },
-+ { .hook = br_nf_post_routing,
-+ .pf = PF_BRIDGE,
-+ .hooknum = NF_BR_POST_ROUTING,
-+ .priority = NF_BR_PRI_LAST, },
-+ { .hook = ipv4_sabotage_in,
-+ .pf = PF_INET,
-+ .hooknum = NF_IP_PRE_ROUTING,
-+ .priority = NF_IP_PRI_FIRST, },
-+ { .hook = ipv4_sabotage_out,
-+ .pf = PF_INET,
-+ .hooknum = NF_IP_FORWARD,
-+ .priority = NF_IP_PRI_BRIDGE_SABOTAGE_FORWARD, },
-+ { .hook = ipv4_sabotage_out,
-+ .pf = PF_INET,
-+ .hooknum = NF_IP_LOCAL_OUT,
-+ .priority = NF_IP_PRI_BRIDGE_SABOTAGE_LOCAL_OUT, },
-+ { .hook = ipv4_sabotage_out,
-+ .pf = PF_INET,
-+ .hooknum = NF_IP_POST_ROUTING,
-+ .priority = NF_IP_PRI_FIRST, },
-+};
-+
-+int br_netfilter_init(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAY_SIZE(br_nf_ops); i++) {
-+ int ret;
-+
-+ if ((ret = nf_register_hook(&br_nf_ops[i])) >= 0)
-+ continue;
-+
-+ while (i--)
-+ nf_unregister_hook(&br_nf_ops[i]);
-+
-+ return ret;
-+ }
-+
-+ printk(KERN_NOTICE "Bridge firewalling registered\n");
-+
-+ return 0;
-+}
-+
-+void br_netfilter_fini(void)
-+{
-+ int i;
-+
-+ for (i = ARRAY_SIZE(br_nf_ops) - 1; i >= 0; i--)
-+ nf_unregister_hook(&br_nf_ops[i]);
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/net/ipv4/netfilter/ipt_physdev.c 2005-01-07 02:57:30.904815928 -0500
-@@ -0,0 +1,127 @@
-+/* Kernel module to match the bridge port in and
-+ * out device for IP packets coming into contact with a bridge. */
-+#include <linux/module.h>
-+#include <linux/skbuff.h>
-+#include <linux/netfilter_ipv4/ipt_physdev.h>
-+#include <linux/netfilter_ipv4/ip_tables.h>
-+#include <linux/netfilter_bridge.h>
-+#include <linux/netdevice.h>
-+#define MATCH 1
-+#define NOMATCH 0
-+
-+static int
-+match(const struct sk_buff *skb,
-+ const struct net_device *in,
-+ const struct net_device *out,
-+ const void *matchinfo,
-+ int offset,
-+ const void *hdr,
-+ u_int16_t datalen,
-+ int *hotdrop)
-+{
-+ int i;
-+ static const char nulldevname[IFNAMSIZ] = { 0 };
-+ const struct ipt_physdev_info *info = matchinfo;
-+ unsigned long ret;
-+ const char *indev, *outdev;
-+ struct nf_bridge_info *nf_bridge;
-+
-+ /* Not a bridged IP packet or no info available yet:
-+ * LOCAL_OUT/mangle and LOCAL_OUT/nat don't know if
-+ * the destination device will be a bridge. */
-+ if (!(nf_bridge = skb->nf_bridge)) {
-+ /* Return MATCH if the invert flags of the used options are on */
-+ if ((info->bitmask & IPT_PHYSDEV_OP_BRIDGED) &&
-+ !(info->invert & IPT_PHYSDEV_OP_BRIDGED))
-+ return NOMATCH;
-+ if ((info->bitmask & IPT_PHYSDEV_OP_ISIN) &&
-+ !(info->invert & IPT_PHYSDEV_OP_ISIN))
-+ return NOMATCH;
-+ if ((info->bitmask & IPT_PHYSDEV_OP_ISOUT) &&
-+ !(info->invert & IPT_PHYSDEV_OP_ISOUT))
-+ return NOMATCH;
-+ if ((info->bitmask & IPT_PHYSDEV_OP_IN) &&
-+ !(info->invert & IPT_PHYSDEV_OP_IN))
-+ return NOMATCH;
-+ if ((info->bitmask & IPT_PHYSDEV_OP_OUT) &&
-+ !(info->invert & IPT_PHYSDEV_OP_OUT))
-+ return NOMATCH;
-+ return MATCH;
-+ }
-+
-+ /* This only makes sense in the FORWARD and POSTROUTING chains */
-+ if ((info->bitmask & IPT_PHYSDEV_OP_BRIDGED) &&
-+ (!!(nf_bridge->mask & BRNF_BRIDGED) ^
-+ !(info->invert & IPT_PHYSDEV_OP_BRIDGED)))
-+ return NOMATCH;
-+
-+ if ((info->bitmask & IPT_PHYSDEV_OP_ISIN &&
-+ (!nf_bridge->physindev ^ !!(info->invert & IPT_PHYSDEV_OP_ISIN))) ||
-+ (info->bitmask & IPT_PHYSDEV_OP_ISOUT &&
-+ (!nf_bridge->physoutdev ^ !!(info->invert & IPT_PHYSDEV_OP_ISOUT))))
-+ return NOMATCH;
-+
-+ if (!(info->bitmask & IPT_PHYSDEV_OP_IN))
-+ goto match_outdev;
-+ indev = nf_bridge->physindev ? nf_bridge->physindev->name : nulldevname;
-+ for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
-+ ret |= (((const unsigned long *)indev)[i]
-+ ^ ((const unsigned long *)info->physindev)[i])
-+ & ((const unsigned long *)info->in_mask)[i];
-+ }
-+
-+ if ((ret == 0) ^ !(info->invert & IPT_PHYSDEV_OP_IN))
-+ return NOMATCH;
-+
-+match_outdev:
-+ if (!(info->bitmask & IPT_PHYSDEV_OP_OUT))
-+ return MATCH;
-+ outdev = nf_bridge->physoutdev ?
-+ nf_bridge->physoutdev->name : nulldevname;
-+ for (i = 0, ret = 0; i < IFNAMSIZ/sizeof(unsigned long); i++) {
-+ ret |= (((const unsigned long *)outdev)[i]
-+ ^ ((const unsigned long *)info->physoutdev)[i])
-+ & ((const unsigned long *)info->out_mask)[i];
-+ }
-+
-+ return (ret != 0) ^ !(info->invert & IPT_PHYSDEV_OP_OUT);
-+}
-+
-+static int
-+checkentry(const char *tablename,
-+ const struct ipt_ip *ip,
-+ void *matchinfo,
-+ unsigned int matchsize,
-+ unsigned int hook_mask)
-+{
-+ const struct ipt_physdev_info *info = matchinfo;
-+
-+ if (matchsize != IPT_ALIGN(sizeof(struct ipt_physdev_info)))
-+ return 0;
-+ if (!(info->bitmask & IPT_PHYSDEV_OP_MASK) ||
-+ info->bitmask & ~IPT_PHYSDEV_OP_MASK)
-+ return 0;
-+ return 1;
-+}
-+
-+static struct ipt_match physdev_match = {
-+ .name = "physdev",
-+ .match = &match,
-+ .checkentry = &checkentry,
-+ .me = THIS_MODULE,
-+};
-+
-+static int __init init(void)
-+{
-+ return ipt_register_match(&physdev_match);
-+}
-+
-+static void __exit fini(void)
-+{
-+ ipt_unregister_match(&physdev_match);
-+}
-+
-+module_init(init);
-+module_exit(fini);
-+MODULE_LICENSE("GPL");
-+EXPORT_NO_SYMBOLS;
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/linux/netfilter_ipv4/ipt_physdev.h 2005-01-07 02:57:30.905815776 -0500
-@@ -0,0 +1,24 @@
-+#ifndef _IPT_PHYSDEV_H
-+#define _IPT_PHYSDEV_H
-+
-+#ifdef __KERNEL__
-+#include <linux/if.h>
-+#endif
-+
-+#define IPT_PHYSDEV_OP_IN 0x01
-+#define IPT_PHYSDEV_OP_OUT 0x02
-+#define IPT_PHYSDEV_OP_BRIDGED 0x04
-+#define IPT_PHYSDEV_OP_ISIN 0x08
-+#define IPT_PHYSDEV_OP_ISOUT 0x10
-+#define IPT_PHYSDEV_OP_MASK (0x20 - 1)
-+
-+struct ipt_physdev_info {
-+ u_int8_t invert;
-+ u_int8_t bitmask;
-+ char physindev[IFNAMSIZ];
-+ char in_mask[IFNAMSIZ];
-+ char physoutdev[IFNAMSIZ];
-+ char out_mask[IFNAMSIZ];
-+};
-+
-+#endif /*_IPT_PHYSDEV_H*/
diff --git a/packages/linux/linux-wrt-2.4.20/150-mppe-mppc-0.98.patch b/packages/linux/linux-wrt-2.4.20/150-mppe-mppc-0.98.patch
deleted file mode 100644
index 4a240df334..0000000000
--- a/packages/linux/linux-wrt-2.4.20/150-mppe-mppc-0.98.patch
+++ /dev/null
@@ -1,1825 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/drivers/net/Config.in~150-mppe-mppc-0.98 2005-01-07 02:52:47.191946000 -0500
-+++ linux-2.4.20/drivers/net/Config.in 2005-01-07 02:57:48.408155016 -0500
-@@ -288,6 +288,7 @@
- dep_tristate ' PPP support for sync tty ports' CONFIG_PPP_SYNC_TTY $CONFIG_PPP
- dep_tristate ' PPP Deflate compression' CONFIG_PPP_DEFLATE $CONFIG_PPP
- dep_tristate ' PPP BSD-Compress compression' CONFIG_PPP_BSDCOMP $CONFIG_PPP
-+ dep_tristate ' Microsoft PPP compression/encryption (MPPC/MPPE)' CONFIG_PPP_MPPE $CONFIG_PPP
- if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then
- dep_tristate ' PPP over Ethernet (EXPERIMENTAL)' CONFIG_PPPOE $CONFIG_PPP
- fi
---- linux-2.4.20/drivers/net/Makefile~150-mppe-mppc-0.98 2005-01-07 02:54:46.352831000 -0500
-+++ linux-2.4.20/drivers/net/Makefile 2005-01-07 02:57:48.409154864 -0500
-@@ -18,8 +18,9 @@
- export-objs := 8390.o arlan.o aironet4500_core.o aironet4500_card.o \
- ppp_async.o ppp_generic.o slhc.o pppox.o auto_irq.o \
- net_init.o mii.o
--list-multi := rcpci.o
-+list-multi := rcpci.o ppp_mppe_mppc.o
- rcpci-objs := rcpci45.o rclanmtl.o
-+ppp_mppe_c-objs := ppp_mppe_mppc_comp.o ppp_mppe_crypto.o
-
- # subdir-m += mac
- subdir-m += diag
-@@ -159,6 +160,15 @@
- obj-$(CONFIG_PPP_SYNC_TTY) += ppp_synctty.o
- obj-$(CONFIG_PPP_DEFLATE) += ppp_deflate.o
- obj-$(CONFIG_PPP_BSDCOMP) += bsd_comp.o
-+
-+ifeq ($(CONFIG_PPP_MPPE),y)
-+ obj-y += $(ppp_mppe_c-objs)
-+else
-+ ifeq ($(CONFIG_PPP_MPPE),m)
-+ obj-m += ppp_mppe_mppc.o
-+ endif
-+endif
-+
- obj-$(CONFIG_PPPOE) += pppox.o pppoe.o
-
- obj-$(CONFIG_SLIP) += slip.o
-@@ -291,3 +301,5 @@
- rcpci.o: $(rcpci-objs)
- $(LD) -r -o $@ $(rcpci-objs)
-
-+ppp_mppe_mppc.o: $(ppp_mppe_c-objs)
-+ $(LD) -r -o $@ $(ppp_mppe_c-objs)
---- linux-2.4.20/drivers/net/ppp_generic.c~150-mppe-mppc-0.98 2002-11-28 18:53:14.000000000 -0500
-+++ linux-2.4.20/drivers/net/ppp_generic.c 2005-01-07 02:57:48.414154104 -0500
-@@ -19,7 +19,7 @@
- * PPP driver, written by Michael Callahan and Al Longyear, and
- * subsequently hacked by Paul Mackerras.
- *
-- * ==FILEVERSION 20020217==
-+ * ==FILEVERSION 20030706==
- */
-
- #include <linux/config.h>
-@@ -102,6 +102,7 @@
- spinlock_t rlock; /* lock for receive side 58 */
- spinlock_t wlock; /* lock for transmit side 5c */
- int mru; /* max receive unit 60 */
-+ int mru_alloc; /* MAX(1500,MRU) for dev_alloc_skb() */
- unsigned int flags; /* control bits 64 */
- unsigned int xstate; /* transmit state bits 68 */
- unsigned int rstate; /* receive state bits 6c */
-@@ -129,6 +130,7 @@
- struct sock_fprog pass_filter; /* filter for packets to pass */
- struct sock_fprog active_filter;/* filter for pkts to reset idle */
- #endif /* CONFIG_PPP_FILTER */
-+ int xpad; /* ECP or CCP (MPPE) transmit padding */
- };
-
- /*
-@@ -552,7 +554,9 @@
- case PPPIOCSMRU:
- if (get_user(val, (int *) arg))
- break;
-- ppp->mru = val;
-+ ppp->mru_alloc = ppp->mru = val;
-+ if (ppp->mru_alloc < PPP_MRU)
-+ ppp->mru_alloc = PPP_MRU; /* increase for broken peers */
- err = 0;
- break;
-
-@@ -1024,14 +1028,35 @@
- case PPP_CCP:
- /* peek at outbound CCP frames */
- ppp_ccp_peek(ppp, skb, 0);
-+ /*
-+ * When LZS or MPPE/MPPC is negotiated we don't send
-+ * CCP_RESETACK after receiving CCP_RESETREQ; in fact pppd
-+ * sends such a packet but we silently discard it here
-+ */
-+ if (CCP_CODE(skb->data+2) == CCP_RESETACK
-+ && (ppp->xcomp->compress_proto == CI_MPPE
-+ || ppp->xcomp->compress_proto == CI_LZS)) {
-+ --ppp->stats.tx_packets;
-+ ppp->stats.tx_bytes -= skb->len - 2;
-+ kfree_skb(skb);
-+ return;
-+ }
- break;
- }
-
- /* try to do packet compression */
- if ((ppp->xstate & SC_COMP_RUN) && ppp->xc_state != 0
- && proto != PPP_LCP && proto != PPP_CCP) {
-- new_skb = alloc_skb(ppp->dev->mtu + ppp->dev->hard_header_len,
-- GFP_ATOMIC);
-+ int comp_ovhd = 0;
-+ /* because of possible data expansion when MPPC or LZS
-+ is used, allocate compressor's buffer about 12.5% bigger
-+ than MTU */
-+ if (ppp->xcomp->compress_proto == CI_MPPE)
-+ comp_ovhd = (((ppp->dev->mtu * 9) / 8) + 1);
-+ else if (ppp->xcomp->compress_proto == CI_LZS)
-+ comp_ovhd = (((ppp->dev->mtu * 9) / 8) + 1) + LZS_OVHD;
-+ new_skb = alloc_skb(ppp->dev->mtu + ppp->dev->hard_header_len
-+ + ppp->xpad + comp_ovhd, GFP_ATOMIC);
- if (new_skb == 0) {
- printk(KERN_ERR "PPP: no memory (comp pkt)\n");
- goto drop;
-@@ -1043,15 +1068,28 @@
- /* compressor still expects A/C bytes in hdr */
- len = ppp->xcomp->compress(ppp->xc_state, skb->data - 2,
- new_skb->data, skb->len + 2,
-- ppp->dev->mtu + PPP_HDRLEN);
-+ ppp->dev->mtu + ppp->xpad
-+ + PPP_HDRLEN);
- if (len > 0 && (ppp->flags & SC_CCP_UP)) {
- kfree_skb(skb);
- skb = new_skb;
- skb_put(skb, len);
- skb_pull(skb, 2); /* pull off A/C bytes */
-- } else {
-+ } else if (len == 0) {
- /* didn't compress, or CCP not up yet */
- kfree_skb(new_skb);
-+ } else {
-+ /*
-+ * (len < 0)
-+ * MPPE requires that we do not send unencrypted
-+ * frames. The compressor will return -1 if we
-+ * should drop the frame. We cannot simply test
-+ * the compress_proto because MPPE and MPPC share
-+ * the same number.
-+ */
-+ printk(KERN_ERR "ppp: compressor dropped pkt\n");
-+ kfree_skb(new_skb);
-+ goto drop;
- }
- }
-
-@@ -1539,14 +1577,15 @@
- int len;
-
- if (proto == PPP_COMP) {
-- ns = dev_alloc_skb(ppp->mru + PPP_HDRLEN);
-+ ns = dev_alloc_skb(ppp->mru_alloc + PPP_HDRLEN);
- if (ns == 0) {
- printk(KERN_ERR "ppp_decompress_frame: no memory\n");
- goto err;
- }
- /* the decompressor still expects the A/C bytes in the hdr */
- len = ppp->rcomp->decompress(ppp->rc_state, skb->data - 2,
-- skb->len + 2, ns->data, ppp->mru + PPP_HDRLEN);
-+ skb->len + 2, ns->data,
-+ ppp->mru_alloc + PPP_HDRLEN);
- if (len < 0) {
- /* Pass the compressed frame to pppd as an
- error indication. */
-@@ -1572,7 +1611,12 @@
- return skb;
-
- err:
-- ppp->rstate |= SC_DC_ERROR;
-+ if (ppp->rcomp->compress_proto != CI_MPPE
-+ && ppp->rcomp->compress_proto != CI_LZS) {
-+ /* If decompression protocol isn't MPPE/MPPC or LZS, we set
-+ SC_DC_ERROR flag and wait for CCP_RESETACK */
-+ ppp->rstate |= SC_DC_ERROR;
-+ }
- ppp_receive_error(ppp);
- return skb;
- }
-@@ -1981,6 +2025,20 @@
- ocomp->comp_free(ostate);
- err = 0;
- }
-+ if (ccp_option[0] == CI_MPPE)
-+ /*
-+ * pppd (userland) has reduced the MTU by MPPE_PAD,
-+ * to accomodate "compressor" growth. We must
-+ * increase the space allocated for compressor
-+ * output in ppp_send_frame() accordingly. Note
-+ * that from a purist's view, it may be more correct
-+ * to require multilink and fragment large packets,
-+ * but that seems inefficient compared to this
-+ * little trick.
-+ */
-+ ppp->xpad = MPPE_PAD;
-+ else
-+ ppp->xpad = 0;
-
- } else {
- state = cp->decomp_alloc(ccp_option, data.length);
-@@ -2252,6 +2310,7 @@
- /* Initialize the new ppp unit */
- ppp->file.index = unit;
- ppp->mru = PPP_MRU;
-+ ppp->mru_alloc = PPP_MRU;
- init_ppp_file(&ppp->file, INTERFACE);
- ppp->file.hdrlen = PPP_HDRLEN - 2; /* don't count proto bytes */
- for (i = 0; i < NUM_NP; ++i)
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/ppp_mppe_crypto.c 2005-01-07 02:57:48.414154104 -0500
-@@ -0,0 +1,257 @@
-+/*
-+ * ppp_mppe_crypto.c - cryptografic funtions for MPPE
-+ *
-+ * This code is Public Domain. Please see comments below.
-+ *
-+ * I have just put SHA1 and ARCFOUR implementations into one file
-+ * in order to not pollute kernel namespace.
-+ *
-+ * Jan Dubiec <jdx@slackware.pl>, 2003-07-08
-+ */
-+
-+/*
-+ * ftp://ftp.funet.fi/pub/crypt/hash/sha/sha1.c
-+ *
-+ * SHA-1 in C
-+ * By Steve Reid <steve@edmweb.com>
-+ * 100% Public Domain
-+ *
-+ * Test Vectors (from FIPS PUB 180-1)
-+ * "abc"
-+ * A9993E36 4706816A BA3E2571 7850C26C 9CD0D89D
-+ * "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq"
-+ * 84983E44 1C3BD26E BAAE4AA1 F95129E5 E54670F1
-+ * A million repetitions of "a"
-+ * 34AA973C D4C4DAA4 F61EEB2B DBAD2731 6534016F
-+ */
-+
-+/* #define SHA1HANDSOFF * Copies data before messing with it. */
-+
-+#if defined(__linux__)
-+#include <asm/byteorder.h>
-+#include <linux/string.h>
-+#elif defined(__solaris__)
-+#include <sys/isa_defs.h>
-+#include <sys/ddi.h>
-+#include <sys/sunddi.h>
-+#define memcpy(d, s, c) bcopy(s, d, c)
-+#define memset(d, b, c) bzero(d, c)
-+#endif
-+
-+#include "ppp_mppe_crypto.h"
-+
-+static void SHA1_Transform(unsigned long[5], const unsigned char[64]);
-+
-+#define rol(value, bits) (((value) << (bits)) | ((value) >> (32 - (bits))))
-+
-+/* blk0() and blk() perform the initial expand. */
-+/* I got the idea of expanding during the round function from SSLeay */
-+#if defined(__LITTLE_ENDIAN) || defined(_LITTLE_ENDIAN)
-+#define blk0(i) (block->l[i] = (rol(block->l[i],24)&0xFF00FF00) \
-+ |(rol(block->l[i],8)&0x00FF00FF))
-+#elif defined(__BIG_ENDIAN) || defined(_BIG_ENDIAN)
-+#define blk0(i) block->l[i]
-+#else
-+#error Endianness not defined
-+#endif
-+#define blk(i) (block->l[i&15] = rol(block->l[(i+13)&15]^block->l[(i+8)&15] \
-+ ^block->l[(i+2)&15]^block->l[i&15],1))
-+
-+/* (R0+R1), R2, R3, R4 are the different operations used in SHA1 */
-+#define R0(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk0(i)+0x5A827999+rol(v,5);w=rol(w,30);
-+#define R1(v,w,x,y,z,i) z+=((w&(x^y))^y)+blk(i)+0x5A827999+rol(v,5);w=rol(w,30);
-+#define R2(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0x6ED9EBA1+rol(v,5);w=rol(w,30);
-+#define R3(v,w,x,y,z,i) z+=(((w|x)&y)|(w&x))+blk(i)+0x8F1BBCDC+rol(v,5);w=rol(w,30);
-+#define R4(v,w,x,y,z,i) z+=(w^x^y)+blk(i)+0xCA62C1D6+rol(v,5);w=rol(w,30);
-+
-+/* Hash a single 512-bit block. This is the core of the algorithm. */
-+static void
-+SHA1_Transform(unsigned long state[5], const unsigned char buffer[64])
-+{
-+ unsigned long a, b, c, d, e;
-+ typedef union {
-+ unsigned char c[64];
-+ unsigned long l[16];
-+ } CHAR64LONG16;
-+ CHAR64LONG16 *block;
-+
-+#ifdef SHA1HANDSOFF
-+ static unsigned char workspace[64];
-+ block = (CHAR64LONG16 *) workspace;
-+ memcpy(block, buffer, 64);
-+#else
-+ block = (CHAR64LONG16 *) buffer;
-+#endif
-+ /* Copy context->state[] to working vars */
-+ a = state[0];
-+ b = state[1];
-+ c = state[2];
-+ d = state[3];
-+ e = state[4];
-+ /* 4 rounds of 20 operations each. Loop unrolled. */
-+ R0(a,b,c,d,e, 0); R0(e,a,b,c,d, 1); R0(d,e,a,b,c, 2); R0(c,d,e,a,b, 3);
-+ R0(b,c,d,e,a, 4); R0(a,b,c,d,e, 5); R0(e,a,b,c,d, 6); R0(d,e,a,b,c, 7);
-+ R0(c,d,e,a,b, 8); R0(b,c,d,e,a, 9); R0(a,b,c,d,e,10); R0(e,a,b,c,d,11);
-+ R0(d,e,a,b,c,12); R0(c,d,e,a,b,13); R0(b,c,d,e,a,14); R0(a,b,c,d,e,15);
-+ R1(e,a,b,c,d,16); R1(d,e,a,b,c,17); R1(c,d,e,a,b,18); R1(b,c,d,e,a,19);
-+ R2(a,b,c,d,e,20); R2(e,a,b,c,d,21); R2(d,e,a,b,c,22); R2(c,d,e,a,b,23);
-+ R2(b,c,d,e,a,24); R2(a,b,c,d,e,25); R2(e,a,b,c,d,26); R2(d,e,a,b,c,27);
-+ R2(c,d,e,a,b,28); R2(b,c,d,e,a,29); R2(a,b,c,d,e,30); R2(e,a,b,c,d,31);
-+ R2(d,e,a,b,c,32); R2(c,d,e,a,b,33); R2(b,c,d,e,a,34); R2(a,b,c,d,e,35);
-+ R2(e,a,b,c,d,36); R2(d,e,a,b,c,37); R2(c,d,e,a,b,38); R2(b,c,d,e,a,39);
-+ R3(a,b,c,d,e,40); R3(e,a,b,c,d,41); R3(d,e,a,b,c,42); R3(c,d,e,a,b,43);
-+ R3(b,c,d,e,a,44); R3(a,b,c,d,e,45); R3(e,a,b,c,d,46); R3(d,e,a,b,c,47);
-+ R3(c,d,e,a,b,48); R3(b,c,d,e,a,49); R3(a,b,c,d,e,50); R3(e,a,b,c,d,51);
-+ R3(d,e,a,b,c,52); R3(c,d,e,a,b,53); R3(b,c,d,e,a,54); R3(a,b,c,d,e,55);
-+ R3(e,a,b,c,d,56); R3(d,e,a,b,c,57); R3(c,d,e,a,b,58); R3(b,c,d,e,a,59);
-+ R4(a,b,c,d,e,60); R4(e,a,b,c,d,61); R4(d,e,a,b,c,62); R4(c,d,e,a,b,63);
-+ R4(b,c,d,e,a,64); R4(a,b,c,d,e,65); R4(e,a,b,c,d,66); R4(d,e,a,b,c,67);
-+ R4(c,d,e,a,b,68); R4(b,c,d,e,a,69); R4(a,b,c,d,e,70); R4(e,a,b,c,d,71);
-+ R4(d,e,a,b,c,72); R4(c,d,e,a,b,73); R4(b,c,d,e,a,74); R4(a,b,c,d,e,75);
-+ R4(e,a,b,c,d,76); R4(d,e,a,b,c,77); R4(c,d,e,a,b,78); R4(b,c,d,e,a,79);
-+ /* Add the working vars back into context.state[] */
-+ state[0] += a;
-+ state[1] += b;
-+ state[2] += c;
-+ state[3] += d;
-+ state[4] += e;
-+ /* Wipe variables */
-+ a = b = c = d = e = 0;
-+}
-+
-+/* SHA1Init - Initialize new context */
-+void
-+SHA1_Init(SHA1_CTX *context)
-+{
-+ /* SHA1 initialization constants */
-+ context->state[0] = 0x67452301;
-+ context->state[1] = 0xEFCDAB89;
-+ context->state[2] = 0x98BADCFE;
-+ context->state[3] = 0x10325476;
-+ context->state[4] = 0xC3D2E1F0;
-+ context->count[0] = context->count[1] = 0;
-+}
-+
-+/* Run your data through this. */
-+void
-+SHA1_Update(SHA1_CTX *context, const unsigned char *data, unsigned int len)
-+{
-+ unsigned int i, j;
-+
-+ j = (context->count[0] >> 3) & 63;
-+ if ((context->count[0] += len << 3) < (len << 3)) context->count[1]++;
-+ context->count[1] += (len >> 29);
-+ if ((j + len) > 63) {
-+ memcpy(&context->buffer[j], data, (i = 64-j));
-+ SHA1_Transform(context->state, context->buffer);
-+ for ( ; i + 63 < len; i += 64) {
-+ SHA1_Transform(context->state, &data[i]);
-+ }
-+ j = 0;
-+ }
-+ else
-+ i = 0;
-+
-+ memcpy(&context->buffer[j], &data[i], len - i);
-+}
-+
-+/* Add padding and return the message digest. */
-+void
-+SHA1_Final(unsigned char digest[20], SHA1_CTX *context)
-+{
-+ unsigned long i, j;
-+ unsigned char finalcount[8];
-+
-+ for (i = 0; i < 8; i++) {
-+ finalcount[i] = (unsigned char)((context->count[(i >= 4 ? 0 : 1)]
-+ >> ((3-(i & 3)) * 8) ) & 255); /* Endian independent */
-+ }
-+ SHA1_Update(context, (unsigned char *) "\200", 1);
-+ while ((context->count[0] & 504) != 448) {
-+ SHA1_Update(context, (unsigned char *) "\0", 1);
-+ }
-+ SHA1_Update(context, finalcount, 8); /* Should cause a SHA1Transform() */
-+ for (i = 0; i < 20; i++) {
-+ digest[i] = (unsigned char)
-+ ((context->state[i>>2] >> ((3-(i & 3)) * 8) ) & 255);
-+ }
-+ /* Wipe variables */
-+ i = j = 0;
-+ memset(context->buffer, 0, 64);
-+ memset(context->state, 0, 20);
-+ memset(context->count, 0, 8);
-+ memset(&finalcount, 0, 8);
-+#ifdef SHA1HANDSOFF /* make SHA1Transform overwrite it's own static vars */
-+ SHA1Transform(context->state, context->buffer);
-+#endif
-+}
-+
-+/*
-+ * arcfour.c
-+ * by Frank Cusack <frank@google.com>
-+ * 100% public domain
-+ *
-+ * Implemented from the description in _Applied Cryptography_, 2nd ed.
-+ *
-+ * ** Distribution ** of this software is unlimited and unrestricted.
-+ *
-+ * ** Use ** of this software is almost certainly legal; however, refer
-+ * to <http://theory.lcs.mit.edu/~rivest/faq.html>.
-+ */
-+
-+#define swap(a, b) \
-+{ \
-+ unsigned char t = b; \
-+ b = a; \
-+ a = t; \
-+}
-+
-+/*
-+ * Initialize arcfour from a key.
-+ */
-+void
-+arcfour_setkey(arcfour_context *context, const unsigned char *key,
-+ unsigned keylen)
-+{
-+ unsigned i, j;
-+ unsigned char K[256];
-+
-+ context->i = context->j = 0;
-+
-+ for (i = 0; i < 256; i++) {
-+ context->S[i] = i;
-+ K[i] = key[i % keylen];
-+ }
-+
-+ j = 0;
-+ for (i = 0; i < 256; i++) {
-+ j = (j + context->S[i] + K[i]) % 256;
-+ swap(context->S[i], context->S[j]);
-+ }
-+
-+ memset(K, 0, sizeof(K));
-+}
-+
-+/*
-+ * plaintext -> ciphertext (or vice versa)
-+ */
-+void
-+arcfour_encrypt(arcfour_context *context, const unsigned char *in, unsigned len,
-+ unsigned char *out)
-+{
-+ unsigned i = context->i;
-+ unsigned j = context->j;
-+ unsigned char *S = context->S;
-+ unsigned char K;
-+
-+ while (len--) {
-+ i = (i + 1) % 256;
-+ j = (j + S[i]) % 256;
-+ swap(S[i], S[j]);
-+ K = S[(S[i] + S[j]) % 256];
-+ *out++ = *in++ ^ K;
-+ }
-+
-+ context->i = i;
-+ context->j = j;
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/ppp_mppe_crypto.h 2005-01-07 02:57:48.415153952 -0500
-@@ -0,0 +1,40 @@
-+/*
-+ * ppp_mppe_crypto.h - cryptografic funtion prototypes for MPPE
-+ *
-+ * This code is Public Domain. Please see comments below.
-+ *
-+ * I have just put SHA1 and ARCFOUR declarations into one file
-+ * in order to not pollute kernel namespace.
-+ *
-+ * Jan Dubiec <jdx@slackware.pl>, 2003-07-08
-+ */
-+
-+#ifndef _PPP_MPPE_CRYPTO_
-+#define _PPP_MPPE_CRYPTO_
-+
-+/* SHA1 definitions and prototypes */
-+typedef struct {
-+ unsigned long state[5];
-+ unsigned long count[2];
-+ unsigned char buffer[64];
-+} SHA1_CTX;
-+
-+#define SHA1_SIGNATURE_SIZE 20
-+
-+extern void SHA1_Init(SHA1_CTX *);
-+extern void SHA1_Update(SHA1_CTX *, const unsigned char *, unsigned int);
-+extern void SHA1_Final(unsigned char[SHA1_SIGNATURE_SIZE], SHA1_CTX *);
-+
-+/* ARCFOUR (aka RC4) definitions and prototypes */
-+typedef struct {
-+ unsigned i;
-+ unsigned j;
-+ unsigned char S[256];
-+} arcfour_context;
-+
-+extern void arcfour_setkey(arcfour_context *, const unsigned char *, unsigned);
-+extern void arcfour_encrypt(arcfour_context *, const unsigned char *, unsigned,
-+ unsigned char *);
-+#define arcfour_decrypt arcfour_encrypt
-+
-+#endif /* _PPP_MPPE_CRYPTO_ */
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/ppp_mppe_mppc_comp.c 2005-01-07 02:57:48.417153648 -0500
-@@ -0,0 +1,1144 @@
-+/*
-+ * ppp_mppe_mppc_comp.c - MPPC/MPPE "compressor/decompressor" module.
-+ *
-+ * Copyright (c) 1994 Árpád Magosányi <mag@bunuel.tii.matav.hu>
-+ * Copyright (c) 1999 Tim Hockin, Cobalt Networks Inc. <thockin@cobaltnet.com>
-+ * Copyright (c) 2002, 2003 Jan Dubiec <jdx@slackware.pl>
-+ *
-+ * Permission to use, copy, modify, and distribute this software and its
-+ * documentation is hereby granted, provided that the above copyright
-+ * notice appears in all copies. This software is provided without any
-+ * warranty, express or implied.
-+ *
-+ * The code is based on MPPE kernel module written by Árpád Magosányi and
-+ * Tim Hockin which can be found on http://planetmirror.com/pub/mppe/.
-+ * I have added MPPC and 56 bit session keys support in MPPE.
-+ *
-+ * WARNING! Although this is open source code, its usage in some countries
-+ * (in particular in the USA) may violate Stac Inc. patent for MPPC.
-+ *
-+ * Compile command:
-+ * gcc -O2 -Wall -I/usr/src/linux/include -D__KERNEL__ -DMODULE -c ppp_mppe_mppc_comp.c
-+ *
-+ * ==FILEVERSION 20030807==
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/vmalloc.h>
-+#include <linux/init.h>
-+
-+#include <linux/ppp_defs.h>
-+#include <linux/ppp-comp.h>
-+
-+#include "ppp_mppe_crypto.h"
-+
-+/*
-+ * State for a mppc/mppe "(de)compressor".
-+ */
-+struct ppp_mppe_state {
-+ arcfour_context arcfour_context;
-+ u8 master_key[MPPE_MAX_KEY_LEN];
-+ u8 session_key[MPPE_MAX_KEY_LEN];
-+ u8 mppc; /* do we use compression (MPPC)? */
-+ u8 mppe; /* do we use encryption (MPPE)? */
-+ u8 keylen; /* key length in bytes */
-+ u8 bitkeylen; /* key length in bits */
-+ u16 ccount; /* coherency counter */
-+ u16 bits; /* MPPC/MPPE control bits */
-+ u8 stateless; /* do we use stateless mode? */
-+ u8 nextflushed; /* set A bit in the next outgoing packet;
-+ used only by compressor*/
-+ u8 flushexpected; /* drop packets until A bit is received;
-+ used only by decompressor*/
-+ u8 *hist; /* MPPC history */
-+ u16 *hash; /* Hash table; used only by compressor */
-+ u16 histptr; /* history "cursor" */
-+ int unit;
-+ int debug;
-+ int mru;
-+ struct compstat stats;
-+};
-+
-+#define MPPE_OVHD 2 /* MPPE overhead */
-+#define MPPE_HIST_LEN 8192 /* MPPC history size */
-+#define MPPE_MAX_CCOUNT 0x0FFF /* max. coherency counter value */
-+
-+#define MPPE_BIT_FLUSHED 0x80 /* bit A */
-+#define MPPE_BIT_RESET 0x40 /* bit B */
-+#define MPPE_BIT_COMP 0x20 /* bit C */
-+#define MPPE_BIT_ENCRYPTED 0x10 /* bit D */
-+
-+#define MPPE_SALT0 0xD1 /* values used in MPPE key derivation */
-+#define MPPE_SALT1 0x26 /* according to RFC3079 */
-+#define MPPE_SALT2 0x9E
-+
-+#define MPPE_CCOUNT(x) ((((x)[4] & 0x0f) << 8) + (x)[5])
-+#define MPPE_BITS(x) ((x)[4] & 0xf0)
-+#define MPPE_CTRLHI(x) ((((x)->ccount & 0xf00)>>8)|((x)->bits))
-+#define MPPE_CTRLLO(x) ((x)->ccount & 0xff)
-+
-+/*
-+ * Key Derivation, from RFC 3078, RFC 3079.
-+ * Equivalent to Get_Key() for MS-CHAP as described in RFC 3079.
-+ */
-+static void
-+GetNewKeyFromSHA(unsigned char *MasterKey, unsigned char *SessionKey,
-+ unsigned long SessionKeyLength, unsigned char *InterimKey)
-+{
-+ /*Pads used in key derivation */
-+ static unsigned char SHAPad1[40] =
-+ { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
-+
-+ static unsigned char SHAPad2[40] =
-+ { 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
-+ 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
-+ 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2,
-+ 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2, 0xF2 };
-+
-+ SHA1_CTX Context;
-+ unsigned char Digest[SHA1_SIGNATURE_SIZE];
-+
-+ SHA1_Init(&Context);
-+ SHA1_Update(&Context, MasterKey, SessionKeyLength);
-+ SHA1_Update(&Context, SHAPad1, sizeof(SHAPad1));
-+ SHA1_Update(&Context, SessionKey, SessionKeyLength);
-+ SHA1_Update(&Context, SHAPad2, sizeof(SHAPad2));
-+ SHA1_Final(Digest,&Context);
-+ memcpy(InterimKey, Digest, SessionKeyLength);
-+}
-+
-+static void
-+mppe_change_key(struct ppp_mppe_state *state, int initialize)
-+{
-+ unsigned char InterimKey[MPPE_MAX_KEY_LEN];
-+
-+ GetNewKeyFromSHA(state->master_key, state->session_key,
-+ state->keylen, InterimKey);
-+ if (initialize) {
-+ memcpy(state->session_key, InterimKey, state->keylen);
-+ } else {
-+ arcfour_setkey(&state->arcfour_context, InterimKey, state->keylen);
-+ arcfour_encrypt(&state->arcfour_context, InterimKey, state->keylen,
-+ state->session_key);
-+ }
-+ if (state->keylen == 8) {
-+ if (state->bitkeylen == 40) {
-+ state->session_key[0] = MPPE_SALT0;
-+ state->session_key[1] = MPPE_SALT1;
-+ state->session_key[2] = MPPE_SALT2;
-+ } else {
-+ state->session_key[0] = MPPE_SALT0;
-+ }
-+ }
-+ arcfour_setkey(&state->arcfour_context, state->session_key, state->keylen);
-+}
-+
-+/* increase 12-bit coherency counter */
-+static inline void
-+mppe_increase_ccount(struct ppp_mppe_state *state)
-+{
-+ state->ccount = (state->ccount + 1) & MPPE_MAX_CCOUNT;
-+ if (state->mppe) {
-+ if (state->stateless) {
-+ mppe_change_key(state, 0);
-+ state->nextflushed = 1;
-+ } else {
-+ if ((state->ccount & 0xff) == 0xff) {
-+ mppe_change_key(state, 0);
-+ state->nextflushed = 1;
-+ }
-+ }
-+ }
-+}
-+
-+/* allocate space for a MPPE/MPPC (de)compressor. */
-+/* comp != 0 -> init compressor */
-+/* comp = 0 -> init decompressor */
-+static void *
-+mppe_alloc(unsigned char *options, int opt_len, int comp)
-+{
-+ struct ppp_mppe_state *state;
-+ u8* fname;
-+
-+ fname = comp ? "mppe_comp_alloc" : "mppe_decomp_alloc";
-+
-+ /*
-+ Hack warning - additionally to the standard MPPC/MPPE configuration
-+ options, pppd passes to the (de)copressor 8 or 16 byte session key.
-+ Therefore options[1] contains MPPC/MPPE configuration option length
-+ (CILEN_MPPE = 6), but the real options length, depending on the key
-+ length, is 6+8 or 6+16.
-+ */
-+ if (opt_len < CILEN_MPPE) {
-+ printk(KERN_WARNING "%s: wrong options length: %u\n", fname, opt_len);
-+ return NULL;
-+ }
-+
-+ if (options[0] != CI_MPPE || options[1] != CILEN_MPPE ||
-+ (options[2] & ~MPPE_STATELESS) != 0 ||
-+ options[3] != 0 || options[4] != 0 ||
-+ (options[5] & ~(MPPE_128BIT|MPPE_56BIT|MPPE_40BIT|MPPE_MPPC)) != 0 ||
-+ (options[5] & (MPPE_128BIT|MPPE_56BIT|MPPE_40BIT|MPPE_MPPC)) == 0) {
-+ printk(KERN_WARNING "%s: options rejected: o[0]=%02x, o[1]=%02x, "
-+ "o[2]=%02x, o[3]=%02x, o[4]=%02x, o[5]=%02x\n", fname, options[0],
-+ options[1], options[2], options[3], options[4], options[5]);
-+ return NULL;
-+ }
-+
-+ state = (struct ppp_mppe_state *)kmalloc(sizeof(*state), GFP_KERNEL);
-+ if (state == NULL) {
-+ printk(KERN_ERR "%s: cannot allocate space for %scompressor\n", fname,
-+ comp ? "" : "de");
-+ return NULL;
-+ }
-+ memset(state, 0, sizeof(struct ppp_mppe_state));
-+
-+ state->mppc = options[5] & MPPE_MPPC; /* Do we use MPPC? */
-+ state->mppe = options[5] & (MPPE_128BIT | MPPE_56BIT |
-+ MPPE_40BIT); /* Do we use MPPE? */
-+
-+ if (state->mppc) {
-+ /* allocate MPPC history */
-+ state->hist = (u8*)vmalloc(2*MPPE_HIST_LEN*sizeof(u8));
-+ if (state->hist == NULL) {
-+ kfree(state);
-+ printk(KERN_ERR "%s: cannot allocate space for MPPC history\n",
-+ fname);
-+ return NULL;
-+ }
-+
-+ /* allocate hashtable for MPPC compressor */
-+ if (comp) {
-+ state->hash = (u16*)vmalloc(MPPE_HIST_LEN*sizeof(u16));
-+ if (state->hash == NULL) {
-+ vfree(state->hist);
-+ kfree(state);
-+ printk(KERN_ERR "%s: cannot allocate space for MPPC history\n",
-+ fname);
-+ return NULL;
-+ }
-+ }
-+ }
-+
-+ MOD_INC_USE_COUNT;
-+
-+ if (state->mppe) { /* specific for MPPE */
-+ memcpy(state->master_key, options+CILEN_MPPE, MPPE_MAX_KEY_LEN);
-+ memcpy(state->session_key, state->master_key, MPPE_MAX_KEY_LEN);
-+ /* initial key generation is done in mppe_init() */
-+ }
-+
-+ return (void *) state;
-+}
-+
-+static void *
-+mppe_comp_alloc(unsigned char *options, int opt_len)
-+{
-+ return mppe_alloc(options, opt_len, 1);
-+}
-+
-+static void *
-+mppe_decomp_alloc(unsigned char *options, int opt_len)
-+{
-+ return mppe_alloc(options, opt_len, 0);
-+}
-+
-+/* cleanup the (de)compressor */
-+static void
-+mppe_comp_free(void *arg)
-+{
-+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg;
-+
-+ if (state != NULL) {
-+ if (state->hist != NULL)
-+ vfree(state->hist);
-+ if (state->hash != NULL)
-+ vfree(state->hash);
-+ kfree(state);
-+ }
-+ MOD_DEC_USE_COUNT;
-+}
-+
-+/* init MPPC/MPPE (de)compresor */
-+/* comp != 0 -> init compressor */
-+/* comp = 0 -> init decompressor */
-+static int
-+mppe_init(void *arg, unsigned char *options, int opt_len, int unit,
-+ int hdrlen, int mru, int debug, int comp)
-+{
-+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg;
-+ u8* fname;
-+
-+ fname = comp ? "mppe_comp_init" : "mppe_decomp_init";
-+
-+ if (opt_len < CILEN_MPPE) {
-+ if (debug)
-+ printk(KERN_WARNING "%s: wrong options length: %u\n",
-+ fname, opt_len);
-+ return 0;
-+ }
-+
-+ if (options[0] != CI_MPPE || options[1] != CILEN_MPPE ||
-+ (options[2] & ~MPPE_STATELESS) != 0 ||
-+ options[3] != 0 || options[4] != 0 ||
-+ (options[5] & ~(MPPE_56BIT|MPPE_128BIT|MPPE_40BIT|MPPE_MPPC)) != 0 ||
-+ (options[5] & (MPPE_56BIT|MPPE_128BIT|MPPE_40BIT|MPPE_MPPC)) == 0) {
-+ if (debug)
-+ printk(KERN_WARNING "%s: options rejected: o[0]=%02x, o[1]=%02x, "
-+ "o[2]=%02x, o[3]=%02x, o[4]=%02x, o[5]=%02x\n", fname,
-+ options[0], options[1], options[2], options[3], options[4],
-+ options[5]);
-+ return 0;
-+ }
-+
-+ if ((options[5] & ~MPPE_MPPC) != MPPE_128BIT &&
-+ (options[5] & ~MPPE_MPPC) != MPPE_56BIT &&
-+ (options[5] & ~MPPE_MPPC) != MPPE_40BIT &&
-+ (options[5] & MPPE_MPPC) != MPPE_MPPC) {
-+ if (debug)
-+ printk(KERN_WARNING "%s: don't know what to do: o[5]=%02x\n",
-+ fname, options[5]);
-+ return 0;
-+ }
-+
-+ state->mppc = options[5] & MPPE_MPPC; /* Do we use MPPC? */
-+ state->mppe = options[5] & (MPPE_128BIT | MPPE_56BIT |
-+ MPPE_40BIT); /* Do we use MPPE? */
-+ state->stateless = options[2] & MPPE_STATELESS; /* Do we use stateless mode? */
-+
-+ switch (state->mppe) {
-+ case MPPE_40BIT: /* 40 bit key */
-+ state->keylen = 8;
-+ state->bitkeylen = 40;
-+ break;
-+ case MPPE_56BIT: /* 56 bit key */
-+ state->keylen = 8;
-+ state->bitkeylen = 56;
-+ break;
-+ case MPPE_128BIT: /* 128 bit key */
-+ state->keylen = 16;
-+ state->bitkeylen = 128;
-+ break;
-+ default:
-+ state->keylen = 0;
-+ state->bitkeylen = 0;
-+ }
-+
-+ state->ccount = MPPE_MAX_CCOUNT;
-+ state->bits = 0;
-+ state->unit = unit;
-+ state->debug = debug;
-+ state->histptr = MPPE_HIST_LEN;
-+ if (state->mppc) { /* reset history if MPPC was negotiated */
-+ memset(state->hist, 0, 2*MPPE_HIST_LEN*sizeof(u8));
-+ }
-+
-+ if (state->mppe) { /* generate initial session keys */
-+ mppe_change_key(state, 1);
-+ }
-+
-+ if (comp) { /* specific for compressor */
-+ state->nextflushed = 1;
-+ } else { /* specific for decompressor */
-+ state->mru = mru;
-+ state->flushexpected = 1;
-+ }
-+
-+ return 1;
-+}
-+
-+static int
-+mppe_comp_init(void *arg, unsigned char *options, int opt_len, int unit,
-+ int hdrlen, int debug)
-+{
-+ return mppe_init(arg, options, opt_len, unit, hdrlen, 0, debug, 1);
-+}
-+
-+
-+static int
-+mppe_decomp_init(void *arg, unsigned char *options, int opt_len, int unit,
-+ int hdrlen, int mru, int debug)
-+{
-+ return mppe_init(arg, options, opt_len, unit, hdrlen, mru, debug, 0);
-+}
-+
-+static void
-+mppe_comp_reset(void *arg)
-+{
-+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg;
-+
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: resetting MPPC/MPPE compressor\n",
-+ __FUNCTION__, state->unit);
-+
-+ state->nextflushed = 1;
-+ if (state->mppe)
-+ arcfour_setkey(&state->arcfour_context, state->session_key,
-+ state->keylen);
-+}
-+
-+static void
-+mppe_decomp_reset(void *arg)
-+{
-+ /* When MPPC/MPPE is in use, we shouldn't receive any CCP Reset-Ack.
-+ But when we receive such a packet, we just ignore it. */
-+ return;
-+}
-+
-+static void
-+mppe_stats(void *arg, struct compstat *stats)
-+{
-+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg;
-+
-+ *stats = state->stats;
-+}
-+
-+/***************************/
-+/**** Compression stuff ****/
-+/***************************/
-+/* inserts 1 to max. 8 bits into the output buffer */
-+static inline void putbits8(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l)
-+{
-+ buf += *i;
-+ if (*l >= n) {
-+ *l = (*l) - n;
-+ val <<= *l;
-+ *buf = *buf | (val & 0xff);
-+ if (*l == 0) {
-+ *l = 8;
-+ (*i)++;
-+ *(++buf) = 0;
-+ }
-+ } else {
-+ (*i)++;
-+ *l = 8 - n + (*l);
-+ val <<= *l;
-+ *buf = *buf | ((val >> 8) & 0xff);
-+ *(++buf) = val & 0xff;
-+ }
-+}
-+
-+/* inserts 9 to max. 16 bits into the output buffer */
-+static inline void putbits16(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l)
-+{
-+ buf += *i;
-+ if (*l >= n - 8) {
-+ (*i)++;
-+ *l = 8 - n + (*l);
-+ val <<= *l;
-+ *buf = *buf | ((val >> 8) & 0xff);
-+ *(++buf) = val & 0xff;
-+ if (*l == 0) {
-+ *l = 8;
-+ (*i)++;
-+ *(++buf) = 0;
-+ }
-+ } else {
-+ (*i)++; (*i)++;
-+ *l = 16 - n + (*l);
-+ val <<= *l;
-+ *buf = *buf | ((val >> 16) & 0xff);
-+ *(++buf) = (val >> 8) & 0xff;
-+ *(++buf) = val & 0xff;
-+ }
-+}
-+
-+/* inserts 17 to max. 24 bits into the output buffer */
-+static inline void putbits24(u8 *buf, u32 val, const u32 n, u32 *i, u32 *l)
-+{
-+ buf += *i;
-+ if (*l >= n - 16) {
-+ (*i)++; (*i)++;
-+ *l = 16 - n + (*l);
-+ val <<= *l;
-+ *buf = *buf | ((val >> 16) & 0xff);
-+ *(++buf) = (val >> 8) & 0xff;
-+ *(++buf) = val & 0xff;
-+ if (*l == 0) {
-+ *l = 8;
-+ (*i)++;
-+ *(++buf) = 0;
-+ }
-+ } else {
-+ (*i)++; (*i)++; (*i)++;
-+ *l = 24 - n + (*l);
-+ val <<= *l;
-+ *buf = *buf | ((val >> 24) & 0xff);
-+ *(++buf) = (val >> 16) & 0xff;
-+ *(++buf) = (val >> 8) & 0xff;
-+ *(++buf) = val & 0xff;
-+ }
-+}
-+
-+static int
-+mppc_compress(struct ppp_mppe_state *state, unsigned char *ibuf,
-+ unsigned char *obuf, int isize, int osize)
-+{
-+ u32 olen, off, len, idx, i, l;
-+ u8 *hist, *sbuf, *p, *q, *r, *s;
-+
-+ /*
-+ At this point, to avoid possible buffer overflow caused by packet
-+ expansion during/after compression, we should make sure that
-+ osize >= (((isize*9)/8)+1)+2, but we don't do that because in
-+ ppp_generic.c we just allocate bigger obuf.
-+
-+ Maximum MPPC packet expansion is 12.5%. This is the worst case when
-+ all octets in the input buffer are >= 0x80 and we cannot find any
-+ repeated tokens. Additionally we have to reserve 2 bytes for MPPE/MPPC
-+ status bits and coherency counter.
-+ */
-+
-+ hist = state->hist + MPPE_HIST_LEN;
-+ /* check if there is enough room at the end of the history */
-+ if (state->histptr + isize >= 2*MPPE_HIST_LEN) {
-+ state->bits |= MPPE_BIT_RESET;
-+ state->histptr = MPPE_HIST_LEN;
-+ memcpy(state->hist, hist, MPPE_HIST_LEN);
-+ }
-+ /* add packet to the history; isize must be <= MPPE_HIST_LEN */
-+ sbuf = state->hist + state->histptr;
-+ memcpy(sbuf, ibuf, isize);
-+ state->histptr += isize;
-+
-+ /* compress data */
-+ r = sbuf + isize;
-+ *obuf = olen = i = 0;
-+ l = 8;
-+ while (i < isize - 2) {
-+ s = q = sbuf + i;
-+ idx = ((40542*((((s[0]<<4)^s[1])<<4)^s[2]))>>4) & 0x1FFF;
-+ p = hist + state->hash[idx];
-+ state->hash[idx] = (u16) (s - hist);
-+ off = s - p;
-+ if (off > 8191 || off < 1 || *p++ != *s++ || *p++ != *s++ || *p++ != *s++)
-+ goto literal;
-+ if (r - q >= 64) {
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++ || *p++ != *s++ || *p++ != *s++ || *p++ != *s++ ||
-+ *p++ != *s++;
-+ if (s - q == 64) {
-+ p--; s--;
-+ while((*p++ == *s++) && (s < r));
-+ }
-+ } else {
-+ while((*p++ == *s++) && (s < r));
-+ }
-+ len = s - q - 1;
-+ i += len;
-+
-+ /* at least 3 character match found; code data */
-+ /* encode offset */
-+ if (off < 64) { /* 10-bit offset; 0 <= offset < 64 */
-+ putbits16(obuf, 0x3c0|off, 10, &olen, &l);
-+ } else if (off < 320) { /* 12-bit offset; 64 <= offset < 320 */
-+ putbits16(obuf, 0xe00|(off-64), 12, &olen, &l);
-+ } else if (off < 8192) { /* 16-bit offset; 320 <= offset < 8192 */
-+ putbits16(obuf, 0xc000|(off-320), 16, &olen, &l);
-+ } else {
-+ /* This shouldn't happen; we return 0 what means "packet expands",
-+ and we send packet uncompressed. */
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: wrong offset value: %d\n",
-+ __FUNCTION__, state->unit, off);
-+ return 0;
-+ }
-+ /* encode length of match */
-+ if (len < 4) { /* length = 3 */
-+ putbits8(obuf, 0, 1, &olen, &l);
-+ } else if (len < 8) { /* 4 <= length < 8 */
-+ putbits8(obuf, 0x08|(len&0x03), 4, &olen, &l);
-+ } else if (len < 16) { /* 8 <= length < 16 */
-+ putbits8(obuf, 0x30|(len&0x07), 6, &olen, &l);
-+ } else if (len < 32) { /* 16 <= length < 32 */
-+ putbits8(obuf, 0xe0|(len&0x0f), 8, &olen, &l);
-+ } else if (len < 64) { /* 32 <= length < 64 */
-+ putbits16(obuf, 0x3c0|(len&0x1f), 10, &olen, &l);
-+ } else if (len < 128) { /* 64 <= length < 128 */
-+ putbits16(obuf, 0xf80|(len&0x3f), 12, &olen, &l);
-+ } else if (len < 256) { /* 128 <= length < 256 */
-+ putbits16(obuf, 0x3f00|(len&0x7f), 14, &olen, &l);
-+ } else if (len < 512) { /* 256 <= length < 512 */
-+ putbits16(obuf, 0xfe00|(len&0xff), 16, &olen, &l);
-+ } else if (len < 1024) { /* 512 <= length < 1024 */
-+ putbits24(obuf, 0x3fc00|(len&0x1ff), 18, &olen, &l);
-+ } else if (len < 2048) { /* 1024 <= length < 2048 */
-+ putbits24(obuf, 0xff800|(len&0x3ff), 20, &olen, &l);
-+ } else if (len < 4096) { /* 2048 <= length < 4096 */
-+ putbits24(obuf, 0x3ff000|(len&0x7ff), 22, &olen, &l);
-+ } else if (len < 8192) { /* 4096 <= length < 8192 */
-+ putbits24(obuf, 0xffe000|(len&0xfff), 24, &olen, &l);
-+ } else {
-+ /* This shouldn't happen; we return 0 what means "packet expands",
-+ and send packet uncompressed. */
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: wrong length of match value: %d\n",
-+ __FUNCTION__, state->unit, len);
-+ return 0;
-+ }
-+ continue;
-+
-+ literal:
-+ /* no match found; encode literal byte */
-+ if (ibuf[i] < 0x80) { /* literal byte < 0x80 */
-+ putbits8(obuf, (u32) ibuf[i++], 8, &olen, &l);
-+ } else { /* literal byte >= 0x80 */
-+ putbits16(obuf, (u32) (0x100|(ibuf[i++]&0x7f)), 9, &olen, &l);
-+ }
-+ }
-+
-+ /* Add remaining octets to the output */
-+ while(isize - i > 0) {
-+ if (ibuf[i] < 0x80) { /* literal byte < 0x80 */
-+ putbits8(obuf, (u32) ibuf[i++], 8, &olen, &l);
-+ } else { /* literal byte >= 0x80 */
-+ putbits16(obuf, (u32) (0x100|(ibuf[i++]&0x7f)), 9, &olen, &l);
-+ }
-+ }
-+ /* Reset unused bits of the last output octet */
-+ if ((l != 0) && (l != 8)) {
-+ putbits8(obuf, 0, l, &olen, &l);
-+ }
-+
-+ return (int) olen;
-+}
-+
-+int
-+mppe_compress(void *arg, unsigned char *ibuf, unsigned char *obuf,
-+ int isize, int osize)
-+{
-+ struct ppp_mppe_state *state = (struct ppp_mppe_state *) arg;
-+ int proto, olen, complen;
-+ unsigned char *wptr;
-+
-+ /* Check that the protocol is in the range we handle. */
-+ proto = PPP_PROTOCOL(ibuf);
-+ if (proto < 0x0021 || proto > 0x00fa)
-+ return 0;
-+
-+ wptr = obuf;
-+ /* Copy over the PPP header */
-+ wptr[0] = PPP_ADDRESS(ibuf);
-+ wptr[1] = PPP_CONTROL(ibuf);
-+ wptr[2] = PPP_COMP >> 8;
-+ wptr[3] = PPP_COMP;
-+ wptr += PPP_HDRLEN + MPPE_OVHD; /* Leave two octets for MPPE/MPPC bits */
-+
-+ mppe_increase_ccount(state);
-+
-+ if (state->nextflushed) {
-+ if (!state->stateless) {
-+ state->nextflushed = 0;
-+ }
-+ state->bits |= MPPE_BIT_FLUSHED;
-+ if (state->mppc) { /* reset history */
-+ state->bits |= MPPE_BIT_RESET;
-+ state->histptr = MPPE_HIST_LEN;
-+ memset(state->hist + MPPE_HIST_LEN, 0, MPPE_HIST_LEN*sizeof(u8));
-+ }
-+ }
-+
-+ if (state->mppc && !state->mppe) { /* Do only compression */
-+ complen = mppc_compress(state, ibuf+2, wptr, isize-2,
-+ osize-PPP_HDRLEN-MPPE_OVHD);
-+ if ((complen > isize) || (complen == 0)) {
-+ /* packet expands */
-+ state->nextflushed = 1;
-+ memcpy(wptr, ibuf+2, isize-2);
-+ olen = isize + (PPP_HDRLEN / 2) + MPPE_OVHD;
-+ (state->stats).inc_bytes += olen;
-+ (state->stats).inc_packets++;
-+ } else {
-+ state->bits |= MPPE_BIT_COMP;
-+ olen = complen + PPP_HDRLEN + MPPE_OVHD;
-+ (state->stats).comp_bytes += olen;
-+ (state->stats).comp_packets++;
-+ }
-+ } else {
-+ if (!state->mppc && state->mppe) { /* Do only encryption */
-+ /* read from ibuf, write to wptr, adjust for PPP_HDRLEN */
-+ arcfour_encrypt(&state->arcfour_context, ibuf+2, isize-2, wptr);
-+ state->bits |= MPPE_BIT_ENCRYPTED;
-+ olen = isize + (PPP_HDRLEN / 2) + MPPE_OVHD;
-+ (state->stats).inc_bytes += olen;
-+ (state->stats).inc_packets++;
-+ } else { /* Do compression and then encryption - RFC3078 */
-+ complen = mppc_compress(state, ibuf+2, wptr, isize-2,
-+ osize-PPP_HDRLEN-MPPE_OVHD);
-+ if ((complen > isize) || (complen == 0)) {
-+ /* packet expands */
-+ memcpy(wptr, ibuf+2, isize-2);
-+ state->nextflushed = 1;
-+ arcfour_encrypt(&state->arcfour_context, ibuf+2, isize-2, wptr);
-+ olen = isize + (PPP_HDRLEN / 2) + MPPE_OVHD;
-+ (state->stats).inc_bytes += olen;
-+ (state->stats).inc_packets++;
-+ } else {
-+ state->bits |= MPPE_BIT_COMP;
-+ /* Hack warning !!! RC4 implementation which we use does
-+ encryption "in place" - it means that input and output
-+ buffers can be *the same* memory area. Therefore we don't
-+ need to use a temporary buffer. But be careful - other
-+ implementations don't have to be so nice.
-+ I used to use ibuf as temporary buffer here, but it led
-+ packet sniffers into error. Thanks to Wilfried Weissmann
-+ for pointing that. */
-+ arcfour_encrypt(&state->arcfour_context, wptr, complen, wptr);
-+ olen = complen + PPP_HDRLEN + MPPE_OVHD;
-+ (state->stats).comp_bytes += olen;
-+ (state->stats).comp_packets++;
-+ }
-+ state->bits |= MPPE_BIT_ENCRYPTED;
-+ }
-+ }
-+
-+ /* write status bits and coherency counter into the output buffer */
-+ wptr = obuf + PPP_HDRLEN;
-+ wptr[0] = MPPE_CTRLHI(state);
-+ wptr[1] = MPPE_CTRLLO(state);
-+
-+ state->bits = 0;
-+
-+ (state->stats).unc_bytes += isize;
-+ (state->stats).unc_packets++;
-+
-+ return olen;
-+}
-+
-+/***************************/
-+/*** Decompression stuff ***/
-+/***************************/
-+static inline u32 getbits(const u8 *buf, const u32 n, u32 *i, u32 *l)
-+{
-+ static u32 m[] = {0x00, 0x01, 0x03, 0x07, 0x0f, 0x1f, 0x3f, 0x7f, 0xff};
-+ u32 res, ol;
-+
-+ ol = *l;
-+ if (*l >= n) {
-+ *l = (*l) - n;
-+ res = (buf[*i] & m[ol]) >> (*l);
-+ if (*l == 0) {
-+ *l = 8;
-+ (*i)++;
-+ }
-+ } else {
-+ *l = 8 - n + (*l);
-+ res = (buf[(*i)++] & m[ol]) << 8;
-+ res = (res | buf[*i]) >> (*l);
-+ }
-+
-+ return res;
-+}
-+
-+static inline u32 getbyte(const u8 *buf, const u32 i, const u32 l)
-+{
-+ if (l == 8) {
-+ return buf[i];
-+ } else {
-+ return (((buf[i] << 8) | buf[i+1]) >> l) & 0xff;
-+ }
-+}
-+
-+static inline void lamecopy(u8 *dst, u8 *src, u32 len)
-+{
-+ while (len--)
-+ *dst++ = *src++;
-+}
-+
-+static int
-+mppc_decompress(struct ppp_mppe_state *state, unsigned char *ibuf,
-+ unsigned char *obuf, int isize, int osize)
-+{
-+ u32 olen, off, len, bits, val, sig, i, l;
-+ u8 *history, *s;
-+
-+ history = state->hist + state->histptr;
-+ olen = len = i = 0;
-+ l = 8;
-+ bits = isize * 8;
-+ while (bits >= 8) {
-+ val = getbyte(ibuf, i++, l);
-+ if (val < 0x80) { /* literal byte < 0x80 */
-+ if (state->histptr < 2*MPPE_HIST_LEN) {
-+ /* copy uncompressed byte to the history */
-+ (state->hist)[(state->histptr)++] = (u8) val;
-+ } else {
-+ /* buffer overflow; drop packet */
-+ if (state->debug)
-+ printk(KERN_ERR "%s%d: trying to write outside history "
-+ "buffer\n", __FUNCTION__, state->unit);
-+ return DECOMP_ERROR;
-+ }
-+ olen++;
-+ bits -= 8;
-+ continue;
-+ }
-+
-+ sig = val & 0xc0;
-+ if (sig == 0x80) { /* literal byte >= 0x80 */
-+ if (state->histptr < 2*MPPE_HIST_LEN) {
-+ /* copy uncompressed byte to the history */
-+ (state->hist)[(state->histptr)++] =
-+ (u8) (0x80|((val&0x3f)<<1)|getbits(ibuf, 1 , &i ,&l));
-+ } else {
-+ /* buffer overflow; drop packet */
-+ if (state->debug)
-+ printk(KERN_ERR "%s%d: trying to write outside history "
-+ "buffer\n", __FUNCTION__, state->unit);
-+ return DECOMP_ERROR;
-+ }
-+ olen++;
-+ bits -= 9;
-+ continue;
-+ }
-+
-+ /* Not a literal byte so it must be an (offset,length) pair */
-+ /* decode offset */
-+ sig = val & 0xf0;
-+ if (sig == 0xf0) { /* 10-bit offset; 0 <= offset < 64 */
-+ off = (((val&0x0f)<<2)|getbits(ibuf, 2 , &i ,&l));
-+ bits -= 10;
-+ } else {
-+ if (sig == 0xe0) { /* 12-bit offset; 64 <= offset < 320 */
-+ off = ((((val&0x0f)<<4)|getbits(ibuf, 4 , &i ,&l))+64);
-+ bits -= 12;
-+ } else {
-+ if ((sig&0xe0) == 0xc0) {/* 16-bit offset; 320 <= offset < 8192 */
-+ off = ((((val&0x1f)<<8)|getbyte(ibuf, i++, l))+320);
-+ bits -= 16;
-+ if (off > MPPE_HIST_LEN - 1) {
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: too big offset value: %d\n",
-+ __FUNCTION__, state->unit, off);
-+ return DECOMP_ERROR;
-+ }
-+ } else { /* this shouldn't happen */
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: cannot decode offset value\n",
-+ __FUNCTION__, state->unit);
-+ return DECOMP_ERROR;
-+ }
-+ }
-+ }
-+ /* decode length of match */
-+ val = getbyte(ibuf, i, l);
-+ if ((val & 0x80) == 0x00) { /* len = 3 */
-+ len = 3;
-+ bits--;
-+ getbits(ibuf, 1 , &i ,&l);
-+ } else if ((val & 0xc0) == 0x80) { /* 4 <= len < 8 */
-+ len = 0x04 | ((val>>4) & 0x03);
-+ bits -= 4;
-+ getbits(ibuf, 4 , &i ,&l);
-+ } else if ((val & 0xe0) == 0xc0) { /* 8 <= len < 16 */
-+ len = 0x08 | ((val>>2) & 0x07);
-+ bits -= 6;
-+ getbits(ibuf, 6 , &i ,&l);
-+ } else if ((val & 0xf0) == 0xe0) { /* 16 <= len < 32 */
-+ len = 0x10 | (val & 0x0f);
-+ bits -= 8;
-+ i++;
-+ } else {
-+ bits -= 8;
-+ val = (val << 8) | getbyte(ibuf, ++i, l);
-+ if ((val & 0xf800) == 0xf000) { /* 32 <= len < 64 */
-+ len = 0x0020 | ((val >> 6) & 0x001f);
-+ bits -= 2;
-+ getbits(ibuf, 2 , &i ,&l);
-+ } else if ((val & 0xfc00) == 0xf800) { /* 64 <= len < 128 */
-+ len = 0x0040 | ((val >> 4) & 0x003f);
-+ bits -= 4;
-+ getbits(ibuf, 4 , &i ,&l);
-+ } else if ((val & 0xfe00) == 0xfc00) { /* 128 <= len < 256 */
-+ len = 0x0080 | ((val >> 2) & 0x007f);
-+ bits -= 6;
-+ getbits(ibuf, 6 , &i ,&l);
-+ } else if ((val & 0xff00) == 0xfe00) { /* 256 <= len < 512 */
-+ len = 0x0100 | (val & 0x00ff);
-+ bits -= 8;
-+ i++;
-+ } else {
-+ bits -= 8;
-+ val = (val << 8) | getbyte(ibuf, ++i, l);
-+ if ((val & 0xff8000) == 0xff0000) { /* 512 <= len < 1024 */
-+ len = 0x000200 | ((val >> 6) & 0x0001ff);
-+ bits -= 2;
-+ getbits(ibuf, 2 , &i ,&l);
-+ } else if ((val & 0xffc000) == 0xff8000) {/* 1024 <= len < 2048 */
-+ len = 0x000400 | ((val >> 4) & 0x0003ff);
-+ bits -= 4;
-+ getbits(ibuf, 4 , &i ,&l);
-+ } else if ((val & 0xffe000) == 0xffc000) {/* 2048 <= len < 4096 */
-+ len = 0x000800 | ((val >> 2) & 0x0007ff);
-+ bits -= 6;
-+ getbits(ibuf, 6 , &i ,&l);
-+ } else if ((val & 0xfff000) == 0xffe000) {/* 4096 <= len < 8192 */
-+ len = 0x001000 | (val & 0x000fff);
-+ bits -= 8;
-+ i++;
-+ } else { /* this shouldn't happen */
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: wrong length code: 0x%X\n",
-+ __FUNCTION__, state->unit, val);
-+ return DECOMP_ERROR;
-+ }
-+ }
-+ }
-+ s = state->hist + state->histptr;
-+ state->histptr += len;
-+ olen += len;
-+ if (state->histptr < 2*MPPE_HIST_LEN) {
-+ /* copy uncompressed bytes to the history */
-+
-+ /* In some cases len may be greater than off. It means that memory
-+ * areas pointed by s and s-off overlap. I used to use memmove()
-+ * here, because I thought that it acts as libc's version. But
-+ * I was wrong. I got strange errors sometimes. Wilfried suggested
-+ * using of byte by byte copying here and strange errors disappeared.
-+ */
-+ lamecopy(s, s-off, len);
-+ } else {
-+ /* buffer overflow; drop packet */
-+ if (state->debug)
-+ printk(KERN_ERR "%s%d: trying to write outside history "
-+ "buffer\n", __FUNCTION__, state->unit);
-+ return DECOMP_ERROR;
-+ }
-+ }
-+
-+ if (olen <= osize) {
-+ /* copy uncompressed packet to the output buffer */
-+ memcpy(obuf, history, olen);
-+ } else {
-+ /* buffer overflow; drop packet */
-+ if (state->debug)
-+ printk(KERN_ERR "%s%d: too big uncompressed packet: %d\n",
-+ __FUNCTION__, state->unit, olen+(PPP_HDRLEN/2));
-+ return DECOMP_ERROR;
-+ }
-+
-+ return (int) olen;
-+}
-+
-+int
-+mppe_decompress(void *arg, unsigned char *ibuf, int isize,
-+ unsigned char *obuf, int osize)
-+{
-+ struct ppp_mppe_state *state = (struct ppp_mppe_state *)arg;
-+ int seq, bits, uncomplen;
-+
-+ if (isize <= PPP_HDRLEN + MPPE_OVHD) {
-+ if (state->debug) {
-+ printk(KERN_DEBUG "%s%d: short packet (len=%d)\n", __FUNCTION__,
-+ state->unit, isize);
-+ }
-+ return DECOMP_ERROR;
-+ }
-+
-+ /* Get coherency counter and control bits from input buffer */
-+ seq = MPPE_CCOUNT(ibuf);
-+ bits = MPPE_BITS(ibuf);
-+
-+ if (state->stateless) {
-+ /* RFC 3078, sec 8.1. */
-+ mppe_increase_ccount(state);
-+ if ((seq != state->ccount) && state->debug)
-+ printk(KERN_DEBUG "%s%d: bad sequence number: %d, expected: %d\n",
-+ __FUNCTION__, state->unit, seq, state->ccount);
-+ while (seq != state->ccount)
-+ mppe_increase_ccount(state);
-+ } else {
-+ /* RFC 3078, sec 8.2. */
-+ if (state->flushexpected) { /* discard state */
-+ if ((bits & MPPE_BIT_FLUSHED)) { /* we received expected FLUSH bit */
-+ while (seq != state->ccount)
-+ mppe_increase_ccount(state);
-+ state->flushexpected = 0;
-+ } else /* drop packet*/
-+ return DECOMP_ERROR;
-+ } else { /* normal state */
-+ mppe_increase_ccount(state);
-+ if (seq != state->ccount) {
-+ /* Packet loss detected, enter the discard state. */
-+ if (state->debug)
-+ printk(KERN_DEBUG "%s%d: bad sequence number: %d, expected: %d\n",
-+ __FUNCTION__, state->unit, seq, state->ccount);
-+ state->flushexpected = 1;
-+ return DECOMP_ERROR;
-+ }
-+ }
-+ if (state->mppe && (bits & MPPE_BIT_FLUSHED)) {
-+ arcfour_setkey(&state->arcfour_context, state->session_key,
-+ state->keylen);
-+ }
-+ }
-+
-+ if (state->mppc && (bits & (MPPE_BIT_FLUSHED | MPPE_BIT_RESET))) {
-+ state->histptr = MPPE_HIST_LEN;
-+ if ((bits & MPPE_BIT_FLUSHED)) {
-+ memset(state->hist + MPPE_HIST_LEN, 0, MPPE_HIST_LEN*sizeof(u8));
-+ } else
-+ if ((bits & MPPE_BIT_RESET)) {
-+ memcpy(state->hist, state->hist+MPPE_HIST_LEN, MPPE_HIST_LEN);
-+ }
-+ }
-+
-+ /* Fill in the first part of the PPP header. The protocol field
-+ comes from the decompressed data. */
-+ obuf[0] = PPP_ADDRESS(ibuf);
-+ obuf[1] = PPP_CONTROL(ibuf);
-+ obuf += PPP_HDRLEN / 2;
-+
-+ if (state->mppe) { /* process encrypted packet */
-+ if ((bits & MPPE_BIT_ENCRYPTED)) {
-+ /* OK, packet encrypted, so decrypt it */
-+ if (state->mppc && (bits & MPPE_BIT_COMP)) {
-+ /* Hack warning !!! RC4 implementation which we use does
-+ decryption "in place" - it means that input and output
-+ buffers can be *the same* memory area. Therefore we don't
-+ need to use a temporary buffer. But be careful - other
-+ implementations don't have to be so nice. */
-+ arcfour_decrypt(&state->arcfour_context, ibuf+PPP_HDRLEN+MPPE_OVHD,
-+ isize-PPP_HDRLEN-MPPE_OVHD, ibuf+PPP_HDRLEN+MPPE_OVHD);
-+ uncomplen = mppc_decompress(state, ibuf+PPP_HDRLEN+MPPE_OVHD,
-+ obuf, isize-PPP_HDRLEN-MPPE_OVHD,
-+ osize-(PPP_HDRLEN/2));
-+ if (uncomplen == DECOMP_ERROR) {
-+ state->flushexpected = 1;
-+ return DECOMP_ERROR;
-+ }
-+ uncomplen += PPP_HDRLEN / 2;
-+ (state->stats).comp_bytes += isize;
-+ (state->stats).comp_packets++;
-+ } else {
-+ arcfour_decrypt(&state->arcfour_context, ibuf+PPP_HDRLEN+MPPE_OVHD,
-+ isize-PPP_HDRLEN-MPPE_OVHD, obuf);
-+ uncomplen = isize - (PPP_HDRLEN / 2) - MPPE_OVHD;
-+ (state->stats).inc_bytes += isize;
-+ (state->stats).inc_packets++;
-+ }
-+ } else { /* this shouldn't happen */
-+ if (state->debug)
-+ printk(KERN_ERR "%s%d: encryption negotiated but not an "
-+ "encrypted packet received\n", __FUNCTION__, state->unit);
-+ mppe_change_key(state, 0);
-+ state->flushexpected = 1;
-+ return DECOMP_ERROR;
-+ }
-+ } else {
-+ if (state->mppc) { /* no MPPE, only MPPC */
-+ if ((bits & MPPE_BIT_COMP)) {
-+ uncomplen = mppc_decompress(state, ibuf+PPP_HDRLEN+MPPE_OVHD,
-+ obuf, isize-PPP_HDRLEN-MPPE_OVHD,
-+ osize-(PPP_HDRLEN/2));
-+ if (uncomplen == DECOMP_ERROR) {
-+ state->flushexpected = 1;
-+ return DECOMP_ERROR;
-+ }
-+ uncomplen += PPP_HDRLEN / 2;
-+ (state->stats).comp_bytes += isize;
-+ (state->stats).comp_packets++;
-+ } else {
-+ memcpy(obuf, ibuf+PPP_HDRLEN+MPPE_OVHD,
-+ isize-PPP_HDRLEN-MPPE_OVHD);
-+ uncomplen = isize - (PPP_HDRLEN / 2) - MPPE_OVHD;
-+ (state->stats).inc_bytes += isize;
-+ (state->stats).inc_packets++;
-+ }
-+ } else { /* this shouldn't happen */
-+ if (state->debug)
-+ printk(KERN_ERR "%s%d: error - no MPPC nor MPPE negotiated\n",
-+ __FUNCTION__, state->unit);
-+ state->flushexpected = 1;
-+ return DECOMP_ERROR;
-+ }
-+ }
-+
-+ (state->stats).unc_bytes += uncomplen;
-+ (state->stats).unc_packets++;
-+
-+ return uncomplen;
-+}
-+
-+
-+/************************************************************
-+ * Module interface table
-+ ************************************************************/
-+
-+/* These are in ppp_generic.c */
-+extern int ppp_register_compressor (struct compressor *cp);
-+extern void ppp_unregister_compressor (struct compressor *cp);
-+
-+/*
-+ * Functions exported to ppp_generic.c.
-+ */
-+struct compressor ppp_mppe = {
-+ CI_MPPE, /* compress_proto */
-+ mppe_comp_alloc, /* comp_alloc */
-+ mppe_comp_free, /* comp_free */
-+ mppe_comp_init, /* comp_init */
-+ mppe_comp_reset, /* comp_reset */
-+ mppe_compress, /* compress */
-+ mppe_stats, /* comp_stat */
-+ mppe_decomp_alloc, /* decomp_alloc */
-+ mppe_comp_free, /* decomp_free */
-+ mppe_decomp_init, /* decomp_init */
-+ mppe_decomp_reset, /* decomp_reset */
-+ mppe_decompress, /* decompress */
-+ NULL, /* incomp */
-+ mppe_stats, /* decomp_stat */
-+};
-+
-+/*
-+ In case of MPPC/MPPE there is no need to process incompressible data
-+ because such a data is sent in MPPC/MPPE frame. Therefore the (*incomp)
-+ callback function isn't needed.
-+*/
-+
-+/************************************************************
-+ * Module support routines
-+ ************************************************************/
-+
-+int __init mppe_module_init(void)
-+{
-+ int answer = ppp_register_compressor(&ppp_mppe);
-+ if (answer == 0) {
-+ printk(KERN_INFO "MPPE/MPPC encryption/compression module registered\n");
-+ }
-+ return answer;
-+}
-+
-+void __exit mppe_module_cleanup(void)
-+{
-+ if (MOD_IN_USE) {
-+ printk (KERN_INFO "MPPE/MPPC module busy, removing delayed\n");
-+ } else {
-+ ppp_unregister_compressor (&ppp_mppe);
-+ printk(KERN_INFO "MPPE/MPPC encryption/compression module unregistered\n");
-+ }
-+}
-+
-+module_init(mppe_module_init);
-+module_exit(mppe_module_cleanup);
-+
-+MODULE_AUTHOR("Jan Dubiec <jdx@slackware.pl>");
-+MODULE_DESCRIPTION("MPPE/MPPC encryption/compression module for Linux");
-+MODULE_LICENSE("Dual BSD/GPL");
---- linux-2.4.20/include/linux/ppp-comp.h~150-mppe-mppc-0.98 1999-08-06 13:44:11.000000000 -0400
-+++ linux-2.4.20/include/linux/ppp-comp.h 2005-01-07 02:58:08.293132040 -0500
-@@ -24,7 +24,7 @@
- * OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS,
- * OR MODIFICATIONS.
- *
-- * $Id: ppp-comp.h,v 1.6 1997/11/27 06:04:44 paulus Exp $
-+ * $Id: ppp-comp.h,v 1.10 2002/12/06 09:49:15 paulus Exp $
- */
-
- /*
-@@ -78,7 +78,7 @@
-
- /* Compress a packet */
- int (*compress) (void *state, unsigned char *rptr,
-- unsigned char *obuf, int isize, int osize);
-+ unsigned char *obuf, int isize, int osize);
-
- /* Return compression statistics */
- void (*comp_stat) (void *state, struct compstat *stats);
-@@ -99,7 +99,7 @@
-
- /* Decompress a packet. */
- int (*decompress) (void *state, unsigned char *ibuf, int isize,
-- unsigned char *obuf, int osize);
-+ unsigned char *obuf, int osize);
-
- /* Update state for an incompressible packet received */
- void (*incomp) (void *state, unsigned char *ibuf, int icnt);
-@@ -187,6 +187,127 @@
- #define DEFLATE_CHK_SEQUENCE 0
-
- /*
-+ * Definitions for MPPE.
-+ */
-+
-+#define CI_MPPE 18 /* config option for MPPE */
-+#define CILEN_MPPE 6 /* length of config option */
-+
-+#define MPPE_PAD 4 /* MPPE growth per frame */
-+#define MPPE_MAX_KEY_LEN 16 /* largest key length (128-bit) */
-+
-+/* option bits for ccp_options.mppe */
-+#define MPPE_OPT_40 0x01 /* 40 bit */
-+#define MPPE_OPT_128 0x02 /* 128 bit */
-+#define MPPE_OPT_STATEFUL 0x04 /* stateful mode */
-+/* unsupported opts */
-+#define MPPE_OPT_56 0x08 /* 56 bit */
-+#define MPPE_OPT_MPPC 0x10 /* MPPC compression */
-+#define MPPE_OPT_D 0x20 /* Unknown */
-+#define MPPE_OPT_UNSUPPORTED (MPPE_OPT_56|MPPE_OPT_MPPC|MPPE_OPT_D)
-+#define MPPE_OPT_UNKNOWN 0x40 /* Bits !defined in RFC 3078 were set */
-+
-+/*
-+ * This is not nice ... the alternative is a bitfield struct though.
-+ * And unfortunately, we cannot share the same bits for the option
-+ * names above since C and H are the same bit. We could do a u_int32
-+ * but then we have to do a htonl() all the time and/or we still need
-+ * to know which octet is which.
-+ */
-+#define MPPE_C_BIT 0x01 /* MPPC */
-+#define MPPE_D_BIT 0x10 /* Obsolete, usage unknown */
-+#define MPPE_L_BIT 0x20 /* 40-bit */
-+#define MPPE_S_BIT 0x40 /* 128-bit */
-+#define MPPE_M_BIT 0x80 /* 56-bit, not supported */
-+#define MPPE_H_BIT 0x01 /* Stateless (in a different byte) */
-+
-+/* Does not include H bit; used for least significant octet only. */
-+#define MPPE_ALL_BITS (MPPE_D_BIT|MPPE_L_BIT|MPPE_S_BIT|MPPE_M_BIT|MPPE_H_BIT)
-+
-+/* Build a CI from mppe opts (see RFC 3078) */
-+#define MPPE_OPTS_TO_CI(opts, ci) \
-+ do { \
-+ u_char *ptr = ci; /* u_char[4] */ \
-+ \
-+ /* H bit */ \
-+ if (opts & MPPE_OPT_STATEFUL) \
-+ *ptr++ = 0x0; \
-+ else \
-+ *ptr++ = MPPE_H_BIT; \
-+ *ptr++ = 0; \
-+ *ptr++ = 0; \
-+ \
-+ /* S,L bits */ \
-+ *ptr = 0; \
-+ if (opts & MPPE_OPT_128) \
-+ *ptr |= MPPE_S_BIT; \
-+ if (opts & MPPE_OPT_40) \
-+ *ptr |= MPPE_L_BIT; \
-+ /* M,D,C bits not supported */ \
-+ } while (/* CONSTCOND */ 0)
-+
-+/* The reverse of the above */
-+#define MPPE_CI_TO_OPTS(ci, opts) \
-+ do { \
-+ u_char *ptr = ci; /* u_char[4] */ \
-+ \
-+ opts = 0; \
-+ \
-+ /* H bit */ \
-+ if (!(ptr[0] & MPPE_H_BIT)) \
-+ opts |= MPPE_OPT_STATEFUL; \
-+ \
-+ /* S,L bits */ \
-+ if (ptr[3] & MPPE_S_BIT) \
-+ opts |= MPPE_OPT_128; \
-+ if (ptr[3] & MPPE_L_BIT) \
-+ opts |= MPPE_OPT_40; \
-+ \
-+ /* M,D,C bits */ \
-+ if (ptr[3] & MPPE_M_BIT) \
-+ opts |= MPPE_OPT_56; \
-+ if (ptr[3] & MPPE_D_BIT) \
-+ opts |= MPPE_OPT_D; \
-+ if (ptr[3] & MPPE_C_BIT) \
-+ opts |= MPPE_OPT_MPPC; \
-+ \
-+ /* Other bits */ \
-+ if (ptr[0] & ~MPPE_H_BIT) \
-+ opts |= MPPE_OPT_UNKNOWN; \
-+ if (ptr[1] || ptr[2]) \
-+ opts |= MPPE_OPT_UNKNOWN; \
-+ if (ptr[3] & ~MPPE_ALL_BITS) \
-+ opts |= MPPE_OPT_UNKNOWN; \
-+ } while (/* CONSTCOND */ 0)
-+
-+/* MPPE/MPPC definitions by J.D.*/
-+#define MPPE_STATELESS MPPE_H_BIT /* configuration bit H */
-+#define MPPE_40BIT MPPE_L_BIT /* configuration bit L */
-+#define MPPE_56BIT MPPE_M_BIT /* configuration bit M */
-+#define MPPE_128BIT MPPE_S_BIT /* configuration bit S */
-+#define MPPE_MPPC MPPE_C_BIT /* configuration bit C */
-+
-+/*
-+ * Definitions for Stac LZS.
-+ */
-+
-+#define CI_LZS 17 /* config option for Stac LZS */
-+#define CILEN_LZS 5 /* length of config option */
-+
-+#define LZS_OVHD 4 /* max. LZS overhead */
-+#define LZS_HIST_LEN 2048 /* LZS history size */
-+#define LZS_MAX_CCOUNT 0x0FFF /* max. coherency counter value */
-+
-+#define LZS_MODE_NONE 0
-+#define LZS_MODE_LCB 1
-+#define LZS_MODE_CRC 2
-+#define LZS_MODE_SEQ 3
-+#define LZS_MODE_EXT 4
-+
-+#define LZS_EXT_BIT_FLUSHED 0x80 /* bit A */
-+#define LZS_EXT_BIT_COMP 0x20 /* bit C */
-+
-+/*
- * Definitions for other, as yet unsupported, compression methods.
- */
-
diff --git a/packages/linux/linux-wrt-2.4.20/160-expr.patch b/packages/linux/linux-wrt-2.4.20/160-expr.patch
deleted file mode 100644
index f19fe24c6d..0000000000
--- a/packages/linux/linux-wrt-2.4.20/160-expr.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- linux/Makefile 2004-08-16 21:31:21.850402752 -0400
-+++ linux/Makefile 2004-08-16 21:48:22.372259848 -0400
-@@ -357,7 +357,7 @@
- @rm -f .ver1
-
- include/linux/version.h: ./Makefile
-- @expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \
-+ @expr "$(KERNELRELEASE)" : '.*' \<= $(uts_len) > /dev/null || \
- (echo KERNELRELEASE \"$(KERNELRELEASE)\" exceeds $(uts_len) characters >&2; false)
- @echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver
- @echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver
diff --git a/packages/linux/linux-wrt-2.4.20/2.4.20_broadcom_3_37_2_1109_US.patch b/packages/linux/linux-wrt-2.4.20/2.4.20_broadcom_3_37_2_1109_US.patch
deleted file mode 100644
index 0e37220a39..0000000000
--- a/packages/linux/linux-wrt-2.4.20/2.4.20_broadcom_3_37_2_1109_US.patch
+++ /dev/null
@@ -1,10239 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/Makefile 2005-01-08 12:16:21.886535400 -0500
-@@ -90,11 +90,26 @@
-
- CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
- -fno-strict-aliasing -fno-common
-+
-+# Turn on -pg to instrument the kernel with calls to mcount().
-+# Unfortunately, gcc won't allow -pg without frame pointers.
-+ifdef CONFIG_MCOUNT
-+ CFLAGS += -pg
-+ CFLAGS_KERNEL += -pg
-+ CONFIG_FRAME_POINTER = 1
-+endif
- ifndef CONFIG_FRAME_POINTER
- CFLAGS += -fomit-frame-pointer
- endif
- AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
-
-+# Broadcom HWNBU source tree
-+export SRCBASE := $(TOPDIR)/../..
-+CFLAGS += -I$(SRCBASE)/include
-+AFLAGS += -I$(SRCBASE)/include
-+ASFLAGS += -I$(SRCBASE)/include
-+
-+
- #
- # ROOT_DEV specifies the default root-device when making the image.
- # This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case
---- linux-2.4.20/Rules.make~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/Rules.make 2005-01-07 05:39:02.000000000 -0500
-@@ -176,7 +176,14 @@
- _modinst__: dummy
- ifneq "$(strip $(ALL_MOBJS))" ""
- mkdir -p $(MODLIB)/kernel/$(MOD_DESTDIR)
-- cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR)
-+# cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR)
-+ for f in $(ALL_MOBJS) ; do \
-+ $(OBJCOPY) -R __ksymtab -R .comment -R .note -x \
-+ `$(NM) $$f | cut -f3- -d' ' | sed -n \
-+ -e 's/__module_parm_\(.*\)/-K \1/p' \
-+ -e 's/__ks..tab_\(.*\)/-K \1/p'` \
-+ $$f $(MODLIB)/kernel/$(MOD_DESTDIR)$(MOD_TARGET)$$f ; \
-+ done
- endif
-
- .PHONY: modules_install
---- linux-2.4.20/arch/mips/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/Makefile 2005-01-08 12:16:19.825848672 -0500
-@@ -39,10 +39,10 @@
- GCCFLAGS := -I $(TOPDIR)/include/asm/gcc
- GCCFLAGS += -G 0 -mno-abicalls -fno-pic -pipe
- LINKFLAGS += -G 0 -static # -N
--MODFLAGS += -mlong-calls
-+MODFLAGS += -mlong-calls -fno-common
-
--ifdef CONFIG_REMOTE_DEBUG
--GCCFLAGS += -g
-+ifdef CONFIG_DEBUG
-+GCCFLAGS += -gstabs+
- ifdef CONFIG_SB1XXX_CORELIS
- GCCFLAGS += -mno-sched-prolog -fno-omit-frame-pointer
- endif
-@@ -499,6 +499,37 @@
- endif
-
- #
-+# Broadcom BCM947XX variants
-+#
-+ifdef CONFIG_BCM947XX
-+LIBS += arch/mips/brcm-boards/generic/brcm.o arch/mips/brcm-boards/bcm947xx/bcm947xx.o
-+SUBDIRS += arch/mips/brcm-boards/generic arch/mips/brcm-boards/bcm947xx
-+LOADADDR := 0x80001000
-+zImage: vmlinux
-+ $(MAKE) -C arch/$(ARCH)/brcm-boards/bcm947xx/compressed
-+export LOADADDR
-+endif
-+
-+#
-+# Broadcom BCM933XX variants
-+#
-+ifdef CONFIG_BCM933XX
-+LIBS += arch/mips/brcm-boards/bcm933xx/bcm933xx.o
-+SUBDIRS += arch/mips/brcm-boards/bcm933xx
-+LOADADDR := 0x80010000
-+
-+vmlinux.srec: vmlinux
-+ $(OBJCOPY) -O srec $< $@
-+linux.srec: vmlinux.srec
-+ $(OBJCOPY) --adjust-vma=0x80000000 -O srec $< $@
-+vmlinux.out: vmlinux.bin
-+ $(TOPDIR)/pstore.sh
-+vmlinux.bin: vmlinux
-+ $(OBJCOPY) -O binary $< $@
-+export LOADADDR
-+endif
-+
-+#
- # SNI RM200 PCI
- #
- ifdef CONFIG_SNI_RM200_PCI
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,23 @@
-+#
-+# Makefile for Broadcom BCM947XX boards
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.7 2004/04/12 04:31:00 honor Exp $
-+#
-+
-+O_TARGET := bcm947xx.o
-+
-+export-objs := nvram_linux.o setup.o
-+obj-y := prom.o setup.o time.o sbmips.o sbpci.o pcibios.o perfcntr.o gpio.o
-+obj-y += sflash.o nvram.o nvram_linux.o
-+
-+vpath %.c $(SRCBASE)/shared $(SRCBASE)/shared/nvram
-+
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/compressed/Makefile 2004-05-30 02:30:00.000000000 -0400
-@@ -0,0 +1,100 @@
-+#
-+# Makefile for Broadcom BCM947XX boards
-+#
-+# Copyright 2001-2003, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.6 2003/11/08 08:11:32 honor Exp $
-+#
-+# Copyright 2004 Manuel Novoa III <mjn3@codepoet.org>
-+# Modified to support bzip'd kernels.
-+# Of course, it would be better to integrate bunzip capability into CFE.
-+#
-+
-+# Link at 3 MB offset in RAM
-+#TEXT_START ?= 0x80300000
-+TEXT_START ?= 0x80001000
-+BZ_MEM_TOP := 0x81000000
-+BZ_TEXT_START := BZ_MEM_TOP-0x4000
-+BZ_STACK_TOP := BZ_TEXT_START-4
-+
-+OBJCOPY := $(CROSS_COMPILE)objcopy -O binary -R .reginfo -R .note -R .comment -R .mdebug -S
-+
-+SRCBASE := $(TOPDIR)/../..
-+VPATH := $(SRCBASE)/shared
-+ASFLAGS += -D__ASSEMBLY__ -I$(SRCBASE)/include -DLOADADDR=$(LOADADDR)
-+ASFLAGS += -DBZ_MEM_TOP=$(BZ_MEM_TOP)
-+ASFLAGS += -DBZ_TEXT_START=$(BZ_TEXT_START)
-+ASFLAGS += -DBZ_STACK_TOP=$(BZ_STACK_TOP)
-+CFLAGS += -I$(SRCBASE)/include -DLOADADDR=$(LOADADDR)
-+CFLAGS += -DBZ_MEM_TOP=$(BZ_MEM_TOP)
-+CFLAGS += -DBZ_TEXT_START=$(BZ_TEXT_START)
-+CFLAGS += -DBZ_STACK_TOP=$(BZ_STACK_TOP)
-+ifdef CONFIG_MCOUNT
-+CFLAGS := $(subst -pg,,$(CFLAGS))
-+endif
-+CFLAGS += -ffunction-sections $(call check_gcc, -fvtable-gc, )
-+SEDFLAGS := s/BZ_TEXT_START/$(BZ_TEXT_START)/;s/BZ_MEM_TOP/$(BZ_MEM_TOP)/;s/TEXT_START/$(TEXT_START)/
-+
-+SYSTEM ?= $(TOPDIR)/vmlinux
-+OBJECTS := head.o data.o
-+
-+all: bzImage vmlinuz
-+
-+# Don't build dependencies, this may die if $(CC) isn't gcc
-+dep:
-+
-+# Create a gzipped version named vmlinuz for compatibility
-+vmlinuz: piggy
-+ gzip -c9 $< > $@
-+
-+# Our bzImage is a gzip'd binary that decompresses and runs
-+# the appended bzip'd kernel.
-+bzImage: bzLoaderImage.gz piggz
-+ cat bzLoaderImage.gz piggz > $@
-+
-+bzLoaderImage.gz: bzLoaderImage
-+ gzip -nc9 $< > $@
-+
-+bzLoaderImage: bzLoader
-+ $(OBJCOPY) $< $@
-+
-+bzLoader: vmlinux.lds $(OBJECTS)
-+ $(LD) -static --gc-sections -no-warn-mismatch -T vmlinux.lds -o $@ $(OBJECTS)
-+
-+vmlinux.lds: vmlinux.lds.in Makefile
-+ @sed "$(SEDFLAGS)" < $< > $@
-+
-+piggz: piggy
-+ bzip2 -c9 $< > $@
-+
-+piggy: $(SYSTEM)
-+ $(OBJCOPY) $< $@
-+
-+data.o: data.lds data.image
-+ $(LD) -no-warn-mismatch -T data.lds -r -o $@ -b binary data.image -b elf32-tradlittlemips
-+
-+data.lds:
-+ @echo "SECTIONS { .data : { code_start = .; *(.data) code_stop = .; }}" > $@
-+
-+data.image: decompress_bunzip2.image
-+ $(OBJCOPY) $< $@
-+
-+decompress_bunzip2.image: decompress_bunzip2.lds decompress_bunzip2.o
-+ $(LD) -static --gc-sections -no-warn-mismatch -T decompress_bunzip2.lds -o $@ decompress_bunzip2.o
-+
-+decompress_bunzip2.lds: decompress_bunzip2.lds.in Makefile
-+ @sed "$(SEDFLAGS)" < $< > $@
-+
-+mrproper: clean
-+
-+clean:
-+ rm -f vmlinux vmlinuz piggz piggy *.lds *.o \
-+ bzLoader bzLoaderImage bzLoaderImage.gz bzImage \
-+ data.lds data.image \
-+ decompress_bunzip2.lds decompress_bunzip2.image
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/compressed/head.S 2004-05-30 02:26:40.000000000 -0400
-@@ -0,0 +1,26 @@
-+/* Copyright 2004 Manuel Novoa III (mjn3@codepoet.org) */
-+/* Licensed under the linux kernel's version of the GPL. */
-+
-+#include <asm/asm.h>
-+#include <asm/regdef.h>
-+
-+ .text
-+ LEAF(startup)
-+ .set noreorder
-+
-+ li t1, BZ_TEXT_START
-+ add a0, t1, 0
-+ la a1, code_start
-+ la a2, code_stop
-+$L1:
-+ lw t0, 0(a1)
-+ sw t0, 0(a0)
-+ add a1, 4
-+ add a0, 4
-+ blt a1, a2, $L1
-+
-+ add sp, t1, -4
-+ jal t1
-+
-+ .set reorder
-+ END(startup)
---- linux-2.4.20/arch/mips/brcm-boards/bcm947xx/compressed/misc.c~2.4.20_broadcom_3_37_2_1109_US.patch
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/compressed/misc.c
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/compressed/vmlinux.lds.in 2004-05-21 13:13:07.000000000 -0400
-@@ -0,0 +1,17 @@
-+OUTPUT_ARCH(mips)
-+ENTRY(startup)
-+SECTIONS {
-+ . = TEXT_START;
-+ .text : {
-+ *(.text)
-+ *(.rodata)
-+ }
-+
-+ .data : {
-+ *(.data)
-+ }
-+
-+ .bss : {
-+ *(.bss)
-+ }
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/gpio.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,158 @@
-+/*
-+ * GPIO char driver
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: gpio.c,v 1.1.1.7 2004/04/12 04:31:00 honor Exp $
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/fs.h>
-+#include <linux/miscdevice.h>
-+#include <asm/uaccess.h>
-+
-+#include <typedefs.h>
-+#include <bcmutils.h>
-+#include <sbutils.h>
-+#include <bcmdevs.h>
-+
-+static void *gpio_sbh;
-+static int gpio_major;
-+static devfs_handle_t gpio_dir;
-+static struct {
-+ char *name;
-+ devfs_handle_t handle;
-+} gpio_file[] = {
-+ { "in", NULL },
-+ { "out", NULL },
-+ { "outen", NULL },
-+ { "control", NULL }
-+};
-+
-+static int
-+gpio_open(struct inode *inode, struct file * file)
-+{
-+ if (MINOR(inode->i_rdev) > ARRAYSIZE(gpio_file))
-+ return -ENODEV;
-+
-+ MOD_INC_USE_COUNT;
-+ return 0;
-+}
-+
-+static int
-+gpio_release(struct inode *inode, struct file * file)
-+{
-+ MOD_DEC_USE_COUNT;
-+ return 0;
-+}
-+
-+static ssize_t
-+gpio_read(struct file *file, char *buf, size_t count, loff_t *ppos)
-+{
-+ u32 val;
-+
-+ switch (MINOR(file->f_dentry->d_inode->i_rdev)) {
-+ case 0:
-+ val = sb_gpioin(gpio_sbh);
-+ break;
-+ case 1:
-+ val = sb_gpioout(gpio_sbh, 0, 0);
-+ break;
-+ case 2:
-+ val = sb_gpioouten(gpio_sbh, 0, 0);
-+ break;
-+ case 3:
-+ val = sb_gpiocontrol(gpio_sbh, 0, 0);
-+ break;
-+ default:
-+ return -ENODEV;
-+ }
-+
-+ if (put_user(val, (u32 *) buf))
-+ return -EFAULT;
-+
-+ return sizeof(val);
-+}
-+
-+static ssize_t
-+gpio_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
-+{
-+ u32 val;
-+
-+ if (get_user(val, (u32 *) buf))
-+ return -EFAULT;
-+
-+ switch (MINOR(file->f_dentry->d_inode->i_rdev)) {
-+ case 0:
-+ return -EACCES;
-+ case 1:
-+ sb_gpioout(gpio_sbh, ~0, val);
-+ break;
-+ case 2:
-+ sb_gpioouten(gpio_sbh, ~0, val);
-+ break;
-+ case 3:
-+ sb_gpiocontrol(gpio_sbh, ~0, val);
-+ break;
-+ default:
-+ return -ENODEV;
-+ }
-+
-+ return sizeof(val);
-+}
-+
-+static struct file_operations gpio_fops = {
-+ owner: THIS_MODULE,
-+ open: gpio_open,
-+ release: gpio_release,
-+ read: gpio_read,
-+ write: gpio_write,
-+};
-+
-+static int __init
-+gpio_init(void)
-+{
-+ int i;
-+
-+ if (!(gpio_sbh = sb_kattach()))
-+ return -ENODEV;
-+
-+ sb_gpiosetcore(gpio_sbh);
-+
-+ if ((gpio_major = devfs_register_chrdev(0, "gpio", &gpio_fops)) < 0)
-+ return gpio_major;
-+
-+ gpio_dir = devfs_mk_dir(NULL, "gpio", NULL);
-+
-+ for (i = 0; i < ARRAYSIZE(gpio_file); i++) {
-+ gpio_file[i].handle = devfs_register(gpio_dir,
-+ gpio_file[i].name,
-+ DEVFS_FL_DEFAULT, gpio_major, i,
-+ S_IFCHR | S_IRUGO | S_IWUGO,
-+ &gpio_fops, NULL);
-+ }
-+
-+ return 0;
-+}
-+
-+static void __exit
-+gpio_exit(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < ARRAYSIZE(gpio_file); i++)
-+ devfs_unregister(gpio_file[i].handle);
-+ devfs_unregister(gpio_dir);
-+ devfs_unregister_chrdev(gpio_major, "gpio");
-+ sb_detach(gpio_sbh);
-+}
-+
-+module_init(gpio_init);
-+module_exit(gpio_exit);
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/nvram_linux.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,638 @@
-+/*
-+ * NVRAM variable manipulation (Linux kernel half)
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: nvram_linux.c,v 1.10 2004/04/12 06:07:56 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+#include <linux/interrupt.h>
-+#include <linux/spinlock.h>
-+#include <linux/slab.h>
-+#include <linux/bootmem.h>
-+#include <linux/wrapper.h>
-+#include <linux/fs.h>
-+#include <linux/miscdevice.h>
-+#include <linux/mtd/mtd.h>
-+#include <asm/addrspace.h>
-+#include <asm/io.h>
-+#include <asm/uaccess.h>
-+
-+#include <typedefs.h>
-+#include <bcmendian.h>
-+#include <bcmnvram.h>
-+#include <bcmutils.h>
-+#include <sbconfig.h>
-+#include <sbchipc.h>
-+#include <sbutils.h>
-+#include <sbmips.h>
-+#include <sflash.h>
-+
-+/* In BSS to minimize text size and page aligned so it can be mmap()-ed */
-+static char nvram_buf[NVRAM_SPACE] __attribute__((aligned(PAGE_SIZE)));
-+
-+#ifdef MODULE
-+
-+#define early_nvram_get(name) nvram_get(name)
-+
-+#else /* !MODULE */
-+
-+/* Global SB handle */
-+extern void *bcm947xx_sbh;
-+extern spinlock_t bcm947xx_sbh_lock;
-+
-+/* Convenience */
-+#define sbh bcm947xx_sbh
-+#define sbh_lock bcm947xx_sbh_lock
-+#define KB * 1024
-+#define MB * 1024 * 1024
-+
-+/* Probe for NVRAM header */
-+static void __init
-+early_nvram_init(void)
-+{
-+ struct nvram_header *header;
-+ chipcregs_t *cc;
-+ struct sflash *info = NULL;
-+ int i;
-+ uint32 base, off, lim;
-+
-+ if ((cc = sb_setcore(sbh, SB_CC, 0)) != NULL) {
-+ base = CC_FLASH_BASE;
-+ switch (readl(&cc->capabilities) & CAP_FLASH_MASK) {
-+ case PFLASH:
-+ lim = CC_FLASH_MAX;
-+ break;
-+
-+ case SFLASH_ST:
-+ case SFLASH_AT:
-+ if ((info = sflash_init(cc)) == NULL)
-+ return;
-+ lim = info->size;
-+ break;
-+
-+ case FLASH_NONE:
-+ default:
-+ return;
-+ }
-+ } else {
-+ /* extif assumed, Stop at 4 MB */
-+ base = FLASH_BASE;
-+ lim = FLASH_MAX;
-+ }
-+
-+ off = FLASH_MIN;
-+ while (off <= lim) {
-+ /* Windowed flash access */
-+ header = (struct nvram_header *) KSEG1ADDR(base + off - NVRAM_SPACE);
-+ if (header->magic == NVRAM_MAGIC) {
-+ u32 *src = (u32 *) header;
-+ u32 *dst = (u32 *) nvram_buf;
-+ for (i = 0; i < sizeof(struct nvram_header); i += 4)
-+ *dst++ = *src++;
-+ for (; i < header->len && i < NVRAM_SPACE; i += 4)
-+ *dst++ = ltoh32(*src++);
-+ return;
-+ }
-+
-+ /* Try embedded NVRAM at 4 KB and 1 KB as last resorts */
-+ if (off == 1 KB)
-+ break;
-+ else if (off == 4 KB)
-+ off = 1 KB;
-+ else if (off == lim)
-+ off = 4 KB;
-+ else
-+ off <<= 1;
-+ }
-+}
-+
-+/* Early (before mm or mtd) read-only access to NVRAM */
-+static char * __init
-+early_nvram_get(const char *name)
-+{
-+ char *var, *value, *end, *eq;
-+
-+ if (!name)
-+ return NULL;
-+
-+ if (!nvram_buf[0])
-+ early_nvram_init();
-+
-+ /* Look for name=value and return value */
-+ var = &nvram_buf[sizeof(struct nvram_header)];
-+ end = nvram_buf + sizeof(nvram_buf) - 2;
-+ end[0] = end[1] = '\0';
-+ for (; *var; var = value + strlen(value) + 1) {
-+ if (!(eq = strchr(var, '=')))
-+ break;
-+ value = eq + 1;
-+ if ((eq - var) == strlen(name) && strncmp(var, name, (eq - var)) == 0)
-+ return value;
-+ }
-+
-+ return NULL;
-+}
-+
-+#endif /* !MODULE */
-+
-+extern char * _nvram_get(const char *name);
-+extern int _nvram_set(const char *name, const char *value);
-+extern int _nvram_unset(const char *name);
-+extern int _nvram_getall(char *buf, int count);
-+extern int _nvram_commit(struct nvram_header *header);
-+extern int _nvram_init(void);
-+extern void _nvram_exit(void);
-+
-+/* Globals */
-+static spinlock_t nvram_lock = SPIN_LOCK_UNLOCKED;
-+static struct semaphore nvram_sem;
-+static unsigned long nvram_offset = 0;
-+static int nvram_major = -1;
-+static devfs_handle_t nvram_handle = NULL;
-+static struct mtd_info *nvram_mtd = NULL;
-+
-+int
-+_nvram_read(char *buf)
-+{
-+ struct nvram_header *header = (struct nvram_header *) buf;
-+ size_t len;
-+
-+ if (!nvram_mtd ||
-+ MTD_READ(nvram_mtd, nvram_mtd->size - NVRAM_SPACE, NVRAM_SPACE, &len, buf) ||
-+ len != NVRAM_SPACE ||
-+ header->magic != NVRAM_MAGIC) {
-+ /* Maybe we can recover some data from early initialization */
-+ memcpy(buf, nvram_buf, NVRAM_SPACE);
-+ }
-+
-+ return 0;
-+}
-+
-+struct nvram_tuple *
-+_nvram_realloc(struct nvram_tuple *t, const char *name, const char *value)
-+{
-+ if ((nvram_offset + strlen(value) + 1) > NVRAM_SPACE)
-+ return NULL;
-+
-+ if (!t) {
-+ if (!(t = kmalloc(sizeof(struct nvram_tuple) + strlen(name) + 1, GFP_ATOMIC)))
-+ return NULL;
-+
-+ /* Copy name */
-+ t->name = (char *) &t[1];
-+ strcpy(t->name, name);
-+
-+ t->value = NULL;
-+ }
-+
-+ /* Copy value */
-+ if (!t->value || strcmp(t->value, value)) {
-+ t->value = &nvram_buf[nvram_offset];
-+ strcpy(t->value, value);
-+ nvram_offset += strlen(value) + 1;
-+ }
-+
-+ return t;
-+}
-+
-+void
-+_nvram_free(struct nvram_tuple *t)
-+{
-+ if (!t)
-+ nvram_offset = 0;
-+ else
-+ kfree(t);
-+}
-+
-+int
-+nvram_set(const char *name, const char *value)
-+{
-+ unsigned long flags;
-+ int ret;
-+ struct nvram_header *header;
-+
-+ spin_lock_irqsave(&nvram_lock, flags);
-+ if ((ret = _nvram_set(name, value))) {
-+ /* Consolidate space and try again */
-+ if ((header = kmalloc(NVRAM_SPACE, GFP_ATOMIC))) {
-+ if (_nvram_commit(header) == 0)
-+ ret = _nvram_set(name, value);
-+ kfree(header);
-+ }
-+ }
-+ spin_unlock_irqrestore(&nvram_lock, flags);
-+
-+ return ret;
-+}
-+
-+char *
-+real_nvram_get(const char *name)
-+{
-+ unsigned long flags;
-+ char *value;
-+
-+ spin_lock_irqsave(&nvram_lock, flags);
-+ value = _nvram_get(name);
-+ spin_unlock_irqrestore(&nvram_lock, flags);
-+
-+ return value;
-+}
-+
-+char *
-+nvram_get(const char *name)
-+{
-+ if (nvram_major >= 0)
-+ return real_nvram_get(name);
-+ else
-+ return early_nvram_get(name);
-+}
-+
-+int
-+nvram_unset(const char *name)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&nvram_lock, flags);
-+ ret = _nvram_unset(name);
-+ spin_unlock_irqrestore(&nvram_lock, flags);
-+
-+ return ret;
-+}
-+
-+static void
-+erase_callback(struct erase_info *done)
-+{
-+ wait_queue_head_t *wait_q = (wait_queue_head_t *) done->priv;
-+ wake_up(wait_q);
-+}
-+
-+int
-+nvram_commit(void)
-+{
-+ char *buf;
-+ size_t erasesize, len;
-+ unsigned int i;
-+ int ret;
-+ struct nvram_header *header;
-+ unsigned long flags;
-+ u_int32_t offset;
-+ DECLARE_WAITQUEUE(wait, current);
-+ wait_queue_head_t wait_q;
-+ struct erase_info erase;
-+
-+ printk("nvram_commit(): init\n");
-+
-+ if (!nvram_mtd) {
-+ printk("nvram_commit: NVRAM not found\n");
-+ return -ENODEV;
-+ }
-+
-+ if (in_interrupt()) {
-+ printk("nvram_commit: not committing in interrupt\n");
-+ return -EINVAL;
-+ }
-+
-+ /* Backup sector blocks to be erased */
-+ erasesize = ROUNDUP(NVRAM_SPACE, nvram_mtd->erasesize);
-+ if (!(buf = kmalloc(erasesize, GFP_KERNEL))) {
-+ printk("nvram_commit: out of memory\n");
-+ return -ENOMEM;
-+ }
-+
-+ down(&nvram_sem);
-+#if 0
-+ offset = nvram_mtd->size - erasesize;
-+ i = erasesize - NVRAM_SPACE;
-+ ret = MTD_READ(nvram_mtd, offset, i, &len, buf);
-+ if (ret || len != i) {
-+ printk("nvram_commit: read error\n");
-+ ret = -EIO;
-+ goto done;
-+#endif
-+ if ((i = erasesize - NVRAM_SPACE) > 0) {
-+ offset = nvram_mtd->size - erasesize;
-+ len = 0;
-+ ret = MTD_READ(nvram_mtd, offset, i, &len, buf);
-+ if (ret || len != i) {
-+ printk("nvram_commit: read error ret = %d, len = %d/%d\n", ret, len, i);
-+ ret = -EIO;
-+ goto done;
-+ }
-+ header = (struct nvram_header *)(buf + i);
-+ } else {
-+ offset = nvram_mtd->size - NVRAM_SPACE;
-+ header = (struct nvram_header *)buf;
-+ }
-+
-+ /* Regenerate NVRAM */
-+ spin_lock_irqsave(&nvram_lock, flags);
-+ ret = _nvram_commit(header);
-+ spin_unlock_irqrestore(&nvram_lock, flags);
-+ if (ret)
-+ goto done;
-+
-+ /* Erase sector blocks */
-+ init_waitqueue_head(&wait_q);
-+ for (; offset < nvram_mtd->size - NVRAM_SPACE + header->len; offset += nvram_mtd->erasesize) {
-+ erase.mtd = nvram_mtd;
-+ erase.addr = offset;
-+ erase.len = nvram_mtd->erasesize;
-+ erase.callback = erase_callback;
-+ erase.priv = (u_long) &wait_q;
-+
-+ set_current_state(TASK_INTERRUPTIBLE);
-+ add_wait_queue(&wait_q, &wait);
-+
-+ /* Unlock sector blocks */
-+ if (nvram_mtd->unlock)
-+ nvram_mtd->unlock(nvram_mtd, offset, nvram_mtd->erasesize);
-+
-+ if ((ret = MTD_ERASE(nvram_mtd, &erase))) {
-+ set_current_state(TASK_RUNNING);
-+ remove_wait_queue(&wait_q, &wait);
-+ printk("nvram_commit: erase error\n");
-+ goto done;
-+ }
-+
-+ /* Wait for erase to finish */
-+ schedule();
-+ remove_wait_queue(&wait_q, &wait);
-+ }
-+
-+ /* Write partition up to end of data area */
-+ offset = nvram_mtd->size - erasesize;
-+ i = erasesize - NVRAM_SPACE + header->len;
-+ ret = MTD_WRITE(nvram_mtd, offset, i, &len, buf);
-+ if (ret || len != i) {
-+ printk("nvram_commit: write error\n");
-+ ret = -EIO;
-+ goto done;
-+ }
-+ /*
-+ * Reading a few bytes back here will put the device
-+ * back to the correct mode on certain flashes */
-+
-+ offset = nvram_mtd->size - erasesize;
-+ ret = MTD_READ(nvram_mtd, offset, 4, &len, buf);
-+
-+ done:
-+ up(&nvram_sem);
-+ kfree(buf);
-+ printk("nvram_commit(): end\n");
-+ return ret;
-+}
-+
-+int
-+nvram_getall(char *buf, int count)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&nvram_lock, flags);
-+ ret = _nvram_getall(buf, count);
-+ spin_unlock_irqrestore(&nvram_lock, flags);
-+
-+ return ret;
-+}
-+
-+EXPORT_SYMBOL(nvram_get);
-+EXPORT_SYMBOL(nvram_getall);
-+EXPORT_SYMBOL(nvram_set);
-+EXPORT_SYMBOL(nvram_unset);
-+EXPORT_SYMBOL(nvram_commit);
-+
-+/* User mode interface below */
-+
-+static ssize_t
-+dev_nvram_read(struct file *file, char *buf, size_t count, loff_t *ppos)
-+{
-+ char tmp[100], *name = tmp, *value;
-+ ssize_t ret;
-+ unsigned long off;
-+
-+ if (count > sizeof(tmp)) {
-+ if (!(name = kmalloc(count, GFP_KERNEL)))
-+ return -ENOMEM;
-+ }
-+
-+ if (copy_from_user(name, buf, count)) {
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+
-+ if (*name == '\0') {
-+ /* Get all variables */
-+ ret = nvram_getall(name, count);
-+ if (ret == 0) {
-+ if (copy_to_user(buf, name, count)) {
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+ ret = count;
-+ }
-+ } else {
-+ if (!(value = nvram_get(name))) {
-+ ret = 0;
-+ goto done;
-+ }
-+
-+ /* Provide the offset into mmap() space */
-+ off = (unsigned long) value - (unsigned long) nvram_buf;
-+
-+ if (put_user(off, (unsigned long *) buf)) {
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+
-+ ret = sizeof(unsigned long);
-+ }
-+
-+ flush_cache_all();
-+
-+done:
-+ if (name != tmp)
-+ kfree(name);
-+
-+ return ret;
-+}
-+
-+static ssize_t
-+dev_nvram_write(struct file *file, const char *buf, size_t count, loff_t *ppos)
-+{
-+ char tmp[100], *name = tmp, *value;
-+ ssize_t ret;
-+
-+ if (count > sizeof(tmp)) {
-+ if (!(name = kmalloc(count, GFP_KERNEL)))
-+ return -ENOMEM;
-+ }
-+
-+ if (copy_from_user(name, buf, count)) {
-+ ret = -EFAULT;
-+ goto done;
-+ }
-+
-+ value = name;
-+ name = strsep(&value, "=");
-+ if (value)
-+ ret = nvram_set(name, value) ? : count;
-+ else
-+ ret = nvram_unset(name) ? : count;
-+
-+ done:
-+ if (name != tmp)
-+ kfree(name);
-+
-+ return ret;
-+}
-+
-+static int
-+dev_nvram_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
-+{
-+ if (cmd != NVRAM_MAGIC)
-+ return -EINVAL;
-+ return nvram_commit();
-+}
-+
-+static int
-+dev_nvram_mmap(struct file *file, struct vm_area_struct *vma)
-+{
-+ unsigned long offset = virt_to_phys(nvram_buf);
-+
-+ if (remap_page_range(vma->vm_start, offset, vma->vm_end-vma->vm_start,
-+ vma->vm_page_prot))
-+ return -EAGAIN;
-+
-+ return 0;
-+}
-+
-+static int
-+dev_nvram_open(struct inode *inode, struct file * file)
-+{
-+ MOD_INC_USE_COUNT;
-+ return 0;
-+}
-+
-+static int
-+dev_nvram_release(struct inode *inode, struct file * file)
-+{
-+ MOD_DEC_USE_COUNT;
-+ return 0;
-+}
-+
-+static struct file_operations dev_nvram_fops = {
-+ owner: THIS_MODULE,
-+ open: dev_nvram_open,
-+ release: dev_nvram_release,
-+ read: dev_nvram_read,
-+ write: dev_nvram_write,
-+ ioctl: dev_nvram_ioctl,
-+ mmap: dev_nvram_mmap,
-+};
-+
-+static void
-+dev_nvram_exit(void)
-+{
-+ int order = 0;
-+ struct page *page, *end;
-+
-+ if (nvram_handle)
-+ devfs_unregister(nvram_handle);
-+
-+ if (nvram_major >= 0)
-+ devfs_unregister_chrdev(nvram_major, "nvram");
-+
-+ if (nvram_mtd)
-+ put_mtd_device(nvram_mtd);
-+
-+ while ((PAGE_SIZE << order) < NVRAM_SPACE)
-+ order++;
-+ end = virt_to_page(nvram_buf + (PAGE_SIZE << order) - 1);
-+ for (page = virt_to_page(nvram_buf); page <= end; page++)
-+ mem_map_unreserve(page);
-+
-+ _nvram_exit();
-+}
-+
-+static int __init
-+dev_nvram_init(void)
-+{
-+ int order = 0, ret = 0;
-+ struct page *page, *end;
-+ unsigned int i;
-+
-+ /* Allocate and reserve memory to mmap() */
-+ while ((PAGE_SIZE << order) < NVRAM_SPACE)
-+ order++;
-+ end = virt_to_page(nvram_buf + (PAGE_SIZE << order) - 1);
-+ for (page = virt_to_page(nvram_buf); page <= end; page++)
-+ mem_map_reserve(page);
-+
-+#ifdef CONFIG_MTD
-+ /* Find associated MTD device */
-+ for (i = 0; i < MAX_MTD_DEVICES; i++) {
-+ nvram_mtd = get_mtd_device(NULL, i);
-+ if (nvram_mtd) {
-+ if (!strcmp(nvram_mtd->name, "nvram") &&
-+ nvram_mtd->size >= NVRAM_SPACE)
-+ break;
-+ put_mtd_device(nvram_mtd);
-+ }
-+ }
-+ if (i >= MAX_MTD_DEVICES)
-+ nvram_mtd = NULL;
-+#endif
-+
-+ /* Initialize hash table lock */
-+ spin_lock_init(&nvram_lock);
-+
-+ /* Initialize commit semaphore */
-+ init_MUTEX(&nvram_sem);
-+
-+ /* Register char device */
-+ if ((nvram_major = devfs_register_chrdev(0, "nvram", &dev_nvram_fops)) < 0) {
-+ ret = nvram_major;
-+ goto err;
-+ }
-+
-+ /* Initialize hash table */
-+ _nvram_init();
-+
-+ /* Create /dev/nvram handle */
-+ nvram_handle = devfs_register(NULL, "nvram", DEVFS_FL_NONE, nvram_major, 0,
-+ S_IFCHR | S_IRUSR | S_IWUSR | S_IRGRP, &dev_nvram_fops, NULL);
-+
-+ /* Set the SDRAM NCDL value into NVRAM if not already done */
-+ if (getintvar(NULL, "sdram_ncdl") == 0) {
-+ unsigned int ncdl;
-+ char buf[] = "0x00000000";
-+
-+ if ((ncdl = sb_memc_get_ncdl(sbh))) {
-+ sprintf(buf, "0x%08x", ncdl);
-+ nvram_set("sdram_ncdl", buf);
-+ nvram_commit();
-+ }
-+ }
-+
-+ return 0;
-+
-+ err:
-+ dev_nvram_exit();
-+ return ret;
-+}
-+
-+module_init(dev_nvram_init);
-+module_exit(dev_nvram_exit);
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/pcibios.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,332 @@
-+/*
-+ * Low-Level PCI and SB support for BCM47xx (Linux support code)
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: pcibios.c,v 1.1.1.6 2004/04/12 04:31:00 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/pci.h>
-+#include <linux/init.h>
-+#include <linux/delay.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/paccess.h>
-+
-+#include <typedefs.h>
-+#include <bcmutils.h>
-+#include <sbconfig.h>
-+#include <sbpci.h>
-+#include <pcicfg.h>
-+#include <sbutils.h>
-+#include <bcmdevs.h>
-+#include <bcmnvram.h>
-+
-+/* Global SB handle */
-+extern void *bcm947xx_sbh;
-+extern spinlock_t bcm947xx_sbh_lock;
-+
-+/* Convenience */
-+#define sbh bcm947xx_sbh
-+#define sbh_lock bcm947xx_sbh_lock
-+
-+static int
-+sbpci_read_config_byte(struct pci_dev *dev, int where, u8 *value)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ ret = sbpci_read_config(sbh, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, value, sizeof(*value));
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+ return ret ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int
-+sbpci_read_config_word(struct pci_dev *dev, int where, u16 *value)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ ret = sbpci_read_config(sbh, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, value, sizeof(*value));
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+ return ret ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int
-+sbpci_read_config_dword(struct pci_dev *dev, int where, u32 *value)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ ret = sbpci_read_config(sbh, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, value, sizeof(*value));
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+ return ret ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int
-+sbpci_write_config_byte(struct pci_dev *dev, int where, u8 value)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ ret = sbpci_write_config(sbh, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, &value, sizeof(value));
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+ return ret ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int
-+sbpci_write_config_word(struct pci_dev *dev, int where, u16 value)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ ret = sbpci_write_config(sbh, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, &value, sizeof(value));
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+ return ret ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int
-+sbpci_write_config_dword(struct pci_dev *dev, int where, u32 value)
-+{
-+ unsigned long flags;
-+ int ret;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ ret = sbpci_write_config(sbh, dev->bus->number, PCI_SLOT(dev->devfn), PCI_FUNC(dev->devfn), where, &value, sizeof(value));
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+ return ret ? PCIBIOS_DEVICE_NOT_FOUND : PCIBIOS_SUCCESSFUL;
-+}
-+
-+static struct pci_ops pcibios_ops = {
-+ sbpci_read_config_byte,
-+ sbpci_read_config_word,
-+ sbpci_read_config_dword,
-+ sbpci_write_config_byte,
-+ sbpci_write_config_word,
-+ sbpci_write_config_dword
-+};
-+
-+
-+void __init
-+pcibios_init(void)
-+{
-+ ulong flags;
-+
-+ if (!(sbh = sb_kattach()))
-+ panic("sb_kattach failed");
-+ spin_lock_init(&sbh_lock);
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ sbpci_init(sbh);
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+
-+ set_io_port_base((unsigned long) ioremap_nocache(SB_PCI_MEM, 0x04000000));
-+
-+ /* Scan the SB bus */
-+ pci_scan_bus(0, &pcibios_ops, NULL);
-+
-+}
-+
-+char * __init
-+pcibios_setup(char *str)
-+{
-+ if (!strncmp(str, "ban=", 4)) {
-+ sbpci_ban(simple_strtoul(str + 4, NULL, 0));
-+ return NULL;
-+ }
-+
-+ return (str);
-+}
-+
-+static u32 pci_iobase = 0x100;
-+static u32 pci_membase = SB_PCI_DMA;
-+
-+void __init
-+pcibios_fixup_bus(struct pci_bus *b)
-+{
-+ struct list_head *ln;
-+ struct pci_dev *d;
-+ struct resource *res;
-+ int pos, size;
-+ u32 *base;
-+ u8 irq;
-+
-+ printk("PCI: Fixing up bus %d\n", b->number);
-+
-+ /* Fix up SB */
-+ if (b->number == 0) {
-+ for (ln=b->devices.next; ln != &b->devices; ln=ln->next) {
-+ d = pci_dev_b(ln);
-+ /* Fix up interrupt lines */
-+ pci_read_config_byte(d, PCI_INTERRUPT_LINE, &irq);
-+ d->irq = irq + 2;
-+ pci_write_config_byte(d, PCI_INTERRUPT_LINE, d->irq);
-+ }
-+ }
-+
-+ /* Fix up external PCI */
-+ else {
-+ for (ln=b->devices.next; ln != &b->devices; ln=ln->next) {
-+ d = pci_dev_b(ln);
-+ /* Fix up resource bases */
-+ for (pos = 0; pos < 6; pos++) {
-+ res = &d->resource[pos];
-+ base = (res->flags & IORESOURCE_IO) ? &pci_iobase : &pci_membase;
-+ if (res->end) {
-+ size = res->end - res->start + 1;
-+ if (*base & (size - 1))
-+ *base = (*base + size) & ~(size - 1);
-+ res->start = *base;
-+ res->end = res->start + size - 1;
-+ *base += size;
-+ pci_write_config_dword(d, PCI_BASE_ADDRESS_0 + (pos << 2), res->start);
-+ }
-+ /* Fix up PCI bridge BAR0 only */
-+ if (b->number == 1 && PCI_SLOT(d->devfn) == 0)
-+ break;
-+ }
-+ /* Fix up interrupt lines */
-+ if (pci_find_device(VENDOR_BROADCOM, SB_PCI, NULL))
-+ d->irq = (pci_find_device(VENDOR_BROADCOM, SB_PCI, NULL))->irq;
-+ pci_write_config_byte(d, PCI_INTERRUPT_LINE, d->irq);
-+ }
-+ }
-+}
-+
-+unsigned int
-+pcibios_assign_all_busses(void)
-+{
-+ return 1;
-+}
-+
-+void
-+pcibios_align_resource(void *data, struct resource *res,
-+ unsigned long size, unsigned long align)
-+{
-+}
-+
-+int
-+pcibios_enable_resources(struct pci_dev *dev)
-+{
-+ u16 cmd, old_cmd;
-+ int idx;
-+ struct resource *r;
-+
-+ /* External PCI only */
-+ if (dev->bus->number == 0)
-+ return 0;
-+
-+ pci_read_config_word(dev, PCI_COMMAND, &cmd);
-+ old_cmd = cmd;
-+ for(idx=0; idx<6; idx++) {
-+ r = &dev->resource[idx];
-+ if (r->flags & IORESOURCE_IO)
-+ cmd |= PCI_COMMAND_IO;
-+ if (r->flags & IORESOURCE_MEM)
-+ cmd |= PCI_COMMAND_MEMORY;
-+ }
-+ if (dev->resource[PCI_ROM_RESOURCE].start)
-+ cmd |= PCI_COMMAND_MEMORY;
-+ if (cmd != old_cmd) {
-+ printk("PCI: Enabling device %s (%04x -> %04x)\n", dev->slot_name, old_cmd, cmd);
-+ pci_write_config_word(dev, PCI_COMMAND, cmd);
-+ }
-+ return 0;
-+}
-+
-+int
-+pcibios_enable_device(struct pci_dev *dev, int mask)
-+{
-+ ulong flags;
-+ uint coreidx;
-+
-+ /* External PCI device enable */
-+ if (dev->bus->number != 0)
-+ return pcibios_enable_resources(dev);
-+
-+ /* These cores come out of reset enabled */
-+ if (dev->device == SB_MIPS ||
-+ dev->device == SB_MIPS33 ||
-+ dev->device == SB_EXTIF ||
-+ dev->device == SB_CC)
-+ return 0;
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ coreidx = sb_coreidx(sbh);
-+ if (!sb_setcoreidx(sbh, PCI_SLOT(dev->devfn)))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /*
-+ * The USB core requires a special bit to be set during core
-+ * reset to enable host (OHCI) mode. Resetting the SB core in
-+ * pcibios_enable_device() is a hack for compatibility with
-+ * vanilla usb-ohci so that it does not have to know about
-+ * SB. A driver that wants to use the USB core in device mode
-+ * should know about SB and should reset the bit back to 0
-+ * after calling pcibios_enable_device().
-+ */
-+ if (sb_coreid(sbh) == SB_USB) {
-+ sb_core_disable(sbh, sb_coreflags(sbh, 0, 0));
-+ sb_core_reset(sbh, 1 << 29);
-+ } else
-+ sb_core_reset(sbh, 0);
-+
-+ sb_setcoreidx(sbh, coreidx);
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+
-+ return 0;
-+}
-+
-+void
-+pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-+ struct resource *res, int resource)
-+{
-+ unsigned long where, size;
-+ u32 reg;
-+
-+ /* External PCI only */
-+ if (dev->bus->number == 0)
-+ return;
-+
-+ where = PCI_BASE_ADDRESS_0 + (resource * 4);
-+ size = res->end - res->start;
-+ pci_read_config_dword(dev, where, &reg);
-+ reg = (reg & size) | (((u32)(res->start - root->start)) & ~size);
-+ pci_write_config_dword(dev, where, reg);
-+}
-+
-+static void __init
-+quirk_sbpci_bridge(struct pci_dev *dev)
-+{
-+ if (dev->bus->number != 1 || PCI_SLOT(dev->devfn) != 0)
-+ return;
-+
-+ printk("PCI: Fixing up bridge\n");
-+
-+ /* Enable PCI bridge bus mastering and memory space */
-+ pci_set_master(dev);
-+ pcibios_enable_resources(dev);
-+
-+ /* Enable PCI bridge BAR1 prefetch and burst */
-+ pci_write_config_dword(dev, PCI_BAR1_CONTROL, 3);
-+}
-+
-+struct pci_fixup pcibios_fixups[] = {
-+ { PCI_FIXUP_HEADER, PCI_ANY_ID, PCI_ANY_ID, quirk_sbpci_bridge },
-+ { 0 }
-+};
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/perfcntr.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,67 @@
-+/*
-+ * Broadcom BCM47xx Performance Counter /proc/cpuinfo support
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: perfcntr.c,v 1.1.1.3 2004/04/12 04:31:00 honor Exp $
-+ */
-+
-+#include <asm/mipsregs.h>
-+
-+/*
-+ * BCM4710 performance counter register select values
-+ * No even-odd control-counter mapping, just counters
-+ */
-+#define PERF_DCACHE_HIT 0
-+#define PERF_DCACHE_MISS 1
-+#define PERF_ICACHE_HIT 2
-+#define PERF_ICACHE_MISS 3
-+#define PERF_ICOUNT 4
-+
-+/*
-+ * Move from Coprocessor 0 Register 25 Select n
-+ * data <- CPR[0,25,n]
-+ * GPR[1] <- data
-+ */
-+#define read_bcm4710_perf_cntr(n) \
-+({ int __res; \
-+ __asm__ __volatile__( \
-+ ".set\tnoreorder\n\t" \
-+ ".set\tnoat\n\t" \
-+ ".word\t"STR(0x4001c800|(n))"\n\t" \
-+ "move\t%0,$1\n\t" \
-+ ".set\tat\n\t" \
-+ ".set\treorder" \
-+ :"=r" (__res)); \
-+ __res;})
-+
-+asmlinkage unsigned int read_perf_cntr(unsigned int counter)
-+{
-+ switch (counter) {
-+ case PERF_DCACHE_HIT: return read_bcm4710_perf_cntr(PERF_DCACHE_HIT);
-+ case PERF_DCACHE_MISS: return read_bcm4710_perf_cntr(PERF_DCACHE_MISS);
-+ case PERF_ICACHE_HIT: return read_bcm4710_perf_cntr(PERF_ICACHE_HIT);
-+ case PERF_ICACHE_MISS: return read_bcm4710_perf_cntr(PERF_ICACHE_MISS);
-+ case PERF_ICOUNT: return read_bcm4710_perf_cntr(PERF_ICOUNT);
-+ }
-+ return 0;
-+}
-+
-+asmlinkage void write_perf_cntr(unsigned int counter, unsigned int val)
-+{
-+}
-+
-+asmlinkage unsigned int read_perf_cntl(unsigned int counter)
-+{
-+ return 0;
-+}
-+
-+asmlinkage void write_perf_cntl(unsigned int counter, unsigned int val)
-+{
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/prom.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,41 @@
-+/*
-+ * Early initialization code for BCM94710 boards
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: prom.c,v 1.1.1.6 2004/04/12 04:31:00 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <asm/bootinfo.h>
-+
-+void __init
-+prom_init(int argc, const char **argv)
-+{
-+ unsigned long mem;
-+
-+ mips_machgroup = MACH_GROUP_BRCM;
-+ mips_machtype = MACH_BCM947XX;
-+
-+ /* Figure out memory size by finding aliases */
-+ for (mem = (1 << 20); mem < (128 << 20); mem += (1 << 20)) {
-+ if (*(unsigned long *)((unsigned long)(prom_init) + mem) ==
-+ *(unsigned long *)(prom_init))
-+ break;
-+ }
-+ add_memory_region(0, mem, BOOT_MEM_RAM);
-+}
-+
-+void __init
-+prom_free_prom_memory(void)
-+{
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/setup.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,284 @@
-+/*
-+ * Generic setup routines for Broadcom MIPS boards
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: setup.c,v 1.3 2004/04/12 05:42:38 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/serialP.h>
-+#include <linux/ide.h>
-+#include <asm/bootinfo.h>
-+#include <asm/time.h>
-+#include <asm/reboot.h>
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/minix_fs.h>
-+#include <linux/ext2_fs.h>
-+#include <linux/romfs_fs.h>
-+#include <linux/cramfs_fs.h>
-+#endif
-+
-+#include <typedefs.h>
-+#include <bcmutils.h>
-+#include <bcmnvram.h>
-+#include <sbmips.h>
-+#include <sbutils.h>
-+#include <trxhdr.h>
-+
-+extern void bcm947xx_time_init(void);
-+extern void bcm947xx_timer_setup(struct irqaction *irq);
-+
-+#ifdef CONFIG_REMOTE_DEBUG
-+extern void set_debug_traps(void);
-+extern void rs_kgdb_hook(struct serial_state *);
-+extern void breakpoint(void);
-+#endif
-+
-+#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
-+extern struct ide_ops std_ide_ops;
-+#endif
-+
-+/* Global SB handle */
-+void *bcm947xx_sbh = NULL;
-+spinlock_t bcm947xx_sbh_lock = SPIN_LOCK_UNLOCKED;
-+EXPORT_SYMBOL(bcm947xx_sbh);
-+EXPORT_SYMBOL(bcm947xx_sbh_lock);
-+
-+/* Convenience */
-+#define sbh bcm947xx_sbh
-+#define sbh_lock bcm947xx_sbh_lock
-+
-+/* Kernel command line */
-+char arcs_cmdline[CL_SIZE] __initdata = CONFIG_CMDLINE;
-+
-+void
-+bcm947xx_machine_restart(char *command)
-+{
-+ printk("Please stand by while rebooting the system...\n");
-+
-+ /* Set the watchdog timer to reset immediately */
-+ __cli();
-+ sb_watchdog(sbh, 1);
-+ while (1);
-+}
-+
-+void
-+bcm947xx_machine_halt(void)
-+{
-+ printk("System halted\n");
-+
-+ /* Disable interrupts and watchdog and spin forever */
-+ __cli();
-+ sb_watchdog(sbh, 0);
-+ while (1);
-+}
-+
-+#ifdef CONFIG_SERIAL
-+
-+static struct serial_struct rs = {
-+ line: 0,
-+ flags: ASYNC_BOOT_AUTOCONF,
-+ io_type: SERIAL_IO_MEM,
-+};
-+
-+static void __init
-+serial_add(void *regs, uint irq, uint baud_base, uint reg_shift)
-+{
-+ rs.iomem_base = regs;
-+ rs.irq = irq + 2;
-+ rs.baud_base = baud_base / 16;
-+ rs.iomem_reg_shift = reg_shift;
-+
-+ early_serial_setup(&rs);
-+
-+ rs.line++;
-+}
-+
-+static void __init
-+serial_setup(void *sbh)
-+{
-+ sb_serial_init(sbh, serial_add);
-+
-+#ifdef CONFIG_REMOTE_DEBUG
-+ /* Use the last port for kernel debugging */
-+ if (rs.iomem_base)
-+ rs_kgdb_hook(&rs);
-+#endif
-+}
-+
-+#endif /* CONFIG_SERIAL */
-+
-+void __init
-+brcm_setup(void)
-+{
-+ char *value;
-+
-+ /* Get global SB handle */
-+ sbh = sb_kattach();
-+
-+ /* Initialize clocks and interrupts */
-+ sb_mips_init(sbh);
-+
-+#ifdef CONFIG_SERIAL
-+ /* Initialize UARTs */
-+ serial_setup(sbh);
-+#endif
-+
-+#if defined(CONFIG_BLK_DEV_IDE) || defined(CONFIG_BLK_DEV_IDE_MODULE)
-+ ide_ops = &std_ide_ops;
-+#endif
-+
-+ /* Override default command line arguments */
-+ value = nvram_get("kernel_args");
-+ if (value && strlen(value) && strncmp(value, "empty", 5))
-+ strncpy(arcs_cmdline, value, sizeof(arcs_cmdline));
-+
-+
-+ /* Generic setup */
-+ _machine_restart = bcm947xx_machine_restart;
-+ _machine_halt = bcm947xx_machine_halt;
-+ _machine_power_off = bcm947xx_machine_halt;
-+
-+ board_time_init = bcm947xx_time_init;
-+ board_timer_setup = bcm947xx_timer_setup;
-+}
-+
-+const char *
-+get_system_type(void)
-+{
-+ return "Broadcom BCM947XX";
-+}
-+
-+void __init
-+bus_error_init(void)
-+{
-+}
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+
-+static struct mtd_partition bcm947xx_parts[] = {
-+ { name: "pmon", offset: 0, size: 0, /*mask_flags: MTD_WRITEABLE,*/ },
-+ { name: "linux", offset: 0, size: 0, },
-+ { name: "rootfs", offset: 0, size: 0, /*mask_flags: MTD_WRITEABLE,*/ },
-+ { name: "nvram", offset: 0, size: 0, },
-+ { name: NULL, },
-+};
-+
-+struct mtd_partition * __init
-+init_mtd_partitions(struct mtd_info *mtd, size_t size)
-+{
-+ struct minix_super_block *minixsb;
-+ struct ext2_super_block *ext2sb;
-+ struct romfs_super_block *romfsb;
-+ struct cramfs_super *cramfsb;
-+ struct trx_header *trx;
-+ unsigned char buf[512];
-+ int off;
-+ size_t len;
-+
-+ minixsb = (struct minix_super_block *) buf;
-+ ext2sb = (struct ext2_super_block *) buf;
-+ romfsb = (struct romfs_super_block *) buf;
-+ cramfsb = (struct cramfs_super *) buf;
-+ trx = (struct trx_header *) buf;
-+
-+ /* Look at every 64 KB boundary */
-+ for (off = 0; off < size; off += (64 * 1024)) {
-+ memset(buf, 0xe5, sizeof(buf));
-+
-+ /*
-+ * Read block 0 to test for romfs and cramfs superblock
-+ */
-+ if (MTD_READ(mtd, off, sizeof(buf), &len, buf) ||
-+ len != sizeof(buf))
-+ continue;
-+
-+ /* Try looking at TRX header for rootfs offset */
-+ if (le32_to_cpu(trx->magic) == TRX_MAGIC) {
-+ bcm947xx_parts[1].offset = off;
-+ if (le32_to_cpu(trx->offsets[1]) > off)
-+ off = le32_to_cpu(trx->offsets[1]);
-+ continue;
-+ }
-+
-+ /* romfs is at block zero too */
-+ if (romfsb->word0 == ROMSB_WORD0 &&
-+ romfsb->word1 == ROMSB_WORD1) {
-+ printk(KERN_NOTICE
-+ "%s: romfs filesystem found at block %d\n",
-+ mtd->name, off / BLOCK_SIZE);
-+ goto done;
-+ }
-+
-+ /* so is cramfs */
-+ if (cramfsb->magic == CRAMFS_MAGIC) {
-+ printk(KERN_NOTICE
-+ "%s: cramfs filesystem found at block %d\n",
-+ mtd->name, off / BLOCK_SIZE);
-+ goto done;
-+ }
-+
-+ /*
-+ * Read block 1 to test for minix and ext2 superblock
-+ */
-+ if (MTD_READ(mtd, off + BLOCK_SIZE, sizeof(buf), &len, buf) ||
-+ len != sizeof(buf))
-+ continue;
-+
-+ /* Try minix */
-+ if (minixsb->s_magic == MINIX_SUPER_MAGIC ||
-+ minixsb->s_magic == MINIX_SUPER_MAGIC2) {
-+ printk(KERN_NOTICE
-+ "%s: Minix filesystem found at block %d\n",
-+ mtd->name, off / BLOCK_SIZE);
-+ goto done;
-+ }
-+
-+ /* Try ext2 */
-+ if (ext2sb->s_magic == cpu_to_le16(EXT2_SUPER_MAGIC)) {
-+ printk(KERN_NOTICE
-+ "%s: ext2 filesystem found at block %d\n",
-+ mtd->name, off / BLOCK_SIZE);
-+ goto done;
-+ }
-+ }
-+
-+ printk(KERN_NOTICE
-+ "%s: Couldn't find valid ROM disk image\n",
-+ mtd->name);
-+
-+ done:
-+ /* Find and size nvram */
-+ bcm947xx_parts[3].offset = size - ROUNDUP(NVRAM_SPACE, mtd->erasesize);
-+ bcm947xx_parts[3].size = size - bcm947xx_parts[3].offset;
-+
-+ /* Find and size rootfs */
-+ if (off < size) {
-+ bcm947xx_parts[2].offset = off;
-+ bcm947xx_parts[2].size = bcm947xx_parts[3].offset - bcm947xx_parts[2].offset;
-+ }
-+
-+ /* Size linux (kernel and rootfs) */
-+ bcm947xx_parts[1].size = bcm947xx_parts[3].offset - bcm947xx_parts[1].offset;
-+
-+ /* Size pmon */
-+ bcm947xx_parts[0].size = bcm947xx_parts[1].offset - bcm947xx_parts[0].offset;
-+
-+ return bcm947xx_parts;
-+}
-+
-+EXPORT_SYMBOL(init_mtd_partitions);
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/bcm947xx/time.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,117 @@
-+/*
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: time.c,v 1.1.1.6 2004/04/12 04:31:00 honor Exp $
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/serial_reg.h>
-+#include <linux/interrupt.h>
-+#include <asm/addrspace.h>
-+#include <asm/io.h>
-+#include <asm/time.h>
-+
-+#include <typedefs.h>
-+#include <bcmnvram.h>
-+#include <sbconfig.h>
-+#include <sbextif.h>
-+#include <sbutils.h>
-+#include <sbmips.h>
-+
-+/* Global SB handle */
-+extern void *bcm947xx_sbh;
-+extern spinlock_t bcm947xx_sbh_lock;
-+
-+/* Convenience */
-+#define sbh bcm947xx_sbh
-+#define sbh_lock bcm947xx_sbh_lock
-+
-+extern int panic_timeout;
-+static int watchdog = 0;
-+static u8 *mcr = NULL;
-+
-+void __init
-+bcm947xx_time_init(void)
-+{
-+ unsigned int hz;
-+ extifregs_t *eir;
-+
-+ /*
-+ * Use deterministic values for initial counter interrupt
-+ * so that calibrate delay avoids encountering a counter wrap.
-+ */
-+ write_c0_count(0);
-+ write_c0_compare(0xffff);
-+
-+ if (!(hz = sb_mips_clock(sbh)))
-+ hz = 100000000;
-+
-+ printk("CPU: BCM%04x rev %d at %d MHz\n", sb_chip(sbh), sb_chiprev(sbh),
-+ (hz + 500000) / 1000000);
-+
-+ /* Set MIPS counter frequency for fixed_rate_gettimeoffset() */
-+ mips_counter_frequency = hz / 2;
-+
-+ /* Set watchdog interval in ms */
-+ watchdog = simple_strtoul(nvram_safe_get("watchdog"), NULL, 0);
-+
-+ /* Please set the watchdog to 3 sec if it is less than 3 but not equal to 0 */
-+ if (watchdog > 0) {
-+ if (watchdog < 3000)
-+ watchdog = 3000;
-+ }
-+
-+
-+ /* Set panic timeout in seconds */
-+ panic_timeout = watchdog / 1000;
-+
-+ /* Setup blink */
-+ if ((eir = sb_setcore(sbh, SB_EXTIF, 0))) {
-+ sbconfig_t *sb = (sbconfig_t *)((unsigned int) eir + SBCONFIGOFF);
-+ unsigned long base = EXTIF_CFGIF_BASE(sb_base(readl(&sb->sbadmatch1)));
-+ mcr = (u8 *) ioremap_nocache(base + UART_MCR, 1);
-+ }
-+}
-+
-+static void
-+bcm947xx_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
-+{
-+ /* Generic MIPS timer code */
-+ timer_interrupt(irq, dev_id, regs);
-+
-+ /* Set the watchdog timer to reset after the specified number of ms */
-+ if (watchdog > 0)
-+ sb_watchdog(sbh, WATCHDOG_CLOCK / 1000 * watchdog);
-+
-+#ifdef CONFIG_HWSIM
-+ (*((int *)0xa0000f1c))++;
-+#else
-+ /* Blink one of the LEDs in the external UART */
-+ if (mcr && !(jiffies % (HZ/2)))
-+ writeb(readb(mcr) ^ UART_MCR_OUT2, mcr);
-+#endif
-+}
-+
-+static struct irqaction bcm947xx_timer_irqaction = {
-+ bcm947xx_timer_interrupt,
-+ SA_INTERRUPT,
-+ 0,
-+ "timer",
-+ NULL,
-+ NULL
-+};
-+
-+void __init
-+bcm947xx_timer_setup(struct irqaction *irq)
-+{
-+ /* Enable the timer interrupt */
-+ setup_irq(7, &bcm947xx_timer_irqaction);
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/generic/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,26 @@
-+#
-+# Makefile for generic Broadcom MIPS boards
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.6 2004/04/12 04:31:00 honor Exp $
-+#
-+
-+.S.s:
-+ $(CPP) $(AFLAGS) $< -o $*.s
-+.S.o:
-+ $(CC) $(AFLAGS) -c $< -o $*.o
-+
-+O_TARGET := brcm.o
-+
-+obj-y := int-handler.o irq.o
-+
-+obj-$(CONFIG_REMOTE_DEBUG) += gdb_hook.o
-+
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/generic/gdb_hook.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,120 @@
-+/*
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * Carsten Langgaard, carstenl@mips.com
-+ * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * This is the interface to the remote debugger stub.
-+ *
-+ */
-+
-+#include <linux/serialP.h>
-+#include <linux/serial_reg.h>
-+
-+#include <asm/serial.h>
-+#include <asm/io.h>
-+
-+static struct async_struct kdb_port_info = {0};
-+
-+static __inline__ unsigned int serial_in(struct async_struct *info, int offset)
-+{
-+ return readb((unsigned long) info->iomem_base +
-+ (offset<<info->iomem_reg_shift));
-+}
-+
-+static __inline__ void serial_out(struct async_struct *info, int offset,
-+ int value)
-+{
-+ writeb(value, (unsigned long) info->iomem_base +
-+ (offset<<info->iomem_reg_shift));
-+}
-+
-+void rs_kgdb_hook(struct serial_state *ser) {
-+ int t;
-+
-+ kdb_port_info.state = ser;
-+ kdb_port_info.magic = SERIAL_MAGIC;
-+ kdb_port_info.port = ser->port;
-+ kdb_port_info.flags = ser->flags;
-+ kdb_port_info.iomem_base = ser->iomem_base;
-+ kdb_port_info.iomem_reg_shift = ser->iomem_reg_shift;
-+ kdb_port_info.MCR = UART_MCR_DTR | UART_MCR_RTS;
-+
-+ /*
-+ * Clear all interrupts
-+ */
-+ serial_in(&kdb_port_info, UART_LSR);
-+ serial_in(&kdb_port_info, UART_RX);
-+ serial_in(&kdb_port_info, UART_IIR);
-+ serial_in(&kdb_port_info, UART_MSR);
-+
-+ /*
-+ * Now, initialize the UART
-+ */
-+ serial_out(&kdb_port_info, UART_LCR, UART_LCR_WLEN8); /* reset DLAB */
-+ serial_out(&kdb_port_info, UART_MCR, kdb_port_info.MCR);
-+
-+ /*
-+ * and set the speed of the serial port
-+ * (currently hardwired to 115200 8N1
-+ */
-+
-+ /* baud rate is fixed to 115200 (is this sufficient?)*/
-+ t = kdb_port_info.state->baud_base / 115200;
-+ /* set DLAB */
-+ serial_out(&kdb_port_info, UART_LCR, UART_LCR_WLEN8 | UART_LCR_DLAB);
-+ serial_out(&kdb_port_info, UART_DLL, t & 0xff);/* LS of divisor */
-+ serial_out(&kdb_port_info, UART_DLM, t >> 8); /* MS of divisor */
-+ /* reset DLAB */
-+ serial_out(&kdb_port_info, UART_LCR, UART_LCR_WLEN8);
-+}
-+
-+int putDebugChar(char c)
-+{
-+
-+ if (!kdb_port_info.state) { /* need to init device first */
-+ return 0;
-+ }
-+
-+ while ((serial_in(&kdb_port_info, UART_LSR) & UART_LSR_THRE) == 0)
-+ ;
-+
-+ serial_out(&kdb_port_info, UART_TX, c);
-+
-+ return 1;
-+}
-+
-+char getDebugChar(void)
-+{
-+ if (!kdb_port_info.state) { /* need to init device first */
-+ return 0;
-+ }
-+
-+ while (!(serial_in(&kdb_port_info, UART_LSR) & 1))
-+ ;
-+
-+ return(serial_in(&kdb_port_info, UART_RX));
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/generic/int-handler.S 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,51 @@
-+/*
-+ * Generic interrupt handler for Broadcom MIPS boards
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: int-handler.S,v 1.1.1.6 2004/04/12 04:31:00 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+
-+#include <asm/asm.h>
-+#include <asm/mipsregs.h>
-+#include <asm/regdef.h>
-+#include <asm/stackframe.h>
-+
-+/*
-+ * MIPS IRQ Source
-+ * -------- ------
-+ * 0 Software (ignored)
-+ * 1 Software (ignored)
-+ * 2 Combined hardware interrupt (hw0)
-+ * 3 Hardware
-+ * 4 Hardware
-+ * 5 Hardware
-+ * 6 Hardware
-+ * 7 R4k timer
-+ */
-+
-+ .text
-+ .set noreorder
-+ .set noat
-+ .align 5
-+ NESTED(brcmIRQ, PT_SIZE, sp)
-+ SAVE_ALL
-+ CLI
-+ .set at
-+ .set noreorder
-+
-+ jal brcm_irq_dispatch
-+ move a0, sp
-+
-+ j ret_from_irq
-+ nop
-+
-+ END(brcmIRQ)
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/brcm-boards/generic/irq.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,130 @@
-+/*
-+ * Generic interrupt control functions for Broadcom MIPS boards
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: irq.c,v 1.1.1.6 2004/04/12 04:31:00 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+
-+#include <asm/irq.h>
-+#include <asm/mipsregs.h>
-+#include <asm/gdb-stub.h>
-+
-+#define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
-+
-+extern asmlinkage void brcmIRQ(void);
-+extern asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs);
-+
-+void
-+brcm_irq_dispatch(struct pt_regs *regs)
-+{
-+ u32 cause;
-+
-+ cause = read_c0_cause() &
-+ read_c0_status() &
-+ CAUSEF_IP;
-+
-+#ifdef CONFIG_KERNPROF
-+ change_c0_status(cause | 1, 1);
-+#else
-+ clear_c0_status(cause);
-+#endif
-+
-+ if (cause & CAUSEF_IP7)
-+ do_IRQ(7, regs);
-+ if (cause & CAUSEF_IP2)
-+ do_IRQ(2, regs);
-+ if (cause & CAUSEF_IP3)
-+ do_IRQ(3, regs);
-+ if (cause & CAUSEF_IP4)
-+ do_IRQ(4, regs);
-+ if (cause & CAUSEF_IP5)
-+ do_IRQ(5, regs);
-+ if (cause & CAUSEF_IP6)
-+ do_IRQ(6, regs);
-+}
-+
-+static void
-+enable_brcm_irq(unsigned int irq)
-+{
-+ if (irq < 8)
-+ set_c0_status(1 << (irq + 8));
-+ else
-+ set_c0_status(IE_IRQ0);
-+}
-+
-+static void
-+disable_brcm_irq(unsigned int irq)
-+{
-+ if (irq < 8)
-+ clear_c0_status(1 << (irq + 8));
-+ else
-+ clear_c0_status(IE_IRQ0);
-+}
-+
-+static void
-+ack_brcm_irq(unsigned int irq)
-+{
-+ /* Already done in brcm_irq_dispatch */
-+}
-+
-+static unsigned int
-+startup_brcm_irq(unsigned int irq)
-+{
-+ enable_brcm_irq(irq);
-+
-+ return 0; /* never anything pending */
-+}
-+
-+static void
-+end_brcm_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ enable_brcm_irq(irq);
-+}
-+
-+static struct hw_interrupt_type brcm_irq_type = {
-+ typename: "MIPS",
-+ startup: startup_brcm_irq,
-+ shutdown: disable_brcm_irq,
-+ enable: enable_brcm_irq,
-+ disable: disable_brcm_irq,
-+ ack: ack_brcm_irq,
-+ end: end_brcm_irq,
-+ NULL
-+};
-+
-+void __init
-+init_IRQ(void)
-+{
-+ int i;
-+
-+ for (i = 0; i < NR_IRQS; i++) {
-+ irq_desc[i].status = IRQ_DISABLED;
-+ irq_desc[i].action = 0;
-+ irq_desc[i].depth = 1;
-+ irq_desc[i].handler = &brcm_irq_type;
-+ }
-+
-+ set_except_vector(0, brcmIRQ);
-+ change_c0_status(ST0_IM, ALLINTS);
-+
-+#ifdef CONFIG_REMOTE_DEBUG
-+ printk("Breaking into debugger...\n");
-+ set_debug_traps();
-+ breakpoint();
-+#endif
-+}
---- linux-2.4.20/arch/mips/config-shared.in~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/config-shared.in 2005-01-08 12:16:20.335771152 -0500
-@@ -191,8 +191,15 @@
- fi
- fi
- fi
-+dep_bool 'Support for Broadcom MIPS-based boards' CONFIG_MIPS_BRCM $CONFIG_EXPERIMENTAL
-+dep_bool 'Support for Broadcom BCM947XX' CONFIG_BCM947XX $CONFIG_MIPS_BRCM
-+if [ "$CONFIG_BCM947XX" = "y" ] ; then
-+ bool ' Support for Broadcom BCM4710' CONFIG_BCM4710
-+ bool ' Support for Broadcom BCM4310' CONFIG_BCM4310
-+ bool ' Support for Broadcom BCM4704' CONFIG_BCM4704
-+ bool ' Support for Broadcom BCM5365' CONFIG_BCM5365
-+fi
- bool 'Support for SNI RM200 PCI' CONFIG_SNI_RM200_PCI
--bool 'Support for TANBAC TB0226 (Mbase)' CONFIG_TANBAC_TB0226
- dep_bool 'Support for Toshiba JMR-TX3927 board' CONFIG_TOSHIBA_JMR3927 $CONFIG_MIPS32
- bool 'Support for Victor MP-C303/304' CONFIG_VICTOR_MPC30X
- if [ "$CONFIG_VICTOR_MPC30X" = "y" ]; then
-@@ -206,6 +213,11 @@
- define_bool CONFIG_RWSEM_XCHGADD_ALGORITHM n
-
- #
-+# Provide an option for a default kernel command line
-+#
-+string 'Default kernel command string' CONFIG_CMDLINE ""
-+
-+#
- # Select some configuration options automatically based on user selections.
- #
-
-@@ -526,6 +538,13 @@
- define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_BOOT_ELF32 y
- fi
-+if [ "$CONFIG_BCM947XX" = "y" ] ; then
-+ define_bool CONFIG_PCI y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_NEW_TIME_C y
-+ define_bool CONFIG_NEW_IRQ y
-+ define_bool CONFIG_HND y
-+fi
- if [ "$CONFIG_SNI_RM200_PCI" = "y" ]; then
- define_bool CONFIG_ARC32 y
- define_bool CONFIG_ARC_MEMORY y
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/defconfig-bcm947xx 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,769 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+# CONFIG_KMOD is not set
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+CONFIG_MIPS_BRCM=y
-+CONFIG_BCM947XX=y
-+CONFIG_BCM4710=y
-+CONFIG_BCM4310=y
-+CONFIG_BCM4704=y
-+# CONFIG_BCM5365 is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CMDLINE="root=/dev/mtdblock2 noinitrd console=ttyS0,115200"
-+CONFIG_PCI=y
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_NEW_TIME_C=y
-+CONFIG_NEW_IRQ=y
-+CONFIG_HND=y
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+CONFIG_CPU_MIPS32=y
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+# CONFIG_CPU_VR41XX is not set
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+CONFIG_CPU_HAS_PREFETCH=y
-+# CONFIG_VTAG_ICACHE is not set
-+# CONFIG_64BIT_PHYS_ADDR is not set
-+# CONFIG_CPU_ADVANCED is not set
-+CONFIG_CPU_HAS_LLSC=y
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+CONFIG_HOTPLUG=y
-+
-+#
-+# PCMCIA/CardBus support
-+#
-+# CONFIG_PCMCIA is not set
-+
-+#
-+# PCI Hotplug Support
-+#
-+# CONFIG_HOTPLUG_PCI is not set
-+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-+# CONFIG_HOTPLUG_PCI_ACPI is not set
-+# CONFIG_SYSVIPC is not set
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+# CONFIG_PRINT_SYSCALLS is not set
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_CONCAT is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+# CONFIG_MTD_BLOCK is not set
-+CONFIG_MTD_BLOCK_RO=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+CONFIG_MTD_CFI=y
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_GEN_PROBE=y
-+CONFIG_MTD_CFI_ADV_OPTIONS=y
-+CONFIG_MTD_CFI_NOSWAP=y
-+# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-+# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-+CONFIG_MTD_CFI_GEOMETRY=y
-+# CONFIG_MTD_CFI_B1 is not set
-+CONFIG_MTD_CFI_B2=y
-+# CONFIG_MTD_CFI_B4 is not set
-+CONFIG_MTD_CFI_I1=y
-+# CONFIG_MTD_CFI_I2 is not set
-+# CONFIG_MTD_CFI_I4 is not set
-+CONFIG_MTD_CFI_INTELEXT=y
-+CONFIG_MTD_CFI_AMDSTD=y
-+CONFIG_MTD_CFI_SSTSTD=y
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+# CONFIG_MTD_OBSOLETE_CHIPS is not set
-+# CONFIG_MTD_AMDSTD is not set
-+# CONFIG_MTD_SHARP is not set
-+# CONFIG_MTD_JEDEC is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_PHYSMAP is not set
-+CONFIG_MTD_BCM947XX=y
-+# CONFIG_MTD_PB1000 is not set
-+# CONFIG_MTD_PB1500 is not set
-+# CONFIG_MTD_PB1100 is not set
-+# CONFIG_MTD_CSTM_MIPS_IXX is not set
-+# CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
-+# CONFIG_MTD_PCI is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+CONFIG_MTD_SFLASH=y
-+# CONFIG_MTD_PMC551 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLKMTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC1000 is not set
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOCPROBE is not set
-+
-+#
-+# NAND Flash Device Drivers
-+#
-+# CONFIG_MTD_NAND is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_MSYS is not set
-+# CONFIG_NOROOT is not set
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+# CONFIG_NETLINK_DEV is not set
-+CONFIG_NETFILTER=y
-+# CONFIG_NETFILTER_DEBUG is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+CONFIG_IP_MROUTE=y
-+# CONFIG_IP_PIMSM_V1 is not set
-+# CONFIG_IP_PIMSM_V2 is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+CONFIG_IP_NF_CONNTRACK=y
-+CONFIG_IP_NF_FTP=y
-+CONFIG_IP_NF_TFTP=y
-+CONFIG_IP_NF_H323=y
-+# CONFIG_IP_NF_IRC is not set
-+# CONFIG_IP_NF_MMS is not set
-+CONFIG_IP_NF_CT_PROTO_GRE=y
-+CONFIG_IP_NF_PPTP=y
-+# CONFIG_IP_NF_SIP is not set
-+# CONFIG_IP_NF_QUEUE is not set
-+CONFIG_IP_NF_IPTABLES=y
-+# CONFIG_IP_NF_MATCH_LIMIT is not set
-+# CONFIG_IP_NF_POOL is not set
-+CONFIG_IP_NF_MATCH_MAC=y
-+# CONFIG_IP_NF_MATCH_PKTTYPE is not set
-+CONFIG_IP_NF_MATCH_MARK=y
-+# CONFIG_IP_NF_MATCH_MULTIPORT is not set
-+# CONFIG_IP_NF_MATCH_MPORT is not set
-+CONFIG_IP_NF_MATCH_TOS=y
-+CONFIG_IP_NF_MATCH_TIME=y
-+# CONFIG_IP_NF_MATCH_ECN is not set
-+# CONFIG_IP_NF_MATCH_DSCP is not set
-+# CONFIG_IP_NF_MATCH_AH_ESP is not set
-+# CONFIG_IP_NF_MATCH_LENGTH is not set
-+# CONFIG_IP_NF_MATCH_TTL is not set
-+CONFIG_IP_NF_MATCH_TCPMSS=y
-+# CONFIG_IP_NF_MATCH_HELPER is not set
-+CONFIG_IP_NF_MATCH_STATE=y
-+# CONFIG_IP_NF_MATCH_CONNTRACK is not set
-+# CONFIG_IP_NF_MATCH_UNCLEAN is not set
-+CONFIG_IP_NF_MATCH_WEBSTR=y
-+# CONFIG_IP_NF_MATCH_OWNER is not set
-+CONFIG_IP_NF_FILTER=y
-+CONFIG_IP_NF_TARGET_REJECT=y
-+# CONFIG_IP_NF_TARGET_MIRROR is not set
-+CONFIG_IP_NF_NAT=y
-+CONFIG_IP_NF_NAT_NEEDED=y
-+CONFIG_IP_NF_TARGET_MASQUERADE=y
-+CONFIG_IP_NF_TARGET_REDIRECT=y
-+CONFIG_IP_NF_AUTOFW=y
-+CONFIG_IP_NF_TARGET_TRIGGER=y
-+CONFIG_IP_NF_NAT_H323=y
-+CONFIG_IP_NF_NAT_PPTP=y
-+# CONFIG_IP_NF_NAT_SIP is not set
-+CONFIG_IP_NF_NAT_PROTO_GRE=y
-+# CONFIG_IP_NF_NAT_LOCAL is not set
-+# CONFIG_IP_NF_NAT_SNMP_BASIC is not set
-+CONFIG_IP_NF_NAT_FTP=y
-+CONFIG_IP_NF_NAT_TFTP=y
-+CONFIG_IP_NF_MANGLE=y
-+CONFIG_IP_NF_TARGET_TOS=y
-+# CONFIG_IP_NF_TARGET_ECN is not set
-+# CONFIG_IP_NF_TARGET_DSCP is not set
-+CONFIG_IP_NF_TARGET_LOG=y
-+CONFIG_IP_NF_TARGET_MARK=y
-+# CONFIG_IP_NF_TARGET_ULOG is not set
-+CONFIG_IP_NF_TARGET_TCPMSS=y
-+# CONFIG_IP_NF_ARPTABLES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+CONFIG_VLAN_8021Q=y
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+CONFIG_BRIDGE=y
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+CONFIG_NET_SCHED=y
-+CONFIG_NET_SCH_CBQ=y
-+CONFIG_NET_SCH_HTB=y
-+# CONFIG_NET_SCH_CSZ is not set
-+CONFIG_NET_SCH_PRIO=y
-+# CONFIG_NET_SCH_RED is not set
-+CONFIG_NET_SCH_SFQ=y
-+# CONFIG_NET_SCH_TEQL is not set
-+# CONFIG_NET_SCH_TBF is not set
-+# CONFIG_NET_SCH_GRED is not set
-+# CONFIG_NET_SCH_DSMARK is not set
-+# CONFIG_NET_SCH_INGRESS is not set
-+CONFIG_NET_QOS=y
-+CONFIG_NET_ESTIMATOR=y
-+CONFIG_NET_CLS=y
-+# CONFIG_NET_CLS_TCINDEX is not set
-+# CONFIG_NET_CLS_ROUTE4 is not set
-+# CONFIG_NET_CLS_FW is not set
-+CONFIG_NET_CLS_U32=y
-+# CONFIG_NET_CLS_RSVP is not set
-+# CONFIG_NET_CLS_RSVP6 is not set
-+# CONFIG_NET_CLS_POLICE is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+# CONFIG_I2O_PCI is not set
-+# CONFIG_I2O_BLOCK is not set
-+# CONFIG_I2O_LAN is not set
-+# CONFIG_I2O_SCSI is not set
-+# CONFIG_I2O_PROC is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# Broadcom HND network devices
-+#
-+CONFIG_HND=y
-+# CONFIG_IL is not set
-+# CONFIG_IL_42XX is not set
-+# CONFIG_IL_47XX is not set
-+CONFIG_LARQ_BUF=0
-+CONFIG_ET=m
-+# CONFIG_ET_4413 is not set
-+CONFIG_ET_47XX=y
-+CONFIG_WL=m
-+CONFIG_WL_AP=y
-+CONFIG_WL_STA=y
-+# CONFIG_WL_OID is not set
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+CONFIG_PPP=y
-+# CONFIG_PPP_MULTILINK is not set
-+# CONFIG_PPP_FILTER is not set
-+CONFIG_PPP_ASYNC=y
-+CONFIG_PPP_SYNC_TTY=y
-+# CONFIG_PPP_DEFLATE is not set
-+# CONFIG_PPP_BSDCOMP is not set
-+CONFIG_PPPOE=y
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+# CONFIG_VT is not set
-+CONFIG_SERIAL=y
-+CONFIG_SERIAL_CONSOLE=y
-+# CONFIG_SERIAL_EXTENDED is not set
-+CONFIG_SERIAL_NONSTANDARD=y
-+# CONFIG_COMPUTONE is not set
-+# CONFIG_ROCKETPORT is not set
-+# CONFIG_CYCLADES is not set
-+# CONFIG_DIGIEPCA is not set
-+# CONFIG_DIGI is not set
-+# CONFIG_ESPSERIAL is not set
-+# CONFIG_MOXA_INTELLIO is not set
-+# CONFIG_MOXA_SMARTIO is not set
-+# CONFIG_ISI is not set
-+# CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
-+CONFIG_N_HDLC=y
-+# CONFIG_RISCOM8 is not set
-+# CONFIG_SPECIALIX is not set
-+# CONFIG_SX is not set
-+# CONFIG_RIO is not set
-+# CONFIG_STALDRV is not set
-+# CONFIG_SERIAL_TX3912 is not set
-+# CONFIG_SERIAL_TX3912_CONSOLE is not set
-+# CONFIG_TXX927_SERIAL is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=16
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+CONFIG_CRAMFS=y
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+CONFIG_DEVFS_FS=y
-+CONFIG_DEVFS_MOUNT=y
-+# CONFIG_DEVFS_DEBUG is not set
-+# CONFIG_DEVPTS_FS is not set
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+# CONFIG_EXT2_FS is not set
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+# CONFIG_NFS_FS is not set
-+# CONFIG_NFS_V3 is not set
-+# CONFIG_ROOT_NFS is not set
-+# CONFIG_NFSD is not set
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+# CONFIG_SUNRPC is not set
-+# CONFIG_LOCKD is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+# CONFIG_MSDOS_PARTITION is not set
-+# CONFIG_LDM_PARTITION is not set
-+# CONFIG_SGI_PARTITION is not set
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+# CONFIG_USB is not set
-+
-+#
-+# Support for USB gadgets
-+#
-+# CONFIG_USB_GADGET is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_KERNPROF is not set
-+# CONFIG_MCOUNT is not set
-+# CONFIG_DEBUG is not set
-+CONFIG_MAGIC_SYSRQ=y
-+# CONFIG_MIPS_UNCACHED is not set
-+# CONFIG_KTRACE is not set
-+# CONFIG_HWSIM is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_ZLIB_INFLATE=y
-+# CONFIG_ZLIB_DEFLATE is not set
---- linux-2.4.20/arch/mips/kernel/cpu-probe.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/cpu-probe.c 2005-01-07 05:39:02.000000000 -0500
-@@ -158,6 +158,16 @@
- unsigned long config0 = read_c0_config();
- unsigned long config1;
-
-+ if ((config0 & CONF_BE) !=
-+#ifdef CONFIG_CPU_LITTLE_ENDIAN
-+ 0
-+#else
-+ CONF_BE
-+#endif
-+ ) {
-+ panic("Kernel compiled little-endian, but running on a big-endian cpu");
-+ }
-+
- if (config0 & (1 << 31)) {
- /* MIPS32 or MIPS64 compliant CPU. Read Config 1 register. */
- mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
-@@ -179,9 +189,9 @@
- }
- #endif
- mips_cpu.processor_id = read_c0_prid();
-- switch (mips_cpu.processor_id & 0xff0000) {
-+ switch (mips_cpu.processor_id & PRID_COMP_MASK) {
- case PRID_COMP_LEGACY:
-- switch (mips_cpu.processor_id & 0xff00) {
-+ switch (mips_cpu.processor_id & PRID_IMP_MASK) {
- case PRID_IMP_R2000:
- mips_cpu.cputype = CPU_R2000;
- mips_cpu.isa_level = MIPS_CPU_ISA_I;
-@@ -191,7 +201,7 @@
- mips_cpu.tlbsize = 64;
- break;
- case PRID_IMP_R3000:
-- if ((mips_cpu.processor_id & 0xff) == PRID_REV_R3000A)
-+ if ((mips_cpu.processor_id & PRID_REV_MASK) == PRID_REV_R3000A)
- if (cpu_has_confreg())
- mips_cpu.cputype = CPU_R3081E;
- else
-@@ -205,7 +215,7 @@
- mips_cpu.tlbsize = 64;
- break;
- case PRID_IMP_R4000:
-- if ((mips_cpu.processor_id & 0xff) >= PRID_REV_R4400)
-+ if ((mips_cpu.processor_id & PRID_REV_MASK) >= PRID_REV_R4400)
- mips_cpu.cputype = CPU_R4400SC;
- else
- mips_cpu.cputype = CPU_R4000SC;
-@@ -287,7 +297,7 @@
- mips_cpu.icache.ways = 2;
- mips_cpu.dcache.ways = 2;
- } else {
-- switch (mips_cpu.processor_id & 0xff) {
-+ switch (mips_cpu.processor_id & PRID_REV_MASK) {
- case PRID_REV_TX3912:
- mips_cpu.cputype = CPU_TX3912;
- mips_cpu.tlbsize = 32;
-@@ -405,7 +415,7 @@
- break;
- #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
- case PRID_COMP_MIPS:
-- switch (mips_cpu.processor_id & 0xff00) {
-+ switch (mips_cpu.processor_id & PRID_IMP_MASK) {
- case PRID_IMP_4KC:
- mips_cpu.cputype = CPU_4KC;
- mips_cpu.isa_level = MIPS_CPU_ISA_M32;
-@@ -432,10 +442,10 @@
- }
- break;
- case PRID_COMP_ALCHEMY:
-- switch (mips_cpu.processor_id & 0xff00) {
-+ switch (mips_cpu.processor_id & PRID_IMP_MASK) {
- case PRID_IMP_AU1_REV1:
- case PRID_IMP_AU1_REV2:
-- switch ((mips_cpu.processor_id >> 24) & 0xff) {
-+ switch ((mips_cpu.processor_id >> 24) & PRID_REV_MASK) {
- case 0:
- mips_cpu.cputype = CPU_AU1000;
- break;
-@@ -456,9 +466,43 @@
- break;
- }
- break;
-+ case PRID_COMP_BROADCOM:
-+ switch (mips_cpu.processor_id & PRID_IMP_MASK) {
-+ case PRID_IMP_BCM4710:
-+ mips_cpu.cputype = CPU_BCM4710;
-+ mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
-+ MIPS_CPU_4KTLB | MIPS_CPU_COUNTER;
-+ config1 = read_c0_config1();
-+ if (config1 & (1 << 3))
-+ mips_cpu.options |= MIPS_CPU_WATCH;
-+ if (config1 & (1 << 2))
-+ mips_cpu.options |= MIPS_CPU_MIPS16;
-+ if (config1 & 1)
-+ mips_cpu.options |= MIPS_CPU_FPU;
-+ mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT;
-+ break;
-+ case PRID_IMP_4KC:
-+ case PRID_IMP_BCM3302:
-+ mips_cpu.cputype = CPU_BCM3302;
-+ mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
-+ MIPS_CPU_4KTLB | MIPS_CPU_COUNTER;
-+ config1 = read_c0_config1();
-+ if (config1 & (1 << 3))
-+ mips_cpu.options |= MIPS_CPU_WATCH;
-+ if (config1 & (1 << 2))
-+ mips_cpu.options |= MIPS_CPU_MIPS16;
-+ if (config1 & 1)
-+ mips_cpu.options |= MIPS_CPU_FPU;
-+ mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT;
-+ break;
-+ default:
-+ mips_cpu.cputype = CPU_UNKNOWN;
-+ break;
-+ }
-+ break;
- #endif /* CONFIG_CPU_MIPS32 */
- case PRID_COMP_SIBYTE:
-- switch (mips_cpu.processor_id & 0xff00) {
-+ switch (mips_cpu.processor_id & PRID_IMP_MASK) {
- case PRID_IMP_SB1:
- mips_cpu.cputype = CPU_SB1;
- mips_cpu.isa_level = MIPS_CPU_ISA_M64;
---- linux-2.4.20/arch/mips/kernel/entry.S~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/entry.S 2005-01-07 05:39:02.000000000 -0500
-@@ -100,6 +100,10 @@
- * and R4400 SC and MC versions.
- */
- NESTED(except_vec3_generic, 0, sp)
-+#ifdef CONFIG_BCM4710
-+ nop
-+ nop
-+#endif
- mfc0 k1, CP0_CAUSE
- la k0, exception_handlers
- andi k1, k1, 0x7c
---- linux-2.4.20/arch/mips/kernel/head.S~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/head.S 2005-01-07 05:39:02.000000000 -0500
-@@ -28,12 +28,20 @@
- #include <asm/mipsregs.h>
- #include <asm/stackframe.h>
-
-+#ifdef CONFIG_BCM4710
-+#undef eret
-+#define eret nop; nop; eret
-+#endif
-+
- .text
-+ j kernel_entry
-+ nop
-+
- /*
- * Reserved space for exception handlers.
- * Necessary for machines which link their kernels at KSEG0.
- */
-- .fill 0x400
-+ .fill 0x3f4
-
- /* The following two symbols are used for kernel profiling. */
- EXPORT(stext)
---- linux-2.4.20/arch/mips/kernel/proc.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/proc.c 2005-01-07 05:39:02.000000000 -0500
-@@ -73,9 +73,12 @@
- [CPU_VR4122] "NEC VR4122",
- [CPU_VR4131] "NEC VR4131",
- [CPU_VR4181] "NEC VR4181",
-- [CPU_VR4181A] "NEC VR4181A"
-+ [CPU_VR4181A] "NEC VR4181A",
-+ [CPU_BCM4710] "BCM4710",
-+ [CPU_BCM3302] "BCM3302",
- };
-
-+extern unsigned long unaligned_instructions;
-
- static int show_cpuinfo(struct seq_file *m, void *v)
- {
-@@ -124,6 +127,21 @@
- seq_printf(m, "sc emulations\t\t: %lu\n", sc_ops);
- #endif
-
-+ seq_printf(m, "unaligned_instructions\t: %u\n", unaligned_instructions);
-+
-+#if defined(CONFIG_BCM4710) || defined(CONFIG_BCM4310)
-+ seq_printf(m, "dcache hits\t\t: %u\n",
-+ read_perf_cntr(0));
-+ seq_printf(m, "dcache misses\t\t: %u\n",
-+ read_perf_cntr(1));
-+ seq_printf(m, "icache hits\t\t: %u\n",
-+ read_perf_cntr(2));
-+ seq_printf(m, "icache misses\t\t: %u\n",
-+ read_perf_cntr(3));
-+ seq_printf(m, "instructions\t\t: %u\n",
-+ read_perf_cntr(4));
-+#endif
-+
- return 0;
- }
-
---- linux-2.4.20/arch/mips/kernel/setup.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/setup.c 2005-01-07 05:39:02.000000000 -0500
-@@ -490,12 +490,12 @@
- void victor_mpc30x_setup(void);
- void ibm_workpad_setup(void);
- void casio_e55_setup(void);
-- void tanbac_tb0226_setup(void);
- void jmr3927_setup(void);
- void it8172_setup(void);
- void swarm_setup(void);
- void hp_setup(void);
- void au1x00_setup(void);
-+ void brcm_setup(void);
-
- #ifdef CONFIG_BLK_DEV_FD
- fd_ops = &no_fd_ops;
-@@ -671,6 +671,9 @@
- hp_setup();
- break;
- #endif
-+ case MACH_GROUP_BRCM:
-+ brcm_setup();
-+ break;
- default:
- panic("Unsupported architecture");
- }
---- linux-2.4.20/arch/mips/kernel/traps.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/traps.c 2005-01-07 05:39:02.000000000 -0500
-@@ -405,17 +405,12 @@
- unsigned long value)
- {
- const struct exception_table_entry *mid;
-- long diff;
-
-- while (first < last) {
-- mid = (last - first) / 2 + first;
-- diff = mid->insn - value;
-- if (diff < 0)
-- first = mid + 1;
-- else
-- last = mid;
-+ for (mid = first; mid <= last; mid++) {
-+ if (mid->insn == value)
-+ return mid->nextinsn;
- }
-- return (first == last && first->insn == value) ? first->nextinsn : 0;
-+ return 0;
- }
-
- extern spinlock_t modlist_lock;
-@@ -918,7 +913,7 @@
-
- void __init trap_init(void)
- {
-- extern char except_vec1_generic;
-+ extern char except_vec1_generic, except_vec2_generic;
- extern char except_vec3_generic, except_vec3_r4000;
- extern char except_vec_ejtag_debug;
- extern char except_vec4;
-@@ -928,6 +923,7 @@
-
- /* Copy the generic exception handler code to it's final destination. */
- memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-
- /*
- * Setup default vectors
-@@ -1014,6 +1010,12 @@
- //set_except_vector(15, handle_ndc);
- }
-
-+ if (mips_cpu.cputype == CPU_SB1) {
-+ /* Enable timer interrupt and scd mapped interrupt */
-+ clear_c0_status(0xf000);
-+ set_c0_status(0xc00);
-+ }
-+
- if (mips_cpu.options & MIPS_CPU_FPU) {
- save_fp_context = _save_fp_context;
- restore_fp_context = _restore_fp_context;
---- linux-2.4.20/arch/mips/kernel/unaligned.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/kernel/unaligned.c 2005-01-07 05:39:02.000000000 -0500
-@@ -145,7 +145,7 @@
- if (verify_area(VERIFY_READ, addr, 2))
- goto sigbus;
-
-- __asm__ __volatile__ (".set\tnoat\n"
-+ __asm__(".set\tnoat\n"
- #ifdef __BIG_ENDIAN
- "1:\tlb\t%0, 0(%2)\n"
- "2:\tlbu\t$1, 1(%2)\n\t"
-@@ -178,7 +178,7 @@
- if (verify_area(VERIFY_READ, addr, 4))
- goto sigbus;
-
-- __asm__ __volatile__ (
-+ __asm__(
- #ifdef __BIG_ENDIAN
- "1:\tlwl\t%0, (%2)\n"
- "2:\tlwr\t%0, 3(%2)\n\t"
-@@ -208,7 +208,7 @@
- if (verify_area(VERIFY_READ, addr, 2))
- goto sigbus;
-
-- __asm__ __volatile__ (
-+ __asm__(
- ".set\tnoat\n"
- #ifdef __BIG_ENDIAN
- "1:\tlbu\t%0, 0(%2)\n"
-@@ -250,7 +250,7 @@
- if (verify_area(VERIFY_READ, addr, 4))
- goto sigbus;
-
-- __asm__ __volatile__ (
-+ __asm__(
- #ifdef __BIG_ENDIAN
- "1:\tlwl\t%0, (%2)\n"
- "2:\tlwr\t%0, 3(%2)\n\t"
-@@ -294,7 +294,7 @@
- if (verify_area(VERIFY_READ, addr, 8))
- goto sigbus;
-
-- __asm__ __volatile__ (
-+ __asm__(
- #ifdef __BIG_ENDIAN
- "1:\tldl\t%0, (%2)\n"
- "2:\tldr\t%0, 7(%2)\n\t"
-@@ -329,7 +329,7 @@
- goto sigbus;
-
- value = regs->regs[insn.i_format.rt];
-- __asm__ __volatile__ (
-+ __asm__(
- #ifdef __BIG_ENDIAN
- ".set\tnoat\n"
- "1:\tsb\t%1, 1(%2)\n\t"
-@@ -365,7 +365,7 @@
- goto sigbus;
-
- value = regs->regs[insn.i_format.rt];
-- __asm__ __volatile__ (
-+ __asm__(
- #ifdef __BIG_ENDIAN
- "1:\tswl\t%1,(%2)\n"
- "2:\tswr\t%1, 3(%2)\n\t"
-@@ -403,7 +403,7 @@
- goto sigbus;
-
- value = regs->regs[insn.i_format.rt];
-- __asm__ __volatile__ (
-+ __asm__(
- #ifdef __BIG_ENDIAN
- "1:\tsdl\t%1,(%2)\n"
- "2:\tsdr\t%1, 7(%2)\n\t"
---- linux-2.4.20/arch/mips/mm/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/mm/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -28,6 +28,7 @@
- obj-$(CONFIG_CPU_MIPS32) += pg-mips32.o c-mips32.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_MIPS64) += pg-mips32.o c-mips32.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_SB1) += pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o cex-sb1.o cerr-sb1.o
-+obj-$(CONFIG_BCM4710) += c-bcm4710.o
-
- obj-$(CONFIG_R5000_CPU_SCACHE) += r5k-sc.o
-
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/arch/mips/mm/c-bcm4710.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,392 @@
-+/*
-+ * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
-+ * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * MIPS32 CPU variant specific MMU/Cache routines.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+
-+#include <asm/bootinfo.h>
-+#include <asm/cpu.h>
-+#include <asm/bcache.h>
-+#include <asm/io.h>
-+#include <asm/page.h>
-+#include <asm/pgtable.h>
-+#include <asm/system.h>
-+#include <asm/mmu_context.h>
-+
-+/* CP0 hazard avoidance. */
-+#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
-+ "nop; nop; nop; nop; nop; nop;\n\t" \
-+ ".set reorder\n\t")
-+
-+/* Primary cache parameters. */
-+extern int icache_size, dcache_size; /* Size in bytes */
-+extern int ic_lsize, dc_lsize; /* LineSize in bytes */
-+
-+#include <asm/cacheops.h>
-+#include <asm/bcm4710_cache.h>
-+
-+#undef DEBUG_CACHE
-+
-+static inline void mips32_flush_cache_all_pc(void)
-+{
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+ blast_dcache(); blast_icache();
-+ local_irq_restore(flags);
-+}
-+
-+static void mips32_flush_cache_range_pc(struct mm_struct *mm,
-+ unsigned long start,
-+ unsigned long end)
-+{
-+ if(mm->context != 0) {
-+ unsigned long flags;
-+
-+#ifdef DEBUG_CACHE
-+ printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
-+#endif
-+ local_irq_save(flags);
-+ blast_dcache(); blast_icache();
-+ local_irq_restore(flags);
-+ }
-+}
-+
-+/*
-+ * On architectures like the Sparc, we could get rid of lines in
-+ * the cache created only by a certain context, but on the MIPS
-+ * (and actually certain Sparc's) we cannot.
-+ */
-+static void mips32_flush_cache_mm_pc(struct mm_struct *mm)
-+{
-+ if(mm->context != 0) {
-+#ifdef DEBUG_CACHE
-+ printk("cmm[%d]", (int)mm->context);
-+#endif
-+ mips32_flush_cache_all_pc();
-+ }
-+}
-+
-+static void mips32_flush_cache_page_pc(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (mm->context == 0)
-+ return;
-+
-+#ifdef DEBUG_CACHE
-+ printk("cpage[%d,%08lx]", (int)mm->context, page);
-+#endif
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since Mips32 caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (mm == current->active_mm) {
-+ blast_dcache_page(page);
-+ } else {
-+ /* Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (dcache_size - 1)));
-+ blast_dcache_page_indexed(page);
-+ }
-+}
-+
-+/* If the addresses passed to these routines are valid, they are
-+ * either:
-+ *
-+ * 1) In KSEG0, so we can do a direct flush of the page.
-+ * 2) In KSEG2, and since every process can translate those
-+ * addresses all the time in kernel mode we can do a direct
-+ * flush.
-+ * 3) In KSEG1, no flush necessary.
-+ */
-+static void mips32_flush_page_to_ram_pc(struct page *page)
-+{
-+ blast_dcache_page((unsigned long)page_address(page));
-+}
-+
-+static void
-+mips32_flush_icache_range(unsigned long start, unsigned long end)
-+{
-+ flush_cache_all();
-+}
-+
-+static void
-+mips32_flush_icache_page(struct vm_area_struct *vma, struct page *page)
-+{
-+ /*
-+ * If there's no context yet, or the page isn't executable, no icache
-+ * flush is needed.
-+ */
-+ if (!(vma->vm_flags & VM_EXEC))
-+ return;
-+
-+ /*
-+ * We're not sure of the virtual address(es) involved here, so
-+ * conservatively flush the entire caches.
-+ */
-+ flush_cache_all();
-+}
-+
-+/*
-+ * Writeback and invalidate the primary cache dcache before DMA.
-+ */
-+static void
-+mips32_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
-+{
-+ unsigned long end, a;
-+ unsigned long flags;
-+
-+ if (size >= dcache_size) {
-+ blast_dcache();
-+ } else if (size) {
-+ local_irq_save(flags);
-+ a = addr & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
-+ BCM4710_FILL_TLB(a);
-+ BCM4710_FILL_TLB(end);
-+ while (1) {
-+ flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-+ if (a == end) break;
-+ a += dc_lsize;
-+ }
-+ local_irq_restore(flags);
-+ }
-+ bc_wback_inv(addr, size);
-+}
-+
-+static void
-+mips32_dma_cache_inv_pc(unsigned long addr, unsigned long size)
-+{
-+ unsigned long end, a;
-+ unsigned long flags;
-+
-+ if (size >= dcache_size) {
-+ blast_dcache();
-+ } else if (size) {
-+ local_irq_save(flags);
-+ a = addr & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
-+ BCM4710_FILL_TLB(a);
-+ BCM4710_FILL_TLB(end);
-+ while (1) {
-+ invalidate_dcache_line(a); /* Hit_Inv_D */
-+ if (a == end) break;
-+ a += dc_lsize;
-+ }
-+ local_irq_restore(flags);
-+ }
-+
-+ bc_inv(addr, size);
-+}
-+
-+static void
-+mips32_dma_cache_wback(unsigned long addr, unsigned long size)
-+{
-+ panic("mips32_dma_cache called - should not happen.");
-+}
-+
-+/*
-+ * While we're protected against bad userland addresses we don't care
-+ * very much about what happens in that case. Usually a segmentation
-+ * fault will dump the process later on anyway ...
-+ */
-+static void mips32_flush_cache_sigtramp(unsigned long addr)
-+{
-+ BCM4710_PROTECTED_FILL_TLB(addr);
-+ BCM4710_PROTECTED_FILL_TLB(addr + 4);
-+ protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-+ protected_flush_icache_line(addr & ~(ic_lsize - 1));
-+}
-+
-+static void mips32_flush_icache_all(void)
-+{
-+ if (mips_cpu.icache.flags | MIPS_CACHE_VTAG_CACHE) {
-+ blast_icache();
-+ }
-+}
-+
-+/* Detect and size the various caches. */
-+static void __init probe_icache(unsigned long config)
-+{
-+ unsigned long config1;
-+ unsigned int lsize;
-+
-+ mips_cpu.icache.flags = 0;
-+ if (!(config & (1 << 31))) {
-+ /*
-+ * Not a MIPS32 complainant CPU.
-+ * Config 1 register not supported, we assume R4k style.
-+ */
-+ icache_size = 1 << (12 + ((config >> 9) & 7));
-+ ic_lsize = 16 << ((config >> 5) & 1);
-+ mips_cpu.icache.linesz = ic_lsize;
-+
-+ /*
-+ * We cannot infer associativity - assume direct map
-+ * unless probe template indicates otherwise
-+ */
-+ if(!mips_cpu.icache.ways) mips_cpu.icache.ways = 1;
-+ mips_cpu.icache.sets =
-+ (icache_size / ic_lsize) / mips_cpu.icache.ways;
-+ } else {
-+ config1 = read_c0_config1();
-+
-+ if ((lsize = ((config1 >> 19) & 7)))
-+ mips_cpu.icache.linesz = 2 << lsize;
-+ else
-+ mips_cpu.icache.linesz = lsize;
-+ mips_cpu.icache.sets = 64 << ((config1 >> 22) & 7);
-+ mips_cpu.icache.ways = 1 + ((config1 >> 16) & 7);
-+
-+ ic_lsize = mips_cpu.icache.linesz;
-+ icache_size = mips_cpu.icache.sets * mips_cpu.icache.ways *
-+ ic_lsize;
-+
-+ if ((config & 0x8) || (mips_cpu.cputype == CPU_20KC)) {
-+ /*
-+ * The CPU has a virtually tagged I-cache.
-+ * Some older 20Kc chips doesn't have the 'VI' bit in
-+ * the config register, so we also check for 20Kc.
-+ */
-+ mips_cpu.icache.flags = MIPS_CACHE_VTAG_CACHE;
-+ printk("Virtually tagged I-cache detected\n");
-+ }
-+ }
-+ printk("Primary instruction cache %dkb, linesize %d bytes (%d ways)\n",
-+ icache_size >> 10, ic_lsize, mips_cpu.icache.ways);
-+}
-+
-+static void __init probe_dcache(unsigned long config)
-+{
-+ unsigned long config1;
-+ unsigned int lsize;
-+
-+ mips_cpu.dcache.flags = 0;
-+ if (!(config & (1 << 31))) {
-+ /*
-+ * Not a MIPS32 complainant CPU.
-+ * Config 1 register not supported, we assume R4k style.
-+ */
-+ dcache_size = 1 << (12 + ((config >> 6) & 7));
-+ dc_lsize = 16 << ((config >> 4) & 1);
-+ mips_cpu.dcache.linesz = dc_lsize;
-+ /*
-+ * We cannot infer associativity - assume direct map
-+ * unless probe template indicates otherwise
-+ */
-+ if(!mips_cpu.dcache.ways) mips_cpu.dcache.ways = 1;
-+ mips_cpu.dcache.sets =
-+ (dcache_size / dc_lsize) / mips_cpu.dcache.ways;
-+ } else {
-+ config1 = read_c0_config1();
-+
-+ if ((lsize = ((config1 >> 10) & 7)))
-+ mips_cpu.dcache.linesz = 2 << lsize;
-+ else
-+ mips_cpu.dcache.linesz= lsize;
-+ mips_cpu.dcache.sets = 64 << ((config1 >> 13) & 7);
-+ mips_cpu.dcache.ways = 1 + ((config1 >> 7) & 7);
-+
-+ dc_lsize = mips_cpu.dcache.linesz;
-+ dcache_size =
-+ mips_cpu.dcache.sets * mips_cpu.dcache.ways
-+ * dc_lsize;
-+ }
-+ printk("Primary data cache %dkb, linesize %d bytes (%d ways)\n",
-+ dcache_size >> 10, dc_lsize, mips_cpu.dcache.ways);
-+}
-+
-+static void __init setup_noscache_funcs(void)
-+{
-+ _clear_page = (void *)mips32_clear_page_dc;
-+ _copy_page = (void *)mips32_copy_page_dc;
-+ _flush_cache_all = mips32_flush_cache_all_pc;
-+ ___flush_cache_all = mips32_flush_cache_all_pc;
-+ _flush_cache_mm = mips32_flush_cache_mm_pc;
-+ _flush_cache_range = mips32_flush_cache_range_pc;
-+ _flush_cache_page = mips32_flush_cache_page_pc;
-+ _flush_page_to_ram = mips32_flush_page_to_ram_pc;
-+
-+ _flush_icache_page = mips32_flush_icache_page;
-+
-+ _dma_cache_wback_inv = mips32_dma_cache_wback_inv_pc;
-+ _dma_cache_wback = mips32_dma_cache_wback;
-+ _dma_cache_inv = mips32_dma_cache_inv_pc;
-+}
-+
-+static void __init _change_cachability(u32 cm)
-+{
-+ change_c0_config(CONF_CM_CMASK, cm);
-+
-+ if ((mips_cpu.processor_id & (PRID_COMP_MASK | PRID_IMP_MASK)) ==
-+ (PRID_COMP_BROADCOM | PRID_IMP_BCM3302)) {
-+ cm = read_c0_diag();
-+ /* Enable icache */
-+ cm |= (1 << 31);
-+ /* Enable dcache */
-+ cm |= (1 << 30);
-+ write_c0_diag(cm);
-+ }
-+}
-+static void (*change_cachability)(u32);
-+
-+void __init ld_mmu_bcm4710(void)
-+{
-+ unsigned long config = read_c0_config();
-+
-+ change_cachability = (void (*)(u32)) KSEG1ADDR((unsigned long)(_change_cachability));
-+ change_cachability(CONF_CM_DEFAULT);
-+
-+ probe_icache(config);
-+ probe_dcache(config);
-+ setup_noscache_funcs();
-+
-+ _flush_cache_sigtramp = mips32_flush_cache_sigtramp;
-+ _flush_icache_range = mips32_flush_icache_range; /* Ouch */
-+ _flush_icache_all = mips32_flush_icache_all;
-+
-+ __flush_cache_all();
-+}
---- linux-2.4.20/arch/mips/mm/c-mips32.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/mm/c-mips32.c 2005-01-07 05:39:02.000000000 -0500
-@@ -163,7 +163,6 @@
- unsigned long page)
- {
- struct mm_struct *mm = vma->vm_mm;
-- unsigned long flags;
- pgd_t *pgdp;
- pmd_t *pmdp;
- pte_t *ptep;
-@@ -212,7 +211,6 @@
- unsigned long page)
- {
- struct mm_struct *mm = vma->vm_mm;
-- unsigned long flags;
- pgd_t *pgdp;
- pmd_t *pmdp;
- pte_t *ptep;
-@@ -313,11 +311,11 @@
- mips32_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
- {
- unsigned long end, a;
-- unsigned int flags;
-+ unsigned long flags;
-
- if (size >= dcache_size) {
- blast_dcache();
-- } else {
-+ } else if (size) {
- local_irq_save(flags);
- a = addr & ~(dc_lsize - 1);
- end = (addr + size - 1) & ~(dc_lsize - 1);
-@@ -338,9 +336,7 @@
-
- if (size >= scache_size) {
- blast_scache();
-- return;
-- }
--
-+ } else if (size) {
- a = addr & ~(sc_lsize - 1);
- end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
-@@ -348,17 +344,18 @@
- if (a == end) break;
- a += sc_lsize;
- }
-+ }
- }
-
- static void
- mips32_dma_cache_inv_pc(unsigned long addr, unsigned long size)
- {
- unsigned long end, a;
-- unsigned int flags;
-+ unsigned long flags;
-
- if (size >= dcache_size) {
- blast_dcache();
-- } else {
-+ } else if (size) {
- local_irq_save(flags);
- a = addr & ~(dc_lsize - 1);
- end = (addr + size - 1) & ~(dc_lsize - 1);
-@@ -380,9 +377,7 @@
-
- if (size >= scache_size) {
- blast_scache();
-- return;
-- }
--
-+ } else if (size) {
- a = addr & ~(sc_lsize - 1);
- end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
-@@ -390,6 +385,7 @@
- if (a == end) break;
- a += sc_lsize;
- }
-+ }
- }
-
- static void
-@@ -664,16 +660,51 @@
- setup_noscache_funcs();
- }
-
--void __init ld_mmu_mips32(void)
-+#if defined(CONFIG_BCM4310) || defined(CONFIG_BCM4704) || defined(CONFIG_BCM5365)
-+static void __init _change_cachability(u32 cm)
- {
-- unsigned long config = read_c0_config();
-- extern char except_vec2_generic;
-+ change_c0_config(CONF_CM_CMASK, cm);
-
-- /* Default cache error handler for MIPS32 */
-- memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-- memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+ if (BCM330X(mips_cpu.processor_id)) {
-+ cm = read_c0_diag();
-+ /* Enable icache */
-+ cm |= (1 << 31);
-+ /* Enable dcache */
-+ cm |= (1 << 30);
-+ write_c0_diag(cm);
-+ }
-+}
-+static void (*change_cachability)(u32);
-+#endif
-
-- change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+#ifdef CONFIG_BCM4704
-+static void __init mips32_icache_fill(unsigned long addr, uint nbytes)
-+{
-+ int i;
-+ for (i = 0; i < nbytes; i += ic_lsize)
-+ fill_icache_line((addr + i));
-+ }
-+
-+/*
-+ * This must be run from the cache on 4704A0
-+ * so there are no mips core BIU ops in progress
-+ * when the PFC is enabled.
-+ */
-+#define PFC_CR0 0xff400000 /* control reg 0 */
-+#define PFC_CR1 0xff400004 /* control reg 1 */
-+static void __init enable_pfc(u32 mode)
-+{
-+ /* write range */
-+ *(volatile u32 *)PFC_CR1 = 0xffff0000;
-+
-+ /* enable */
-+ *(volatile u32 *)PFC_CR0 = mode;
-+}
-+#endif
-+
-+void __init ld_mmu_mips32(void)
-+{
-+ unsigned long config = read_c0_config();
-
- probe_icache(config);
- probe_dcache(config);
-@@ -684,4 +715,20 @@
- _flush_icache_all = mips32_flush_icache_all;
-
- __flush_cache_all();
-+
-+#if defined(CONFIG_BCM4310) || defined(CONFIG_BCM4704) || defined(CONFIG_BCM5365)
-+ change_cachability = (void (*)(u32)) KSEG1ADDR((unsigned long)(_change_cachability));
-+ change_cachability(CONF_CM_DEFAULT);
-+#else
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+#endif
-+
-+#ifdef CONFIG_BCM4704
-+ /* enable prefetch cache */
-+ if (BCM330X(mips_cpu.processor_id) &&
-+ (read_c0_diag() & (1 << 29))) {
-+ mips32_icache_fill((unsigned long) &enable_pfc, 64);
-+ enable_pfc(0x15);
-+ }
-+#endif
- }
---- linux-2.4.20/arch/mips/mm/loadmmu.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/arch/mips/mm/loadmmu.c 2005-01-07 05:39:02.000000000 -0500
-@@ -61,12 +61,21 @@
- extern void ld_mmu_andes(void);
- extern void ld_mmu_sb1(void);
- extern void ld_mmu_mips32(void);
-+extern void ld_mmu_bcm4710(void);
- extern void r3k_tlb_init(void);
- extern void r4k_tlb_init(void);
- extern void sb1_tlb_init(void);
-
- void __init loadmmu(void)
- {
-+#ifdef CONFIG_BCM4710
-+ if (mips_cpu.cputype == CPU_BCM4710 &&
-+ (mips_cpu.processor_id & PRID_REV_MASK) == 0) {
-+ printk("Loading BCM4710 MMU routines.\n");
-+ ld_mmu_bcm4710();
-+ r4k_tlb_init();
-+ } else
-+#endif
- if (mips_cpu.options & MIPS_CPU_4KTLB) {
- #if defined(CONFIG_CPU_R4X00) || defined(CONFIG_CPU_VR41XX) || \
- defined(CONFIG_CPU_R4300) || defined(CONFIG_CPU_R5000) || \
---- linux-2.4.20/arch/mips/mm/tlbex-r4k.S~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/mm/tlbex-r4k.S 2005-01-07 05:39:02.000000000 -0500
-@@ -162,6 +162,9 @@
- .set noat
- LEAF(except_vec0_r4000)
- .set mips3
-+#ifdef CONFIG_BCM4704
-+ nop
-+#endif
- GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR # Get faulting address
- srl k0, k0, _PGDIR_SHIFT # get pgd only bits
-@@ -248,15 +251,16 @@
- eret # return from trap
- END(except_vec0_nevada)
-
-- /* TLB refill, EXL == 0, SB1 with M3 errata handling version */
-- LEAF(except_vec0_sb1)
- #ifdef BCM1250_M3_WAR
-+
-+ /* TLB refill, EXL == 0, SB1 with M3 errata handling version */
-+ LEAF(except_vec0_sb1_m3)
- mfc0 k0, CP0_BADVADDR
- mfc0 k1, CP0_ENTRYHI
- xor k0, k1
-- srl k0, k0, PAGE_SHIFT+1
-- bnez k0, 1f
--#endif
-+ srl k0, k0, 13 # PAGE_SHIFT + 1
-+ bnez k0, 2f
-+
- GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR # Get faulting address
- srl k0, k0, _PGDIR_SHIFT # get pgd only bits
-@@ -273,9 +277,12 @@
- P_MTC0 k0, CP0_ENTRYLO0 # load it
- PTE_SRL k1, k1, 6 # convert to entrylo1
- P_MTC0 k1, CP0_ENTRYLO1 # load it
-+ b 1f
- tlbwr # write random tlb entry
--1: eret # return from trap
-- END(except_vec0_sb1)
-+1: nop
-+2: eret # return from trap
-+ END(except_vec0_sb1_m3)
-+#endif /* BCM1250_M3_WAR */
-
- /* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */
- LEAF(except_vec0_r45k_bvahwbug)
---- linux-2.4.20/arch/mips/ramdisk/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/arch/mips/ramdisk/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -5,10 +5,10 @@
- # removes any old dependencies. DON'T put your own dependencies here
- # unless it's something special (ie not a .c file).
- #
--
- O_FORMAT = $(shell $(OBJDUMP) -i | head -2 | grep elf32)
--img = $(CONFIG_EMBEDDED_RAMDISK_IMAGE)
--ramdisk.o: ramdisk.gz ld.script
-+img = $(subst ",,$(CONFIG_EMBEDDED_RAMDISK_IMAGE))
-+
-+ramdisk.o: $(img) ld.script
- echo "O_FORMAT: " $(O_FORMAT)
- $(LD) -T ld.script -b binary --oformat $(O_FORMAT) -o $@ $(img)
-
---- linux-2.4.20/drivers/block/Config.in~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/block/Config.in 2005-01-07 05:39:02.000000000 -0500
-@@ -4,6 +4,10 @@
- mainmenu_option next_comment
- comment 'Block devices'
-
-+tristate 'M-Systems DiskOnChip Block Device support' CONFIG_BLK_DEV_MSYS
-+
-+tristate 'No-root support' CONFIG_NOROOT
-+
- tristate 'Normal floppy disk support' CONFIG_BLK_DEV_FD
- if [ "$CONFIG_AMIGA" = "y" ]; then
- tristate 'Amiga floppy support' CONFIG_AMIGA_FLOPPY
---- linux-2.4.20/drivers/block/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/block/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -34,4 +34,9 @@
-
- subdir-$(CONFIG_PARIDE) += paride
-
-+ifdef CONFIG_BLK_DEV_MSYS
-+obj-$(CONFIG_BLK_DEV_MSYS) += ../../../../router/trueffs/linux/doc.o
-+subdir-$(CONFIG_BLK_DEV_MSYS) += ../../../../router/trueffs/linux
-+endif
-+
- include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/block/dummy.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,70 @@
-+/*
-+ * dummyfs: a placeholder filesystem that sleeps forever when mounted
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: dummy.c,v 1.1.1.6 2004/04/12 04:31:22 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+
-+#include <linux/sched.h>
-+#include <linux/fs.h>
-+#include <linux/file.h>
-+#include <linux/stat.h>
-+#include <linux/errno.h>
-+#include <linux/major.h>
-+#include <linux/wait.h>
-+#include <linux/blk.h>
-+#include <linux/init.h>
-+#include <linux/devfs_fs_kernel.h>
-+#include <linux/smp_lock.h>
-+#include <linux/swap.h>
-+#include <linux/slab.h>
-+
-+#include <asm/uaccess.h>
-+
-+/* I don't thik anyone would mind if we stole CM206_CDROM_MAJOR */
-+#define DUMMY_MAJOR 0x20
-+
-+static int dummy_open(struct inode *inode, struct file *file)
-+{
-+ DECLARE_WAIT_QUEUE_HEAD(wait);
-+
-+ for (;;)
-+ sleep_on(&wait);
-+
-+ return 0;
-+}
-+
-+static struct block_device_operations dummy_fops = {
-+ open: dummy_open,
-+};
-+
-+int __init dummy_init(void)
-+{
-+ if (devfs_register_blkdev(DUMMY_MAJOR, "dummy", &dummy_fops)) {
-+ printk(KERN_WARNING "Unable to get major number for dummy device\n");
-+ return -EIO;
-+ }
-+
-+ register_disk(NULL, MKDEV(DUMMY_MAJOR, 0), 1, &dummy_fops, 0);
-+
-+ return 0;
-+}
-+
-+void dummy_exit(void)
-+{
-+ if (devfs_unregister_blkdev(0, "dummy"))
-+ printk(KERN_WARNING "dummy: cannot unregister blkdev\n");
-+}
-+
-+module_init(dummy_init);
-+module_exit(dummy_exit);
---- linux-2.4.20/drivers/char/mem.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/char/mem.c 2005-01-07 05:39:02.000000000 -0500
-@@ -621,7 +621,8 @@
- {1, "mem", S_IRUSR | S_IWUSR | S_IRGRP, &mem_fops},
- {2, "kmem", S_IRUSR | S_IWUSR | S_IRGRP, &kmem_fops},
- {3, "null", S_IRUGO | S_IWUGO, &null_fops},
--#if defined(CONFIG_ISA) || !defined(__mc68000__)
-+#if defined(CONFIG_ISA) || !defined(__mc68000__) || \
-+ defined(CONFIG_BCM94702_CPCI)
- {4, "port", S_IRUSR | S_IWUSR | S_IRGRP, &port_fops},
- #endif
- {5, "zero", S_IRUGO | S_IWUGO, &zero_fops},
---- linux-2.4.20/drivers/char/serial.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/char/serial.c 2005-01-07 05:39:02.000000000 -0500
-@@ -444,6 +444,10 @@
- return inb(info->port+1);
- #endif
- case SERIAL_IO_MEM:
-+#ifdef CONFIG_BCM4310
-+ readb((unsigned long) info->iomem_base +
-+ (UART_SCR<<info->iomem_reg_shift));
-+#endif
- return readb((unsigned long) info->iomem_base +
- (offset<<info->iomem_reg_shift));
- default:
-@@ -464,6 +468,9 @@
- case SERIAL_IO_MEM:
- writeb(value, (unsigned long) info->iomem_base +
- (offset<<info->iomem_reg_shift));
-+#ifdef CONFIG_BCM4704
-+ *((volatile unsigned int *) KSEG1ADDR(0x18000000));
-+#endif
- break;
- default:
- outb(value, info->port+offset);
-@@ -5970,6 +5977,13 @@
- * Divisor, bytesize and parity
- */
- state = rs_table + co->index;
-+ /*
-+ * Safe guard: state structure must have been initialized
-+ */
-+ if (state->iomem_base == NULL) {
-+ printk("!unable to setup serial console!\n");
-+ return -1;
-+ }
- if (doflow)
- state->flags |= ASYNC_CONS_FLOW;
- info = &async_sercons;
---- linux-2.4.20/drivers/ide/ide-pci.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/ide/ide-pci.c 2005-01-07 05:39:02.000000000 -0500
-@@ -793,11 +793,6 @@
- goto bypass_piix_dma;
- if (IDE_PCI_DEVID_EQ(d->devid, DEVID_PDCADMA))
- goto bypass_legacy_dma;
-- if (hwif->udma_four) {
-- printk("%s: ATA-66/100 forced bit set (WARNING)!!\n", d->name);
-- } else {
-- hwif->udma_four = (d->ata66_check) ? d->ata66_check(hwif) : 0;
-- }
- #ifdef CONFIG_BLK_DEV_IDEDMA
- if (IDE_PCI_DEVID_EQ(d->devid, DEVID_SIS5513) ||
- IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260) ||
-@@ -855,6 +850,11 @@
- printk("%s: %s Bus-Master DMA disabled (BIOS)\n", hwif->name, d->name);
- }
- }
-+ if (hwif->udma_four) {
-+ printk("%s: ATA-66/100 forced bit set (WARNING)!!\n", d->name);
-+ } else {
-+ hwif->udma_four = (d->ata66_check) ? d->ata66_check(hwif) : 0;
-+ }
- #endif /* CONFIG_BLK_DEV_IDEDMA */
- bypass_legacy_dma:
- bypass_piix_dma:
---- linux-2.4.20/drivers/mtd/chips/Config.in~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/chips/Config.in 2005-01-07 05:39:02.000000000 -0500
-@@ -43,6 +43,7 @@
- fi
- dep_tristate ' Support for Intel/Sharp flash chips' CONFIG_MTD_CFI_INTELEXT $CONFIG_MTD_GEN_PROBE
- dep_tristate ' Support for AMD/Fujitsu flash chips' CONFIG_MTD_CFI_AMDSTD $CONFIG_MTD_GEN_PROBE
-+dep_tristate ' Support for SST flash chips' CONFIG_MTD_CFI_SSTSTD $CONFIG_MTD_GEN_PROBE
-
- dep_tristate ' Support for RAM chips in bus mapping' CONFIG_MTD_RAM $CONFIG_MTD
- dep_tristate ' Support for ROM chips in bus mapping' CONFIG_MTD_ROM $CONFIG_MTD
---- linux-2.4.20/drivers/mtd/chips/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/chips/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -17,6 +17,7 @@
- obj-$(CONFIG_MTD) += chipreg.o
- obj-$(CONFIG_MTD_AMDSTD) += amd_flash.o
- obj-$(CONFIG_MTD_CFI) += cfi_probe.o
-+obj-$(CONFIG_MTD_CFI_SSTSTD) += cfi_cmdset_0701.o
- obj-$(CONFIG_MTD_CFI_AMDSTD) += cfi_cmdset_0002.o
- obj-$(CONFIG_MTD_CFI_INTELEXT) += cfi_cmdset_0001.o
- obj-$(CONFIG_MTD_GEN_PROBE) += gen_probe.o
---- linux-2.4.20/drivers/mtd/chips/cfi_cmdset_0001.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/chips/cfi_cmdset_0001.c 2005-01-07 05:39:02.000000000 -0500
-@@ -59,6 +59,8 @@
- #ifdef DEBUG_CFI_FEATURES
- static void cfi_tell_features(struct cfi_pri_intelext *extp)
- {
-+ int i;
-+
- printk(" Feature/Command Support: %4.4X\n", extp->FeatureSupport);
- printk(" - Chip Erase: %s\n", extp->FeatureSupport&1?"supported":"unsupported");
- printk(" - Suspend Erase: %s\n", extp->FeatureSupport&2?"supported":"unsupported");
-@@ -184,7 +186,7 @@
- unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave;
-
- mtd = kmalloc(sizeof(*mtd), GFP_KERNEL);
-- //printk(KERN_DEBUG "number of CFI chips: %d\n", cfi->numchips);
-+ printk(KERN_DEBUG "number of CFI chips: %d\n", cfi->numchips);
-
- if (!mtd) {
- printk(KERN_ERR "Failed to allocate memory for MTD device\n");
-@@ -1226,6 +1228,9 @@
- chip->state = chip->oldstate;
- wake_up(&chip->wq);
- }
-+
-+ /* make absolutely sure that chip is out of lock/suspend state */
-+ cfi_write(map, CMD(0xFF), 0);
- spin_unlock_bh(chip->mutex);
- }
- }
-@@ -1319,6 +1324,7 @@
- }
-
- /* Done and happy. */
-+ cfi_write(map, CMD(0x70), adr);
- chip->state = FL_STATUS;
- DISABLE_VPP(map);
- wake_up(&chip->wq);
-@@ -1468,6 +1474,7 @@
- }
-
- /* Done and happy. */
-+ cfi_write(map, CMD(0x70), adr);
- chip->state = FL_STATUS;
- DISABLE_VPP(map);
- wake_up(&chip->wq);
-@@ -1483,34 +1490,96 @@
- #ifdef DEBUG_LOCK_BITS
- int ofs_factor = cfi->interleave * cfi->device_type;
- #endif
-+ int i, first;
-+ struct mtd_erase_region_info *regions = mtd->eraseregions;
-+
-+ if (ofs > mtd->size)
-+ return -EINVAL;
-+
-+ if ((len + ofs) > mtd->size)
-+ return -EINVAL;
-+
-+ /* Check that both start and end of the requested erase are
-+ * aligned with the erasesize at the appropriate addresses.
-+ */
-+
-+ i = 0;
-+
-+ /* Skip all erase regions which are ended before the start of
-+ the requested erase. Actually, to save on the calculations,
-+ we skip to the first erase region which starts after the
-+ start of the requested erase, and then go back one.
-+ */
-+
-+ while (i < mtd->numeraseregions && ofs >= regions[i].offset)
-+ i++;
-+ i--;
-+
-+ /* OK, now i is pointing at the erase region in which this
-+ erase request starts. Check the start of the requested
-+ erase range is aligned with the erase size which is in
-+ effect here.
-+ */
-+
-+ if (ofs & (regions[i].erasesize-1))
-+ return -EINVAL;
-+
-+ /* Remember the erase region we start on */
-+ first = i;
-+
-+ /* Next, check that the end of the requested erase is aligned
-+ * with the erase region at that address.
-+ */
-+
-+ while (i<mtd->numeraseregions && (ofs + len) >= regions[i].offset)
-+ i++;
-+
-+ /* As before, drop back one to point at the region in which
-+ the address actually falls
-+ */
-+ i--;
-+
-+ if ((ofs + len) & (regions[i].erasesize-1))
-+ return -EINVAL;
-
- chipnum = ofs >> cfi->chipshift;
- adr = ofs - (chipnum << cfi->chipshift);
-+ i = first;
-
--#ifdef DEBUG_LOCK_BITS
-- {
-- unsigned long temp_adr = adr;
-- unsigned long temp_len = len;
-+ while(len) {
-
-+#ifdef DEBUG_LOCK_BITS
- cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
-- while (temp_len) {
-- printk("before unlock %x: block status register is %x\n",temp_adr,cfi_read_query(map, temp_adr+(2*ofs_factor)));
-- temp_adr += mtd->erasesize;
-- temp_len -= mtd->erasesize;
-- }
-+ printk("before unlock %x: block status register is %x\n",adr,cfi_read_query(map, adr+(2*ofs_factor)));
- cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
-- }
- #endif
-
- ret = do_unlock_oneblock(map, &cfi->chips[chipnum], adr);
-
- #ifdef DEBUG_LOCK_BITS
- cfi_send_gen_cmd(0x90, 0x55, 0, map, cfi, cfi->device_type, NULL);
-- printk("after unlock: block status register is %x\n",cfi_read_query(map, adr+(2*ofs_factor)));
-+ printk("after unlock %x: block status register is %x\n",adr,cfi_read_query(map, adr+(2*ofs_factor)));
- cfi_send_gen_cmd(0xff, 0x55, 0, map, cfi, cfi->device_type, NULL);
- #endif
-
-+ if (ret)
- return ret;
-+
-+ adr += regions[i].erasesize;
-+ len -= regions[i].erasesize;
-+
-+ if (adr % (1<< cfi->chipshift) == ((regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift)))
-+ i++;
-+
-+ if (adr >> cfi->chipshift) {
-+ adr = 0;
-+ chipnum++;
-+
-+ if (chipnum >= cfi->numchips)
-+ break;
-+ }
-+ }
-+ return 0;
- }
-
- static int cfi_intelext_suspend(struct mtd_info *mtd)
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/mtd/chips/cfi_cmdset_0701.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,855 @@
-+/*
-+ * Common Flash Interface support:
-+ * SST Standard Vendor Command Set (ID 0x0701)
-+ *
-+ * Copyright (C) 2000 Crossnet Co. <info@crossnet.co.jp>
-+ *
-+ * 2_by_8 routines added by Simon Munton
-+ *
-+ * This code is GPL
-+ *
-+ * $Id: cfi_cmdset_0701.c,v 1.1.1.4 2003/10/14 08:08:17 sparq Exp $
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <asm/io.h>
-+#include <asm/byteorder.h>
-+
-+#include <linux/errno.h>
-+#include <linux/slab.h>
-+#include <linux/delay.h>
-+#include <linux/interrupt.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/cfi.h>
-+
-+static int cfi_sststd_read (struct mtd_info *, loff_t, size_t, size_t *, u_char *);
-+static int cfi_sststd_write(struct mtd_info *, loff_t, size_t, size_t *, const u_char *);
-+static int cfi_sststd_erase_onesize(struct mtd_info *, struct erase_info *);
-+static int cfi_sststd_erase_varsize(struct mtd_info *, struct erase_info *);
-+static void cfi_sststd_sync (struct mtd_info *);
-+static int cfi_sststd_suspend (struct mtd_info *);
-+static void cfi_sststd_resume (struct mtd_info *);
-+
-+static void cfi_sststd_destroy(struct mtd_info *);
-+
-+struct mtd_info *cfi_cmdset_0701(struct map_info *, int);
-+static struct mtd_info *cfi_sststd_setup (struct map_info *);
-+
-+
-+static struct mtd_chip_driver cfi_sststd_chipdrv = {
-+ probe: NULL, /* Not usable directly */
-+ destroy: cfi_sststd_destroy,
-+ name: "cfi_cmdset_0701",
-+ module: THIS_MODULE
-+};
-+
-+struct mtd_info *cfi_cmdset_0701(struct map_info *map, int primary)
-+{
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ int ofs_factor = cfi->interleave * cfi->device_type;
-+ int i;
-+ __u8 major, minor;
-+ __u32 base = cfi->chips[0].start;
-+
-+ if (cfi->cfi_mode==1){
-+ __u16 adr = primary?cfi->cfiq->P_ADR:cfi->cfiq->A_ADR;
-+
-+ cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+
-+ major = cfi_read_query(map, base + (adr+3)*ofs_factor);
-+ minor = cfi_read_query(map, base + (adr+4)*ofs_factor);
-+
-+ printk(" SST Query Table v%c.%c at 0x%4.4X\n",
-+ major, minor, adr);
-+ cfi_send_gen_cmd(0xf0, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+
-+ cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x90, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+ cfi->mfr = cfi_read_query(map, base);
-+ cfi->id = cfi_read_query(map, base + ofs_factor);
-+
-+ cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+
-+ switch (cfi->device_type) {
-+ case CFI_DEVICETYPE_X16:
-+ cfi->addr_unlock1 = 0x5555;
-+ cfi->addr_unlock2 = 0x2AAA;
-+ break;
-+ default:
-+ printk(KERN_NOTICE "Eep. Unknown cfi_cmdset_0701 device type %d\n", cfi->device_type);
-+ return NULL;
-+ }
-+ } /* CFI mode */
-+
-+ for (i=0; i< cfi->numchips; i++) {
-+ cfi->chips[i].word_write_time = 1<<cfi->cfiq->WordWriteTimeoutTyp;
-+ cfi->chips[i].buffer_write_time = 1<<cfi->cfiq->BufWriteTimeoutTyp;
-+ cfi->chips[i].erase_time = 1<<cfi->cfiq->BlockEraseTimeoutTyp;
-+ }
-+
-+ map->fldrv = &cfi_sststd_chipdrv;
-+ MOD_INC_USE_COUNT;
-+
-+ cfi_send_gen_cmd(0xf0, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+ return cfi_sststd_setup(map);
-+}
-+
-+static struct mtd_info *cfi_sststd_setup(struct map_info *map)
-+{
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ struct mtd_info *mtd;
-+ unsigned long devsize = (1<<cfi->cfiq->DevSize) * cfi->interleave;
-+
-+ mtd = kmalloc(sizeof(*mtd), GFP_KERNEL);
-+ printk("number of %s chips: %d\n", (cfi->cfi_mode)?"JEDEC":"CFI",cfi->numchips);
-+
-+ if (!mtd) {
-+ printk("Failed to allocate memory for MTD device\n");
-+ kfree(cfi->cmdset_priv);
-+ return NULL;
-+ }
-+
-+ memset(mtd, 0, sizeof(*mtd));
-+ mtd->priv = map;
-+ mtd->type = MTD_NORFLASH;
-+ /* Also select the correct geometry setup too */
-+ mtd->size = devsize * cfi->numchips;
-+
-+ if (cfi->cfiq->NumEraseRegions == 1) {
-+ /* No need to muck about with multiple erase sizes */
-+ mtd->erasesize = ((cfi->cfiq->EraseRegionInfo[0] >> 8) & ~0xff) * cfi->interleave;
-+ } else {
-+ unsigned long offset = 0;
-+ int i,j;
-+
-+ mtd->numeraseregions = cfi->cfiq->NumEraseRegions * cfi->numchips;
-+ mtd->eraseregions = kmalloc(sizeof(struct mtd_erase_region_info) * mtd->numeraseregions, GFP_KERNEL);
-+ if (!mtd->eraseregions) {
-+ printk("Failed to allocate memory for MTD erase region info\n");
-+ kfree(cfi->cmdset_priv);
-+ return NULL;
-+ }
-+
-+ for (i=0; i<cfi->cfiq->NumEraseRegions; i++) {
-+ unsigned long ernum, ersize;
-+ ersize = ((cfi->cfiq->EraseRegionInfo[i] >> 8) & ~0xff) * cfi->interleave;
-+ ernum = (cfi->cfiq->EraseRegionInfo[i] & 0xffff) + 1;
-+
-+ if (mtd->erasesize < ersize) {
-+ mtd->erasesize = ersize;
-+ }
-+ for (j=0; j<cfi->numchips; j++) {
-+ mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].offset = (j*devsize)+offset;
-+ mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].erasesize = ersize;
-+ mtd->eraseregions[(j*cfi->cfiq->NumEraseRegions)+i].numblocks = ernum;
-+ }
-+ offset += (ersize * ernum);
-+ }
-+
-+ // debug
-+ for (i=0; i<mtd->numeraseregions;i++){
-+ printk("%d: offset=0x%x,size=0x%x,blocks=%d\n",
-+ i,mtd->eraseregions[i].offset,
-+ mtd->eraseregions[i].erasesize,
-+ mtd->eraseregions[i].numblocks);
-+ }
-+ }
-+
-+ switch (CFIDEV_BUSWIDTH)
-+ {
-+ case 1:
-+ case 2:
-+ case 4:
-+ if (mtd->numeraseregions > 1)
-+ mtd->erase = cfi_sststd_erase_varsize;
-+ else
-+ mtd->erase = cfi_sststd_erase_onesize;
-+ mtd->read = cfi_sststd_read;
-+ mtd->write = cfi_sststd_write;
-+ break;
-+
-+ default:
-+ printk("Unsupported buswidth\n");
-+ kfree(mtd);
-+ kfree(cfi->cmdset_priv);
-+ return NULL;
-+ break;
-+ }
-+ mtd->sync = cfi_sststd_sync;
-+ mtd->suspend = cfi_sststd_suspend;
-+ mtd->resume = cfi_sststd_resume;
-+ mtd->flags = MTD_CAP_NORFLASH;
-+ map->fldrv = &cfi_sststd_chipdrv;
-+ mtd->name = map->name;
-+ MOD_INC_USE_COUNT;
-+ return mtd;
-+}
-+
-+static inline int do_read_onechip(struct map_info *map, struct flchip *chip, loff_t adr, size_t len, u_char *buf)
-+{
-+ DECLARE_WAITQUEUE(wait, current);
-+ unsigned long timeo = jiffies + HZ;
-+
-+ retry:
-+ cfi_spin_lock(chip->mutex);
-+
-+ if (chip->state != FL_READY){
-+ printk("Waiting for chip to read, status = %d\n", chip->state);
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ add_wait_queue(&chip->wq, &wait);
-+
-+ cfi_spin_unlock(chip->mutex);
-+
-+ schedule();
-+ remove_wait_queue(&chip->wq, &wait);
-+ timeo = jiffies + HZ;
-+
-+ goto retry;
-+ }
-+
-+ adr += chip->start;
-+
-+ chip->state = FL_READY;
-+
-+ map->copy_from(map, buf, adr, len);
-+
-+ wake_up(&chip->wq);
-+ cfi_spin_unlock(chip->mutex);
-+
-+ return 0;
-+}
-+
-+static int cfi_sststd_read (struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ unsigned long ofs;
-+ int chipnum;
-+ int ret = 0;
-+
-+ /* ofs: offset within the first chip that the first read should start */
-+
-+ chipnum = (from >> cfi->chipshift);
-+ ofs = from - (chipnum << cfi->chipshift);
-+
-+
-+ *retlen = 0;
-+
-+ while (len) {
-+ unsigned long thislen;
-+
-+ if (chipnum >= cfi->numchips)
-+ break;
-+
-+ if ((len + ofs -1) >> cfi->chipshift)
-+ thislen = (1<<cfi->chipshift) - ofs;
-+ else
-+ thislen = len;
-+
-+ ret = do_read_onechip(map, &cfi->chips[chipnum], ofs, thislen, buf);
-+ if (ret)
-+ break;
-+
-+ *retlen += thislen;
-+ len -= thislen;
-+ buf += thislen;
-+
-+ ofs = 0;
-+ chipnum++;
-+ }
-+ return ret;
-+}
-+
-+static int do_write_oneword(struct map_info *map, struct flchip *chip, unsigned long adr, __u32 datum, int fast)
-+{
-+ unsigned long timeo = jiffies + HZ;
-+ unsigned int Last[4];
-+ unsigned long Count = 0;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ DECLARE_WAITQUEUE(wait, current);
-+ int ret = 0;
-+
-+ retry:
-+ cfi_spin_lock(chip->mutex);
-+
-+ if (chip->state != FL_READY){
-+ printk("Waiting for chip to write, status = %d\n", chip->state);
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ add_wait_queue(&chip->wq, &wait);
-+
-+ cfi_spin_unlock(chip->mutex);
-+
-+ schedule();
-+ remove_wait_queue(&chip->wq, &wait);
-+ printk("Wake up to write:\n");
-+ timeo = jiffies + HZ;
-+
-+ goto retry;
-+ }
-+
-+ chip->state = FL_WRITING;
-+
-+ adr += chip->start;
-+ ENABLE_VPP(map);
-+ cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_send_gen_cmd(0xA0, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+
-+ cfi_write(map, datum, adr);
-+
-+ cfi_spin_unlock(chip->mutex);
-+ cfi_udelay(chip->word_write_time);
-+ cfi_spin_lock(chip->mutex);
-+
-+ Last[0] = cfi_read(map, adr);
-+ // printk("Last[0] is %x\n", Last[0]);
-+ Last[1] = cfi_read(map, adr);
-+ // printk("Last[1] is %x\n", Last[1]);
-+ Last[2] = cfi_read(map, adr);
-+ // printk("Last[2] is %x\n", Last[2]);
-+
-+ for (Count = 3; Last[(Count - 1) % 4] != Last[(Count - 2) % 4] && Count < 10000; Count++){
-+ cfi_spin_unlock(chip->mutex);
-+ cfi_udelay(10);
-+ cfi_spin_lock(chip->mutex);
-+
-+ Last[Count % 4] = cfi_read(map, adr);
-+ // printk("Last[%d%%4] is %x\n", Count, Last[Count%4]);
-+ }
-+
-+ if (Last[(Count - 1) % 4] != datum){
-+ printk("Last[%ld] is %x, datum is %x\n",(Count - 1) % 4,Last[(Count - 1) % 4],datum);
-+ cfi_send_gen_cmd(0xF0, 0, chip->start, map, cfi, cfi->device_type, NULL);
-+ DISABLE_VPP(map);
-+ ret = -EIO;
-+ }
-+ DISABLE_VPP(map);
-+ chip->state = FL_READY;
-+ wake_up(&chip->wq);
-+ cfi_spin_unlock(chip->mutex);
-+
-+ return ret;
-+}
-+
-+static int cfi_sststd_write (struct mtd_info *mtd, loff_t to , size_t len, size_t *retlen, const u_char *buf)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ int ret = 0;
-+ int chipnum;
-+ unsigned long ofs, chipstart;
-+
-+ *retlen = 0;
-+ if (!len)
-+ return 0;
-+
-+ chipnum = to >> cfi->chipshift;
-+ ofs = to - (chipnum << cfi->chipshift);
-+ chipstart = cfi->chips[chipnum].start;
-+
-+ /* If it's not bus-aligned, do the first byte write */
-+ if (ofs & (CFIDEV_BUSWIDTH-1)) {
-+ unsigned long bus_ofs = ofs & ~(CFIDEV_BUSWIDTH-1);
-+ int i = ofs - bus_ofs;
-+ int n = 0;
-+ u_char tmp_buf[4];
-+ __u32 datum;
-+
-+ map->copy_from(map, tmp_buf, bus_ofs + cfi->chips[chipnum].start, CFIDEV_BUSWIDTH);
-+ while (len && i < CFIDEV_BUSWIDTH)
-+ tmp_buf[i++] = buf[n++], len--;
-+
-+ if (cfi_buswidth_is_2()) {
-+ datum = *(__u16*)tmp_buf;
-+ } else if (cfi_buswidth_is_4()) {
-+ datum = *(__u32*)tmp_buf;
-+ } else {
-+ return -EINVAL; /* should never happen, but be safe */
-+ }
-+
-+ ret = do_write_oneword(map, &cfi->chips[chipnum],
-+ bus_ofs, datum, 0);
-+ if (ret)
-+ return ret;
-+
-+ ofs += n;
-+ buf += n;
-+ (*retlen) += n;
-+
-+ if (ofs >> cfi->chipshift) {
-+ chipnum ++;
-+ ofs = 0;
-+ if (chipnum == cfi->numchips)
-+ return 0;
-+ }
-+ }
-+
-+ /* We are now aligned, write as much as possible */
-+ while(len >= CFIDEV_BUSWIDTH) {
-+ __u32 datum;
-+
-+ if (cfi_buswidth_is_1()) {
-+ datum = *(__u8*)buf;
-+ } else if (cfi_buswidth_is_2()) {
-+ datum = *(__u16*)buf;
-+ } else if (cfi_buswidth_is_4()) {
-+ datum = *(__u32*)buf;
-+ } else {
-+ return -EINVAL;
-+ }
-+ ret = do_write_oneword(map, &cfi->chips[chipnum],
-+ ofs, datum, cfi->fast_prog);
-+ if (ret) {
-+ return ret;
-+ }
-+
-+ ofs += CFIDEV_BUSWIDTH;
-+ buf += CFIDEV_BUSWIDTH;
-+ (*retlen) += CFIDEV_BUSWIDTH;
-+ len -= CFIDEV_BUSWIDTH;
-+
-+ if (ofs >> cfi->chipshift) {
-+ chipnum ++;
-+ ofs = 0;
-+ if (chipnum == cfi->numchips)
-+ return 0;
-+ chipstart = cfi->chips[chipnum].start;
-+ }
-+ }
-+
-+ if (len & (CFIDEV_BUSWIDTH-1)) {
-+ int i = 0, n = 0;
-+ u_char tmp_buf[4];
-+ __u32 datum;
-+
-+ map->copy_from(map, tmp_buf, ofs + cfi->chips[chipnum].start, CFIDEV_BUSWIDTH);
-+ while (len--)
-+ tmp_buf[i++] = buf[n++];
-+
-+ if (cfi_buswidth_is_2()) {
-+ datum = *(__u16*)tmp_buf;
-+ } else if (cfi_buswidth_is_4()) {
-+ datum = *(__u32*)tmp_buf;
-+ } else {
-+ return -EINVAL; /* should never happen, but be safe */
-+ }
-+
-+ ret = do_write_oneword(map, &cfi->chips[chipnum],
-+ ofs, datum, 0);
-+ if (ret)
-+ return ret;
-+
-+ (*retlen) += n;
-+ }
-+
-+ return 0;
-+}
-+
-+static inline int do_erase_oneblock(struct map_info *map, struct flchip *chip, unsigned long adr)
-+{
-+ unsigned int status;
-+ unsigned long timeo = jiffies + HZ;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ unsigned int rdy_mask;
-+ DECLARE_WAITQUEUE(wait, current);
-+
-+ retry:
-+ cfi_spin_lock(chip->mutex);
-+
-+ if (chip->state != FL_READY){
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ add_wait_queue(&chip->wq, &wait);
-+
-+ cfi_spin_unlock(chip->mutex);
-+
-+ schedule();
-+ remove_wait_queue(&chip->wq, &wait);
-+ timeo = jiffies + HZ;
-+
-+ goto retry;
-+ }
-+
-+ chip->state = FL_ERASING;
-+
-+ adr += chip->start;
-+ ENABLE_VPP(map);
-+ cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_send_gen_cmd(0x80, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_send_gen_cmd(0xAA, cfi->addr_unlock1, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_send_gen_cmd(0x55, cfi->addr_unlock2, chip->start, map, cfi, CFI_DEVICETYPE_X16, NULL);
-+ cfi_write(map, CMD(0x30), adr);
-+
-+ timeo = jiffies + (HZ*20);
-+
-+ cfi_spin_unlock(chip->mutex);
-+ schedule_timeout(HZ);
-+ cfi_spin_lock(chip->mutex);
-+
-+ rdy_mask = CMD(0x80);
-+
-+ /* Once the state machine's known to be working I'll do that */
-+
-+ while ( ( (status = cfi_read(map,adr)) & rdy_mask ) != rdy_mask ) {
-+ static int z=0;
-+
-+ if (chip->state != FL_ERASING) {
-+ /* Someone's suspended the erase. Sleep */
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ add_wait_queue(&chip->wq, &wait);
-+
-+ cfi_spin_unlock(chip->mutex);
-+ printk("erase suspended. Sleeping\n");
-+
-+ schedule();
-+ remove_wait_queue(&chip->wq, &wait);
-+ timeo = jiffies + (HZ*2);
-+ cfi_spin_lock(chip->mutex);
-+ continue;
-+ }
-+
-+ /* OK Still waiting */
-+ if (time_after(jiffies, timeo)) {
-+ chip->state = FL_READY;
-+ cfi_spin_unlock(chip->mutex);
-+ printk("waiting for erase to complete timed out.");
-+ DISABLE_VPP(map);
-+ return -EIO;
-+ }
-+
-+ /* Latency issues. Drop the lock, wait a while and retry */
-+ cfi_spin_unlock(chip->mutex);
-+
-+ z++;
-+ if ( 0 && !(z % 100 ))
-+ printk("chip not ready yet after erase. looping\n");
-+
-+ cfi_udelay(1);
-+
-+ cfi_spin_lock(chip->mutex);
-+ continue;
-+ }
-+
-+ /* Done and happy. */
-+ DISABLE_VPP(map);
-+ chip->state = FL_READY;
-+ wake_up(&chip->wq);
-+ cfi_spin_unlock(chip->mutex);
-+ return 0;
-+}
-+
-+static int cfi_sststd_erase_varsize(struct mtd_info *mtd, struct erase_info *instr)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ unsigned long adr, len;
-+ int chipnum, ret = 0;
-+ int i, first;
-+ struct mtd_erase_region_info *regions = mtd->eraseregions;
-+
-+ if (instr->addr > mtd->size)
-+ return -EINVAL;
-+
-+ if ((instr->len + instr->addr) > mtd->size)
-+ return -EINVAL;
-+
-+ /* Check that both start and end of the requested erase are
-+ * aligned with the erasesize at the appropriate addresses.
-+ */
-+
-+ i = 0;
-+
-+ /* Skip all erase regions which are ended before the start of
-+ the requested erase. Actually, to save on the calculations,
-+ we skip to the first erase region which starts after the
-+ start of the requested erase, and then go back one.
-+ */
-+
-+ while (i < mtd->numeraseregions && instr->addr >= regions[i].offset)
-+ i++;
-+ i--;
-+
-+ /* OK, now i is pointing at the erase region in which this
-+ erase request starts. Check the start of the requested
-+ erase range is aligned with the erase size which is in
-+ effect here.
-+ */
-+
-+ if (instr->addr & (regions[i].erasesize-1))
-+ return -EINVAL;
-+
-+ /* Remember the erase region we start on */
-+ first = i;
-+
-+ /* Next, check that the end of the requested erase is aligned
-+ * with the erase region at that address.
-+ */
-+
-+ while (i<mtd->numeraseregions && (instr->addr + instr->len) >= regions[i].offset)
-+ i++;
-+
-+ /* As before, drop back one to point at the region in which
-+ the address actually falls
-+ */
-+ i--;
-+
-+ if ((instr->addr + instr->len) & (regions[i].erasesize-1))
-+ return -EINVAL;
-+
-+ chipnum = instr->addr >> cfi->chipshift;
-+ adr = instr->addr - (chipnum << cfi->chipshift);
-+ len = instr->len;
-+
-+ i=first;
-+
-+ while(len) {
-+ ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr);
-+
-+ if (ret)
-+ return ret;
-+
-+ adr += regions[i].erasesize;
-+ len -= regions[i].erasesize;
-+
-+ if (adr % (1<< cfi->chipshift) == ((regions[i].offset + (regions[i].erasesize * regions[i].numblocks)) %( 1<< cfi->chipshift)))
-+ i++;
-+
-+ if (adr >> cfi->chipshift) {
-+ adr = 0;
-+ chipnum++;
-+
-+ if (chipnum >= cfi->numchips)
-+ break;
-+ }
-+ }
-+
-+ instr->state = MTD_ERASE_DONE;
-+ if (instr->callback)
-+ instr->callback(instr);
-+
-+ return 0;
-+}
-+
-+static int cfi_sststd_erase_onesize(struct mtd_info *mtd, struct erase_info *instr)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ unsigned long adr, len;
-+ int chipnum, ret = 0;
-+
-+ if (instr->addr & (mtd->erasesize - 1))
-+ return -EINVAL;
-+
-+ if (instr->len & (mtd->erasesize -1))
-+ return -EINVAL;
-+
-+ if ((instr->len + instr->addr) > mtd->size)
-+ return -EINVAL;
-+
-+ chipnum = instr->addr >> cfi->chipshift;
-+ adr = instr->addr - (chipnum << cfi->chipshift);
-+ len = instr->len;
-+
-+ while(len) {
-+ ret = do_erase_oneblock(map, &cfi->chips[chipnum], adr);
-+
-+ if (ret)
-+ return ret;
-+
-+ adr += mtd->erasesize;
-+ len -= mtd->erasesize;
-+
-+ if (adr >> cfi->chipshift) {
-+ adr = 0;
-+ chipnum++;
-+
-+ if (chipnum >= cfi->numchips)
-+ break;
-+ }
-+ }
-+
-+ instr->state = MTD_ERASE_DONE;
-+ if (instr->callback)
-+ instr->callback(instr);
-+
-+ return 0;
-+}
-+
-+static void cfi_sststd_sync (struct mtd_info *mtd)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ int i;
-+ struct flchip *chip;
-+ int ret = 0;
-+ DECLARE_WAITQUEUE(wait, current);
-+
-+ for (i=0; !ret && i<cfi->numchips; i++) {
-+ chip = &cfi->chips[i];
-+
-+ retry:
-+ cfi_spin_lock(chip->mutex);
-+
-+ switch(chip->state) {
-+ case FL_READY:
-+ case FL_STATUS:
-+ case FL_CFI_QUERY:
-+ case FL_JEDEC_QUERY:
-+ chip->oldstate = chip->state;
-+ chip->state = FL_SYNCING;
-+ /* No need to wake_up() on this state change -
-+ * as the whole point is that nobody can do anything
-+ * with the chip now anyway.
-+ */
-+ case FL_SYNCING:
-+ cfi_spin_unlock(chip->mutex);
-+ break;
-+
-+ default:
-+ /* Not an idle state */
-+ add_wait_queue(&chip->wq, &wait);
-+
-+ cfi_spin_unlock(chip->mutex);
-+
-+ schedule();
-+
-+ remove_wait_queue(&chip->wq, &wait);
-+
-+ goto retry;
-+ }
-+ }
-+
-+ /* Unlock the chips again */
-+
-+ for (i--; i >=0; i--) {
-+ chip = &cfi->chips[i];
-+
-+ cfi_spin_lock(chip->mutex);
-+
-+ if (chip->state == FL_SYNCING) {
-+ chip->state = chip->oldstate;
-+ wake_up(&chip->wq);
-+ }
-+ cfi_spin_unlock(chip->mutex);
-+ }
-+}
-+
-+
-+static int cfi_sststd_suspend(struct mtd_info *mtd)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ int i;
-+ struct flchip *chip;
-+ int ret = 0;
-+//printk("suspend\n");
-+
-+ for (i=0; !ret && i<cfi->numchips; i++) {
-+ chip = &cfi->chips[i];
-+
-+ cfi_spin_lock(chip->mutex);
-+
-+ switch(chip->state) {
-+ case FL_READY:
-+ case FL_STATUS:
-+ case FL_CFI_QUERY:
-+ case FL_JEDEC_QUERY:
-+ chip->oldstate = chip->state;
-+ chip->state = FL_PM_SUSPENDED;
-+ /* No need to wake_up() on this state change -
-+ * as the whole point is that nobody can do anything
-+ * with the chip now anyway.
-+ */
-+ case FL_PM_SUSPENDED:
-+ break;
-+
-+ default:
-+ ret = -EAGAIN;
-+ break;
-+ }
-+ cfi_spin_unlock(chip->mutex);
-+ }
-+
-+ /* Unlock the chips again */
-+
-+ if (ret) {
-+ for (i--; i >=0; i--) {
-+ chip = &cfi->chips[i];
-+
-+ cfi_spin_lock(chip->mutex);
-+
-+ if (chip->state == FL_PM_SUSPENDED) {
-+ chip->state = chip->oldstate;
-+ wake_up(&chip->wq);
-+ }
-+ cfi_spin_unlock(chip->mutex);
-+ }
-+ }
-+
-+ return ret;
-+}
-+
-+static void cfi_sststd_resume(struct mtd_info *mtd)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ int i;
-+ struct flchip *chip;
-+//printk("resume\n");
-+
-+ for (i=0; i<cfi->numchips; i++) {
-+
-+ chip = &cfi->chips[i];
-+
-+ cfi_spin_lock(chip->mutex);
-+
-+ if (chip->state == FL_PM_SUSPENDED) {
-+ chip->state = FL_READY;
-+ cfi_write(map, CMD(0xF0), chip->start);
-+ wake_up(&chip->wq);
-+ }
-+ else
-+ printk("Argh. Chip not in PM_SUSPENDED state upon resume()\n");
-+
-+ cfi_spin_unlock(chip->mutex);
-+ }
-+}
-+
-+static void cfi_sststd_destroy(struct mtd_info *mtd)
-+{
-+ struct map_info *map = mtd->priv;
-+ struct cfi_private *cfi = map->fldrv_priv;
-+ kfree(cfi->cmdset_priv);
-+ kfree(cfi);
-+}
-+
-+#if LINUX_VERSION_CODE < 0x20212 && defined(MODULE)
-+#define cfi_sststd_init init_module
-+#define cfi_sststd_exit cleanup_module
-+#endif
-+
-+static char im_name[]="cfi_cmdset_0701";
-+
-+mod_init_t cfi_sststd_init(void)
-+{
-+ inter_module_register(im_name, THIS_MODULE, &cfi_cmdset_0701);
-+ return 0;
-+}
-+
-+mod_exit_t cfi_sststd_exit(void)
-+{
-+ inter_module_unregister(im_name);
-+}
-+
-+module_init(cfi_sststd_init);
-+module_exit(cfi_sststd_exit);
-+
---- linux-2.4.20/drivers/mtd/chips/cfi_probe.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/chips/cfi_probe.c 2005-01-07 05:39:02.000000000 -0500
-@@ -58,8 +58,15 @@
- cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
- cfi_send_gen_cmd(0x98, 0x55, base, map, cfi, cfi->device_type, NULL);
-
-+ if (!qry_present(map,base,cfi)) {
-+ /* rather broken SST cfi probe (requires SST unlock) */
-+ cfi_send_gen_cmd(0xF0, 0, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0xAA, 0x5555, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x55, 0x2AAA, base, map, cfi, cfi->device_type, NULL);
-+ cfi_send_gen_cmd(0x98, 0x5555, base, map, cfi, cfi->device_type, NULL);
- if (!qry_present(map,base,cfi))
- return 0;
-+ }
-
- if (!cfi->numchips) {
- /* This is the first time we're called. Set up the CFI
---- linux-2.4.20/drivers/mtd/chips/gen_probe.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/chips/gen_probe.c 2005-01-07 05:39:02.000000000 -0500
-@@ -289,6 +289,10 @@
- case 0x0002:
- return cfi_cmdset_0002(map, primary);
- #endif
-+#ifdef CONFIG_MTD_CFI_SSTSTD
-+ case 0x0701:
-+ return cfi_cmdset_0701(map, primary);
-+#endif
- }
-
- return cfi_cmdset_unknown(map, primary);
---- linux-2.4.20/drivers/mtd/devices/Config.in~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/devices/Config.in 2005-01-07 05:39:02.000000000 -0500
-@@ -5,6 +5,7 @@
- mainmenu_option next_comment
-
- comment 'Self-contained MTD device drivers'
-+bool ' Broadcom Chipcommon Serial Flash support' CONFIG_MTD_SFLASH
- dep_tristate ' Ramix PMC551 PCI Mezzanine RAM card support' CONFIG_MTD_PMC551 $CONFIG_MTD $CONFIG_PCI
- if [ "$CONFIG_MTD_PMC551" = "y" -o "$CONFIG_MTD_PMC551" = "m" ]; then
- bool ' PMC551 256M DRAM Bugfix' CONFIG_MTD_PMC551_BUGFIX
---- linux-2.4.20/drivers/mtd/devices/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/devices/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -12,6 +12,7 @@
- # here where previously there was none. We now have to ensure that
- # doc200[01].o are linked before docprobe.o
-
-+obj-$(CONFIG_MTD_SFLASH) += sflash.o
- obj-$(CONFIG_MTD_DOC1000) += doc1000.o
- obj-$(CONFIG_MTD_DOC2000) += doc2000.o
- obj-$(CONFIG_MTD_DOC2001) += doc2001.o
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/mtd/devices/sflash.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,283 @@
-+/*
-+ * Broadcom SiliconBackplane chipcommon serial flash interface
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: sflash.c,v 1.1.1.7 2004/04/12 04:31:46 honor Exp $
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/slab.h>
-+#include <linux/ioport.h>
-+#include <linux/mtd/compatmac.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/errno.h>
-+#include <linux/pci.h>
-+#include <asm/io.h>
-+
-+#include <typedefs.h>
-+#include <bcmdevs.h>
-+#include <bcmutils.h>
-+#include <osl.h>
-+#include <bcmutils.h>
-+#include <bcmnvram.h>
-+#include <sbconfig.h>
-+#include <sbchipc.h>
-+#include <sflash.h>
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+extern struct mtd_partition * init_mtd_partitions(struct mtd_info *mtd, size_t size);
-+#endif
-+
-+struct sflash_mtd {
-+ chipcregs_t *cc;
-+ struct semaphore lock;
-+ struct mtd_info mtd;
-+ struct mtd_erase_region_info region;
-+};
-+
-+/* Private global state */
-+static struct sflash_mtd sflash;
-+
-+static int
-+sflash_mtd_poll(struct sflash_mtd *sflash, unsigned int offset, int timeout)
-+{
-+ int now = jiffies;
-+ int ret = 0;
-+
-+ for (;;) {
-+ if (!sflash_poll(sflash->cc, offset)) {
-+ ret = 0;
-+ break;
-+ }
-+ if (time_after(jiffies, now + timeout)) {
-+ printk(KERN_ERR "sflash: timeout\n");
-+ ret = -ETIMEDOUT;
-+ break;
-+ }
-+ if (current->need_resched) {
-+ set_current_state(TASK_UNINTERRUPTIBLE);
-+ schedule_timeout(timeout / 10);
-+ } else
-+ udelay(1);
-+ }
-+
-+ return ret;
-+}
-+
-+static int
-+sflash_mtd_read(struct mtd_info *mtd, loff_t from, size_t len, size_t *retlen, u_char *buf)
-+{
-+ struct sflash_mtd *sflash = (struct sflash_mtd *) mtd->priv;
-+ int bytes, ret = 0;
-+
-+ /* Check address range */
-+ if (!len)
-+ return 0;
-+ if ((from + len) > mtd->size)
-+ return -EINVAL;
-+
-+ down(&sflash->lock);
-+
-+ *retlen = 0;
-+ while (len) {
-+ if ((bytes = sflash_read(sflash->cc, (uint) from, len, buf)) < 0) {
-+ ret = bytes;
-+ break;
-+ }
-+ from += (loff_t) bytes;
-+ len -= bytes;
-+ buf += bytes;
-+ *retlen += bytes;
-+ }
-+
-+ up(&sflash->lock);
-+
-+ return ret;
-+}
-+
-+static int
-+sflash_mtd_write(struct mtd_info *mtd, loff_t to, size_t len, size_t *retlen, const u_char *buf)
-+{
-+ struct sflash_mtd *sflash = (struct sflash_mtd *) mtd->priv;
-+ int bytes, ret = 0;
-+
-+ /* Check address range */
-+ if (!len)
-+ return 0;
-+ if ((to + len) > mtd->size)
-+ return -EINVAL;
-+
-+ down(&sflash->lock);
-+
-+ *retlen = 0;
-+ while (len) {
-+ if ((bytes = sflash_write(sflash->cc, (uint) to, len, buf)) < 0) {
-+ ret = bytes;
-+ break;
-+ }
-+ if ((ret = sflash_mtd_poll(sflash, (unsigned int) to, HZ / 10)))
-+ break;
-+ to += (loff_t) bytes;
-+ len -= bytes;
-+ buf += bytes;
-+ *retlen += bytes;
-+ }
-+
-+ up(&sflash->lock);
-+
-+ return ret;
-+}
-+
-+static int
-+sflash_mtd_erase(struct mtd_info *mtd, struct erase_info *erase)
-+{
-+ struct sflash_mtd *sflash = (struct sflash_mtd *) mtd->priv;
-+ int i, j, ret = 0;
-+ unsigned int addr, len;
-+
-+ /* Check address range */
-+ if (!erase->len)
-+ return 0;
-+ if ((erase->addr + erase->len) > mtd->size)
-+ return -EINVAL;
-+
-+ addr = erase->addr;
-+ len = erase->len;
-+
-+ down(&sflash->lock);
-+
-+ /* Ensure that requested region is aligned */
-+ for (i = 0; i < mtd->numeraseregions; i++) {
-+ for (j = 0; j < mtd->eraseregions[i].numblocks; j++) {
-+ if (addr == mtd->eraseregions[i].offset + mtd->eraseregions[i].erasesize * j &&
-+ len >= mtd->eraseregions[i].erasesize) {
-+ if ((ret = sflash_erase(sflash->cc, addr)) < 0)
-+ break;
-+ if ((ret = sflash_mtd_poll(sflash, addr, 10 * HZ)))
-+ break;
-+ addr += mtd->eraseregions[i].erasesize;
-+ len -= mtd->eraseregions[i].erasesize;
-+ }
-+ }
-+ if (ret)
-+ break;
-+ }
-+
-+ up(&sflash->lock);
-+
-+ /* Set erase status */
-+ if (ret)
-+ erase->state = MTD_ERASE_FAILED;
-+ else
-+ erase->state = MTD_ERASE_DONE;
-+
-+ /* Call erase callback */
-+ if (erase->callback)
-+ erase->callback(erase);
-+
-+ return ret;
-+}
-+
-+#if LINUX_VERSION_CODE < 0x20212 && defined(MODULE)
-+#define sflash_mtd_init init_module
-+#define sflash_mtd_exit cleanup_module
-+#endif
-+
-+mod_init_t
-+sflash_mtd_init(void)
-+{
-+ struct pci_dev *pdev;
-+ int ret = 0;
-+ struct sflash *info;
-+ uint i;
-+#ifdef CONFIG_MTD_PARTITIONS
-+ struct mtd_partition *parts;
-+#endif
-+
-+ if (!(pdev = pci_find_device(VENDOR_BROADCOM, SB_CC, NULL))) {
-+ printk(KERN_ERR "sflash: chipcommon not found\n");
-+ return -ENODEV;
-+ }
-+
-+ memset(&sflash, 0, sizeof(struct sflash_mtd));
-+ init_MUTEX(&sflash.lock);
-+
-+ /* Map registers and flash base */
-+ if (!(sflash.cc = ioremap_nocache(pci_resource_start(pdev, 0),
-+ pci_resource_len(pdev, 0)))) {
-+ printk(KERN_ERR "sflash: error mapping registers\n");
-+ ret = -EIO;
-+ goto fail;
-+ }
-+
-+ /* Initialize serial flash access */
-+ info = sflash_init(sflash.cc);
-+
-+ if (!info) {
-+ printk(KERN_ERR "sflash: found no supported devices\n");
-+ ret = -ENODEV;
-+ goto fail;
-+ }
-+
-+ /* Setup region info */
-+ sflash.region.offset = 0;
-+ sflash.region.erasesize = info->blocksize;
-+ sflash.region.numblocks = info->numblocks;
-+ if (sflash.region.erasesize > sflash.mtd.erasesize)
-+ sflash.mtd.erasesize = sflash.region.erasesize;
-+ sflash.mtd.size = info->size;
-+ sflash.mtd.numeraseregions = 1;
-+
-+ /* Register with MTD */
-+ sflash.mtd.name = "sflash";
-+ sflash.mtd.type = MTD_NORFLASH;
-+ sflash.mtd.flags = MTD_CAP_NORFLASH;
-+ sflash.mtd.eraseregions = &sflash.region;
-+ sflash.mtd.module = THIS_MODULE;
-+ sflash.mtd.erase = sflash_mtd_erase;
-+ sflash.mtd.read = sflash_mtd_read;
-+ sflash.mtd.write = sflash_mtd_write;
-+ sflash.mtd.priv = &sflash;
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+ parts = init_mtd_partitions(&sflash.mtd, sflash.mtd.size);
-+ for (i = 0; parts[i].name; i++);
-+ ret = add_mtd_partitions(&sflash.mtd, parts, i);
-+#else
-+ ret = add_mtd_device(&sflash.mtd);
-+#endif
-+ if (ret) {
-+ printk(KERN_ERR "sflash: add_mtd failed\n");
-+ goto fail;
-+ }
-+
-+ return 0;
-+
-+ fail:
-+ if (sflash.cc)
-+ iounmap((void *) sflash.cc);
-+ return ret;
-+}
-+
-+mod_exit_t
-+sflash_mtd_exit(void)
-+{
-+#ifdef CONFIG_MTD_PARTITIONS
-+ del_mtd_partitions(&sflash.mtd);
-+#else
-+ del_mtd_device(&sflash.mtd);
-+#endif
-+ iounmap((void *) sflash.cc);
-+}
-+
-+module_init(sflash_mtd_init);
-+module_exit(sflash_mtd_exit);
---- linux-2.4.20/drivers/mtd/maps/Config.in~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/maps/Config.in 2005-01-07 05:39:02.000000000 -0500
-@@ -44,6 +44,7 @@
- fi
-
- if [ "$CONFIG_MIPS" = "y" ]; then
-+ dep_tristate ' CFI Flash device mapped on Broadcom BCM947XX boards' CONFIG_MTD_BCM947XX $CONFIG_MTD_CFI
- dep_tristate ' Pb1000 boot flash device' CONFIG_MTD_PB1000 $CONFIG_MIPS_PB1000
- dep_tristate ' Pb1500 MTD support' CONFIG_MTD_PB1500 $CONFIG_MIPS_PB1500
- dep_tristate ' Pb1100 MTD support' CONFIG_MTD_PB1100 $CONFIG_MIPS_PB1100
---- linux-2.4.20/drivers/mtd/maps/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/maps/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -6,6 +6,7 @@
- O_TARGET := mapslink.o
-
- # Chip mappings
-+obj-$(CONFIG_MTD_BCM947XX) += bcm947xx-flash.o
- obj-$(CONFIG_MTD_CDB89712) += cdb89712.o
- obj-$(CONFIG_MTD_ARM_INTEGRATOR)+= integrator-flash.o
- obj-$(CONFIG_MTD_CFI_FLAGADM) += cfi_flagadm.o
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/mtd/maps/bcm947xx-flash.c 2005-01-08 12:16:21.889534944 -0500
-@@ -0,0 +1,225 @@
-+/*
-+ * Flash mapping for BCM947XX boards
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: bcm947xx-flash.c,v 1.8 2004/04/12 05:42:38 honor Exp $
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <asm/io.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/config.h>
-+
-+#include <typedefs.h>
-+#include <bcmnvram.h>
-+#include <bcmutils.h>
-+#include <sbconfig.h>
-+#include <sbchipc.h>
-+#include <sbutils.h>
-+#include <trxhdr.h>
-+
-+/* Global SB handle */
-+extern void *bcm947xx_sbh;
-+extern spinlock_t bcm947xx_sbh_lock;
-+
-+/* Convenience */
-+#define sbh bcm947xx_sbh
-+#define sbh_lock bcm947xx_sbh_lock
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+extern struct mtd_partition * init_mtd_partitions(struct mtd_info *mtd, size_t size);
-+#endif
-+
-+#define WINDOW_ADDR 0x1fc00000
-+#define WINDOW_SIZE 0x400000
-+#define BUSWIDTH 2
-+
-+/* e.g., flash=2M or flash=4M */
-+static int flash = 0;
-+MODULE_PARM(flash, "i");
-+static int __init
-+bcm947xx_setup(char *str)
-+{
-+ flash = memparse(str, &str);
-+ return 1;
-+}
-+__setup("flash=", bcm947xx_setup);
-+
-+static struct mtd_info *bcm947xx_mtd;
-+
-+__u8 bcm947xx_map_read8(struct map_info *map, unsigned long ofs)
-+{
-+ if (map->map_priv_2 == 1)
-+ return __raw_readb(map->map_priv_1 + ofs);
-+
-+ u16 val = __raw_readw(map->map_priv_1 + (ofs & ~1));
-+ if (ofs & 1)
-+ return ((val >> 8) & 0xff);
-+ else
-+ return (val & 0xff);
-+}
-+
-+__u16 bcm947xx_map_read16(struct map_info *map, unsigned long ofs)
-+{
-+ return __raw_readw(map->map_priv_1 + ofs);
-+}
-+
-+__u32 bcm947xx_map_read32(struct map_info *map, unsigned long ofs)
-+{
-+ return __raw_readl(map->map_priv_1 + ofs);
-+}
-+
-+void bcm947xx_map_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
-+{
-+ memcpy_fromio(to, map->map_priv_1 + from, len);
-+}
-+
-+void bcm947xx_map_write8(struct map_info *map, __u8 d, unsigned long adr)
-+{
-+ __raw_writeb(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+void bcm947xx_map_write16(struct map_info *map, __u16 d, unsigned long adr)
-+{
-+ __raw_writew(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+void bcm947xx_map_write32(struct map_info *map, __u32 d, unsigned long adr)
-+{
-+ __raw_writel(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+void bcm947xx_map_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
-+{
-+ memcpy_toio(map->map_priv_1 + to, from, len);
-+}
-+
-+struct map_info bcm947xx_map = {
-+ name: "Physically mapped flash",
-+ size: WINDOW_SIZE,
-+ buswidth: BUSWIDTH,
-+ read8: bcm947xx_map_read8,
-+ read16: bcm947xx_map_read16,
-+ read32: bcm947xx_map_read32,
-+ copy_from: bcm947xx_map_copy_from,
-+ write8: bcm947xx_map_write8,
-+ write16: bcm947xx_map_write16,
-+ write32: bcm947xx_map_write32,
-+ copy_to: bcm947xx_map_copy_to
-+};
-+
-+#if LINUX_VERSION_CODE < 0x20212 && defined(MODULE)
-+#define init_bcm947xx_map init_module
-+#define cleanup_bcm947xx_map cleanup_module
-+#endif
-+
-+mod_init_t init_bcm947xx_map(void)
-+{
-+ ulong flags;
-+ uint coreidx;
-+ chipcregs_t *cc;
-+ uint32 fltype;
-+ uint window_addr = 0, window_size = 0;
-+ size_t size;
-+ int ret = 0;
-+#ifdef CONFIG_MTD_PARTITIONS
-+ struct mtd_partition *parts;
-+ int i;
-+#endif
-+
-+ spin_lock_irqsave(&sbh_lock, flags);
-+ coreidx = sb_coreidx(sbh);
-+
-+ /* Check strapping option if chipcommon exists */
-+ if ((cc = sb_setcore(sbh, SB_CC, 0))) {
-+ fltype = readl(&cc->capabilities) & CAP_FLASH_MASK;
-+ if (fltype == PFLASH) {
-+ bcm947xx_map.map_priv_2 = 1;
-+ window_addr = 0x1c000000;
-+ bcm947xx_map.size = window_size = 32 * 1024 * 1024;
-+ if ((readl(&cc->flash_config) & CC_CFG_DS) == 0)
-+ bcm947xx_map.buswidth = 1;
-+ }
-+ } else {
-+ fltype = PFLASH;
-+ bcm947xx_map.map_priv_2 = 0;
-+ window_addr = WINDOW_ADDR;
-+ window_size = WINDOW_SIZE;
-+ }
-+
-+ sb_setcoreidx(sbh, coreidx);
-+ spin_unlock_irqrestore(&sbh_lock, flags);
-+
-+ if (fltype != PFLASH) {
-+ printk(KERN_ERR "pflash: found no supported devices\n");
-+ ret = -ENODEV;
-+ goto fail;
-+ }
-+
-+ bcm947xx_map.map_priv_1 = (unsigned long) ioremap(window_addr, window_size);
-+ if (!bcm947xx_map.map_priv_1) {
-+ printk(KERN_ERR "pflash: ioremap failed\n");
-+ ret = -EIO;
-+ goto fail;
-+ }
-+
-+ if (!(bcm947xx_mtd = do_map_probe("cfi_probe", &bcm947xx_map))) {
-+ printk(KERN_ERR "pflash: cfi_probe failed\n");
-+ ret = -ENXIO;
-+ goto fail;
-+ }
-+
-+ bcm947xx_mtd->module = THIS_MODULE;
-+
-+ /* Allow size override for testing */
-+ size = flash ? : bcm947xx_mtd->size;
-+
-+ printk(KERN_NOTICE "Flash device: 0x%x at 0x%x\n", size, window_addr);
-+
-+#ifdef CONFIG_MTD_PARTITIONS
-+ parts = init_mtd_partitions(bcm947xx_mtd, size);
-+ for (i = 0; parts[i].name; i++);
-+ ret = add_mtd_partitions(bcm947xx_mtd, parts, i);
-+ if (ret) {
-+ printk(KERN_ERR "pflash: add_mtd_partitions failed\n");
-+ goto fail;
-+ }
-+#endif
-+
-+ return 0;
-+
-+ fail:
-+ if (bcm947xx_mtd)
-+ map_destroy(bcm947xx_mtd);
-+ if (bcm947xx_map.map_priv_1)
-+ iounmap((void *) bcm947xx_map.map_priv_1);
-+ bcm947xx_map.map_priv_1 = 0;
-+ return ret;
-+}
-+
-+mod_exit_t cleanup_bcm947xx_map(void)
-+{
-+#ifdef CONFIG_MTD_PARTITIONS
-+ del_mtd_partitions(bcm947xx_mtd);
-+#endif
-+ map_destroy(bcm947xx_mtd);
-+ iounmap((void *) bcm947xx_map.map_priv_1);
-+ bcm947xx_map.map_priv_1 = 0;
-+}
-+
-+module_init(init_bcm947xx_map);
-+module_exit(cleanup_bcm947xx_map);
---- linux-2.4.20/drivers/mtd/mtdblock_ro.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/drivers/mtd/mtdblock_ro.c 2005-01-08 12:16:19.492899288 -0500
-@@ -1,18 +1,16 @@
- /*
-- * $Id: mtdblock_ro.c,v 1.12 2001/11/20 11:42:33 dwmw2 Exp $
-+ * Direct MTD block device access
- *
-- * Read-only version of the mtdblock device, without the
-- * read/erase/modify/writeback stuff
-+ * $Id: mtdblock_ro.c,v 1.1.1.4 2003/10/14 08:08:16 sparq Exp $
-+ *
-+ * 02-nov-2000 Nicolas Pitre Added read-modify-write with cache
- */
-
--#ifdef MTDBLOCK_DEBUG
--#define DEBUGLVL debug
--#endif
--
--
--#include <linux/module.h>
-+#include <linux/config.h>
- #include <linux/types.h>
--
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/slab.h>
- #include <linux/mtd/mtd.h>
- #include <linux/mtd/compatmac.h>
-
-@@ -24,56 +22,106 @@
- #define DEVICE_OFF(device)
- #define DEVICE_NO_RANDOM
- #include <linux/blk.h>
--
-+/* for old kernels... */
-+#ifndef QUEUE_EMPTY
-+#define QUEUE_EMPTY (!CURRENT)
-+#endif
- #if LINUX_VERSION_CODE < 0x20300
--#define RQFUNC_ARG void
--#define blkdev_dequeue_request(req) do {CURRENT = req->next;} while (0)
-+#define QUEUE_PLUGGED (blk_dev[MAJOR_NR].plug_tq.sync)
- #else
--#define RQFUNC_ARG request_queue_t *q
-+#define QUEUE_PLUGGED (blk_dev[MAJOR_NR].request_queue.plugged)
- #endif
-
--#ifdef MTDBLOCK_DEBUG
--static int debug = MTDBLOCK_DEBUG;
--MODULE_PARM(debug, "i");
-+#ifdef CONFIG_DEVFS_FS
-+#include <linux/devfs_fs_kernel.h>
-+static void mtd_notify_add(struct mtd_info* mtd);
-+static void mtd_notify_remove(struct mtd_info* mtd);
-+static struct mtd_notifier notifier = {
-+ mtd_notify_add,
-+ mtd_notify_remove,
-+ NULL
-+};
-+static devfs_handle_t devfs_dir_handle = NULL;
-+static devfs_handle_t devfs_ro_handle[MAX_MTD_DEVICES];
- #endif
-
--#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,14)
--#define BLK_INC_USE_COUNT MOD_INC_USE_COUNT
--#define BLK_DEC_USE_COUNT MOD_DEC_USE_COUNT
--#else
--#define BLK_INC_USE_COUNT do {} while(0)
--#define BLK_DEC_USE_COUNT do {} while(0)
--#endif
-+static struct mtdblk_dev {
-+ struct mtd_info *mtd; /* Locked */
-+ int count;
-+} *mtdblks[MAX_MTD_DEVICES];
-
--static int mtd_sizes[MAX_MTD_DEVICES];
-+static spinlock_t mtdblks_lock;
-
-+static int mtd_sizes[MAX_MTD_DEVICES];
-
- static int mtdblock_open(struct inode *inode, struct file *file)
- {
-- struct mtd_info *mtd = NULL;
--
-+ struct mtdblk_dev *mtdblk;
-+ struct mtd_info *mtd;
- int dev;
-
-- DEBUG(1,"mtdblock_open\n");
-+ DEBUG(MTD_DEBUG_LEVEL1,"mtdblock_open\n");
-
-- if (inode == 0)
-+ if (!inode)
- return -EINVAL;
-
- dev = MINOR(inode->i_rdev);
-+ if (dev >= MAX_MTD_DEVICES)
-+ return -EINVAL;
-
- mtd = get_mtd_device(NULL, dev);
- if (!mtd)
-- return -EINVAL;
-+ return -ENODEV;
- if (MTD_ABSENT == mtd->type) {
- put_mtd_device(mtd);
-- return -EINVAL;
-+ return -ENODEV;
- }
-
-- BLK_INC_USE_COUNT;
-+ spin_lock(&mtdblks_lock);
-
-- mtd_sizes[dev] = mtd->size>>9;
-+ /* If it's already open, no need to piss about. */
-+ if (mtdblks[dev]) {
-+ mtdblks[dev]->count++;
-+ spin_unlock(&mtdblks_lock);
-+ return 0;
-+ }
-
-- DEBUG(1, "ok\n");
-+ /* OK, it's not open. Try to find it */
-+
-+ /* First we have to drop the lock, because we have to
-+ to things which might sleep.
-+ */
-+ spin_unlock(&mtdblks_lock);
-+
-+ mtdblk = kmalloc(sizeof(struct mtdblk_dev), GFP_KERNEL);
-+ if (!mtdblk) {
-+ put_mtd_device(mtd);
-+ return -ENOMEM;
-+ }
-+ memset(mtdblk, 0, sizeof(*mtdblk));
-+ mtdblk->count = 1;
-+ mtdblk->mtd = mtd;
-+
-+ /* OK, we've created a new one. Add it to the list. */
-+
-+ spin_lock(&mtdblks_lock);
-+
-+ if (mtdblks[dev]) {
-+ /* Another CPU made one at the same time as us. */
-+ mtdblks[dev]->count++;
-+ spin_unlock(&mtdblks_lock);
-+ put_mtd_device(mtdblk->mtd);
-+ kfree(mtdblk);
-+ return 0;
-+ }
-+
-+ mtdblks[dev] = mtdblk;
-+ mtd_sizes[dev] = mtdblk->mtd->size/1024;
-+ set_device_ro (inode->i_rdev, !(mtdblk->mtd->flags & MTD_WRITEABLE));
-+
-+ spin_unlock(&mtdblks_lock);
-+
-+ DEBUG(MTD_DEBUG_LEVEL1, "ok\n");
-
- return 0;
- }
-@@ -81,162 +129,169 @@
- static release_t mtdblock_release(struct inode *inode, struct file *file)
- {
- int dev;
-- struct mtd_info *mtd;
--
-- DEBUG(1, "mtdblock_release\n");
-+ struct mtdblk_dev *mtdblk;
-+ DEBUG(MTD_DEBUG_LEVEL1, "mtdblock_release\n");
-
- if (inode == NULL)
- release_return(-ENODEV);
-
- dev = MINOR(inode->i_rdev);
-- mtd = __get_mtd_device(NULL, dev);
-+ mtdblk = mtdblks[dev];
-
-- if (!mtd) {
-- printk(KERN_WARNING "MTD device is absent on mtd_release!\n");
-- BLK_DEC_USE_COUNT;
-- release_return(-ENODEV);
-+ spin_lock(&mtdblks_lock);
-+ if (!--mtdblk->count) {
-+ /* It was the last usage. Free the device */
-+ mtdblks[dev] = NULL;
-+ spin_unlock(&mtdblks_lock);
-+ if (mtdblk->mtd->sync)
-+ mtdblk->mtd->sync(mtdblk->mtd);
-+ put_mtd_device(mtdblk->mtd);
-+ kfree(mtdblk);
-+ } else {
-+ spin_unlock(&mtdblks_lock);
- }
-
-- if (mtd->sync)
-- mtd->sync(mtd);
--
-- put_mtd_device(mtd);
--
-- DEBUG(1, "ok\n");
-+ DEBUG(MTD_DEBUG_LEVEL1, "ok\n");
-
-- BLK_DEC_USE_COUNT;
- release_return(0);
- }
-
-
--static void mtdblock_request(RQFUNC_ARG)
-+/*
-+ * This is a special request_fn because it is executed in a process context
-+ * to be able to sleep independently of the caller. The io_request_lock
-+ * is held upon entry and exit.
-+ * The head of our request queue is considered active so there is no need
-+ * to dequeue requests before we are done.
-+ */
-+static void handle_mtdblock_request(void)
- {
-- struct request *current_request;
-- unsigned int res = 0;
-- struct mtd_info *mtd;
-+ struct request *req;
-+ struct mtdblk_dev *mtdblk;
-+ unsigned int res;
-
-- while (1)
-- {
-- /* Grab the Request and unlink it from the request list, INIT_REQUEST
-- will execute a return if we are done. */
-+ for (;;) {
- INIT_REQUEST;
-- current_request = CURRENT;
--
-- if (MINOR(current_request->rq_dev) >= MAX_MTD_DEVICES)
-- {
-- printk("mtd: Unsupported device!\n");
-- end_request(0);
-- continue;
-- }
--
-- // Grab our MTD structure
--
-- mtd = __get_mtd_device(NULL, MINOR(current_request->rq_dev));
-- if (!mtd) {
-- printk("MTD device %d doesn't appear to exist any more\n", CURRENT_DEV);
-- end_request(0);
-- }
-+ req = CURRENT;
-+ spin_unlock_irq(&io_request_lock);
-+ mtdblk = mtdblks[MINOR(req->rq_dev)];
-+ res = 0;
-
-- if (current_request->sector << 9 > mtd->size ||
-- (current_request->sector + current_request->nr_sectors) << 9 > mtd->size)
-- {
-- printk("mtd: Attempt to read past end of device!\n");
-- printk("size: %x, sector: %lx, nr_sectors %lx\n", mtd->size, current_request->sector, current_request->nr_sectors);
-- end_request(0);
-- continue;
-- }
-+ if (MINOR(req->rq_dev) >= MAX_MTD_DEVICES)
-+ panic(__FUNCTION__": minor out of bound");
-
-- /* Remove the request we are handling from the request list so nobody messes
-- with it */
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
-- /* Now drop the lock that the ll_rw_blk functions grabbed for us
-- and process the request. This is necessary due to the extreme time
-- we spend processing it. */
-- spin_unlock_irq(&io_request_lock);
--#endif
-+ if ((req->sector + req->current_nr_sectors) > (mtdblk->mtd->size >> 9))
-+ goto end_req;
-
- // Handle the request
-- switch (current_request->cmd)
-+ switch (req->cmd)
- {
-+ int err;
- size_t retlen;
-
- case READ:
-- if (MTD_READ(mtd,current_request->sector<<9,
-- current_request->nr_sectors << 9,
-- &retlen, current_request->buffer) == 0)
-+ err = MTD_READ (mtdblk->mtd, req->sector << 9,
-+ req->current_nr_sectors << 9,
-+ &retlen, req->buffer);
-+ if (!err)
- res = 1;
-- else
-- res = 0;
- break;
-+ }
-
-- case WRITE:
--
-- /* printk("mtdblock_request WRITE sector=%d(%d)\n",current_request->sector,
-- current_request->nr_sectors);
-- */
--
-- // Read only device
-- if ((mtd->flags & MTD_CAP_RAM) == 0)
-- {
-- res = 0;
-- break;
-+end_req:
-+ spin_lock_irq(&io_request_lock);
-+ end_request(res);
- }
-+}
-
-- // Do the write
-- if (MTD_WRITE(mtd,current_request->sector<<9,
-- current_request->nr_sectors << 9,
-- &retlen, current_request->buffer) == 0)
-- res = 1;
-- else
-- res = 0;
-- break;
-+static volatile int leaving = 0;
-+static DECLARE_MUTEX_LOCKED(thread_sem);
-+static DECLARE_WAIT_QUEUE_HEAD(thr_wq);
-
-- // Shouldn't happen
-- default:
-- printk("mtd: unknown request\n");
-- break;
-- }
-+int mtdblock_thread(void *dummy)
-+{
-+ struct task_struct *tsk = current;
-+ DECLARE_WAITQUEUE(wait, tsk);
-
-- // Grab the lock and re-thread the item onto the linked list
--#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
-+ tsk->session = 1;
-+ tsk->pgrp = 1;
-+ /* we might get involved when memory gets low, so use PF_MEMALLOC */
-+ tsk->flags |= PF_MEMALLOC;
-+ strcpy(tsk->comm, "mtdblockd");
-+ tsk->tty = NULL;
-+ spin_lock_irq(&tsk->sigmask_lock);
-+ sigfillset(&tsk->blocked);
-+ recalc_sigpending(tsk);
-+ spin_unlock_irq(&tsk->sigmask_lock);
-+ exit_mm(tsk);
-+ exit_files(tsk);
-+ exit_sighand(tsk);
-+ exit_fs(tsk);
-+
-+ while (!leaving) {
-+ add_wait_queue(&thr_wq, &wait);
-+ set_current_state(TASK_INTERRUPTIBLE);
- spin_lock_irq(&io_request_lock);
--#endif
-- end_request(res);
-+ if (QUEUE_EMPTY || QUEUE_PLUGGED) {
-+ spin_unlock_irq(&io_request_lock);
-+ schedule();
-+ remove_wait_queue(&thr_wq, &wait);
-+ } else {
-+ remove_wait_queue(&thr_wq, &wait);
-+ set_current_state(TASK_RUNNING);
-+ handle_mtdblock_request();
-+ spin_unlock_irq(&io_request_lock);
-+ }
- }
-+
-+ up(&thread_sem);
-+ return 0;
- }
-
-+#if LINUX_VERSION_CODE < 0x20300
-+#define RQFUNC_ARG void
-+#else
-+#define RQFUNC_ARG request_queue_t *q
-+#endif
-+
-+static void mtdblock_request(RQFUNC_ARG)
-+{
-+ /* Don't do anything, except wake the thread if necessary */
-+ wake_up(&thr_wq);
-+}
-
-
- static int mtdblock_ioctl(struct inode * inode, struct file * file,
- unsigned int cmd, unsigned long arg)
- {
-- struct mtd_info *mtd;
-+ struct mtdblk_dev *mtdblk;
-
-- mtd = __get_mtd_device(NULL, MINOR(inode->i_rdev));
-+ mtdblk = mtdblks[MINOR(inode->i_rdev)];
-
-- if (!mtd) return -EINVAL;
-+#ifdef PARANOIA
-+ if (!mtdblk)
-+ BUG();
-+#endif
-
- switch (cmd) {
- case BLKGETSIZE: /* Return device size */
-- return put_user((mtd->size >> 9), (unsigned long *) arg);
--
--#ifdef BLKGETSIZE64
-+ return put_user((mtdblk->mtd->size >> 9), (unsigned long *) arg);
- case BLKGETSIZE64:
-- return put_user((u64)mtd->size, (u64 *)arg);
--#endif
-+ return put_user((u64)mtdblk->mtd->size, (u64 *)arg);
-
- case BLKFLSBUF:
- #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,2,0)
-- if(!capable(CAP_SYS_ADMIN)) return -EACCES;
-+ if(!capable(CAP_SYS_ADMIN))
-+ return -EACCES;
- #endif
- fsync_dev(inode->i_rdev);
- invalidate_buffers(inode->i_rdev);
-- if (mtd->sync)
-- mtd->sync(mtd);
-+ if (mtdblk->mtd->sync)
-+ mtdblk->mtd->sync(mtdblk->mtd);
- return 0;
-
- default:
-- return -ENOTTY;
-+ return -EINVAL;
- }
- }
-
-@@ -261,34 +316,85 @@
- };
- #endif
-
-+#ifdef CONFIG_DEVFS_FS
-+/* Notification that a new device has been added. Create the devfs entry for
-+ * it. */
-+
-+static void mtd_notify_add(struct mtd_info* mtd)
-+{
-+ char name[8];
-+
-+ if (!mtd || mtd->type == MTD_ABSENT)
-+ return;
-+
-+ sprintf(name, "%d", mtd->index);
-+ devfs_ro_handle[mtd->index] = devfs_register(devfs_dir_handle, name,
-+ DEVFS_FL_DEFAULT, MTD_BLOCK_MAJOR, mtd->index,
-+ S_IFBLK | S_IRUGO | S_IWUGO,
-+ &mtd_fops, NULL);
-+}
-+
-+static void mtd_notify_remove(struct mtd_info* mtd)
-+{
-+ if (!mtd || mtd->type == MTD_ABSENT)
-+ return;
-+
-+ devfs_unregister(devfs_ro_handle[mtd->index]);
-+}
-+#endif
-+
- int __init init_mtdblock(void)
- {
- int i;
-
-+ spin_lock_init(&mtdblks_lock);
-+#ifdef CONFIG_DEVFS_FS
-+ if (devfs_register_blkdev(MTD_BLOCK_MAJOR, DEVICE_NAME, &mtd_fops))
-+ {
-+ printk(KERN_NOTICE "Can't allocate major number %d for Memory Technology Devices.\n",
-+ MTD_BLOCK_MAJOR);
-+ return -EAGAIN;
-+ }
-+
-+ devfs_dir_handle = devfs_mk_dir(NULL, DEVICE_NAME, NULL);
-+ register_mtd_user(&notifier);
-+#else
- if (register_blkdev(MAJOR_NR,DEVICE_NAME,&mtd_fops)) {
- printk(KERN_NOTICE "Can't allocate major number %d for Memory Technology Devices.\n",
- MTD_BLOCK_MAJOR);
- return -EAGAIN;
- }
-+#endif
-
- /* We fill it in at open() time. */
- for (i=0; i< MAX_MTD_DEVICES; i++) {
- mtd_sizes[i] = 0;
- }
--
-+ init_waitqueue_head(&thr_wq);
- /* Allow the block size to default to BLOCK_SIZE. */
- blksize_size[MAJOR_NR] = NULL;
- blk_size[MAJOR_NR] = mtd_sizes;
-
- blk_init_queue(BLK_DEFAULT_QUEUE(MAJOR_NR), &mtdblock_request);
-+ kernel_thread (mtdblock_thread, NULL, CLONE_FS|CLONE_FILES|CLONE_SIGHAND);
- return 0;
- }
-
- static void __exit cleanup_mtdblock(void)
- {
-+ leaving = 1;
-+ wake_up(&thr_wq);
-+ down(&thread_sem);
-+#ifdef CONFIG_DEVFS_FS
-+ unregister_mtd_user(&notifier);
-+ devfs_unregister(devfs_dir_handle);
-+ devfs_unregister_blkdev(MTD_BLOCK_MAJOR, DEVICE_NAME);
-+#else
- unregister_blkdev(MAJOR_NR,DEVICE_NAME);
-- blksize_size[MAJOR_NR] = NULL;
-+#endif
- blk_cleanup_queue(BLK_DEFAULT_QUEUE(MAJOR_NR));
-+ blksize_size[MAJOR_NR] = NULL;
-+ blk_size[MAJOR_NR] = NULL;
- }
-
- module_init(init_mtdblock);
-@@ -296,5 +402,5 @@
-
-
- MODULE_LICENSE("GPL");
--MODULE_AUTHOR("Erwin Authried <eauth@softsys.co.at> et al.");
--MODULE_DESCRIPTION("Simple read-only block device emulation access to MTD devices");
-+MODULE_AUTHOR("Nicolas Pitre <nico@cam.org> et al.");
-+MODULE_DESCRIPTION("Caching read/erase/writeback block device emulation access to MTD devices");
---- linux-2.4.20/drivers/net/Config.in~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/net/Config.in 2005-01-08 12:16:21.077658368 -0500
-@@ -2,6 +2,7 @@
- # Network device configuration
- #
-
-+source drivers/net/hnd/Config.in
- source drivers/net/arcnet/Config.in
-
- tristate 'Dummy net driver support' CONFIG_DUMMY
---- linux-2.4.20/drivers/net/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/net/Makefile 2005-01-08 12:16:21.891534640 -0500
-@@ -21,6 +21,17 @@
- list-multi := rcpci.o
- rcpci-objs := rcpci45.o rclanmtl.o
-
-+subdir-m += mac
-+subdir-m += diag
-+
-+ifeq ($(CONFIG_HW_QOS),y)
-+subdir-m += port_based_qos
-+else
-+ ifeq ($(CONFIG_PERFORMANCE),y)
-+ subdir-m += port_based_qos
-+ endif
-+endif
-+
- ifeq ($(CONFIG_TULIP),y)
- obj-y += tulip/tulip.o
- endif
-@@ -242,6 +253,36 @@
- endif
- endif
-
-+#
-+# Broadcom HND devices
-+#
-+
-+ifdef CONFIG_HND
-+subdir-$(CONFIG_HND) += hnd
-+endif
-+ifdef CONFIG_ET
-+subdir-$(CONFIG_ET) += et.4702
-+subdir-$(CONFIG_ET) += et
-+endif
-+ifdef CONFIG_IL
-+subdir-$(CONFIG_IL) += il
-+endif
-+ifdef CONFIG_WL
-+subdir-$(CONFIG_WL) += wl
-+endif
-+ifeq ($(CONFIG_HND),y)
-+ obj-y += hnd/hnd.o
-+endif
-+ifeq ($(CONFIG_ET),y)
-+ obj-y += et/et.o
-+endif
-+ifeq ($(CONFIG_IL),y)
-+ obj-y += il/il.o
-+endif
-+ifeq ($(CONFIG_WL),y)
-+ obj-y += wl/wl.o
-+endif
-+
- include $(TOPDIR)/Rules.make
-
- clean:
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/diag/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,27 @@
-+# Copyright 2001, Cybertan Corporation
-+# All Rights Reserved.
-+#
-+# This is UNPUBLISHED PROPRIETARY SOURCE CODE of Cybertan Corporation;
-+# the contents of this file may not be disclosed to third parties, copied or
-+# duplicated in any form, in whole or in part, without the prior written
-+# permission of Cybertan Corporation.
-+#
-+#
-+# $Id: Makefile,v 1.1 2003/07/09 14:09:58 honor Exp $
-+#
-+
-+O_TARGET := diag.o
-+
-+MAC_OBJS := diag_led.o
-+
-+export-objs :=
-+obj-y := $(MAC_OBJS)
-+obj-m := $(O_TARGET)
-+
-+SRCBASE := $(TOPDIR)/../..
-+EXTRA_CFLAGS += -I$(SRCBASE)/include
-+
-+vpath %.c $(SRCBASE)/shared
-+
-+include $(TOPDIR)/Rules.make
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/et/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,42 @@
-+#
-+# Makefile for the Broadcom et driver
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.6 2004/04/12 04:31:57 honor Exp $
-+#
-+
-+O_TARGET := et.o
-+
-+ET_OBJS := et_linux.o etc.o
-+
-+ifeq ($(CONFIG_ET_47XX),y)
-+ET_OBJS += etc47xx.o etc_robo.o etc_adm.o
-+EXTRA_CFLAGS += -DBCM47XX_CHOPS
-+endif
-+ifeq ($(CONFIG_ET_4413),y)
-+ET_OBJS += etc4413.o
-+EXTRA_CFLAGS += -DBCM4413_CHOPS
-+endif
-+
-+export-objs :=
-+obj-y := $(ET_OBJS)
-+obj-m := $(O_TARGET)
-+
-+EXTRA_CFLAGS += -DDMA
-+
-+# Search for sources under src/et/sys or objects under src/et/linux
-+ifneq ($(wildcard $(SRCBASE)/et/sys),)
-+EXTRA_CFLAGS += -I$(SRCBASE)/et/sys
-+vpath %.c $(SRCBASE)/et/sys $(SRCBASE)/shared
-+else
-+obj-y := $(foreach obj,$(ET_OBJS),$(SRCBASE)/et/linux/$(obj))
-+endif
-+
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/et.4702/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,43 @@
-+# Copyright 2001, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# This is UNPUBLISHED PROPRIETARY SOURCE CODE of Broadcom Corporation;
-+# the contents of this file may not be disclosed to third parties, copied or
-+# duplicated in any form, in whole or in part, without the prior written
-+# permission of Broadcom Corporation.
-+#
-+# Makefile for the Broadcom et driver
-+#
-+# $Id: Makefile,v 1.2 2003/11/13 13:04:22 honor Exp $
-+#
-+
-+O_TARGET := 4702et.o
-+
-+ET_OBJS := et_linux.o etc.o
-+
-+ifeq ($(CONFIG_ET_47XX),y)
-+ET_OBJS += etc47xx.o etc_robo.o
-+EXTRA_CFLAGS += -DBCM47XX_CHOPS
-+endif
-+ifeq ($(CONFIG_ET_4413),y)
-+ET_OBJS += etc4413.o
-+EXTRA_CFLAGS += -DBCM4413_CHOPS
-+endif
-+
-+export-objs :=
-+obj-y := $(ET_OBJS)
-+obj-m := $(O_TARGET)
-+
-+SRCBASE := $(TOPDIR)/../..
-+EXTRA_CFLAGS += -I$(SRCBASE)/include
-+EXTRA_CFLAGS += -DDMA
-+
-+# Search for sources under src/et/sys or objects under src/et/linux
-+ifneq ($(wildcard $(SRCBASE)/et.4702/sys),)
-+EXTRA_CFLAGS += -I$(SRCBASE)/et.4702/sys
-+vpath %.c $(SRCBASE)/et.4702/sys $(SRCBASE)/shared
-+else
-+obj-y := $(foreach obj,$(ET_OBJS),$(SRCBASE)/et.4702/linux/$(obj))
-+endif
-+
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/hnd/Config.in 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,35 @@
-+#
-+# Broadcom Home Networking Division (HND) driver configuration
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+
-+mainmenu_option next_comment
-+comment 'Broadcom HND network devices'
-+ tristate 'Broadcom HND network device support' CONFIG_HND $CONFIG_PCI
-+ if [ "$CONFIG_HND" != "n" ]; then
-+ dep_tristate ' Broadcom InsideLine HPNA support' CONFIG_IL $CONFIG_HND
-+ if [ "$CONFIG_IL" != "n" ]; then
-+ bool ' Broadcom BCM42xx support' CONFIG_IL_42XX
-+ bool ' Broadcom BCM47xx support' CONFIG_IL_47XX
-+ int ' LARQ buffer allocation (0 = tiny, 2 = huge)' CONFIG_LARQ_BUF 0
-+ fi
-+ dep_tristate ' Broadcom 10/100 Ethernet support' CONFIG_ET $CONFIG_HND
-+ if [ "$CONFIG_ET" != "n" ]; then
-+ bool ' Broadcom BCM4413 support' CONFIG_ET_4413
-+ bool ' Broadcom BCM47xx support' CONFIG_ET_47XX
-+ fi
-+ dep_tristate ' Broadcom BCM43xx 802.11 Wireless support' CONFIG_WL $CONFIG_HND
-+ if [ "$CONFIG_WL" != "n" ]; then
-+ bool ' Access Point Mode Supported' CONFIG_WL_AP
-+ bool ' STA Mode Supported' CONFIG_WL_STA
-+ bool ' OID Interface Supported' CONFIG_WL_OID
-+ fi
-+ fi
-+endmenu
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/hnd/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,67 @@
-+#
-+# Makefile for Broadcom Home Networking Division (HND) shared driver code
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.7 2004/04/12 04:31:58 honor Exp $
-+#
-+
-+O_TARGET := hnd.o
-+
-+HND_OBJS := bcmutils.o hnddma.o linux_osl.o sbutils.o bcmsrom.o
-+
-+ifneq ($(CONFIG_BCM947XX),y)
-+HND_OBJS += nvramstubs.o
-+endif
-+
-+export-objs := shared_ksyms.o
-+obj-y := shared_ksyms.o $(HND_OBJS)
-+obj-m := $(O_TARGET)
-+
-+vpath %.c $(SRCBASE)/shared $(SRCBASE)/shared/nvram
-+
-+include $(TOPDIR)/Rules.make
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/bcmutils.c),)
-+bcmutils.o: $(SRCBASE)/shared/linux/bcmutils.o
-+ cp $< $@
-+endif
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/hnddma.c),)
-+hnddma.o: $(SRCBASE)/shared/linux/hnddma.o
-+ cp $< $@
-+endif
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/linux_osl.c),)
-+linux_osl.o: $(SRCBASE)/shared/linux/linux_osl.o
-+ cp $< $@
-+endif
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/sbutils.c),)
-+sbutils.o: $(SRCBASE)/shared/linux/sbutils.o
-+ cp $< $@
-+endif
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/bcmsrom.c),)
-+bcmsrom.o: $(SRCBASE)/shared/linux/bcmsrom.o
-+ cp $< $@
-+endif
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/nvramstubs.c),)
-+nvramstubs.o: $(SRCBASE)/shared/linux/nvramstubs.o
-+ cp $< $@
-+endif
-+
-+ifeq ($(wildcard $(SRCBASE)/shared/bcmwpa.c),)
-+bcmwpa.o: $(SRCBASE)/shared/linux/bcmwpa.o
-+ cp $< $@
-+endif
-+
-+shared_ksyms.c: shared_ksyms.sh $(HND_OBJS)
-+ sh -e $< $(HND_OBJS) > $@
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/hnd/shared_ksyms.sh 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,21 @@
-+#!/bin/sh
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: shared_ksyms.sh,v 1.1.1.6 2004/04/12 04:31:58 honor Exp $
-+#
-+
-+cat <<EOF
-+#include <linux/config.h>
-+#include <linux/module.h>
-+EOF
-+
-+for file in $* ; do
-+ ${NM} $file | sed -ne 's/[0-9A-Fa-f]* [DT] \([^ ]*\)/extern void \1; EXPORT_SYMBOL(\1);/p'
-+done
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/il/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,50 @@
-+#
-+# Makefile for the Broadcom il driver
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.6 2004/04/12 04:31:58 honor Exp $
-+#
-+
-+O_TARGET := il.o
-+
-+IL_OBJS := il_linux.o ilc.o cert.o plarq.o pe_select_maxse.o
-+
-+ifeq ($(CONFIG_IL_47XX),y)
-+IL_OBJS += ilc47xx.o
-+EXTRA_CFLAGS += -DBCM47XX_CHOPS
-+endif
-+ifeq ($(CONFIG_IL_42XX),y)
-+IL_OBJS += ilc42xx.o
-+EXTRA_CFLAGS += -DBCM42XX_CHOPS
-+endif
-+
-+export-objs :=
-+obj-y := $(IL_OBJS)
-+obj-m := $(O_TARGET)
-+
-+EXTRA_CFLAGS += -DDMA -DIL_CERT -DIL_PROTOS
-+
-+ifneq ($(CONFIG_BRIDGE),n)
-+EXTRA_CFLAGS += -DIL_BRIDGE
-+endif
-+
-+ifeq ($(CONFIG_LARQ_BUF),0)
-+EXTRA_CFLAGS += -DLARQ_TINY
-+endif
-+
-+# Search for sources under src/il/sys or objects under src/il/linux
-+ifneq ($(wildcard $(SRCBASE)/il/sys),)
-+EXTRA_CFLAGS += -I$(SRCBASE)/il/sys
-+vpath %.c $(SRCBASE)/il/sys $(SRCBASE)/shared
-+else
-+obj-y := $(foreach obj,$(IL_OBJS),$(SRCBASE)/il/linux/$(obj))
-+endif
-+
-+include $(TOPDIR)/Rules.make
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/mac/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,27 @@
-+# Copyright 2001, Cybertan Corporation
-+# All Rights Reserved.
-+#
-+# This is UNPUBLISHED PROPRIETARY SOURCE CODE of Cybertan Corporation;
-+# the contents of this file may not be disclosed to third parties, copied or
-+# duplicated in any form, in whole or in part, without the prior written
-+# permission of Cybertan Corporation.
-+#
-+#
-+# $Id: Makefile,v 1.1 2003/07/09 14:10:26 honor Exp $
-+#
-+
-+O_TARGET := writemac.o
-+
-+MAC_OBJS := mac.o
-+
-+export-objs :=
-+obj-y := $(MAC_OBJS)
-+obj-m := $(O_TARGET)
-+
-+SRCBASE := $(TOPDIR)/../..
-+EXTRA_CFLAGS += -I$(SRCBASE)/include
-+
-+vpath %.c $(SRCBASE)/shared
-+
-+include $(TOPDIR)/Rules.make
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/Atan.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,177 @@
-+#include "Atan.h"
-+#include "c47xx.h"
-+
-+extern void conf_gpio(int x);
-+
-+/*----------------------------------------------------------------------------
-+Write specified data to eeprom
-+entry: *src = pointer to specified data to write
-+ len = number of short(2 bytes) to be written
-+*/
-+void write_eeprom( short RegNumber, unsigned short *data, int len )
-+{
-+ int i2;
-+ unsigned short s_addr, s_data;
-+ unsigned short *src;
-+
-+ src = data;
-+ SetEEpromToSendState();
-+// the write enable(WEN) instruction must be executed before any device
-+// programming can be done
-+
-+ s_data = 0x04c0;
-+ SendAddrToEEprom(s_data); //00000001 0011000000B
-+ SetCSToLowForEEprom();
-+
-+ s_addr = 0x0500 | (RegNumber & 0x0ff); //00000001 01dddddddd
-+ s_data = *src;
-+
-+ for (i2 = len; i2 > 0 ; i2 --)
-+ {
-+ SendAddrToEEprom(s_addr); //00000001 01dddddd
-+ SendDataToEEprom(s_data); //dddddddd dddddddd
-+ SetCSToLowForEEprom();
-+ SetCSToLowForEEprom();
-+ //WriteWait();
-+ s_addr ++;
-+ src ++;
-+ s_data = *src;
-+ }
-+// after all data has been written to EEprom , the write disable(WDS)
-+// instruction must be executed
-+ SetCSToHighForEEprom();
-+ s_data = 0x0400;
-+ SendAddrToEEprom(s_data); //00000001 00000000B
-+ SetCSToLowForEEprom();
-+ SetCSToLowForEEprom();
-+}
-+
-+void SetEEpromToSendState()
-+{
-+ conf_gpio(0x0);
-+ conf_gpio(0x0);
-+ conf_gpio(B_ECS);
-+ conf_gpio(B_ECS);
-+
-+// ;cs __-- ,bit 2
-+// ;sck ____ ,bit 3
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 4
-+// ;
-+}
-+
-+void ResetEEpromToSendState()
-+{
-+ conf_gpio(0x0);
-+ conf_gpio(0x0);
-+ conf_gpio(0x0);
-+ conf_gpio(0x0);
-+
-+// ;cs ____ ,bit 2
-+// ;sck ____ ,bit 3
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 4
-+// ;
-+}
-+
-+void SetCSToLowForEEprom()
-+{
-+ conf_gpio(0x0);
-+ conf_gpio(B_ECK);
-+ conf_gpio(B_ECK);
-+ conf_gpio(0x0);
-+
-+// ;cs ____ ,bit 2
-+// ;sck _--_ ,bit 3
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 4
-+// ;
-+}
-+
-+void SetCSToHighForEEprom()
-+{
-+ conf_gpio(B_ECS);
-+ conf_gpio(B_ECS|B_ECK);
-+ conf_gpio(B_ECS|B_ECK);
-+ conf_gpio(B_ECS);
-+
-+// ;cs ---- ,bit 2
-+// ;sck _--_ ,bit 3
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 4
-+// ;
-+}
-+
-+void send_1ToEEprom()
-+{
-+ conf_gpio(B_ECS|B_EDI);
-+ conf_gpio(B_ECS|B_ECK|B_EDI);
-+ conf_gpio(B_ECS|B_ECK|B_EDI);
-+ conf_gpio(B_ECS|B_EDI);
-+
-+// ;cs ---- ,bit 2
-+// ;sck _--_ ,bit 3
-+// ;di ---- ,bit 5
-+// ;do ____ ,bit 4
-+// ;
-+}
-+
-+void send_0ToEEprom()
-+{
-+ conf_gpio(B_ECS);
-+ conf_gpio(B_ECS|B_ECK);
-+ conf_gpio(B_ECS|B_ECK);
-+ conf_gpio(B_ECS);
-+
-+// ;cs ---- ,bit 2
-+// ;sck _--_ ,bit 3
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 4
-+// ;
-+}
-+
-+#if 0
-+void WriteWait()
-+{
-+ unsigned int status;
-+
-+ SetCSToLowForEEprom();
-+ SetCSToHighForEEprom();
-+ do {
-+ SetCSToHighForEEprom();
-+ //status = ReadGPIOData(EDO);
-+ status = gpio & B_EDO; // read EDO bit
-+ }
-+ while (!status); // wait for write - ready
-+ SetCSToLowForEEprom();
-+}
-+#endif
-+
-+void SendDataToEEprom(short s_data)
-+{
-+ int data_mask;
-+
-+ for (data_mask = 0x8000; data_mask != 0; )
-+ {
-+ if (s_data & data_mask)
-+ send_1ToEEprom();
-+ else
-+ send_0ToEEprom();
-+ data_mask = data_mask >> 1;
-+ }
-+}
-+
-+void SendAddrToEEprom(short s_data)
-+{
-+ int data_mask;
-+
-+ for (data_mask = 0x0400 ;data_mask != 0; )
-+ {
-+ if (s_data & data_mask)
-+ send_1ToEEprom();
-+ else
-+ send_0ToEEprom();
-+ data_mask = data_mask >> 1;
-+ }
-+}
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/Atan.h 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,18 @@
-+#ifndef _ATAN_H_
-+#define _ATAN_H_
-+
-+#define SINGLECOLOUR 0x1
-+#define DUALCOLOUR 0x2
-+
-+void write_eeprom(short,unsigned short *,int);
-+void SetEEpromToSendState(void);
-+void ResetEEpromToSendState(void);
-+void SetCSToLowForEEprom(void);
-+void SetCSToHighForEEprom(void);
-+void send_1ToEEprom(void);
-+void send_0ToEEprom(void);
-+//void WriteWait(void);
-+void SendAddrToEEprom(short);
-+void SendDataToEEprom(short);
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,27 @@
-+# Copyright 2001, Cybertan Corporation
-+# All Rights Reserved.
-+#
-+# This is UNPUBLISHED PROPRIETARY SOURCE CODE of Cybertan Corporation;
-+# the contents of this file may not be disclosed to third parties, copied or
-+# duplicated in any form, in whole or in part, without the prior written
-+# permission of Cybertan Corporation.
-+#
-+#
-+# $Id: Makefile,v 1.2 2004/03/02 13:23:33 cnhsieh Exp $
-+#
-+
-+O_TARGET := port_based_qos_mod.o
-+
-+PORT_BASED_QOS_MOD_OBJS := port_based_qos.o Atan.o c47xx.o eeprom.o
-+
-+export-objs :=
-+obj-y := $(PORT_BASED_QOS_MOD_OBJS)
-+obj-m := $(O_TARGET)
-+
-+SRCBASE := $(TOPDIR)/../..
-+EXTRA_CFLAGS += -I$(SRCBASE)/include -Wall -I$(SRCBASE)/
-+
-+vpath %.c $(SRCBASE)/shared
-+
-+include $(TOPDIR)/Rules.make
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/c47xx.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,85 @@
-+#include <typedefs.h>
-+#include <sbutils.h>
-+#include <bcmdevs.h>
-+#include <osl.h>
-+#include <bcmnvram.h>
-+#include <bcmutils.h>
-+
-+#include <sbpci.h>
-+#include <sbchipc.h>
-+#include <sbconfig.h>
-+#include <sbextif.h>
-+#include <sbmips.h>
-+#include "c47xx.h"
-+extern uint32 sb_gpioouten(void *sbh, uint32 mask, uint32 val);
-+extern uint32 sb_gpioout(void *sbh, uint32 mask, uint32 val);
-+extern uint32 sb_gpioin(void *sbh);
-+extern uint32 sb_gpiointmask(void *sbh, uint32 mask, uint32 val);
-+
-+#define OUTENMASK B_RESET|B_ECS|B_ECK|B_EDI
-+#define CFGMASK B_ECS|B_ECK|B_EDI
-+#define BIT(x) (1 << (x))
-+#define ASSERT(exp) do {} while (0)
-+
-+void
-+conf_gpio(int x)
-+{
-+ ASSERT(sbh);
-+
-+ /* Enable all of output pins */
-+ sb_gpioouten(sbh, OUTENMASK, OUTENMASK);
-+
-+ /* We don't want the B_RESET pin changed, unless
-+ * it tries to set the B_RESET pin.
-+ */
-+ if (x & B_RESET)
-+ sb_gpioout(sbh, OUTENMASK, x);
-+ else
-+ sb_gpioout(sbh, CFGMASK, x);
-+
-+}
-+
-+void
-+gpio_line_set(int x, unsigned int value)
-+{
-+ ASSERT(sbh);
-+
-+ if (value == 1)
-+ sb_gpioout(sbh, BIT(x), BIT(x));
-+ else if (value == 0)
-+ sb_gpioout(sbh, BIT(x), 0);
-+}
-+
-+void
-+gpio_line_get(int x, int *value)
-+{
-+ ASSERT(sbh);
-+
-+ *value = (sb_gpioin(sbh) >> x) & 0x1;
-+}
-+
-+void
-+gpio_line_config_in(int x)
-+{
-+ ASSERT(sbh);
-+
-+ sb_gpioouten(sbh, BIT(x), 0);
-+ sb_gpiointmask(sbh, BIT(x), BIT(x));
-+}
-+
-+void
-+gpio_line_config_out(int x)
-+{
-+ ASSERT(sbh);
-+
-+ sb_gpiointmask(sbh, BIT(x), 0);
-+ sb_gpioouten(sbh, BIT(x), BIT(x));
-+}
-+
-+void
-+gpio_line_config_out_all(int x)
-+{
-+ ASSERT(sbh);
-+
-+ sb_gpioouten(sbh, OUTENMASK, OUTENMASK);
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/c47xx.h 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,23 @@
-+#ifndef _C47XX_H_
-+#define _C47XX_H_
-+
-+extern void *bcm947xx_sbh;
-+#define sbh bcm947xx_sbh
-+
-+#define GPIO0 0
-+#define GPIO1 1
-+#define GPIO2 2
-+#define GPIO3 3
-+#define GPIO4 4
-+#define GPIO5 5
-+#define GPIO6 6
-+#define GPIO7 7
-+#define GPIO8 8
-+
-+#define B_RESET 1<<GPIO0
-+#define B_ECS 1<<GPIO2
-+#define B_ECK 1<<GPIO3
-+#define B_EDO 1<<GPIO4
-+#define B_EDI 1<<GPIO5
-+
-+#endif
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/eeprom.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,355 @@
-+#include <linux/delay.h>
-+
-+#define EEDO_PIN 4
-+#define EECS_PIN 2
-+#define EECK_PIN 3
-+#define EEDI_PIN 5
-+#define RESET_PIN 0
-+
-+static void SetCSToLowForEEprom(void);
-+//static void SetCSToHighForEEprom(void);
-+static void send1ToEEprom(void);
-+static void send0ToEEprom(void);
-+static void InitSerialInterface(void);
-+static void SerialPulse(void);
-+static void WriteDataToRegister(unsigned short RegNumber, unsigned short data);
-+void ReadDataFromRegister(unsigned short addr, unsigned short *hidata, unsigned short *lodata,int select_count);
-+static void WriteDataToEEprom(unsigned short addr, unsigned short data);
-+static void WriteCmdToEEprom(unsigned short cmd);
-+extern void gpio_line_set(int x, unsigned int value);
-+extern void gpio_line_get(int x, int *value);
-+extern void gpio_line_config_out(int x);
-+extern void gpio_line_config_in(int x);
-+extern void gpio_line_config_out_all(void);
-+// ;cs __-- ,bit 3
-+// ;sck ____ ,bit 4
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 6
-+// ;
-+
-+static void SetEEpromToSendState(void)
-+{
-+ gpio_line_set(EECS_PIN, 0);
-+ gpio_line_set(EECK_PIN, 0);
-+ gpio_line_set(EEDI_PIN, 1);
-+// gpio_line_set(EEDO_PIN, 1); /* high impedance */
-+
-+ mdelay(1);
-+ gpio_line_set(EECS_PIN, 1);
-+// gpio_line_set(EEDO_PIN, 1); /* high impedance */
-+}
-+
-+#if 0
-+static void EEpromInit(void)
-+{
-+ gpio_line_set(EECS_PIN, 0);
-+ gpio_line_set(EECK_PIN, 0);
-+ gpio_line_set(EEDI_PIN, 1);
-+ gpio_line_set(EEDO_PIN, 1); /* high impedance */
-+
-+ mdelay(1);
-+}
-+
-+// ;cs ____ ,bit 3
-+// ;sck ____ ,bit 4
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 6
-+// ;
-+static void ResetEEpromToSendState(void)
-+{
-+ gpio_line_set(EECS_PIN, 0);
-+ gpio_line_set(EEDI_PIN, 0);
-+ //gpio_line_set(EEDO_PIN, 0);
-+ gpio_line_set(EECK_PIN, 0);
-+}
-+#endif /* 0 */
-+
-+// ;cs ____ ,bit 3
-+// ;sck _--_ ,bit 4
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 6
-+// ;
-+static void SetCSToLowForEEprom(void)
-+{
-+ /* minimum tcs is 1us */
-+ gpio_line_set(EECS_PIN, 0);
-+ gpio_line_set(EECS_PIN, 0);
-+
-+ gpio_line_set(EECK_PIN, 0);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 0);
-+
-+ gpio_line_set(EECS_PIN, 1);
-+
-+ udelay(10);
-+}
-+
-+#if 0
-+// ;cs ---- ,bit 3
-+// ;sck _--_ ,bit 4
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 6
-+// ;
-+static void SetCSToHighForEEprom(void)
-+{
-+ gpio_line_set(EECS_PIN, 1);
-+
-+ /* min tskh and tskl is 1us */
-+ gpio_line_set(EECK_PIN, 1);
-+ udelay(2);
-+ gpio_line_set(EECK_PIN, 0);
-+}
-+#endif /* 0 */
-+
-+// ;cs ---- ,bit 3
-+// ;sck _--_ ,bit 4
-+// ;di ---- ,bit 5
-+// ;do ____ ,bit 6
-+// ;
-+static void send1ToEEprom(void)
-+{
-+//printf("send1ToEEprom(1)...");
-+ gpio_line_set(EEDI_PIN, 1);
-+
-+ gpio_line_set(EECK_PIN, 0);
-+ udelay(1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ udelay(1);
-+ gpio_line_set(EECK_PIN, 0);
-+}
-+
-+// ;cs ---- ,bit 3
-+// ;sck _--_ ,bit 4
-+// ;di ____ ,bit 5
-+// ;do ____ ,bit 6
-+// ;
-+static void send0ToEEprom(void)
-+{
-+//printf("send0ToEEprom(0)...");
-+ gpio_line_set(EEDI_PIN, 0);
-+
-+ gpio_line_set(EECK_PIN, 0);
-+ udelay(1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 1);
-+ udelay(1);
-+ gpio_line_set(EECK_PIN, 0);
-+}
-+
-+static void WriteDataToEEprom(unsigned short addr, unsigned short data)
-+{
-+ unsigned short addr_mask, data_mask;
-+
-+ SetEEpromToSendState();
-+ for (addr_mask = 0x400; addr_mask != 0; )
-+ {
-+ if (addr & addr_mask)
-+ send1ToEEprom();
-+ else
-+ send0ToEEprom();
-+ addr_mask = addr_mask >> 1;
-+ }
-+ for (data_mask = 0x8000; data_mask != 0; )
-+ {
-+ if (data & data_mask)
-+ send1ToEEprom();
-+ else
-+ send0ToEEprom();
-+ data_mask = data_mask >> 1;
-+ }
-+ SetCSToLowForEEprom();
-+}
-+
-+static void WriteCmdToEEprom(unsigned short cmd)
-+{
-+ unsigned short cmd_mask;
-+
-+ SetEEpromToSendState();
-+ for (cmd_mask = 0x0400 ;cmd_mask != 0; )
-+ {
-+ if (cmd & cmd_mask)
-+ send1ToEEprom();
-+ else
-+ send0ToEEprom();
-+ cmd_mask = cmd_mask >> 1;
-+ }
-+ SetCSToLowForEEprom();
-+}
-+
-+/*
-+ * Write data to configure registers through EEPROM interface, even we do not have
-+ * an external EEPROM connectted, ADM6996 got a virtual AT39C66 inside
-+ */
-+static void WriteDataToRegister(unsigned short RegNumber, unsigned short data)
-+{
-+ unsigned short cmd, addr;
-+
-+ printk("WriteDataToRegister(RegNumber=0x%x, data=0x%x)\n", RegNumber, data);
-+
-+// the write enable(WEN) instruction must be executed before any device
-+// programming can be done
-+ cmd = 0x04c0;
-+ WriteCmdToEEprom(cmd); //00000001 0011000000B
-+
-+ addr = 0x0500 | (RegNumber & 0x0ff); //00000001 01dddddddd
-+ WriteDataToEEprom(addr, data); //00000001 01dddddd
-+
-+
-+// after all data has been written to EEprom , the write disable(WDS)
-+// instruction must be executed
-+ cmd = 0x0400;
-+ WriteCmdToEEprom(cmd); //00000001 00000000B
-+}
-+
-+static void SerialDelay(int count)
-+{
-+ udelay(count);
-+}
-+
-+static void InitSerialInterface(void)
-+{
-+ gpio_line_set(EECK_PIN, 0);
-+ gpio_line_set(EEDI_PIN, 0);
-+}
-+
-+static void SerialPulse(void)
-+{
-+ gpio_line_set(EECK_PIN, 0);
-+ gpio_line_set(EECK_PIN, 1);
-+ SerialDelay(10);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_set(EECK_PIN, 0);
-+}
-+/*
-+ * Since there is no EEPROM is our board, read from EEPROM need to obey the timing alike
-+ * MII interface, EECK = MDC, EEDI = MDIO, please refer to section 4.3 of ADM6996 datasheet
-+ */
-+void ReadDataFromRegister(unsigned short addr, unsigned short *hidata, unsigned short *lodata, int select_count)
-+{
-+ unsigned short addr_mask, data_mask;
-+ int value, i;
-+ unsigned char StartBits, Opcode, TAbits;
-+
-+ gpio_line_config_out_all();
-+ mdelay(1);
-+ /* initialize serial interface */
-+ gpio_line_set(EECS_PIN, 0);
-+ InitSerialInterface();
-+
-+ /* Preamble, 35 bits */
-+ gpio_line_set(EECK_PIN, 0);
-+ gpio_line_set(EEDI_PIN, 1);
-+ for (i = 0; i < 35; i++)
-+ {
-+ gpio_line_set(EECK_PIN, 1);
-+ SerialDelay(10);
-+ gpio_line_set(EECK_PIN, 0);
-+ SerialDelay(10);
-+ }
-+
-+ /* Start bits, 2-bit(01b) */
-+ InitSerialInterface();
-+ StartBits = 0x01;
-+ for (i = 0; i < 2; i++)
-+ {
-+ value = (StartBits & 2) ? 1 : 0;
-+ gpio_line_set(EEDI_PIN, value);
-+ SerialDelay(1);
-+ SerialPulse();
-+ StartBits <<= 1;
-+ }
-+
-+ /* Opcode, read = 10b */
-+ InitSerialInterface();
-+ Opcode = 0x02;
-+ for (i = 0; i < 2; i++)
-+ {
-+ value = (Opcode & 0x02) ? 1 : 0;
-+ gpio_line_set(EEDI_PIN, value);
-+ SerialDelay(1);
-+ SerialPulse();
-+ Opcode <<= 1;
-+ }
-+
-+ /* 10 bits register address */
-+ /* 1-bit Table Select, 2-bit Device Address, 7-bit Register Address */
-+ InitSerialInterface();
-+ if (select_count)
-+ addr = (addr & 0x7f) | 0x200;
-+ else
-+ addr = addr & 0x7f ;
-+ for (addr_mask = 0x200; addr_mask != 0; addr_mask >>= 1)
-+ {
-+ value = (addr & addr_mask) ? 1 : 0;
-+ gpio_line_set(EEDI_PIN, value);
-+ SerialDelay(1);
-+ SerialPulse();
-+ }
-+
-+ /* TA, turnaround 2-bit */
-+ InitSerialInterface();
-+ TAbits = 0x02;
-+ gpio_line_config_in(EEDI_PIN);
-+ for (i = 0; i < 2; i++)
-+ {
-+ gpio_line_set(EECK_PIN, 1);
-+ SerialDelay(4);
-+ gpio_line_get(EEDI_PIN, &value);
-+ SerialDelay(4);
-+ TAbits <<= 1;
-+ gpio_line_set(EECK_PIN, 1);
-+ }
-+
-+
-+ /* Latch data from serial management EEDI pin */
-+ *hidata = 0;
-+ gpio_line_set(EECK_PIN, 0);
-+ for (data_mask = 0x8000; data_mask != 0; data_mask >>= 1)
-+ {
-+ SerialDelay(4);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_get(EEDI_PIN, &value);
-+ if (value)
-+ {
-+ *hidata |= data_mask;
-+ }
-+ gpio_line_set(EECK_PIN, 0);
-+ SerialDelay(4);
-+ }
-+ *lodata = 0;
-+ gpio_line_set(EECK_PIN, 0);
-+ for (data_mask = 0x8000; data_mask != 0; data_mask >>= 1)
-+ {
-+ SerialDelay(4);
-+ gpio_line_set(EECK_PIN, 1);
-+ gpio_line_get(EEDI_PIN, &value);
-+ if (value)
-+ {
-+ *lodata |= data_mask;
-+ }
-+ gpio_line_set(EECK_PIN, 0);
-+ SerialDelay(4);
-+ }
-+
-+ SerialDelay(2);
-+
-+ /* Idle, EECK must send at least one clock at idle time */
-+ SerialPulse();
-+ gpio_line_set(EECK_PIN, 0);
-+ SerialDelay(10);
-+ gpio_line_set(EECK_PIN, 1);
-+ SerialDelay(10);
-+ gpio_line_set(EECK_PIN, 0);
-+ SerialPulse();
-+
-+ gpio_line_config_out(EEDI_PIN);
-+ gpio_line_set(EECS_PIN, 1);
-+
-+ printk("ReadDataFromRegister(addr=0x%x, hidata=0x%x, lodata=0x%x)\n", addr, *hidata, *lodata);
-+}
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/port_based_qos/port_based_qos.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,460 @@
-+ /*
-+ * Remaining issues:
-+ * + stats support
-+ * + multicast support
-+ * + media sense
-+ * + half/full duplex
-+ * - random MAC addr.
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/pci.h>
-+#include <linux/init.h>
-+#include <linux/ioport.h>
-+#include <linux/netdevice.h>
-+#include <linux/etherdevice.h>
-+#include <linux/ethtool.h>
-+#include <linux/mii.h>
-+#include <asm/io.h>
-+
-+#include <linux/sysctl.h>
-+#include <cy_conf.h>
-+
-+#define MODULE_NAME "port_based_qos_mod"
-+#define DEVICE_NAME "qos"
-+#define MODULE_VERSION "0.0.1"
-+
-+extern void ReadDataFromRegister(unsigned short addr, unsigned short *hidata, unsigned short *lodata,int select_count);
-+
-+#ifdef PERFORMANCE_SUPPORT
-+static struct ctl_table_header *qos_sysctl_header;
-+static unsigned long qos[28];
-+
-+static ctl_table mytable[] = {
-+ { 2000, "qos",
-+ qos, sizeof(qos),
-+ 0644, NULL,
-+ proc_dointvec },
-+ { 0 }
-+};
-+
-+static unsigned short statis_addr_map[7][6] ={
-+ {0x04, 0x06, 0x08, 0x0a, 0x0b, 0x0c},
-+ {0x16, 0x18, 0x1a, 0x1c, 0x1d, 0x1e},
-+ {0x0d, 0x0f, 0x11, 0x13, 0x14, 0x15},
-+ {0x1f, 0x21, 0x23, 0x25, 0x26, 0x27},
-+ {0x31, 0x33, 0x35, 0x37, 0x38, 0x39},
-+ {0x28, 0x2a, 0x2c, 0x2e, 0x2f, 0x30},
-+ {0x01, 0x01, 0x01, 0x01, 0x01, 0x01}
-+};
-+
-+unsigned long get_statistic_from_serial(unsigned short port, unsigned short item)
-+{
-+ unsigned short hidata, lodata;
-+
-+ ReadDataFromRegister(statis_addr_map[item][port], &hidata, &lodata, 1);
-+ return ((hidata << 16) | lodata);
-+}
-+#endif
-+
-+#ifdef HW_QOS_SUPPORT
-+struct port_qos_t{
-+ int addr;
-+ int content_mask;
-+ int *content_set;
-+};
-+
-+void WriteDataToRegister_(unsigned short reg_idx, unsigned short content_idx);
-+extern void write_eeprom(short,short *,int);
-+
-+#define BANDWIDTH_1_BIT 2
-+#define BANDWIDTH_2_BIT 4
-+#define BANDWIDTH_3_BIT 6
-+#define BANDWIDTH_4_BIT 7
-+
-+#define PORT_CONFIG_1 0x3
-+#define PORT_CONFIG_2 0x5
-+#define PORT_CONFIG_3 0x7
-+#define PORT_CONFIG_4 0x8
-+#define BANDWIDTH_CTL_123 0x31
-+#define BANDWIDTH_CTL_4 0x32
-+#define BANDWIDTH_CTL_ENABLE 0x33
-+#define DISCARD_MODE 0x10
-+#define TOS_PRIO_MAP 0xf
-+
-+#define PRIORITY_MASK 0xfc7f
-+#define PRIORITY_DISABLE_MASK 0xfc7e
-+#define FLOW_CTL_MASK 0xfffe
-+#define RATE_LIMIT_MASK_1 0xff8f
-+#define RATE_LIMIT_MASK_2 0xf8ff
-+#define RATE_LIMIT_MASK_3 0x8fff
-+#define RATE_LIMIT_MASK_4 0xfff8
-+#define BANDWIDTH_CTL_MASK 0xff2b
-+#define DISCARD_MASK 0x0fff
-+
-+#define BANDWIDTH_ENABLE_1 1 << BANDWIDTH_1_BIT//04
-+#define BANDWIDTH_ENABLE_2 1 << BANDWIDTH_2_BIT//10
-+#define BANDWIDTH_ENABLE_3 1 << BANDWIDTH_3_BIT//40
-+#define BANDWIDTH_ENABLE_4 1 << BANDWIDTH_4_BIT//80
-+#define BANDWIDTH_CTL_MASK_1 0xffff^BANDWIDTH_ENABLE_1//0xfffb
-+#define BANDWIDTH_CTL_MASK_2 0xffff^BANDWIDTH_ENABLE_2//0xffef
-+#define BANDWIDTH_CTL_MASK_3 0xffff^BANDWIDTH_ENABLE_3//0xffbf
-+#define BANDWIDTH_CTL_MASK_4 0xffff^BANDWIDTH_ENABLE_4//0xff7f
-+
-+/*static int disable_content[] = {0x0};
-+//static int enable_content[] = {0xd4, 0x0cff};//bit 7,6,4,2; Q1=11(50%),Q0=00(0%)*/
-+//static int sw_content[] = {0x0,0x0c00};//bit 7,6,4,2; Q1=11(50%),Q0=00(0%)
-+static int sw_content[] = {0x0,0xc000};//bit 7,6,4,2; Q1=11(50%),Q0=00(0%)
-+static int port_priority_content[] = {0x080,0x380};//Q0,Q3
-+//static int port_priority_content[] = {0x300,0x0};//Q1,Q0
-+static int port_flow_ctl_content[] = {0x0,0x1};
-+static int port_rate_limit_content_1[] = {0x0,0x00,0x10,0x20,0x30,0x40,0x50,0x60,0x70};
-+static int port_rate_limit_content_2[] = {0x0,0x000,0x100,0x200,0x300,0x400,0x500,0x600,0x700};
-+static int port_rate_limit_content_3[] = {0x0,0x0000,0x1000,0x2000,0x3000,0x4000,0x5000,0x6000,0x7000};
-+static int port_rate_limit_content_4[] = {0x0,0x0,0x1,0x2,0x3,0x4,0x5,0x6,0x7};
-+static int port_rate_limit_enable_1[] = {0x0, BANDWIDTH_ENABLE_1};
-+static int port_rate_limit_enable_2[] = {0x0, BANDWIDTH_ENABLE_2};
-+static int port_rate_limit_enable_3[] = {0x0, BANDWIDTH_ENABLE_3};
-+static int port_rate_limit_enable_4[] = {0x0, BANDWIDTH_ENABLE_4};
-+
-+static struct port_qos_t port_mii_disable[] = {
-+ { BANDWIDTH_CTL_ENABLE, BANDWIDTH_CTL_MASK, sw_content},
-+ //{ DISCARD_MODE, DISCARD_MASK, sw_content},
-+ { PORT_CONFIG_1, PRIORITY_MASK, sw_content},//port_priority_1
-+ { PORT_CONFIG_2, PRIORITY_MASK, sw_content},//port_priority_2
-+ { PORT_CONFIG_3, PRIORITY_MASK, sw_content},//port_priority_3
-+ { PORT_CONFIG_4, PRIORITY_MASK, sw_content},//port_priority_4
-+ { PORT_CONFIG_1, FLOW_CTL_MASK, &port_flow_ctl_content[1]},//port_flow_control_1
-+ { PORT_CONFIG_2, FLOW_CTL_MASK, &port_flow_ctl_content[1]},//port_flow_control_2
-+ { PORT_CONFIG_3, FLOW_CTL_MASK, &port_flow_ctl_content[1]},//port_flow_control_3
-+ { PORT_CONFIG_4, FLOW_CTL_MASK, &port_flow_ctl_content[1]},//port_flow_control_4
-+ { -1}
-+};
-+
-+static struct port_qos_t port_mii_enable[] = {
-+ //{ BANDWIDTH_CTL_ENABLE, BANDWIDTH_CTL_MASK, enable_content},
-+ //{ DISCARD_MODE, DISCARD_MASK, sw_content},
-+ { -1}
-+};
-+
-+struct port_qos_t *port_mii_sw_array[] = {port_mii_disable, port_mii_enable};
-+
-+/*static struct port_qos_t port_mii_addr[] = {
-+ { PORT_CONFIG_1, PRIORITY_MASK, port_priority_content},//port_priority_1
-+ { PORT_CONFIG_1, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_1
-+ //{ "port_frame_type_1", 0x3},
-+ { BANDWIDTH_CTL_123, RATE_LIMIT_MASK_14, port_rate_limit_content_14},//port_rate_limit_1
-+ { PORT_CONFIG_2, PRIORITY_MASK, port_priority_content},//port_priority_2
-+ { PORT_CONFIG_2, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_2
-+ //{ "port_frame_type_2", 0x5},
-+ { BANDWIDTH_CTL_123, RATE_LIMIT_MASK_2, port_rate_limit_content_2},//port_rate_limit_2
-+ { PORT_CONFIG_3, PRIORITY_MASK, port_priority_content},//port_priority_3
-+ { PORT_CONFIG_3, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_3
-+ //{ "port_frame_type_3", 0x7},
-+ { BANDWIDTH_CTL_123, RATE_LIMIT_MASK_3, port_rate_limit_content_3},//port_rate_limit_3
-+ //{ "port_priority_4", 0x8, 0x380},
-+ { PORT_CONFIG_4, PRIORITY_MASK, port_priority_content},//port_priority_4
-+ { PORT_CONFIG_4, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_4
-+ //{ "port_frame_type_4", 0x8},
-+ { BANDWIDTH_CTL_4, RATE_LIMIT_MASK_14, port_rate_limit_content_14},//port_rate_limit_4
-+ { -1}
-+};*/
-+
-+static struct port_qos_t priority_1[] = {
-+ { PORT_CONFIG_1, PRIORITY_MASK, port_priority_content},//port_priority_1
-+ { -1}
-+};
-+static struct port_qos_t flow_control_1[] = {
-+ { PORT_CONFIG_1, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_1
-+ { -1}
-+};
-+static struct port_qos_t rate_limit_1[] = {
-+ { BANDWIDTH_CTL_123, RATE_LIMIT_MASK_1, port_rate_limit_content_1},//port_rate_limit_1
-+ { BANDWIDTH_CTL_ENABLE, BANDWIDTH_CTL_MASK_1, port_rate_limit_enable_1},//port_rate_limit_4
-+ { -1}
-+};
-+static struct port_qos_t priority_2[] = {
-+ { PORT_CONFIG_2, PRIORITY_MASK, port_priority_content},//port_priority_2
-+ { -1}
-+};
-+static struct port_qos_t flow_control_2[] = {
-+ { PORT_CONFIG_2, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_2
-+ { -1}
-+};
-+static struct port_qos_t rate_limit_2[] = {
-+ { BANDWIDTH_CTL_123, RATE_LIMIT_MASK_2, port_rate_limit_content_2},//port_rate_limit_2
-+ { BANDWIDTH_CTL_ENABLE, BANDWIDTH_CTL_MASK_2, port_rate_limit_enable_2},//port_rate_limit_4
-+ { -1}
-+};
-+static struct port_qos_t priority_3[] = {
-+ { PORT_CONFIG_3, PRIORITY_MASK, port_priority_content},//port_priority_3
-+ { -1}
-+};
-+static struct port_qos_t flow_control_3[] = {
-+ { PORT_CONFIG_3, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_3
-+ { -1}
-+};
-+static struct port_qos_t rate_limit_3[] = {
-+ { BANDWIDTH_CTL_123, RATE_LIMIT_MASK_3, port_rate_limit_content_3},//port_rate_limit_3
-+ { BANDWIDTH_CTL_ENABLE, BANDWIDTH_CTL_MASK_3, port_rate_limit_enable_3},//port_rate_limit_4
-+ { -1}
-+};
-+static struct port_qos_t priority_4[] = {
-+ { PORT_CONFIG_4, PRIORITY_MASK, port_priority_content},//port_priority_4
-+ { -1}
-+};
-+static struct port_qos_t flow_control_4[] = {
-+ { PORT_CONFIG_4, FLOW_CTL_MASK, port_flow_ctl_content},//port_flow_control_4
-+ { -1}
-+};
-+static struct port_qos_t rate_limit_4[] = {
-+ { BANDWIDTH_CTL_4, RATE_LIMIT_MASK_4, port_rate_limit_content_4},//port_rate_limit_4
-+ { BANDWIDTH_CTL_ENABLE, BANDWIDTH_CTL_MASK_4, port_rate_limit_enable_4},//port_rate_limit_4
-+ { -1}
-+};
-+
-+static struct port_qos_t *port_mii_addr[] = {
-+ priority_1,
-+ flow_control_1,
-+ rate_limit_1,
-+ priority_2,
-+ flow_control_2,
-+ rate_limit_2,
-+ priority_3,
-+ flow_control_3,
-+ rate_limit_3,
-+ priority_4,
-+ flow_control_4,
-+ rate_limit_4,
-+ NULL
-+};
-+
-+void WriteDataToRegister_(unsigned short reg_idx, unsigned short content_idx)
-+{
-+ short RegNumber;
-+ unsigned short data, hidata=0x0, lodata=0x0;
-+ int i;
-+ struct port_qos_t *port_qos = port_mii_addr[reg_idx];
-+
-+ //printk("\nWriteDataToRegister_:reg_idx=%d content_idx=%d\n", reg_idx, content_idx);
-+ if (!port_qos)
-+ port_qos = port_mii_sw_array[content_idx];
-+
-+ for (i=0; port_qos[i].addr != -1; i++)
-+ {
-+ RegNumber = port_qos[i].addr;
-+ ReadDataFromRegister(RegNumber, &hidata, &lodata, 0);
-+
-+ if (!(RegNumber % 2)) /* even port number use lower word */
-+ hidata = lodata;
-+
-+ data = (hidata & port_qos[i].content_mask) | (((i > 0) && (content_idx > 1))? port_qos[i].content_set[1] : port_qos[i].content_set[content_idx]);
-+
-+ write_eeprom(RegNumber, &data, 1);
-+ ReadDataFromRegister(RegNumber, &hidata, &lodata, 0);
-+ }
-+ ReadDataFromRegister(0xf, &hidata, &lodata, 0);
-+
-+ /*RegNumber = port_mii_addr[reg_idx].addr;
-+ if (RegNumber == -1)//Disable or Enable
-+ {
-+ struct port_qos_t *port_mii_sw = port_mii_sw_array[content_idx];
-+
-+ printk("\nWriteDataToRegister_:reg_idx=%d content_idx=%d\n", reg_idx, content_idx);
-+ for (i=0; port_mii_sw[i].addr != -1; i++)
-+ {
-+ RegNumber = port_mii_sw[i].addr;
-+
-+ ReadDataFromRegister(RegNumber, &hidata, &lodata, 0);
-+
-+ if (!(RegNumber % 2))
-+ hidata = lodata;
-+
-+ data = (hidata & port_mii_sw[i].content_mask) | port_mii_sw[i].content_set[i];
-+
-+ write_eeprom(RegNumber, &data, 1);
-+
-+ ReadDataFromRegister(RegNumber, &hidata, &lodata, 0);
-+ printk("\n============== %s===============\n", (content_idx==0)?"disable":"enable");
-+ }
-+ }
-+ else
-+ {
-+ ReadDataFromRegister(RegNumber, &hidata, &lodata, 0);
-+
-+ if (!(RegNumber % 2))
-+ hidata = lodata;
-+
-+ data = (hidata & port_mii_addr[reg_idx].content_mask) | port_mii_addr[reg_idx].content_set[content_idx];
-+
-+ write_eeprom(RegNumber, &data, 1);
-+ ReadDataFromRegister(RegNumber, &hidata, &lodata, 0);
-+ }*/
-+}
-+#endif
-+
-+static int dev_do_ioctl(struct net_device *dev, struct ifreq *req, int cmd)
-+{
-+ struct mii_ioctl_data *data = (struct mii_ioctl_data *)req->ifr_data;
-+#ifdef PERFORMANCE_SUPPORT
-+ int item, port;
-+
-+ unsigned long status_item;
-+#endif
-+
-+ switch (cmd)
-+ {
-+ case SIOCGMIIPHY: /* Get address of MII PHY in use. */
-+ case SIOCDEVPRIVATE: /* for binary compat, remove in 2.5 */
-+
-+ /* Fall through to the SIOCGMIIREG, taken from eepro100 and rtl
-+ * drivers */
-+#ifdef PERFORMANCE_SUPPORT
-+ case SIOCGMIIREG: /* Read MII PHY register. */
-+ for (item=0; item<6; item++)
-+ for (port=1; port<5; port++){
-+ qos[(item * 4) + (port-1)] = get_statistic_from_serial(port, item);
-+ }
-+
-+ status_item = get_statistic_from_serial(0, 6);
-+
-+ qos[24] = (0x1 & (status_item >> 8));
-+ qos[25] = (0x1 & (status_item >> 16));
-+ qos[26] = (0x1 & (status_item >> 24));
-+ qos[27] = (0x1 & (status_item >> 28));
-+
-+ return 0;
-+#endif
-+
-+ case SIOCDEVPRIVATE+1: /* for binary compat, remove in 2.5 */
-+#ifdef HW_QOS_SUPPORT
-+ case SIOCSMIIREG: /* Write MII PHY register. */
-+ {
-+ printk("\n x phy_id=%x\n", data->phy_id);
-+ printk("\n x reg_num=%x\n", data->reg_num);
-+ printk("\n x val_in=%x\n", data->val_in);
-+ printk("\n x val_out=%x\n", data->val_out);
-+
-+ WriteDataToRegister_(data->phy_id, data->val_in);
-+ return 0;
-+ }
-+#endif
-+ case SIOCDEVPRIVATE+2: /* for binary compat, remove in 2.5 */
-+ default:
-+ return -EOPNOTSUPP;
-+ }
-+}
-+
-+static int __devinit qos_eth_probe(struct net_device *dev)
-+{
-+
-+ SET_MODULE_OWNER(dev);
-+
-+ ether_setup(dev);
-+
-+ strcpy(dev->name, DEVICE_NAME "0");
-+
-+ dev->do_ioctl = dev_do_ioctl;
-+
-+ return 0;
-+}
-+
-+#ifdef HW_QOS_SUPPORT
-+static char *port_option_name[] = {
-+ "port_priority_1",
-+ "port_flow_control_1",
-+ //{ "port_frame_type_1",
-+ "port_rate_limit_1",
-+ "port_priority_2",
-+ "port_flow_control_2",
-+ //{ "port_frame_type_2",
-+ "port_rate_limit_2",
-+ "port_priority_3",
-+ "port_flow_control_3",
-+ //{ "port_frame_type_3",
-+ "port_rate_limit_3",
-+ "port_priority_4",
-+ //{ "port_priority_4", PORT_CONFIG_4, PRIORITY_MASK, port_priority_content},
-+ "port_flow_control_4",
-+ //{ "port_frame_type_4",
-+ "port_rate_limit_4",
-+ "QoS",
-+ NULL
-+};
-+
-+extern char *nvram_get(const char *name);
-+extern uint bcm_atoi(char *s);
-+
-+static int set_port_option(struct net_device *dev, unsigned short port_addr, char *option_content)
-+{
-+ struct ifreq ifr;
-+ struct mii_ioctl_data stats;
-+
-+ stats.phy_id=port_addr;
-+ stats.val_in=bcm_atoi(option_content);
-+
-+ ifr.ifr_data = (void *)&stats;
-+
-+ return dev_do_ioctl(dev, &ifr, SIOCSMIIREG);
-+}
-+
-+
-+void
-+restore_default_from_NV(struct net_device *dev)
-+{
-+ unsigned short i;
-+ char *value = NULL;
-+
-+ for (i = 0; port_option_name[i]; i++)
-+ {
-+ if((value = nvram_get(port_option_name[i])))
-+ set_port_option(dev, i, value);
-+ }
-+ return;
-+}
-+#endif
-+
-+static struct net_device qos_devices;
-+
-+/* Module initialization and cleanup */
-+int init_module(void)
-+{
-+ int res;
-+ struct net_device *dev;
-+
-+ printk("Initializing " MODULE_NAME " driver " MODULE_VERSION "\n");
-+
-+ dev = &qos_devices;
-+
-+ dev->init = qos_eth_probe;
-+
-+ if ((res = register_netdev(dev)))
-+ printk("Failed to register netdev. res = %d\n", res);
-+
-+#ifdef PERFORMANCE_SUPPORT
-+ qos_sysctl_header = register_sysctl_table(mytable, 0);
-+#endif
-+#ifdef HW_QOS_SUPPORT
-+ restore_default_from_NV(dev);
-+ write_eeprom(TOS_PRIO_MAP, &sw_content[0], 1);/* disable TOS priority map*/
-+#endif
-+ return 0;
-+}
-+
-+void cleanup_module(void)
-+{
-+ struct net_device *dev = &qos_devices;
-+ if (dev->priv != NULL)
-+ {
-+ unregister_netdev(dev);
-+ kfree(dev->priv);
-+ dev->priv = NULL;
-+ }
-+
-+#ifdef PERFORMANCE_SUPPORT
-+ unregister_sysctl_table(qos_sysctl_header);
-+#endif
-+}
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/net/wl/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,68 @@
-+#
-+# Makefile for the Broadcom wl driver
-+#
-+# Copyright 2004, Broadcom Corporation
-+# All Rights Reserved.
-+#
-+# THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+# KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+# SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+# FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+#
-+# $Id: Makefile,v 1.1.1.7 2004/04/12 04:32:06 honor Exp $
-+#
-+
-+O_TARGET := wl.o
-+
-+WL_OBJS := wl_linux.o wlc.o d11ucode.o wlc_phy.o wlc_rate.o wlc_led.o wlc_security.o rc4.o tkhash.o bcmwpa.o
-+
-+INSUP_OBJS := aes.o aeskeywrap.o hmac.o md5.o passhash.o prf.o rijndael-alg-fst.o sha1.o
-+
-+# Alternate ioctl interfaces
-+ifeq ($(CONFIG_NET_WIRELESS),y)
-+WL_OBJS += wlc_cmn_ioctl.o
-+endif
-+ifeq ($(CONFIG_WL_OID),y)
-+WL_OBJS += wl_oid.o
-+endif
-+
-+ifeq ($(CONFIG_WL_STA),y)
-+WL_OBJS += $(INSUP_OBJS)
-+endif
-+
-+# Prefix driver variants
-+WL_APOBJS := $(foreach obj,$(WL_OBJS),ap_$(obj))
-+WL_STAOBJS := $(foreach obj,$(WL_OBJS) wlc_sup.o,sta_$(obj))
-+WL_APSTAOBJS := $(foreach obj,$(WL_OBJS) wlc_sup.o,apsta_$(obj))
-+ifneq ($(CONFIG_WL_STA),y)
-+WL_APSTAOBJS += $(foreach obj,$(INSUP_OBJS), apsta_$(obj))
-+endif
-+
-+# Either or both
-+ifeq ($(CONFIG_WL_AP),y)
-+AP := AP
-+endif
-+ifeq ($(CONFIG_WL_STA),y)
-+STA := STA
-+endif
-+
-+# Build all variants as modules but link only one of them
-+export-objs :=
-+obj-y := $(WL_$(AP)$(STA)OBJS)
-+obj-m := $(O_TARGET)
-+variant-objs := $(WL_APOBJS) $(WL_STAOBJS) $(WL_APSTAOBJS)
-+
-+EXTRA_CFLAGS += -DDMA
-+
-+# Search for sources under src/wl/sys or objects under src/wl/linux
-+ifneq ($(wildcard $(SRCBASE)/wl/sys),)
-+EXTRA_CFLAGS += -I$(SRCBASE)/wl/sys
-+vpath %.c $(SRCBASE)/wl/sys $(SRCBASE)/shared $(SRCBASE)/crypto
-+else
-+obj-y := $(foreach obj,$(obj-y),$(SRCBASE)/wl/linux/$(obj))
-+variant-objs := $(foreach obj,$(variant-objs),$(SRCBASE)/wl/linux/$(obj))
-+endif
-+
-+include $(TOPDIR)/Rules.make
-+
-+
---- linux-2.4.20/drivers/pcmcia/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:01.000000000 -0500
-+++ linux-2.4.20/drivers/pcmcia/Makefile 2005-01-07 05:39:02.000000000 -0500
-@@ -64,6 +64,10 @@
- au1000_ss-objs-$(CONFIG_PCMCIA_PB1X00) += au1000_pb1x00.o
- au1000_ss-objs-$(CONFIG_PCMCIA_DB1X00) += au1000_db1x00.o
-
-+obj-$(CONFIG_PCMCIA_BCM4710) += bcm4710_ss.o
-+bcm4710_ss-objs := bcm4710_generic.o
-+bcm4710_ss-objs += bcm4710_pcmcia.o
-+
- obj-$(CONFIG_PCMCIA_SA1100) += sa1100_cs.o
- obj-$(CONFIG_PCMCIA_M8XX) += m8xx_pcmcia.o
-
-@@ -98,5 +102,8 @@
- au1x00_ss.o: $(au1000_ss-objs-y)
- $(LD) -r -o $@ $(au1000_ss-objs-y)
-
-+bcm4710_ss.o: $(bcm4710_ss-objs)
-+ $(LD) -r -o $@ $(bcm4710_ss-objs)
-+
- yenta_socket.o: $(yenta_socket-objs)
- $(LD) $(LD_RFLAG) -r -o $@ $(yenta_socket-objs)
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/pcmcia/bcm4710_generic.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,912 @@
-+/*
-+ *
-+ * bcm47xx pcmcia driver
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * Based on sa1100_generic.c from www.handhelds.org,
-+ * and au1000_generic.c from oss.sgi.com.
-+ *
-+ * $Id: bcm4710_generic.c,v 1.1.1.7 2004/04/12 04:32:07 honor Exp $
-+ */
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/config.h>
-+#include <linux/delay.h>
-+#include <linux/ioport.h>
-+#include <linux/kernel.h>
-+#include <linux/tqueue.h>
-+#include <linux/timer.h>
-+#include <linux/mm.h>
-+#include <linux/proc_fs.h>
-+#include <linux/version.h>
-+#include <linux/types.h>
-+#include <linux/vmalloc.h>
-+
-+#include <pcmcia/version.h>
-+#include <pcmcia/cs_types.h>
-+#include <pcmcia/cs.h>
-+#include <pcmcia/ss.h>
-+#include <pcmcia/bulkmem.h>
-+#include <pcmcia/cistpl.h>
-+#include <pcmcia/bus_ops.h>
-+#include "cs_internal.h"
-+
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/system.h>
-+
-+#include <typedefs.h>
-+#include <bcm4710.h>
-+#include <sbextif.h>
-+
-+#include "bcm4710pcmcia.h"
-+
-+#ifdef PCMCIA_DEBUG
-+static int pc_debug = PCMCIA_DEBUG;
-+#endif
-+
-+MODULE_DESCRIPTION("Linux PCMCIA Card Services: bcm47xx Socket Controller");
-+
-+/* This structure maintains housekeeping state for each socket, such
-+ * as the last known values of the card detect pins, or the Card Services
-+ * callback value associated with the socket:
-+ */
-+static struct bcm47xx_pcmcia_socket *pcmcia_socket;
-+static int socket_count;
-+
-+
-+/* Returned by the low-level PCMCIA interface: */
-+static struct pcmcia_low_level *pcmcia_low_level;
-+
-+/* Event poll timer structure */
-+static struct timer_list poll_timer;
-+
-+
-+/* Prototypes for routines which are used internally: */
-+
-+static int bcm47xx_pcmcia_driver_init(void);
-+static void bcm47xx_pcmcia_driver_shutdown(void);
-+static void bcm47xx_pcmcia_task_handler(void *data);
-+static void bcm47xx_pcmcia_poll_event(unsigned long data);
-+static void bcm47xx_pcmcia_interrupt(int irq, void *dev, struct pt_regs *regs);
-+static struct tq_struct bcm47xx_pcmcia_task;
-+
-+#ifdef CONFIG_PROC_FS
-+static int bcm47xx_pcmcia_proc_status(char *buf, char **start,
-+ off_t pos, int count, int *eof, void *data);
-+#endif
-+
-+
-+/* Prototypes for operations which are exported to the
-+ * in-kernel PCMCIA core:
-+ */
-+
-+static int bcm47xx_pcmcia_init(unsigned int sock);
-+static int bcm47xx_pcmcia_suspend(unsigned int sock);
-+static int bcm47xx_pcmcia_register_callback(unsigned int sock,
-+ void (*handler)(void *, unsigned int), void *info);
-+static int bcm47xx_pcmcia_inquire_socket(unsigned int sock, socket_cap_t *cap);
-+static int bcm47xx_pcmcia_get_status(unsigned int sock, u_int *value);
-+static int bcm47xx_pcmcia_get_socket(unsigned int sock, socket_state_t *state);
-+static int bcm47xx_pcmcia_set_socket(unsigned int sock, socket_state_t *state);
-+static int bcm47xx_pcmcia_get_io_map(unsigned int sock, struct pccard_io_map *io);
-+static int bcm47xx_pcmcia_set_io_map(unsigned int sock, struct pccard_io_map *io);
-+static int bcm47xx_pcmcia_get_mem_map(unsigned int sock, struct pccard_mem_map *mem);
-+static int bcm47xx_pcmcia_set_mem_map(unsigned int sock, struct pccard_mem_map *mem);
-+#ifdef CONFIG_PROC_FS
-+static void bcm47xx_pcmcia_proc_setup(unsigned int sock, struct proc_dir_entry *base);
-+#endif
-+
-+static struct pccard_operations bcm47xx_pcmcia_operations = {
-+ bcm47xx_pcmcia_init,
-+ bcm47xx_pcmcia_suspend,
-+ bcm47xx_pcmcia_register_callback,
-+ bcm47xx_pcmcia_inquire_socket,
-+ bcm47xx_pcmcia_get_status,
-+ bcm47xx_pcmcia_get_socket,
-+ bcm47xx_pcmcia_set_socket,
-+ bcm47xx_pcmcia_get_io_map,
-+ bcm47xx_pcmcia_set_io_map,
-+ bcm47xx_pcmcia_get_mem_map,
-+ bcm47xx_pcmcia_set_mem_map,
-+#ifdef CONFIG_PROC_FS
-+ bcm47xx_pcmcia_proc_setup
-+#endif
-+};
-+
-+
-+/*
-+ * bcm47xx_pcmcia_driver_init()
-+ *
-+ * This routine performs a basic sanity check to ensure that this
-+ * kernel has been built with the appropriate board-specific low-level
-+ * PCMCIA support, performs low-level PCMCIA initialization, registers
-+ * this socket driver with Card Services, and then spawns the daemon
-+ * thread which is the real workhorse of the socket driver.
-+ *
-+ * Please see linux/Documentation/arm/SA1100/PCMCIA for more information
-+ * on the low-level kernel interface.
-+ *
-+ * Returns: 0 on success, -1 on error
-+ */
-+static int __init bcm47xx_pcmcia_driver_init(void)
-+{
-+ servinfo_t info;
-+ struct pcmcia_init pcmcia_init;
-+ struct pcmcia_state state;
-+ unsigned int i;
-+ unsigned long tmp;
-+
-+
-+ printk("\nBCM47XX PCMCIA (CS release %s)\n", CS_RELEASE);
-+
-+ CardServices(GetCardServicesInfo, &info);
-+
-+ if (info.Revision != CS_RELEASE_CODE) {
-+ printk(KERN_ERR "Card Services release codes do not match\n");
-+ return -1;
-+ }
-+
-+#ifdef CONFIG_BCM4710
-+ pcmcia_low_level=&bcm4710_pcmcia_ops;
-+#else
-+#error Unsupported Broadcom BCM47XX board.
-+#endif
-+
-+ pcmcia_init.handler=bcm47xx_pcmcia_interrupt;
-+
-+ if ((socket_count = pcmcia_low_level->init(&pcmcia_init)) < 0) {
-+ printk(KERN_ERR "Unable to initialize PCMCIA service.\n");
-+ return -EIO;
-+ } else {
-+ printk("\t%d PCMCIA sockets initialized.\n", socket_count);
-+ }
-+
-+ pcmcia_socket =
-+ kmalloc(sizeof(struct bcm47xx_pcmcia_socket) * socket_count,
-+ GFP_KERNEL);
-+ memset(pcmcia_socket, 0,
-+ sizeof(struct bcm47xx_pcmcia_socket) * socket_count);
-+ if (!pcmcia_socket) {
-+ printk(KERN_ERR "Card Services can't get memory \n");
-+ return -1;
-+ }
-+
-+ for (i = 0; i < socket_count; i++) {
-+ if (pcmcia_low_level->socket_state(i, &state) < 0) {
-+ printk(KERN_ERR "Unable to get PCMCIA status\n");
-+ return -EIO;
-+ }
-+ pcmcia_socket[i].k_state = state;
-+ pcmcia_socket[i].cs_state.csc_mask = SS_DETECT;
-+
-+ if (i == 0) {
-+ pcmcia_socket[i].virt_io =
-+ (unsigned long)ioremap_nocache(EXTIF_PCMCIA_IOBASE(BCM4710_EXTIF), 0x1000);
-+ /* Substract ioport base which gets added by in/out */
-+ pcmcia_socket[i].virt_io -= mips_io_port_base;
-+ pcmcia_socket[i].phys_attr =
-+ (unsigned long)EXTIF_PCMCIA_CFGBASE(BCM4710_EXTIF);
-+ pcmcia_socket[i].phys_mem =
-+ (unsigned long)EXTIF_PCMCIA_MEMBASE(BCM4710_EXTIF);
-+ } else {
-+ printk(KERN_ERR "bcm4710: socket 1 not supported\n");
-+ return 1;
-+ }
-+ }
-+
-+ /* Only advertise as many sockets as we can detect: */
-+ if (register_ss_entry(socket_count, &bcm47xx_pcmcia_operations) < 0) {
-+ printk(KERN_ERR "Unable to register socket service routine\n");
-+ return -ENXIO;
-+ }
-+
-+ /* Start the event poll timer.
-+ * It will reschedule by itself afterwards.
-+ */
-+ bcm47xx_pcmcia_poll_event(0);
-+
-+ DEBUG(1, "bcm4710: initialization complete\n");
-+ return 0;
-+
-+}
-+
-+module_init(bcm47xx_pcmcia_driver_init);
-+
-+
-+/*
-+ * bcm47xx_pcmcia_driver_shutdown()
-+ *
-+ * Invokes the low-level kernel service to free IRQs associated with this
-+ * socket controller and reset GPIO edge detection.
-+ */
-+static void __exit bcm47xx_pcmcia_driver_shutdown(void)
-+{
-+ int i;
-+
-+ del_timer_sync(&poll_timer);
-+ unregister_ss_entry(&bcm47xx_pcmcia_operations);
-+ pcmcia_low_level->shutdown();
-+ flush_scheduled_tasks();
-+ for (i = 0; i < socket_count; i++) {
-+ if (pcmcia_socket[i].virt_io)
-+ iounmap((void *)pcmcia_socket[i].virt_io);
-+ if (pcmcia_socket[i].phys_attr)
-+ iounmap((void *)pcmcia_socket[i].phys_attr);
-+ if (pcmcia_socket[i].phys_mem)
-+ iounmap((void *)pcmcia_socket[i].phys_mem);
-+ }
-+ DEBUG(1, "bcm4710: shutdown complete\n");
-+}
-+
-+module_exit(bcm47xx_pcmcia_driver_shutdown);
-+
-+/*
-+ * bcm47xx_pcmcia_init()
-+ * We perform all of the interesting initialization tasks in
-+ * bcm47xx_pcmcia_driver_init().
-+ *
-+ * Returns: 0
-+ */
-+static int bcm47xx_pcmcia_init(unsigned int sock)
-+{
-+ DEBUG(1, "%s(): initializing socket %u\n", __FUNCTION__, sock);
-+
-+ return 0;
-+}
-+
-+/*
-+ * bcm47xx_pcmcia_suspend()
-+ *
-+ * We don't currently perform any actions on a suspend.
-+ *
-+ * Returns: 0
-+ */
-+static int bcm47xx_pcmcia_suspend(unsigned int sock)
-+{
-+ DEBUG(1, "%s(): suspending socket %u\n", __FUNCTION__, sock);
-+
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_events()
-+ *
-+ * Helper routine to generate a Card Services event mask based on
-+ * state information obtained from the kernel low-level PCMCIA layer
-+ * in a recent (and previous) sampling. Updates `prev_state'.
-+ *
-+ * Returns: an event mask for the given socket state.
-+ */
-+static inline unsigned
-+bcm47xx_pcmcia_events(struct pcmcia_state *state,
-+ struct pcmcia_state *prev_state,
-+ unsigned int mask, unsigned int flags)
-+{
-+ unsigned int events=0;
-+
-+ if (state->bvd1 != prev_state->bvd1) {
-+
-+ DEBUG(3, "%s(): card BVD1 value %u\n", __FUNCTION__, state->bvd1);
-+
-+ events |= mask & (flags & SS_IOCARD) ? SS_STSCHG : SS_BATDEAD;
-+ }
-+
-+ if (state->bvd2 != prev_state->bvd2) {
-+
-+ DEBUG(3, "%s(): card BVD2 value %u\n", __FUNCTION__, state->bvd2);
-+
-+ events |= mask & (flags & SS_IOCARD) ? 0 : SS_BATWARN;
-+ }
-+
-+ if (state->detect != prev_state->detect) {
-+
-+ DEBUG(3, "%s(): card detect value %u\n", __FUNCTION__, state->detect);
-+
-+ events |= mask & SS_DETECT;
-+ }
-+
-+
-+ if (state->ready != prev_state->ready) {
-+
-+ DEBUG(3, "%s(): card ready value %u\n", __FUNCTION__, state->ready);
-+
-+ events |= mask & ((flags & SS_IOCARD) ? 0 : SS_READY);
-+ }
-+
-+ if (events != 0) {
-+ DEBUG(2, "events: %s%s%s%s%s\n",
-+ (events & SS_DETECT) ? "DETECT " : "",
-+ (events & SS_READY) ? "READY " : "",
-+ (events & SS_BATDEAD) ? "BATDEAD " : "",
-+ (events & SS_BATWARN) ? "BATWARN " : "",
-+ (events & SS_STSCHG) ? "STSCHG " : "");
-+ }
-+
-+ *prev_state=*state;
-+ return events;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_task_handler()
-+ *
-+ * Processes serviceable socket events using the "eventd" thread context.
-+ *
-+ * Event processing (specifically, the invocation of the Card Services event
-+ * callback) occurs in this thread rather than in the actual interrupt
-+ * handler due to the use of scheduling operations in the PCMCIA core.
-+ */
-+static void bcm47xx_pcmcia_task_handler(void *data)
-+{
-+ struct pcmcia_state state;
-+ int i, events, irq_status;
-+
-+ DEBUG(4, "%s(): entering PCMCIA monitoring thread\n", __FUNCTION__);
-+
-+ for (i = 0; i < socket_count; i++) {
-+ if ((irq_status = pcmcia_low_level->socket_state(i, &state)) < 0)
-+ printk(KERN_ERR "Error in kernel low-level PCMCIA service.\n");
-+
-+ events = bcm47xx_pcmcia_events(&state,
-+ &pcmcia_socket[i].k_state,
-+ pcmcia_socket[i].cs_state.csc_mask,
-+ pcmcia_socket[i].cs_state.flags);
-+
-+ if (pcmcia_socket[i].handler != NULL) {
-+ pcmcia_socket[i].handler(pcmcia_socket[i].handler_info,
-+ events);
-+ }
-+ }
-+}
-+
-+static struct tq_struct bcm47xx_pcmcia_task = {
-+ routine: bcm47xx_pcmcia_task_handler
-+};
-+
-+
-+/*
-+ * bcm47xx_pcmcia_poll_event()
-+ *
-+ * Let's poll for events in addition to IRQs since IRQ only is unreliable...
-+ */
-+static void bcm47xx_pcmcia_poll_event(unsigned long dummy)
-+{
-+ DEBUG(4, "%s(): polling for events\n", __FUNCTION__);
-+
-+ poll_timer.function = bcm47xx_pcmcia_poll_event;
-+ poll_timer.expires = jiffies + BCM47XX_PCMCIA_POLL_PERIOD;
-+ add_timer(&poll_timer);
-+ schedule_task(&bcm47xx_pcmcia_task);
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_interrupt()
-+ *
-+ * Service routine for socket driver interrupts (requested by the
-+ * low-level PCMCIA init() operation via bcm47xx_pcmcia_thread()).
-+ *
-+ * The actual interrupt-servicing work is performed by
-+ * bcm47xx_pcmcia_task(), largely because the Card Services event-
-+ * handling code performs scheduling operations which cannot be
-+ * executed from within an interrupt context.
-+ */
-+static void
-+bcm47xx_pcmcia_interrupt(int irq, void *dev, struct pt_regs *regs)
-+{
-+ DEBUG(3, "%s(): servicing IRQ %d\n", __FUNCTION__, irq);
-+ schedule_task(&bcm47xx_pcmcia_task);
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_register_callback()
-+ *
-+ * Implements the register_callback() operation for the in-kernel
-+ * PCMCIA service (formerly SS_RegisterCallback in Card Services). If
-+ * the function pointer `handler' is not NULL, remember the callback
-+ * location in the state for `sock', and increment the usage counter
-+ * for the driver module. (The callback is invoked from the interrupt
-+ * service routine, bcm47xx_pcmcia_interrupt(), to notify Card Services
-+ * of interesting events.) Otherwise, clear the callback pointer in the
-+ * socket state and decrement the module usage count.
-+ *
-+ * Returns: 0
-+ */
-+static int
-+bcm47xx_pcmcia_register_callback(unsigned int sock,
-+ void (*handler)(void *, unsigned int), void *info)
-+{
-+ if (handler == NULL) {
-+ pcmcia_socket[sock].handler = NULL;
-+ MOD_DEC_USE_COUNT;
-+ } else {
-+ MOD_INC_USE_COUNT;
-+ pcmcia_socket[sock].handler = handler;
-+ pcmcia_socket[sock].handler_info = info;
-+ }
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_inquire_socket()
-+ *
-+ * Implements the inquire_socket() operation for the in-kernel PCMCIA
-+ * service (formerly SS_InquireSocket in Card Services). Of note is
-+ * the setting of the SS_CAP_PAGE_REGS bit in the `features' field of
-+ * `cap' to "trick" Card Services into tolerating large "I/O memory"
-+ * addresses. Also set is SS_CAP_STATIC_MAP, which disables the memory
-+ * resource database check. (Mapped memory is set up within the socket
-+ * driver itself.)
-+ *
-+ * In conjunction with the STATIC_MAP capability is a new field,
-+ * `io_offset', recommended by David Hinds. Rather than go through
-+ * the SetIOMap interface (which is not quite suited for communicating
-+ * window locations up from the socket driver), we just pass up
-+ * an offset which is applied to client-requested base I/O addresses
-+ * in alloc_io_space().
-+ *
-+ * Returns: 0 on success, -1 if no pin has been configured for `sock'
-+ */
-+static int
-+bcm47xx_pcmcia_inquire_socket(unsigned int sock, socket_cap_t *cap)
-+{
-+ struct pcmcia_irq_info irq_info;
-+
-+ if (sock >= socket_count) {
-+ printk(KERN_ERR "bcm47xx: socket %u not configured\n", sock);
-+ return -1;
-+ }
-+
-+ /* SS_CAP_PAGE_REGS: used by setup_cis_mem() in cistpl.c to set the
-+ * force_low argument to validate_mem() in rsrc_mgr.c -- since in
-+ * general, the mapped * addresses of the PCMCIA memory regions
-+ * will not be within 0xffff, setting force_low would be
-+ * undesirable.
-+ *
-+ * SS_CAP_STATIC_MAP: don't bother with the (user-configured) memory
-+ * resource database; we instead pass up physical address ranges
-+ * and allow other parts of Card Services to deal with remapping.
-+ *
-+ * SS_CAP_PCCARD: we can deal with 16-bit PCMCIA & CF cards, but
-+ * not 32-bit CardBus devices.
-+ */
-+ cap->features = (SS_CAP_PAGE_REGS | SS_CAP_STATIC_MAP | SS_CAP_PCCARD);
-+
-+ irq_info.sock = sock;
-+ irq_info.irq = -1;
-+
-+ if (pcmcia_low_level->get_irq_info(&irq_info) < 0) {
-+ printk(KERN_ERR "Error obtaining IRQ info socket %u\n", sock);
-+ return -1;
-+ }
-+
-+ cap->irq_mask = 0;
-+ cap->map_size = PAGE_SIZE;
-+ cap->pci_irq = irq_info.irq;
-+ cap->io_offset = pcmcia_socket[sock].virt_io;
-+
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_get_status()
-+ *
-+ * Implements the get_status() operation for the in-kernel PCMCIA
-+ * service (formerly SS_GetStatus in Card Services). Essentially just
-+ * fills in bits in `status' according to internal driver state or
-+ * the value of the voltage detect chipselect register.
-+ *
-+ * As a debugging note, during card startup, the PCMCIA core issues
-+ * three set_socket() commands in a row the first with RESET deasserted,
-+ * the second with RESET asserted, and the last with RESET deasserted
-+ * again. Following the third set_socket(), a get_status() command will
-+ * be issued. The kernel is looking for the SS_READY flag (see
-+ * setup_socket(), reset_socket(), and unreset_socket() in cs.c).
-+ *
-+ * Returns: 0
-+ */
-+static int
-+bcm47xx_pcmcia_get_status(unsigned int sock, unsigned int *status)
-+{
-+ struct pcmcia_state state;
-+
-+
-+ if ((pcmcia_low_level->socket_state(sock, &state)) < 0) {
-+ printk(KERN_ERR "Unable to get PCMCIA status from kernel.\n");
-+ return -1;
-+ }
-+
-+ pcmcia_socket[sock].k_state = state;
-+
-+ *status = state.detect ? SS_DETECT : 0;
-+
-+ *status |= state.ready ? SS_READY : 0;
-+
-+ /* The power status of individual sockets is not available
-+ * explicitly from the hardware, so we just remember the state
-+ * and regurgitate it upon request:
-+ */
-+ *status |= pcmcia_socket[sock].cs_state.Vcc ? SS_POWERON : 0;
-+
-+ if (pcmcia_socket[sock].cs_state.flags & SS_IOCARD)
-+ *status |= state.bvd1 ? SS_STSCHG : 0;
-+ else {
-+ if (state.bvd1 == 0)
-+ *status |= SS_BATDEAD;
-+ else if (state.bvd2 == 0)
-+ *status |= SS_BATWARN;
-+ }
-+
-+ *status |= state.vs_3v ? SS_3VCARD : 0;
-+
-+ *status |= state.vs_Xv ? SS_XVCARD : 0;
-+
-+ DEBUG(2, "\tstatus: %s%s%s%s%s%s%s%s\n",
-+ (*status&SS_DETECT)?"DETECT ":"",
-+ (*status&SS_READY)?"READY ":"",
-+ (*status&SS_BATDEAD)?"BATDEAD ":"",
-+ (*status&SS_BATWARN)?"BATWARN ":"",
-+ (*status&SS_POWERON)?"POWERON ":"",
-+ (*status&SS_STSCHG)?"STSCHG ":"",
-+ (*status&SS_3VCARD)?"3VCARD ":"",
-+ (*status&SS_XVCARD)?"XVCARD ":"");
-+
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_get_socket()
-+ *
-+ * Implements the get_socket() operation for the in-kernel PCMCIA
-+ * service (formerly SS_GetSocket in Card Services). Not a very
-+ * exciting routine.
-+ *
-+ * Returns: 0
-+ */
-+static int
-+bcm47xx_pcmcia_get_socket(unsigned int sock, socket_state_t *state)
-+{
-+ DEBUG(2, "%s() for sock %u\n", __FUNCTION__, sock);
-+
-+ /* This information was given to us in an earlier call to set_socket(),
-+ * so we're just regurgitating it here:
-+ */
-+ *state = pcmcia_socket[sock].cs_state;
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_set_socket()
-+ *
-+ * Implements the set_socket() operation for the in-kernel PCMCIA
-+ * service (formerly SS_SetSocket in Card Services). We more or
-+ * less punt all of this work and let the kernel handle the details
-+ * of power configuration, reset, &c. We also record the value of
-+ * `state' in order to regurgitate it to the PCMCIA core later.
-+ *
-+ * Returns: 0
-+ */
-+static int
-+bcm47xx_pcmcia_set_socket(unsigned int sock, socket_state_t *state)
-+{
-+ struct pcmcia_configure configure;
-+
-+ DEBUG(2, "\tmask: %s%s%s%s%s%s\n\tflags: %s%s%s%s%s%s\n"
-+ "\tVcc %d Vpp %d irq %d\n",
-+ (state->csc_mask == 0) ? "<NONE>" : "",
-+ (state->csc_mask & SS_DETECT) ? "DETECT " : "",
-+ (state->csc_mask & SS_READY) ? "READY " : "",
-+ (state->csc_mask & SS_BATDEAD) ? "BATDEAD " : "",
-+ (state->csc_mask & SS_BATWARN) ? "BATWARN " : "",
-+ (state->csc_mask & SS_STSCHG) ? "STSCHG " : "",
-+ (state->flags == 0) ? "<NONE>" : "",
-+ (state->flags & SS_PWR_AUTO) ? "PWR_AUTO " : "",
-+ (state->flags & SS_IOCARD) ? "IOCARD " : "",
-+ (state->flags & SS_RESET) ? "RESET " : "",
-+ (state->flags & SS_SPKR_ENA) ? "SPKR_ENA " : "",
-+ (state->flags & SS_OUTPUT_ENA) ? "OUTPUT_ENA " : "",
-+ state->Vcc, state->Vpp, state->io_irq);
-+
-+ configure.sock = sock;
-+ configure.vcc = state->Vcc;
-+ configure.vpp = state->Vpp;
-+ configure.output = (state->flags & SS_OUTPUT_ENA) ? 1 : 0;
-+ configure.speaker = (state->flags & SS_SPKR_ENA) ? 1 : 0;
-+ configure.reset = (state->flags & SS_RESET) ? 1 : 0;
-+
-+ if (pcmcia_low_level->configure_socket(&configure) < 0) {
-+ printk(KERN_ERR "Unable to configure socket %u\n", sock);
-+ return -1;
-+ }
-+
-+ pcmcia_socket[sock].cs_state = *state;
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_get_io_map()
-+ *
-+ * Implements the get_io_map() operation for the in-kernel PCMCIA
-+ * service (formerly SS_GetIOMap in Card Services). Just returns an
-+ * I/O map descriptor which was assigned earlier by a set_io_map().
-+ *
-+ * Returns: 0 on success, -1 if the map index was out of range
-+ */
-+static int
-+bcm47xx_pcmcia_get_io_map(unsigned int sock, struct pccard_io_map *map)
-+{
-+ DEBUG(2, "bcm47xx_pcmcia_get_io_map: sock %d\n", sock);
-+
-+ if (map->map >= MAX_IO_WIN) {
-+ printk(KERN_ERR "%s(): map (%d) out of range\n",
-+ __FUNCTION__, map->map);
-+ return -1;
-+ }
-+
-+ *map = pcmcia_socket[sock].io_map[map->map];
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_set_io_map()
-+ *
-+ * Implements the set_io_map() operation for the in-kernel PCMCIA
-+ * service (formerly SS_SetIOMap in Card Services). We configure
-+ * the map speed as requested, but override the address ranges
-+ * supplied by Card Services.
-+ *
-+ * Returns: 0 on success, -1 on error
-+ */
-+int
-+bcm47xx_pcmcia_set_io_map(unsigned int sock, struct pccard_io_map *map)
-+{
-+ unsigned int speed;
-+ unsigned long start;
-+
-+ DEBUG(2, "\tmap %u speed %u\n\tstart 0x%08lx stop 0x%08lx\n"
-+ "\tflags: %s%s%s%s%s%s%s%s\n",
-+ map->map, map->speed, map->start, map->stop,
-+ (map->flags == 0) ? "<NONE>" : "",
-+ (map->flags & MAP_ACTIVE) ? "ACTIVE " : "",
-+ (map->flags & MAP_16BIT) ? "16BIT " : "",
-+ (map->flags & MAP_AUTOSZ) ? "AUTOSZ " : "",
-+ (map->flags & MAP_0WS) ? "0WS " : "",
-+ (map->flags & MAP_WRPROT) ? "WRPROT " : "",
-+ (map->flags & MAP_USE_WAIT) ? "USE_WAIT " : "",
-+ (map->flags & MAP_PREFETCH) ? "PREFETCH " : "");
-+
-+ if (map->map >= MAX_IO_WIN) {
-+ printk(KERN_ERR "%s(): map (%d) out of range\n",
-+ __FUNCTION__, map->map);
-+ return -1;
-+ }
-+
-+ if (map->flags & MAP_ACTIVE) {
-+ speed = (map->speed > 0) ? map->speed : BCM47XX_PCMCIA_IO_SPEED;
-+ pcmcia_socket[sock].speed_io = speed;
-+ }
-+
-+ start = map->start;
-+
-+ if (map->stop == 1) {
-+ map->stop = PAGE_SIZE - 1;
-+ }
-+
-+ map->start = pcmcia_socket[sock].virt_io;
-+ map->stop = map->start + (map->stop - start);
-+ pcmcia_socket[sock].io_map[map->map] = *map;
-+ DEBUG(2, "set_io_map %d start %x stop %x\n",
-+ map->map, map->start, map->stop);
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_get_mem_map()
-+ *
-+ * Implements the get_mem_map() operation for the in-kernel PCMCIA
-+ * service (formerly SS_GetMemMap in Card Services). Just returns a
-+ * memory map descriptor which was assigned earlier by a
-+ * set_mem_map() request.
-+ *
-+ * Returns: 0 on success, -1 if the map index was out of range
-+ */
-+static int
-+bcm47xx_pcmcia_get_mem_map(unsigned int sock, struct pccard_mem_map *map)
-+{
-+ DEBUG(2, "%s() for sock %u\n", __FUNCTION__, sock);
-+
-+ if (map->map >= MAX_WIN) {
-+ printk(KERN_ERR "%s(): map (%d) out of range\n",
-+ __FUNCTION__, map->map);
-+ return -1;
-+ }
-+
-+ *map = pcmcia_socket[sock].mem_map[map->map];
-+ return 0;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_set_mem_map()
-+ *
-+ * Implements the set_mem_map() operation for the in-kernel PCMCIA
-+ * service (formerly SS_SetMemMap in Card Services). We configure
-+ * the map speed as requested, but override the address ranges
-+ * supplied by Card Services.
-+ *
-+ * Returns: 0 on success, -1 on error
-+ */
-+static int
-+bcm47xx_pcmcia_set_mem_map(unsigned int sock, struct pccard_mem_map *map)
-+{
-+ unsigned int speed;
-+ unsigned long start;
-+ u_long flags;
-+
-+ if (map->map >= MAX_WIN) {
-+ printk(KERN_ERR "%s(): map (%d) out of range\n",
-+ __FUNCTION__, map->map);
-+ return -1;
-+ }
-+
-+ DEBUG(2, "\tmap %u speed %u\n\tsys_start %#lx\n"
-+ "\tsys_stop %#lx\n\tcard_start %#x\n"
-+ "\tflags: %s%s%s%s%s%s%s%s\n",
-+ map->map, map->speed, map->sys_start, map->sys_stop,
-+ map->card_start, (map->flags == 0) ? "<NONE>" : "",
-+ (map->flags & MAP_ACTIVE) ? "ACTIVE " : "",
-+ (map->flags & MAP_16BIT) ? "16BIT " : "",
-+ (map->flags & MAP_AUTOSZ) ? "AUTOSZ " : "",
-+ (map->flags & MAP_0WS) ? "0WS " : "",
-+ (map->flags & MAP_WRPROT) ? "WRPROT " : "",
-+ (map->flags & MAP_ATTRIB) ? "ATTRIB " : "",
-+ (map->flags & MAP_USE_WAIT) ? "USE_WAIT " : "");
-+
-+ if (map->flags & MAP_ACTIVE) {
-+ /* When clients issue RequestMap, the access speed is not always
-+ * properly configured:
-+ */
-+ speed = (map->speed > 0) ? map->speed : BCM47XX_PCMCIA_MEM_SPEED;
-+
-+ /* TBD */
-+ if (map->flags & MAP_ATTRIB) {
-+ pcmcia_socket[sock].speed_attr = speed;
-+ } else {
-+ pcmcia_socket[sock].speed_mem = speed;
-+ }
-+ }
-+
-+ save_flags(flags);
-+ cli();
-+ start = map->sys_start;
-+
-+ if (map->sys_stop == 0)
-+ map->sys_stop = PAGE_SIZE - 1;
-+
-+ if (map->flags & MAP_ATTRIB) {
-+ map->sys_start = pcmcia_socket[sock].phys_attr +
-+ map->card_start;
-+ } else {
-+ map->sys_start = pcmcia_socket[sock].phys_mem +
-+ map->card_start;
-+ }
-+
-+ map->sys_stop = map->sys_start + (map->sys_stop - start);
-+ pcmcia_socket[sock].mem_map[map->map] = *map;
-+ restore_flags(flags);
-+ DEBUG(2, "set_mem_map %d start %x stop %x card_start %x\n",
-+ map->map, map->sys_start, map->sys_stop,
-+ map->card_start);
-+ return 0;
-+}
-+
-+
-+#if defined(CONFIG_PROC_FS)
-+
-+/*
-+ * bcm47xx_pcmcia_proc_setup()
-+ *
-+ * Implements the proc_setup() operation for the in-kernel PCMCIA
-+ * service (formerly SS_ProcSetup in Card Services).
-+ *
-+ * Returns: 0 on success, -1 on error
-+ */
-+static void
-+bcm47xx_pcmcia_proc_setup(unsigned int sock, struct proc_dir_entry *base)
-+{
-+ struct proc_dir_entry *entry;
-+
-+ if ((entry = create_proc_entry("status", 0, base)) == NULL) {
-+ printk(KERN_ERR "Unable to install \"status\" procfs entry\n");
-+ return;
-+ }
-+
-+ entry->read_proc = bcm47xx_pcmcia_proc_status;
-+ entry->data = (void *)sock;
-+}
-+
-+
-+/*
-+ * bcm47xx_pcmcia_proc_status()
-+ *
-+ * Implements the /proc/bus/pccard/??/status file.
-+ *
-+ * Returns: the number of characters added to the buffer
-+ */
-+static int
-+bcm47xx_pcmcia_proc_status(char *buf, char **start, off_t pos,
-+ int count, int *eof, void *data)
-+{
-+ char *p = buf;
-+ unsigned int sock = (unsigned int)data;
-+
-+ p += sprintf(p, "k_flags : %s%s%s%s%s%s%s\n",
-+ pcmcia_socket[sock].k_state.detect ? "detect " : "",
-+ pcmcia_socket[sock].k_state.ready ? "ready " : "",
-+ pcmcia_socket[sock].k_state.bvd1 ? "bvd1 " : "",
-+ pcmcia_socket[sock].k_state.bvd2 ? "bvd2 " : "",
-+ pcmcia_socket[sock].k_state.wrprot ? "wrprot " : "",
-+ pcmcia_socket[sock].k_state.vs_3v ? "vs_3v " : "",
-+ pcmcia_socket[sock].k_state.vs_Xv ? "vs_Xv " : "");
-+
-+ p += sprintf(p, "status : %s%s%s%s%s%s%s%s%s\n",
-+ pcmcia_socket[sock].k_state.detect ? "SS_DETECT " : "",
-+ pcmcia_socket[sock].k_state.ready ? "SS_READY " : "",
-+ pcmcia_socket[sock].cs_state.Vcc ? "SS_POWERON " : "",
-+ pcmcia_socket[sock].cs_state.flags & SS_IOCARD ? "SS_IOCARD " : "",
-+ (pcmcia_socket[sock].cs_state.flags & SS_IOCARD &&
-+ pcmcia_socket[sock].k_state.bvd1) ? "SS_STSCHG " : "",
-+ ((pcmcia_socket[sock].cs_state.flags & SS_IOCARD) == 0 &&
-+ (pcmcia_socket[sock].k_state.bvd1 == 0)) ? "SS_BATDEAD " : "",
-+ ((pcmcia_socket[sock].cs_state.flags & SS_IOCARD) == 0 &&
-+ (pcmcia_socket[sock].k_state.bvd2 == 0)) ? "SS_BATWARN " : "",
-+ pcmcia_socket[sock].k_state.vs_3v ? "SS_3VCARD " : "",
-+ pcmcia_socket[sock].k_state.vs_Xv ? "SS_XVCARD " : "");
-+
-+ p += sprintf(p, "mask : %s%s%s%s%s\n",
-+ pcmcia_socket[sock].cs_state.csc_mask & SS_DETECT ? "SS_DETECT " : "",
-+ pcmcia_socket[sock].cs_state.csc_mask & SS_READY ? "SS_READY " : "",
-+ pcmcia_socket[sock].cs_state.csc_mask & SS_BATDEAD ? "SS_BATDEAD " : "",
-+ pcmcia_socket[sock].cs_state.csc_mask & SS_BATWARN ? "SS_BATWARN " : "",
-+ pcmcia_socket[sock].cs_state.csc_mask & SS_STSCHG ? "SS_STSCHG " : "");
-+
-+ p += sprintf(p, "cs_flags : %s%s%s%s%s\n",
-+ pcmcia_socket[sock].cs_state.flags & SS_PWR_AUTO ?
-+ "SS_PWR_AUTO " : "",
-+ pcmcia_socket[sock].cs_state.flags & SS_IOCARD ?
-+ "SS_IOCARD " : "",
-+ pcmcia_socket[sock].cs_state.flags & SS_RESET ?
-+ "SS_RESET " : "",
-+ pcmcia_socket[sock].cs_state.flags & SS_SPKR_ENA ?
-+ "SS_SPKR_ENA " : "",
-+ pcmcia_socket[sock].cs_state.flags & SS_OUTPUT_ENA ?
-+ "SS_OUTPUT_ENA " : "");
-+
-+ p += sprintf(p, "Vcc : %d\n", pcmcia_socket[sock].cs_state.Vcc);
-+ p += sprintf(p, "Vpp : %d\n", pcmcia_socket[sock].cs_state.Vpp);
-+ p += sprintf(p, "irq : %d\n", pcmcia_socket[sock].cs_state.io_irq);
-+ p += sprintf(p, "I/O : %u\n", pcmcia_socket[sock].speed_io);
-+ p += sprintf(p, "attribute: %u\n", pcmcia_socket[sock].speed_attr);
-+ p += sprintf(p, "common : %u\n", pcmcia_socket[sock].speed_mem);
-+ return p-buf;
-+}
-+
-+
-+#endif /* defined(CONFIG_PROC_FS) */
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/pcmcia/bcm4710_pcmcia.c 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,266 @@
-+/*
-+ * BCM4710 specific pcmcia routines.
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * $Id: bcm4710_pcmcia.c,v 1.1.1.7 2004/04/12 04:32:07 honor Exp $
-+ */
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/config.h>
-+#include <linux/delay.h>
-+#include <linux/ioport.h>
-+#include <linux/kernel.h>
-+#include <linux/tqueue.h>
-+#include <linux/timer.h>
-+#include <linux/mm.h>
-+#include <linux/proc_fs.h>
-+#include <linux/version.h>
-+#include <linux/types.h>
-+#include <linux/pci.h>
-+
-+#include <pcmcia/version.h>
-+#include <pcmcia/cs_types.h>
-+#include <pcmcia/cs.h>
-+#include <pcmcia/ss.h>
-+#include <pcmcia/bulkmem.h>
-+#include <pcmcia/cistpl.h>
-+#include <pcmcia/bus_ops.h>
-+#include "cs_internal.h"
-+
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/system.h>
-+
-+
-+#include <typedefs.h>
-+#include <bcmdevs.h>
-+#include <bcm4710.h>
-+#include <sbconfig.h>
-+#include <sbextif.h>
-+
-+#include "bcm4710pcmcia.h"
-+
-+/* Use a static var for irq dev_id */
-+static int bcm47xx_pcmcia_dev_id;
-+
-+/* Do we think we have a card or not? */
-+static int bcm47xx_pcmcia_present = 0;
-+
-+
-+static void bcm4710_pcmcia_reset(void)
-+{
-+ extifregs_t *eir;
-+ unsigned long s;
-+ uint32 out0, out1, outen;
-+
-+
-+ eir = (extifregs_t *) ioremap_nocache(BCM4710_REG_EXTIF, sizeof(extifregs_t));
-+
-+ save_and_cli(s);
-+
-+ /* Use gpio7 to reset the pcmcia slot */
-+ outen = readl(&eir->gpio[0].outen);
-+ outen |= BCM47XX_PCMCIA_RESET;
-+ out0 = readl(&eir->gpio[0].out);
-+ out0 &= ~(BCM47XX_PCMCIA_RESET);
-+ out1 = out0 | BCM47XX_PCMCIA_RESET;
-+
-+ writel(out0, &eir->gpio[0].out);
-+ writel(outen, &eir->gpio[0].outen);
-+ mdelay(1);
-+ writel(out1, &eir->gpio[0].out);
-+ mdelay(1);
-+ writel(out0, &eir->gpio[0].out);
-+
-+ restore_flags(s);
-+}
-+
-+
-+static int bcm4710_pcmcia_init(struct pcmcia_init *init)
-+{
-+ struct pci_dev *pdev;
-+ extifregs_t *eir;
-+ uint32 outen, intp, intm, tmp;
-+ uint16 *attrsp;
-+ int rc = 0, i;
-+ extern unsigned long bcm4710_cpu_cycle;
-+
-+
-+ if (!(pdev = pci_find_device(VENDOR_BROADCOM, SB_EXTIF, NULL))) {
-+ printk(KERN_ERR "bcm4710_pcmcia: extif not found\n");
-+ return -ENODEV;
-+ }
-+ eir = (extifregs_t *) ioremap_nocache(pci_resource_start(pdev, 0), pci_resource_len(pdev, 0));
-+
-+ /* Initialize the pcmcia i/f: 16bit no swap */
-+ writel(CF_EM_PCMCIA | CF_DS | CF_EN, &eir->pcmcia_config);
-+
-+#ifdef notYet
-+
-+ /* Set the timing for memory accesses */
-+ tmp = (19 / bcm4710_cpu_cycle) << 24; /* W3 = 10nS */
-+ tmp = tmp | ((29 / bcm4710_cpu_cycle) << 16); /* W2 = 20nS */
-+ tmp = tmp | ((109 / bcm4710_cpu_cycle) << 8); /* W1 = 100nS */
-+ tmp = tmp | (129 / bcm4710_cpu_cycle); /* W0 = 120nS */
-+ writel(tmp, &eir->pcmcia_memwait); /* 0x01020a0c for a 100Mhz clock */
-+
-+ /* Set the timing for I/O accesses */
-+ tmp = (19 / bcm4710_cpu_cycle) << 24; /* W3 = 10nS */
-+ tmp = tmp | ((29 / bcm4710_cpu_cycle) << 16); /* W2 = 20nS */
-+ tmp = tmp | ((109 / bcm4710_cpu_cycle) << 8); /* W1 = 100nS */
-+ tmp = tmp | (129 / bcm4710_cpu_cycle); /* W0 = 120nS */
-+ writel(tmp, &eir->pcmcia_iowait); /* 0x01020a0c for a 100Mhz clock */
-+
-+ /* Set the timing for attribute accesses */
-+ tmp = (19 / bcm4710_cpu_cycle) << 24; /* W3 = 10nS */
-+ tmp = tmp | ((29 / bcm4710_cpu_cycle) << 16); /* W2 = 20nS */
-+ tmp = tmp | ((109 / bcm4710_cpu_cycle) << 8); /* W1 = 100nS */
-+ tmp = tmp | (129 / bcm4710_cpu_cycle); /* W0 = 120nS */
-+ writel(tmp, &eir->pcmcia_attrwait); /* 0x01020a0c for a 100Mhz clock */
-+
-+#endif
-+ /* Make sure gpio0 and gpio5 are inputs */
-+ outen = readl(&eir->gpio[0].outen);
-+ outen &= ~(BCM47XX_PCMCIA_WP | BCM47XX_PCMCIA_STSCHG | BCM47XX_PCMCIA_RESET);
-+ writel(outen, &eir->gpio[0].outen);
-+
-+ /* Issue a reset to the pcmcia socket */
-+ bcm4710_pcmcia_reset();
-+
-+#ifdef DO_BCM47XX_PCMCIA_INTERRUPTS
-+ /* Setup gpio5 to be the STSCHG interrupt */
-+ intp = readl(&eir->gpiointpolarity);
-+ writel(intp | BCM47XX_PCMCIA_STSCHG, &eir->gpiointpolarity); /* Active low */
-+ intm = readl(&eir->gpiointmask);
-+ writel(intm | BCM47XX_PCMCIA_STSCHG, &eir->gpiointmask); /* Enable it */
-+#endif
-+
-+ DEBUG(2, "bcm4710_pcmcia after reset:\n");
-+ DEBUG(2, "\textstatus\t= 0x%08x:\n", readl(&eir->extstatus));
-+ DEBUG(2, "\tpcmcia_config\t= 0x%08x:\n", readl(&eir->pcmcia_config));
-+ DEBUG(2, "\tpcmcia_memwait\t= 0x%08x:\n", readl(&eir->pcmcia_memwait));
-+ DEBUG(2, "\tpcmcia_attrwait\t= 0x%08x:\n", readl(&eir->pcmcia_attrwait));
-+ DEBUG(2, "\tpcmcia_iowait\t= 0x%08x:\n", readl(&eir->pcmcia_iowait));
-+ DEBUG(2, "\tgpioin\t\t= 0x%08x:\n", readl(&eir->gpioin));
-+ DEBUG(2, "\tgpio_outen0\t= 0x%08x:\n", readl(&eir->gpio[0].outen));
-+ DEBUG(2, "\tgpio_out0\t= 0x%08x:\n", readl(&eir->gpio[0].out));
-+ DEBUG(2, "\tgpiointpolarity\t= 0x%08x:\n", readl(&eir->gpiointpolarity));
-+ DEBUG(2, "\tgpiointmask\t= 0x%08x:\n", readl(&eir->gpiointmask));
-+
-+#ifdef DO_BCM47XX_PCMCIA_INTERRUPTS
-+ /* Request pcmcia interrupt */
-+ rc = request_irq(BCM47XX_PCMCIA_IRQ, init->handler, SA_INTERRUPT,
-+ "PCMCIA Interrupt", &bcm47xx_pcmcia_dev_id);
-+#endif
-+
-+ attrsp = (uint16 *)ioremap_nocache(EXTIF_PCMCIA_CFGBASE(BCM4710_EXTIF), 0x1000);
-+ tmp = readw(&attrsp[0]);
-+ DEBUG(2, "\tattr[0] = 0x%04x\n", tmp);
-+ if ((tmp == 0x7fff) || (tmp == 0x7f00)) {
-+ bcm47xx_pcmcia_present = 0;
-+ } else {
-+ bcm47xx_pcmcia_present = 1;
-+ }
-+
-+ /* There's only one socket */
-+ return 1;
-+}
-+
-+static int bcm4710_pcmcia_shutdown(void)
-+{
-+ extifregs_t *eir;
-+ uint32 intm;
-+
-+ eir = (extifregs_t *) ioremap_nocache(BCM4710_REG_EXTIF, sizeof(extifregs_t));
-+
-+ /* Disable the pcmcia i/f */
-+ writel(0, &eir->pcmcia_config);
-+
-+ /* Reset gpio's */
-+ intm = readl(&eir->gpiointmask);
-+ writel(intm & ~BCM47XX_PCMCIA_STSCHG, &eir->gpiointmask); /* Disable it */
-+
-+ free_irq(BCM47XX_PCMCIA_IRQ, &bcm47xx_pcmcia_dev_id);
-+
-+ return 0;
-+}
-+
-+static int
-+bcm4710_pcmcia_socket_state(unsigned sock, struct pcmcia_state *state)
-+{
-+ extifregs_t *eir;
-+
-+ eir = (extifregs_t *) ioremap_nocache(BCM4710_REG_EXTIF, sizeof(extifregs_t));
-+
-+
-+ if (sock != 0) {
-+ printk(KERN_ERR "bcm4710 socket_state bad sock %d\n", sock);
-+ return -1;
-+ }
-+
-+ if (bcm47xx_pcmcia_present) {
-+ state->detect = 1;
-+ state->ready = 1;
-+ state->bvd1 = 1;
-+ state->bvd2 = 1;
-+ state->wrprot = (readl(&eir->gpioin) & BCM47XX_PCMCIA_WP) == BCM47XX_PCMCIA_WP;
-+ state->vs_3v = 0;
-+ state->vs_Xv = 0;
-+ } else {
-+ state->detect = 0;
-+ state->ready = 0;
-+ }
-+
-+ return 1;
-+}
-+
-+
-+static int bcm4710_pcmcia_get_irq_info(struct pcmcia_irq_info *info)
-+{
-+ if (info->sock >= BCM47XX_PCMCIA_MAX_SOCK) return -1;
-+
-+ info->irq = BCM47XX_PCMCIA_IRQ;
-+
-+ return 0;
-+}
-+
-+
-+static int
-+bcm4710_pcmcia_configure_socket(const struct pcmcia_configure *configure)
-+{
-+ if (configure->sock >= BCM47XX_PCMCIA_MAX_SOCK) return -1;
-+
-+
-+ DEBUG(2, "Vcc %dV Vpp %dV output %d speaker %d reset %d\n", configure->vcc,
-+ configure->vpp, configure->output, configure->speaker, configure->reset);
-+
-+ if ((configure->vcc != 50) || (configure->vpp != 50)) {
-+ printk("%s: bad Vcc/Vpp (%d:%d)\n", __FUNCTION__, configure->vcc,
-+ configure->vpp);
-+ }
-+
-+ if (configure->reset) {
-+ /* Issue a reset to the pcmcia socket */
-+ DEBUG(1, "%s: Reseting socket\n", __FUNCTION__);
-+ bcm4710_pcmcia_reset();
-+ }
-+
-+
-+ return 0;
-+}
-+
-+struct pcmcia_low_level bcm4710_pcmcia_ops = {
-+ bcm4710_pcmcia_init,
-+ bcm4710_pcmcia_shutdown,
-+ bcm4710_pcmcia_socket_state,
-+ bcm4710_pcmcia_get_irq_info,
-+ bcm4710_pcmcia_configure_socket
-+};
-+
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/drivers/pcmcia/bcm4710pcmcia.h 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,118 @@
-+/*
-+ *
-+ * bcm47xx pcmcia driver
-+ *
-+ * Copyright 2004, Broadcom Corporation
-+ * All Rights Reserved.
-+ *
-+ * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY
-+ * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM
-+ * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS
-+ * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE.
-+ *
-+ * Based on sa1100.h and include/asm-arm/arch-sa1100/pcmica.h
-+ * from www.handhelds.org,
-+ * and au1000_generic.c from oss.sgi.com.
-+ *
-+ * $Id: bcm4710pcmcia.h,v 1.1.1.7 2004/04/12 04:32:07 honor Exp $
-+ */
-+
-+#if !defined(_BCM4710PCMCIA_H)
-+#define _BCM4710PCMCIA_H
-+
-+#include <pcmcia/cs_types.h>
-+#include <pcmcia/ss.h>
-+#include <pcmcia/bulkmem.h>
-+#include <pcmcia/cistpl.h>
-+#include "cs_internal.h"
-+
-+
-+/* The 47xx can only support one socket */
-+#define BCM47XX_PCMCIA_MAX_SOCK 1
-+
-+/* In the bcm947xx gpio's are used for some pcmcia functions */
-+#define BCM47XX_PCMCIA_WP 0x01 /* Bit 0 is WP input */
-+#define BCM47XX_PCMCIA_STSCHG 0x20 /* Bit 5 is STSCHG input/interrupt */
-+#define BCM47XX_PCMCIA_RESET 0x80 /* Bit 7 is RESET */
-+
-+#define BCM47XX_PCMCIA_IRQ 2
-+
-+/* The socket driver actually works nicely in interrupt-driven form,
-+ * so the (relatively infrequent) polling is "just to be sure."
-+ */
-+#define BCM47XX_PCMCIA_POLL_PERIOD (2 * HZ)
-+
-+#define BCM47XX_PCMCIA_IO_SPEED (255)
-+#define BCM47XX_PCMCIA_MEM_SPEED (300)
-+
-+
-+struct pcmcia_state {
-+ unsigned detect: 1,
-+ ready: 1,
-+ bvd1: 1,
-+ bvd2: 1,
-+ wrprot: 1,
-+ vs_3v: 1,
-+ vs_Xv: 1;
-+};
-+
-+
-+struct pcmcia_configure {
-+ unsigned sock: 8,
-+ vcc: 8,
-+ vpp: 8,
-+ output: 1,
-+ speaker: 1,
-+ reset: 1;
-+};
-+
-+struct pcmcia_irq_info {
-+ unsigned int sock;
-+ unsigned int irq;
-+};
-+
-+/* This structure encapsulates per-socket state which we might need to
-+ * use when responding to a Card Services query of some kind.
-+ */
-+struct bcm47xx_pcmcia_socket {
-+ socket_state_t cs_state;
-+ struct pcmcia_state k_state;
-+ unsigned int irq;
-+ void (*handler)(void *, unsigned int);
-+ void *handler_info;
-+ pccard_io_map io_map[MAX_IO_WIN];
-+ pccard_mem_map mem_map[MAX_WIN];
-+ ioaddr_t virt_io, phys_attr, phys_mem;
-+ unsigned short speed_io, speed_attr, speed_mem;
-+};
-+
-+struct pcmcia_init {
-+ void (*handler)(int irq, void *dev, struct pt_regs *regs);
-+};
-+
-+struct pcmcia_low_level {
-+ int (*init)(struct pcmcia_init *);
-+ int (*shutdown)(void);
-+ int (*socket_state)(unsigned sock, struct pcmcia_state *);
-+ int (*get_irq_info)(struct pcmcia_irq_info *);
-+ int (*configure_socket)(const struct pcmcia_configure *);
-+};
-+
-+extern struct pcmcia_low_level bcm47xx_pcmcia_ops;
-+
-+/* I/O pins replacing memory pins
-+ * (PCMCIA System Architecture, 2nd ed., by Don Anderson, p.75)
-+ *
-+ * These signals change meaning when going from memory-only to
-+ * memory-or-I/O interface:
-+ */
-+#define iostschg bvd1
-+#define iospkr bvd2
-+
-+
-+/*
-+ * Declaration for implementation specific low_level operations.
-+ */
-+extern struct pcmcia_low_level bcm4710_pcmcia_ops;
-+
-+#endif /* !defined(_BCM4710PCMCIA_H) */
---- linux-2.4.20/include/asm-mips/asm.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/asm.h 2005-01-08 12:10:12.593676448 -0500
-@@ -387,4 +387,16 @@
-
- #define SSNOP sll zero,zero,1
-
-+/*
-+ * mips32/64 has some extra CP0 register selected by the low bits of
-+ * the mfc0/mtc0 instruction. Note that dst and src CANNOT have '$'
-+ * signs in them.
-+ */
-+#define MFC0_SEL(dst, src, sel)\
-+ .word (0x40000000 | ((dst)<<16) | ((src)<<11) | (sel))
-+
-+
-+#define MTC0_SEL(dst, src, sel)\
-+ .word (0x40800000 | ((dst)<<16) | ((src)<<11) | (sel))
-+
- #endif /* __ASM_ASM_H */
---- /dev/null 2004-04-06 13:56:48.000000000 -0400
-+++ linux-2.4.20/include/asm-mips/bcm4710_cache.h 2005-01-07 05:39:02.000000000 -0500
-@@ -0,0 +1,229 @@
-+
-+#ifndef _MIPS_R4KCACHE_H
-+#define _MIPS_R4KCACHE_H
-+
-+#include <asm/asm.h>
-+#include <asm/cacheops.h>
-+
-+#include <typedefs.h>
-+#include <sbconfig.h>
-+#include <bcm4710.h>
-+#include <asm/paccess.h>
-+#define BCM4710_DUMMY_RREG() (((sbconfig_t *)(KSEG1ADDR(BCM4710_REG_SDRAM + SBCONFIGOFF)))->sbimstate)
-+#define BCM4710_FILL_TLB(addr) (*(volatile unsigned long *)(addr))
-+#define BCM4710_PROTECTED_FILL_TLB(addr) ({ unsigned long x; get_dbe(x, (volatile unsigned long *)(addr)); })
-+
-+static inline void flush_icache_line_indexed(unsigned long addr)
-+{
-+ unsigned long waystep = icache_size/mips_cpu.icache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.icache.ways; way++)
-+ {
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Index_Invalidate_I));
-+
-+ addr += waystep;
-+ }
-+}
-+
-+static inline void flush_dcache_line_indexed(unsigned long addr)
-+{
-+ unsigned long waystep = dcache_size/mips_cpu.dcache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.dcache.ways; way++)
-+ {
-+ BCM4710_DUMMY_RREG();
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Index_Writeback_Inv_D));
-+
-+ addr += waystep;
-+ }
-+}
-+
-+static inline void flush_icache_line(unsigned long addr)
-+{
-+
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Hit_Invalidate_I));
-+}
-+
-+static inline void flush_dcache_line(unsigned long addr)
-+{
-+ BCM4710_DUMMY_RREG();
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Hit_Writeback_Inv_D));
-+}
-+
-+static inline void invalidate_dcache_line(unsigned long addr)
-+{
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Hit_Invalidate_D));
-+}
-+
-+/*
-+ * The next two are for badland addresses like signal trampolines.
-+ */
-+static inline void protected_flush_icache_line(unsigned long addr)
-+{
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n"
-+ "1:\tcache %1,(%0)\n"
-+ "2:\t.set mips0\n\t"
-+ ".set reorder\n\t"
-+ ".section\t__ex_table,\"a\"\n\t"
-+ STR(PTR)"\t1b,2b\n\t"
-+ ".previous"
-+ :
-+ : "r" (addr),
-+ "i" (Hit_Invalidate_I));
-+}
-+
-+static inline void protected_writeback_dcache_line(unsigned long addr)
-+{
-+ BCM4710_DUMMY_RREG();
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n"
-+ "1:\tcache %1,(%0)\n"
-+ "2:\t.set mips0\n\t"
-+ ".set reorder\n\t"
-+ ".section\t__ex_table,\"a\"\n\t"
-+ STR(PTR)"\t1b,2b\n\t"
-+ ".previous"
-+ :
-+ : "r" (addr),
-+ "i" (Hit_Writeback_D));
-+}
-+
-+#define cache_unroll(base,op) \
-+ __asm__ __volatile__(" \
-+ .set noreorder; \
-+ .set mips3; \
-+ cache %1, (%0); \
-+ .set mips0; \
-+ .set reorder" \
-+ : \
-+ : "r" (base), \
-+ "i" (op));
-+
-+
-+static inline void blast_dcache(void)
-+{
-+ unsigned long start = KSEG0;
-+ unsigned long end = (start + dcache_size);
-+
-+ while(start < end) {
-+ BCM4710_DUMMY_RREG();
-+ cache_unroll(start,Index_Writeback_Inv_D);
-+ start += dc_lsize;
-+ }
-+}
-+
-+static inline void blast_dcache_page(unsigned long page)
-+{
-+ unsigned long start = page;
-+ unsigned long end = (start + PAGE_SIZE);
-+
-+ BCM4710_FILL_TLB(start);
-+ while(start < end) {
-+ BCM4710_DUMMY_RREG();
-+ cache_unroll(start,Hit_Writeback_Inv_D);
-+ start += dc_lsize;
-+ }
-+}
-+
-+static inline void blast_dcache_page_indexed(unsigned long page)
-+{
-+ unsigned long start;
-+ unsigned long end = (page + PAGE_SIZE);
-+ unsigned long waystep = dcache_size/mips_cpu.dcache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.dcache.ways; way++) {
-+ start = page + way*waystep;
-+ while(start < end) {
-+ BCM4710_DUMMY_RREG();
-+ cache_unroll(start,Index_Writeback_Inv_D);
-+ start += dc_lsize;
-+ }
-+ }
-+}
-+
-+static inline void blast_icache(void)
-+{
-+ unsigned long start = KSEG0;
-+ unsigned long end = (start + icache_size);
-+
-+ while(start < end) {
-+ cache_unroll(start,Index_Invalidate_I);
-+ start += ic_lsize;
-+ }
-+}
-+
-+static inline void blast_icache_page(unsigned long page)
-+{
-+ unsigned long start = page;
-+ unsigned long end = (start + PAGE_SIZE);
-+
-+ BCM4710_FILL_TLB(start);
-+ while(start < end) {
-+ cache_unroll(start,Hit_Invalidate_I);
-+ start += ic_lsize;
-+ }
-+}
-+
-+static inline void blast_icache_page_indexed(unsigned long page)
-+{
-+ unsigned long start;
-+ unsigned long end = (page + PAGE_SIZE);
-+ unsigned long waystep = icache_size/mips_cpu.icache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.icache.ways; way++) {
-+ start = page + way*waystep;
-+ while(start < end) {
-+ cache_unroll(start,Index_Invalidate_I);
-+ start += ic_lsize;
-+ }
-+ }
-+}
-+
-+#endif /* !(_MIPS_R4KCACHE_H) */
---- linux-2.4.20/include/asm-mips/bootinfo.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/bootinfo.h 2005-01-08 12:17:06.878695552 -0500
-@@ -36,6 +36,7 @@
- #define MACH_GROUP_NEC_VR41XX 19 /* NEC Vr41xx based boards/gadgets */
- #define MACH_GROUP_HP_LJ 20 /* Hewlett Packard LaserJet */
- #define MACH_GROUP_LASAT 21
-+#define MACH_GROUP_BRCM 22 /* Broadcom Boards */
-
- /*
- * Valid machtype values for group unknown (low order halfword of mips_machtype)
-@@ -179,7 +180,15 @@
- #define MACH_VICTOR_MPC30X 3 /* Victor MP-C303/304 */
- #define MACH_IBM_WORKPAD 4 /* IBM WorkPad z50 */
- #define MACH_CASIO_E55 5 /* CASIO CASSIOPEIA E-10/15/55/65 */
--#define MACH_TANBAC_TB0226 6 /* TANBAC TB0226 (MBASE) */
-+
-+/*
-+ * Valid machtypes for group Broadcom
-+ */
-+#define MACH_BCM93725 0
-+#define MACH_BCM93725_VJ 1
-+#define MACH_BCM93730 2
-+#define MACH_BCM947XX 3
-+#define MACH_BCM933XX 4
-
- #define CL_SIZE (256)
-
---- linux-2.4.20/include/asm-mips/cpu.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/cpu.h 2005-01-08 12:10:11.203887728 -0500
-@@ -24,6 +24,11 @@
- spec.
- */
-
-+#define PRID_COPT_MASK 0xff000000
-+#define PRID_COMP_MASK 0x00ff0000
-+#define PRID_IMP_MASK 0x0000ff00
-+#define PRID_REV_MASK 0x000000ff
-+
- #define PRID_COMP_LEGACY 0x000000
- #define PRID_COMP_MIPS 0x010000
- #define PRID_COMP_BROADCOM 0x020000
-@@ -65,10 +70,17 @@
- #define PRID_IMP_20KC 0x8200
- #define PRID_IMP_4KEC 0x8400
- #define PRID_IMP_4KSC 0x8600
--
-+#define PRID_IMP_BCM4710 0x4000
-+#define PRID_IMP_BCM3302 0x9000
-+#define PRID_IMP_BCM3303 0x9100
-+#define PRID_IMP_BCM3303 0x9100
-
- #define PRID_IMP_UNKNOWN 0xff00
-
-+#define BCM330X(id) \
-+ (((id & (PRID_COMP_MASK | PRID_IMP_MASK)) == (PRID_COMP_BROADCOM | PRID_IMP_BCM3302)) \
-+ || ((id & (PRID_COMP_MASK | PRID_IMP_MASK)) == (PRID_COMP_BROADCOM | PRID_IMP_BCM3303)))
-+
- /*
- * These are the PRID's for when 23:16 == PRID_COMP_SIBYTE
- */
-@@ -139,7 +151,7 @@
- CPU_TX3912, CPU_TX3922, CPU_TX3927, CPU_AU1000, CPU_4KEC, CPU_4KSC,
- CPU_VR41XX, CPU_R5500, CPU_TX49XX, CPU_TX39XX, CPU_AU1500, CPU_20KC,
- CPU_VR4111, CPU_VR4121, CPU_VR4122, CPU_VR4131, CPU_VR4181, CPU_VR4181A,
-- CPU_AU1100, CPU_LAST
-+ CPU_AU1100, CPU_BCM4710, CPU_BCM3302, CPU_LAST
- };
-
- #endif /* !__ASSEMBLY__ */
---- linux-2.4.20/include/asm-mips/mips32_cache.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/mips32_cache.h 2005-01-07 05:39:02.000000000 -0500
-@@ -325,4 +325,17 @@
- }
- }
-
-+extern inline void fill_icache_line(unsigned long addr)
-+{
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Fill));
-+}
-+
- #endif /* !(_MIPS_R4KCACHE_H) */
---- linux-2.4.20/include/asm-mips/mipsregs.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/mipsregs.h 2005-01-07 05:39:44.000000000 -0500
-@@ -400,13 +400,75 @@
- #define TX49_CONF_HALT (_ULCAST_(1) << 18)
- #define TX49_CONF_CWFON (_ULCAST_(1) << 27)
-
--/*
-- * R10000 performance counter definitions.
-- *
-- * FIXME: The R10000 performance counter opens a nice way to implement CPU
-- * time accounting with a precission of one cycle. I don't have
-- * R10000 silicon but just a manual, so ...
-- */
-+/* mips32/64 definitions for CP0 config register */
-+#define CONF_MT_MASK 0x00000380 /* MMU Type */
-+#define CONF_MT_NONE 0x00000000 /* No mmu */
-+#define CONF_MT_TLB 0x00000080 /* TLB present */
-+#define CONF_MT_BAT 0x00000100 /* Block address translation */
-+#define CONF_MT_FM 0x00000180 /* Fixed map (Like 4Kp/4Km) */
-+#define CONF_AR_MASK 0x00001c00 /* Architecture revision */
-+#define CONF_AT_MASK 0x00006000 /* Architecture type */
-+#define CONF_AT_M32 0x00000000 /* mips32 */
-+#define CONF_AT_M6432 0x00002000 /* mips64/mips32?? */
-+#define CONF_AT_M64 0x00004000 /* mips64 */
-+#define CONF_BE 0x00008000 /* BigEndian */
-+#define CONF_BM 0x00010000 /* Burst Mode */
-+#define CONF_BM_SEQ 0x00000000 /* Sequential */
-+#define CONF_BM_SB 0x00010000 /* SubBlock */
-+#define CONF_MM_MASK 0x00060000 /* Merge Mode */
-+#define CONF_MM_NONE 0x00000000 /* No merging */
-+#define CONF_MM_SYSAD 0x00020000 /* SysAD merging */
-+#define CONF_MM_FULL 0x00040000 /* Full merging */
-+#define CONF_MDU 0x00100000 /* Slow MDU */
-+#define CONF_KU_MASK 0x0e000000 /* Kuseg and useg cacheability (for MT=FM) */
-+#define CONF_K23_MASK 0x70000000 /* Kseg2 and Kseg3 cacheability (for MT=FM) */
-+#define CONF_M 0x80000000 /* config1 register present */
-+
-+/* mips32/64 definitions for CP0 config1 register */
-+#define CONF1_FP 0x00000001 /* FPU present */
-+#define CONF1_EP 0x00000002 /* EJTAG present */
-+#define CONF1_CA 0x00000004 /* Code compression (mips16) implemented */
-+#define CONF1_WR 0x00000008 /* Watch registers present */
-+#define CONF1_PC 0x00000010 /* Performance counters present */
-+#define CONF1_DA_SHIFT 7 /* Data cache associativity */
-+#define CONF1_DA_MASK 0x00000380
-+#define CONF1_DA_BASE 1
-+#define CONF1_DA_DM 0x00000000 /* Direct mapped */
-+#define CONF1_DA_2W 0x00000080 /* 2-way */
-+#define CONF1_DA_3W 0x00000100 /* 3-way */
-+#define CONF1_DA_4W 0x00000180 /* 4-way */
-+#define CONF1_DL_SHIFT 10 /* Data cache line size */
-+#define CONF1_DL_MASK 0x00001c00
-+#define CONF1_DL_BASE 2
-+#define CONF1_DL_NONE 0x00000000 /* No data cache present */
-+#define CONF1_DL_16 0x00000c00 /* 16 bytes */
-+#define CONF1_DS_SHIFT 13 /* Data cache sets/way */
-+#define CONF1_DS_MASK 0x0000e000
-+#define CONF1_DS_BASE 64
-+#define CONF1_DS_64 0x00000000 /* 64 sets */
-+#define CONF1_DS_128 0x00002000 /* 128 sets */
-+#define CONF1_DS_256 0x00004000 /* 256 sets */
-+#define CONF1_IA_SHIFT 16 /* Instruction cache associativity */
-+#define CONF1_IA_MASK 0x00070000
-+#define CONF1_IA_BASE 1
-+#define CONF1_IA_DM 0x00000000 /* Direct mapped */
-+#define CONF1_IA_2W 0x00010000 /* 2-way */
-+#define CONF1_IA_3W 0x00020000 /* 3-way */
-+#define CONF1_IA_4W 0x00030000 /* 4-way */
-+#define CONF1_IL_SHIFT 19 /* Instruction cache line size */
-+#define CONF1_IL_MASK 0x00380000
-+#define CONF1_IL_BASE 2
-+#define CONF1_IL_NONE 0x00000000 /* No data cache present */
-+#define CONF1_IL_16 0x00180000 /* 16 bytes */
-+#define CONF1_IS_SHIFT 22 /* Instruction cache sets/way */
-+#define CONF1_IS_MASK 0x01c00000
-+#define CONF1_IS_BASE 64
-+#define CONF1_IS_64 0x00000000 /* 64 sets */
-+#define CONF1_IS_128 0x00400000 /* 128 sets */
-+#define CONF1_IS_256 0x00800000 /* 256 sets */
-+#define CONF1_MS_MASK 0x7e000000 /* Number of tlb entries */
-+#define CONF1_MS_SHIFT 25
-+
-
- /*
- * Events counted by counter #0
-@@ -727,6 +789,20 @@
- #define read_c0_framemask() __read_32bit_c0_register($21, 0)
- #define write_c0_framemask(val) __write_32bit_c0_register($21, 0, val)
-
-+#define read_c0_diag() __read_32bit_c0_register($22, 0)
-+#define read_c0_diag1() __read_32bit_c0_register($22, 1)
-+#define read_c0_diag2() __read_32bit_c0_register($22, 2)
-+#define read_c0_diag3() __read_32bit_c0_register($22, 3)
-+#define read_c0_diag4() __read_32bit_c0_register($22, 4)
-+#define read_c0_diag5() __read_32bit_c0_register($22, 5)
-+
-+#define write_c0_diag(val) __write_32bit_c0_register($22, 0, val)
-+#define write_c0_diag1(val) __write_32bit_c0_register($22, 1, val)
-+#define write_c0_diag2(val) __write_32bit_c0_register($22, 2, val)
-+#define write_c0_diag3(val) __write_32bit_c0_register($22, 3, val)
-+#define write_c0_diag4(val) __write_32bit_c0_register($22, 4, val)
-+#define write_c0_diag5(val) __write_32bit_c0_register($22, 5, val)
-+
- #define read_c0_debug() __read_32bit_c0_register($23, 0)
- #define write_c0_debug(val) __write_32bit_c0_register($23, 0, val)
-
-@@ -844,6 +920,14 @@
- __BUILD_SET_C0(cause,CP0_CAUSE)
- __BUILD_SET_C0(config,CP0_CONFIG)
-
-+/*
-+ * Functions to access the performance counter and control registers
-+ */
-+extern asmlinkage unsigned int read_perf_cntr(unsigned int counter);
-+extern asmlinkage void write_perf_cntr(unsigned int counter, unsigned int val);
-+extern asmlinkage unsigned int read_perf_cntl(unsigned int counter);
-+extern asmlinkage void write_perf_cntl(unsigned int counter, unsigned int val);
-+
- #endif /* !__ASSEMBLY__ */
-
- #endif /* _ASM_MIPSREGS_H */
---- linux-2.4.20/include/asm-mips/pci.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/pci.h 2005-01-08 12:15:03.133507680 -0500
-@@ -117,12 +117,7 @@
- if (direction == PCI_DMA_NONE)
- out_of_line_bug();
-
-- if (direction != PCI_DMA_TODEVICE) {
-- unsigned long addr;
--
-- addr = baddr_to_bus(hwdev->bus, dma_addr) + PAGE_OFFSET;
-- dma_cache_wback_inv(addr, size);
-- }
-+ /* Nothing to do */
- }
-
- /*
-@@ -203,8 +198,7 @@
- } else {
- sg->dma_address = page_to_bus(sg->page) +
- sg->offset;
-- dma_cache_wback_inv((unsigned long)
-- (page_address(sg->page) + sg->offset),
-+ dma_cache_wback_inv((unsigned long)page_address(sg->page) + sg->offset,
- sg->length);
- }
- }
---- linux-2.4.20/include/asm-mips/serial.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/serial.h 2005-01-08 12:15:06.999919896 -0500
-@@ -181,6 +181,13 @@
- #define TXX927_SERIAL_PORT_DEFNS
- #endif
-
-+#ifdef CONFIG_BCM947XX
-+/* reserve 4 ports to be configured at runtime */
-+#define BCM947XX_SERIAL_PORT_DEFNS { 0, }, { 0, }, { 0, }, { 0, },
-+#else
-+#define BCM947XX_SERIAL_PORT_DEFNS
-+#endif
-+
- #ifdef CONFIG_HAVE_STD_PC_SERIAL_PORT
- #define STD_SERIAL_PORT_DEFNS \
- /* UART CLK PORT IRQ FLAGS */ \
-@@ -313,6 +320,7 @@
- #endif
-
- #define SERIAL_PORT_DFNS \
-+ BCM947XX_SERIAL_PORT_DEFNS \
- IVR_SERIAL_PORT_DEFNS \
- ITE_SERIAL_PORT_DEFNS \
- ATLAS_SERIAL_PORT_DEFNS \
---- linux-2.4.20/include/asm-mips/stackframe.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/stackframe.h 2005-01-08 12:15:32.798997840 -0500
-@@ -201,12 +201,25 @@
- lw $3, PT_R3(sp); \
- lw $2, PT_R2(sp)
-
-+#ifdef CONFIG_BCM4710
-+
- #define RESTORE_SP_AND_RET \
- lw sp, PT_R29(sp); \
- .set mips3; \
-+ nop; \
-+ nop; \
- eret; \
- .set mips0
-
-+#else
-+
-+#define RESTORE_SP_AND_RET \
-+ lw sp, PT_R29(sp); \
-+ .set mips3; \
-+ eret; \
-+ .set mips0
-+#endif
-+
- #endif
-
- #define RESTORE_SP \
---- linux-2.4.20/include/asm-mips/system.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/include/asm-mips/system.h 2005-01-08 12:15:03.002527592 -0500
-@@ -16,6 +16,8 @@
- #ifndef _ASM_SYSTEM_H
- #define _ASM_SYSTEM_H
-
-+#ifdef __KERNEL__
-+
- #include <linux/config.h>
- #include <asm/sgidefs.h>
-
-@@ -316,4 +318,6 @@
- #define die_if_kernel(msg, regs) \
- __die_if_kernel(msg, regs, __FILE__ ":", __FUNCTION__, __LINE__)
-
-+#endif /* __KERNEL__ */
-+
- #endif /* _ASM_SYSTEM_H */
---- linux-2.4.20/init/do_mounts.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/init/do_mounts.c 2005-01-08 12:16:21.913531296 -0500
-@@ -238,7 +238,16 @@
- { "ftlb", 0x2c08 },
- { "ftlc", 0x2c10 },
- { "ftld", 0x2c18 },
-+#if defined(CONFIG_MTD_BLOCK) || defined(CONFIG_MTD_BLOCK_RO)
- { "mtdblock", 0x1f00 },
-+ { "mtdblock0",0x1f00 },
-+ { "mtdblock1",0x1f01 },
-+ { "mtdblock2",0x1f02 },
-+ { "mtdblock3",0x1f03 },
-+#endif
-+#ifdef CONFIG_BLK_DEV_DUMMY
-+ { "dummy",0x2000 },
-+#endif
- { NULL, 0 }
- };
-
-@@ -468,6 +477,7 @@
- struct minix_super_block *minixsb;
- struct ext2_super_block *ext2sb;
- struct romfs_super_block *romfsb;
-+ struct cramfs_super *cramfsb;
- int nblocks = -1;
- unsigned char *buf;
-
-@@ -478,6 +488,7 @@
- minixsb = (struct minix_super_block *) buf;
- ext2sb = (struct ext2_super_block *) buf;
- romfsb = (struct romfs_super_block *) buf;
-+ cramfsb = (struct cramfs_super *) buf;
- memset(buf, 0xe5, size);
-
- /*
-@@ -497,6 +508,13 @@
- goto done;
- }
-
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ /*
-+ * Fallback if size cannot be determined by superblock
-+ */
-+ nblocks = (initrd_end-initrd_start+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
-+#endif
-+
- /* romfs is at block zero too */
- if (romfsb->word0 == ROMSB_WORD0 &&
- romfsb->word1 == ROMSB_WORD1) {
-@@ -507,6 +525,16 @@
- goto done;
- }
-
-+ /* so is cramfs */
-+ if (cramfsb->magic == CRAMFS_MAGIC) {
-+ printk(KERN_NOTICE
-+ "RAMDISK: cramfs filesystem found at block %d\n",
-+ start_block);
-+ if (cramfsb->flags & CRAMFS_FLAG_FSID_VERSION_2)
-+ nblocks = (cramfsb->size+BLOCK_SIZE-1)>>BLOCK_SIZE_BITS;
-+ goto done;
-+ }
-+
- /*
- * Read block 1 to test for minix and ext2 superblock
- */
-@@ -535,6 +563,7 @@
- printk(KERN_NOTICE
- "RAMDISK: Couldn't find valid RAM disk image starting at %d.\n",
- start_block);
-+ nblocks = -1;
-
- done:
- lseek(fd, start_block * BLOCK_SIZE, 0);
-@@ -757,6 +786,17 @@
- change_floppy("root floppy");
- }
- #endif
-+#if defined(CONFIG_MTD_BLOCK) || defined(CONFIG_MTD_BLOCK_RO)
-+ if (MAJOR(ROOT_DEV) == 31) {
-+ /* rd_doload is for a ramload setup */
-+ if (rd_doload) {
-+ if (rd_load_disk(0)) {
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ create_dev("/dev/root", ROOT_DEV, NULL);
-+ }
-+ }
-+ }
-+#endif
- mount_block_root("/dev/root", root_mountflags);
- }
-
---- linux-2.4.20/init/main.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:39:02.000000000 -0500
-+++ linux-2.4.20/init/main.c 2005-01-07 05:39:02.000000000 -0500
-@@ -554,6 +554,13 @@
- free_initmem();
- unlock_kernel();
-
-+#ifdef CONFIG_NOROOT
-+ for (;;) {
-+ DECLARE_WAIT_QUEUE_HEAD(wait);
-+ sleep_on(&wait);
-+ }
-+#endif
-+
- if (open("/dev/console", O_RDWR, 0) < 0)
- printk("Warning: unable to open an initial console.\n");
-
---- linux-2.4.20/net/bridge/br_device.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/bridge/br_device.c 2005-01-07 05:39:02.000000000 -0500
-@@ -121,6 +121,25 @@
- return -1;
- }
-
-+extern void br_stp_change_bridge_id(struct net_bridge *br, unsigned char *addr);
-+
-+static int
-+br_set_mac_address(struct net_device *dev, void *addr)
-+{
-+ struct net_bridge *br = dev->priv;
-+ struct sockaddr *sa = (struct sockaddr *) addr;
-+
-+ write_lock_bh(&br->lock);
-+
-+ memcpy(br->preferred_id.addr, sa->sa_data, ETH_ALEN);
-+
-+ br_stp_recalculate_bridge_id(br);
-+
-+ write_unlock_bh(&br->lock);
-+
-+ return 0;
-+}
-+
- void br_dev_setup(struct net_device *dev)
- {
- memset(dev->dev_addr, 0, ETH_ALEN);
-@@ -133,5 +152,5 @@
- dev->stop = br_dev_stop;
- dev->accept_fastpath = br_dev_accept_fastpath;
- dev->tx_queue_len = 0;
-- dev->set_mac_address = NULL;
-+ dev->set_mac_address = br_set_mac_address;
- }
---- linux-2.4.20/net/bridge/br_fdb.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/bridge/br_fdb.c 2005-01-07 05:39:02.000000000 -0500
-@@ -290,10 +290,10 @@
- hash = br_mac_hash(addr);
-
- write_lock_bh(&br->hash_lock);
-+ if (!is_local) {
- fdb = br->hash[hash];
- while (fdb != NULL) {
-- if (!fdb->is_local &&
-- !memcmp(fdb->addr.addr, addr, ETH_ALEN)) {
-+ if (!memcmp(fdb->addr.addr, addr, ETH_ALEN)) {
- __fdb_possibly_replace(fdb, source, is_local);
- write_unlock_bh(&br->hash_lock);
- return;
-@@ -301,6 +301,7 @@
-
- fdb = fdb->next_hash;
- }
-+ }
-
- fdb = kmalloc(sizeof(*fdb), GFP_ATOMIC);
- if (fdb == NULL) {
---- linux-2.4.20/net/bridge/br_private.h~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/bridge/br_private.h 2005-01-08 12:16:21.367614288 -0500
-@@ -96,6 +96,7 @@
- int hello_time;
- int forward_delay;
- bridge_id bridge_id;
-+ bridge_id preferred_id;
- int bridge_max_age;
- int bridge_hello_time;
- int bridge_forward_delay;
---- linux-2.4.20/net/bridge/br_stp_if.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/bridge/br_stp_if.c 2005-01-07 05:39:02.000000000 -0500
-@@ -162,6 +162,12 @@
-
- p = br->port_list;
- while (p != NULL) {
-+ /* match against preferred address first */
-+ if (memcmp(p->dev->dev_addr, br->preferred_id.addr, ETH_ALEN) == 0) {
-+ addr = p->dev->dev_addr;
-+ break;
-+ }
-+
- if (addr == br_mac_zero ||
- memcmp(p->dev->dev_addr, addr, ETH_ALEN) < 0)
- addr = p->dev->dev_addr;
---- linux-2.4.20/net/core/Makefile~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/core/Makefile 2005-01-08 12:16:20.333771456 -0500
-@@ -7,6 +7,8 @@
- #
- # Note 2! The CFLAGS definition is now in the main makefile...
-
-+SRCBASE := $(TOPDIR)/../..
-+EXTRA_CFLAGS += -Wall -I$(SRCBASE)/
- O_TARGET := core.o
-
- export-objs := netfilter.o profile.o
---- linux-2.4.20/net/core/dev.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/core/dev.c 2005-01-08 12:16:21.372613528 -0500
-@@ -1245,6 +1245,19 @@
- local_irq_save(flags);
-
- netdev_rx_stat[this_cpu].total++;
-+
-+#if defined(CONFIG_BCM4710) && defined(CONFIG_BRIDGE)
-+ /* Optimisation for framebursting (allow interleaving of pkts by
-+ immediately processing the rx pkt instead of Qing the pkt and deferring
-+ the processing). Only optimise for bridging and guard against non
-+ TASKLET based netif_rx calls.
-+ */
-+ if (!in_irq() && skb->dev->br_port != NULL && br_handle_frame_hook != NULL){
-+ local_irq_restore(flags);
-+ return(netif_receive_skb(skb));
-+ }
-+#endif
-+
- if (queue->input_pkt_queue.qlen <= netdev_max_backlog) {
- if (queue->input_pkt_queue.qlen) {
- if (queue->throttle)
-@@ -2005,6 +2018,7 @@
- {
- struct net_device *dev;
- int err;
-+ struct net_device_stats *stats;
-
- if ((dev = __dev_get_by_name(ifr->ifr_name)) == NULL)
- return -ENODEV;
-@@ -2119,6 +2133,16 @@
- ifr->ifr_ifindex = dev->ifindex;
- return 0;
-
-+#ifdef PERFORMANCE_SUPPORT
-+ case SIOCGIFSTATS:
-+ if (!dev->get_stats || !(stats = dev->get_stats(dev)))
-+ return -ENODEV;
-+ if (copy_to_user(ifr->ifr_data, stats,
-+ sizeof(struct net_device_stats)))
-+ return -EFAULT;
-+ return 0;
-+#endif
-+
- case SIOCGIFTXQLEN:
- ifr->ifr_qlen = dev->tx_queue_len;
- return 0;
---- linux-2.4.20/net/netsyms.c~2.4.20_broadcom_3_37_2_1109_US.patch 2005-01-07 05:38:15.000000000 -0500
-+++ linux-2.4.20/net/netsyms.c 2005-01-08 12:16:21.745556832 -0500
-@@ -435,20 +435,12 @@
- EXPORT_SYMBOL(neigh_add);
- EXPORT_SYMBOL(neigh_dump_info);
-
--EXPORT_SYMBOL(dev_set_allmulti);
--EXPORT_SYMBOL(dev_set_promiscuity);
--EXPORT_SYMBOL(sklist_remove_socket);
--EXPORT_SYMBOL(rtnl_sem);
--EXPORT_SYMBOL(rtnl_lock);
--EXPORT_SYMBOL(rtnl_unlock);
--
- /* ABI emulation layers need this */
- EXPORT_SYMBOL(move_addr_to_kernel);
- EXPORT_SYMBOL(move_addr_to_user);
-
- /* Used by at least ipip.c. */
- EXPORT_SYMBOL(ipv4_config);
--EXPORT_SYMBOL(dev_open);
-
- /* Used by other modules */
- EXPORT_SYMBOL(xrlim_allow);
-@@ -460,6 +452,14 @@
-
- #endif /* CONFIG_INET */
-
-+EXPORT_SYMBOL(dev_open);
-+EXPORT_SYMBOL(dev_set_allmulti);
-+EXPORT_SYMBOL(dev_set_promiscuity);
-+EXPORT_SYMBOL(sklist_remove_socket);
-+EXPORT_SYMBOL(rtnl_sem);
-+EXPORT_SYMBOL(rtnl_lock);
-+EXPORT_SYMBOL(rtnl_unlock);
-+
- #ifdef CONFIG_TR
- EXPORT_SYMBOL(tr_type_trans);
- #endif
diff --git a/packages/linux/linux-wrt-2.4.20/defconfig b/packages/linux/linux-wrt-2.4.20/defconfig
deleted file mode 100644
index 60424cef4a..0000000000
--- a/packages/linux/linux-wrt-2.4.20/defconfig
+++ /dev/null
@@ -1,853 +0,0 @@
-#
-# Automatically generated by make menuconfig: don't edit
-#
-CONFIG_MIPS=y
-CONFIG_MIPS32=y
-# CONFIG_MIPS64 is not set
-
-#
-# Code maturity level options
-#
-CONFIG_EXPERIMENTAL=y
-
-#
-# Loadable module support
-#
-CONFIG_MODULES=y
-# CONFIG_MODVERSIONS is not set
-# CONFIG_KMOD is not set
-
-#
-# Machine selection
-#
-# CONFIG_ACER_PICA_61 is not set
-# CONFIG_MIPS_DB1000 is not set
-# CONFIG_MIPS_DB1100 is not set
-# CONFIG_MIPS_DB1500 is not set
-# CONFIG_MIPS_PB1000 is not set
-# CONFIG_MIPS_PB1100 is not set
-# CONFIG_MIPS_PB1500 is not set
-# CONFIG_BAGET_MIPS is not set
-# CONFIG_CASIO_E55 is not set
-# CONFIG_MIPS_COBALT is not set
-# CONFIG_DECSTATION is not set
-# CONFIG_MIPS_EV64120 is not set
-# CONFIG_MIPS_EV96100 is not set
-# CONFIG_MIPS_IVR is not set
-# CONFIG_HP_LASERJET is not set
-# CONFIG_IBM_WORKPAD is not set
-# CONFIG_LASAT is not set
-# CONFIG_MIPS_ITE8172 is not set
-# CONFIG_MIPS_ATLAS is not set
-# CONFIG_MIPS_MAGNUM_4000 is not set
-# CONFIG_MIPS_MALTA is not set
-# CONFIG_MIPS_SEAD is not set
-# CONFIG_MOMENCO_OCELOT is not set
-# CONFIG_MOMENCO_OCELOT_G is not set
-# CONFIG_DDB5074 is not set
-# CONFIG_DDB5476 is not set
-# CONFIG_DDB5477 is not set
-# CONFIG_NEC_OSPREY is not set
-# CONFIG_NEC_EAGLE is not set
-# CONFIG_OLIVETTI_M700 is not set
-# CONFIG_NINO is not set
-# CONFIG_SGI_IP22 is not set
-# CONFIG_SGI_IP27 is not set
-# CONFIG_SGI_IP32 is not set
-# CONFIG_SIBYTE_SB1xxx_SOC is not set
-CONFIG_MIPS_BRCM=y
-CONFIG_BCM947XX=y
-CONFIG_BCM4710=y
-CONFIG_BCM4310=y
-CONFIG_BCM4704=y
-# CONFIG_BCM5365 is not set
-# CONFIG_SNI_RM200_PCI is not set
-# CONFIG_TOSHIBA_JMR3927 is not set
-# CONFIG_VICTOR_MPC30X is not set
-# CONFIG_ZAO_CAPCELLA is not set
-# CONFIG_HIGHMEM is not set
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-CONFIG_CMDLINE="root=/dev/mtdblock2 rootfstype=squashfs init=/etc/preinit noinitrd console=ttyS0,115200"
-CONFIG_PCI=y
-CONFIG_NONCOHERENT_IO=y
-CONFIG_NEW_TIME_C=y
-CONFIG_NEW_IRQ=y
-CONFIG_HND=y
-# CONFIG_MIPS_AU1000 is not set
-
-#
-# CPU selection
-#
-CONFIG_CPU_MIPS32=y
-# CONFIG_CPU_MIPS64 is not set
-# CONFIG_CPU_R3000 is not set
-# CONFIG_CPU_TX39XX is not set
-# CONFIG_CPU_VR41XX is not set
-# CONFIG_CPU_R4300 is not set
-# CONFIG_CPU_R4X00 is not set
-# CONFIG_CPU_TX49XX is not set
-# CONFIG_CPU_R5000 is not set
-# CONFIG_CPU_R5432 is not set
-# CONFIG_CPU_R6000 is not set
-# CONFIG_CPU_NEVADA is not set
-# CONFIG_CPU_R8000 is not set
-# CONFIG_CPU_R10000 is not set
-# CONFIG_CPU_RM7000 is not set
-# CONFIG_CPU_SB1 is not set
-CONFIG_CPU_HAS_PREFETCH=y
-# CONFIG_VTAG_ICACHE is not set
-# CONFIG_64BIT_PHYS_ADDR is not set
-# CONFIG_CPU_ADVANCED is not set
-CONFIG_CPU_HAS_LLSC=y
-# CONFIG_CPU_HAS_LLDSCD is not set
-# CONFIG_CPU_HAS_WB is not set
-CONFIG_CPU_HAS_SYNC=y
-
-#
-# General setup
-#
-CONFIG_CPU_LITTLE_ENDIAN=y
-CONFIG_NET=y
-# CONFIG_PCI_NAMES is not set
-# CONFIG_ISA is not set
-# CONFIG_EISA is not set
-# CONFIG_TC is not set
-# CONFIG_MCA is not set
-# CONFIG_SBUS is not set
-CONFIG_HOTPLUG=y
-
-#
-# PCMCIA/CardBus support
-#
-# CONFIG_PCMCIA is not set
-
-#
-# PCI Hotplug Support
-#
-# CONFIG_HOTPLUG_PCI is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-# CONFIG_HOTPLUG_PCI_ACPI is not set
-CONFIG_SYSVIPC=y
-# CONFIG_BSD_PROCESS_ACCT is not set
-CONFIG_SYSCTL=y
-# CONFIG_PRINT_SYSCALLS is not set
-CONFIG_KCORE_ELF=y
-# CONFIG_KCORE_AOUT is not set
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_ELF=y
-# CONFIG_MIPS32_COMPAT is not set
-# CONFIG_MIPS32_O32 is not set
-# CONFIG_MIPS32_N32 is not set
-# CONFIG_BINFMT_ELF32 is not set
-# CONFIG_BINFMT_MISC is not set
-# CONFIG_PM is not set
-
-#
-# Memory Technology Devices (MTD)
-#
-CONFIG_MTD=y
-# CONFIG_MTD_DEBUG is not set
-CONFIG_MTD_PARTITIONS=y
-# CONFIG_MTD_CONCAT is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-CONFIG_MTD_CHAR=y
-# CONFIG_MTD_BLOCK is not set
-CONFIG_MTD_BLOCK_RO=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-CONFIG_MTD_CFI_ADV_OPTIONS=y
-CONFIG_MTD_CFI_NOSWAP=y
-# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set
-# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set
-CONFIG_MTD_CFI_GEOMETRY=y
-# CONFIG_MTD_CFI_B1 is not set
-CONFIG_MTD_CFI_B2=y
-# CONFIG_MTD_CFI_B4 is not set
-CONFIG_MTD_CFI_I1=y
-# CONFIG_MTD_CFI_I2 is not set
-# CONFIG_MTD_CFI_I4 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-CONFIG_MTD_CFI_AMDSTD=y
-CONFIG_MTD_CFI_SSTSTD=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-# CONFIG_MTD_OBSOLETE_CHIPS is not set
-# CONFIG_MTD_AMDSTD is not set
-# CONFIG_MTD_SHARP is not set
-# CONFIG_MTD_JEDEC is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_PHYSMAP is not set
-CONFIG_MTD_BCM947XX=y
-# CONFIG_MTD_PB1000 is not set
-# CONFIG_MTD_PB1500 is not set
-# CONFIG_MTD_PB1100 is not set
-# CONFIG_MTD_CSTM_MIPS_IXX is not set
-# CONFIG_MTD_OCELOT is not set
-# CONFIG_MTD_LASAT is not set
-# CONFIG_MTD_PCI is not set
-
-#
-# Self-contained MTD device drivers
-#
-CONFIG_MTD_SFLASH=y
-# CONFIG_MTD_PMC551 is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLKMTD is not set
-# CONFIG_MTD_DOC1000 is not set
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOCPROBE is not set
-
-#
-# NAND Flash Device Drivers
-#
-# CONFIG_MTD_NAND is not set
-
-#
-# Parallel port support
-#
-# CONFIG_PARPORT is not set
-
-#
-# Plug and Play configuration
-#
-# CONFIG_PNP is not set
-# CONFIG_ISAPNP is not set
-
-#
-# Block devices
-#
-# CONFIG_BLK_DEV_MSYS is not set
-# CONFIG_NOROOT is not set
-# CONFIG_BLK_DEV_FD is not set
-# CONFIG_BLK_DEV_XD is not set
-# CONFIG_PARIDE is not set
-# CONFIG_BLK_CPQ_DA is not set
-# CONFIG_BLK_CPQ_CISS_DA is not set
-# CONFIG_CISS_SCSI_TAPE is not set
-# CONFIG_BLK_DEV_DAC960 is not set
-# CONFIG_BLK_DEV_UMEM is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_RAM is not set
-# CONFIG_BLK_DEV_INITRD is not set
-# CONFIG_BLK_STATS is not set
-
-#
-# Multi-device support (RAID and LVM)
-#
-# CONFIG_MD is not set
-# CONFIG_BLK_DEV_MD is not set
-# CONFIG_MD_LINEAR is not set
-# CONFIG_MD_RAID0 is not set
-# CONFIG_MD_RAID1 is not set
-# CONFIG_MD_RAID5 is not set
-# CONFIG_MD_MULTIPATH is not set
-# CONFIG_BLK_DEV_LVM is not set
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_PACKET_MMAP=y
-CONFIG_NETLINK_DEV=m
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-# CONFIG_FILTER is not set
-CONFIG_UNIX=y
-CONFIG_NETSWAP=y
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-CONFIG_IP_ADVANCED_ROUTER=y
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_FWMARK=y
-CONFIG_IP_ROUTE_NAT=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_TOS=y
-# CONFIG_IP_ROUTE_VERBOSE is not set
-# CONFIG_IP_ROUTE_LARGE_TABLES is not set
-# CONFIG_IP_PNP is not set
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE=m
-# CONFIG_ARPD is not set
-# CONFIG_INET_ECN is not set
-# CONFIG_SYN_COOKIES is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_IP_NF_CONNTRACK=y
-CONFIG_IP_NF_FTP=y
-CONFIG_IP_NF_H323=y
-CONFIG_IP_NF_CONNTRACK_MARK=y
-# CONFIG_IP_NF_AMANDA is not set
-CONFIG_IP_NF_TFTP=y
-CONFIG_IP_NF_IRC=y
-CONFIG_IP_NF_CT_PROTO_GRE=y
-CONFIG_IP_NF_PPTP=y
-CONFIG_IP_NF_MMS=y
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=y
-CONFIG_IP_NF_MATCH_LIMIT=m
-CONFIG_IP_NF_SET=m
-CONFIG_IP_NF_SET_MAX=256
-CONFIG_IP_NF_SET_IPMAP=m
-CONFIG_IP_NF_SET_PORTMAP=m
-CONFIG_IP_NF_SET_MACIPMAP=m
-CONFIG_IP_NF_SET_IPHASH=m
-CONFIG_IP_NF_MATCH_QUOTA=m
-CONFIG_IP_NF_POOL=m
-CONFIG_IP_POOL_STATISTICS=y
-CONFIG_IP_NF_MATCH_IPRANGE=m
-CONFIG_IP_NF_MATCH_DSTLIMIT=m
-CONFIG_IP_NF_MATCH_MAC=m
-CONFIG_IP_NF_MATCH_PKTTYPE=m
-CONFIG_IP_NF_MATCH_MARK=y
-CONFIG_IP_NF_MATCH_MULTIPORT=y
-CONFIG_IP_NF_MATCH_TOS=m
-CONFIG_IP_NF_MATCH_CONDITION=m
-# CONFIG_IP_NF_MATCH_RANDOM is not set
-CONFIG_IP_NF_MATCH_PSD=m
-# CONFIG_IP_NF_MATCH_OSF is not set
-# CONFIG_IP_NF_MATCH_NTH is not set
-CONFIG_IP_NF_MATCH_IPV4OPTIONS=m
-# CONFIG_IP_NF_MATCH_FUZZY is not set
-CONFIG_IP_NF_MATCH_RECENT=m
-CONFIG_IP_NF_MATCH_ECN=m
-CONFIG_IP_NF_MATCH_DSCP=m
-CONFIG_IP_NF_MATCH_AH_ESP=m
-CONFIG_IP_NF_MATCH_LENGTH=m
-# CONFIG_IP_NF_MATCH_U32 is not set
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_MATCH_TCPMSS=y
-# CONFIG_IP_NF_MATCH_REALM is not set
-CONFIG_IP_NF_MATCH_HELPER=m
-CONFIG_IP_NF_MATCH_STATE=y
-CONFIG_IP_NF_MATCH_CONNMARK=m
-CONFIG_IP_NF_MATCH_CONNLIMIT=m
-CONFIG_IP_NF_MATCH_CONNTRACK=m
-CONFIG_IP_NF_MATCH_UNCLEAN=m
-CONFIG_IP_NF_MATCH_STRING=m
-# CONFIG_IP_NF_MATCH_OWNER is not set
-CONFIG_IP_NF_MATCH_PHYSDEV=m
-CONFIG_IP_NF_FILTER=y
-CONFIG_IP_NF_TARGET_REJECT=y
-CONFIG_IP_NF_TARGET_NETLINK=m
-CONFIG_IP_NF_TARGET_IPV4OPTSSTRIP=m
-CONFIG_IP_NF_TARGET_MIRROR=m
-CONFIG_IP_NF_NAT=y
-CONFIG_IP_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=y
-CONFIG_IP_NF_TARGET_REDIRECT=y
-CONFIG_IP_NF_NAT_H323=y
-# CONFIG_IP_NF_TARGET_SAME is not set
-# CONFIG_IP_NF_TARGET_NETMAP is not set
-CONFIG_IP_NF_NAT_PPTP=y
-CONFIG_IP_NF_NAT_PROTO_GRE=y
-# CONFIG_IP_NF_NAT_LOCAL is not set
-CONFIG_IP_NF_NAT_SNMP_BASIC=m
-CONFIG_IP_NF_NAT_IRC=y
-CONFIG_IP_NF_NAT_MMS=y
-CONFIG_IP_NF_NAT_FTP=y
-CONFIG_IP_NF_NAT_TFTP=y
-CONFIG_IP_NF_MANGLE=y
-CONFIG_IP_NF_TARGET_TOS=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_DSCP=m
-CONFIG_IP_NF_TARGET_MARK=y
-CONFIG_IP_NF_TARGET_IPMARK=m
-CONFIG_IP_NF_TARGET_CLASSIFY=m
-CONFIG_IP_NF_TARGET_LOG=y
-CONFIG_IP_NF_TARGET_CONNMARK=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_IP_NF_TARGET_TCPMSS=y
-# CONFIG_IP_NF_RAW is not set
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-CONFIG_IPV6=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_LIMIT=m
-CONFIG_IP6_NF_MATCH_MAC=m
-# CONFIG_IP6_NF_MATCH_RANDOM is not set
-# CONFIG_IP6_NF_MATCH_NTH is not set
-# CONFIG_IP6_NF_MATCH_FUZZY is not set
-# CONFIG_IP6_NF_MATCH_RT is not set
-# CONFIG_IP6_NF_MATCH_OPTS is not set
-# CONFIG_IP6_NF_MATCH_FRAG is not set
-# CONFIG_IP6_NF_MATCH_HL is not set
-CONFIG_IP6_NF_MATCH_MULTIPORT=m
-CONFIG_IP6_NF_MATCH_OWNER=m
-CONFIG_IP6_NF_MATCH_MARK=m
-# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set
-# CONFIG_IP6_NF_MATCH_AHESP is not set
-CONFIG_IP6_NF_MATCH_LENGTH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-# CONFIG_IP6_NF_TARGET_HL is not set
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_TARGET_MARK=m
-# CONFIG_KHTTPD is not set
-# CONFIG_ATM is not set
-CONFIG_VLAN_8021Q=y
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-
-#
-# Appletalk devices
-#
-# CONFIG_DEV_APPLETALK is not set
-# CONFIG_DECNET is not set
-CONFIG_BRIDGE=y
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_IPF=m
-CONFIG_BRIDGE_EBT_ARPF=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_VLANF=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_MARKF=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_LLC is not set
-# CONFIG_NET_DIVERT is not set
-# CONFIG_ECONET is not set
-CONFIG_WAN_ROUTER=m
-# CONFIG_NET_FASTROUTE is not set
-# CONFIG_NET_HW_FLOWCONTROL is not set
-
-#
-# QoS and/or fair queueing
-#
-CONFIG_NET_SCHED=y
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_CSZ=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_RED=m
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_INGRESS=m
-CONFIG_NET_QOS=y
-CONFIG_NET_ESTIMATOR=y
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_ROUTE=y
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_POLICE=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-
-#
-# Telephony Support
-#
-# CONFIG_PHONE is not set
-# CONFIG_PHONE_IXJ is not set
-# CONFIG_PHONE_IXJ_PCMCIA is not set
-
-#
-# ATA/IDE/MFM/RLL support
-#
-# CONFIG_IDE is not set
-# CONFIG_BLK_DEV_IDE_MODES is not set
-# CONFIG_BLK_DEV_HD is not set
-
-#
-# SCSI support
-#
-# CONFIG_SCSI is not set
-
-#
-# I2O device support
-#
-# CONFIG_I2O is not set
-# CONFIG_I2O_PCI is not set
-# CONFIG_I2O_BLOCK is not set
-# CONFIG_I2O_LAN is not set
-# CONFIG_I2O_SCSI is not set
-# CONFIG_I2O_PROC is not set
-
-#
-# Network device support
-#
-CONFIG_NETDEVICES=y
-
-#
-# Broadcom HND network devices
-#
-CONFIG_HND=y
-# CONFIG_IL is not set
-CONFIG_ET=m
-# CONFIG_ET_4413 is not set
-CONFIG_ET_47XX=y
-CONFIG_WL=m
-CONFIG_WL_AP=y
-CONFIG_WL_STA=y
-
-#
-# ARCnet devices
-#
-# CONFIG_ARCNET is not set
-# CONFIG_DUMMY is not set
-# CONFIG_BONDING is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_TUN=m
-# CONFIG_ETHERTAP is not set
-
-#
-# Ethernet (10 or 100Mbit)
-#
-CONFIG_NET_ETHERNET=y
-# CONFIG_SUNLANCE is not set
-# CONFIG_HAPPYMEAL is not set
-# CONFIG_SUNBMAC is not set
-# CONFIG_SUNQE is not set
-# CONFIG_SUNGEM is not set
-# CONFIG_NET_VENDOR_3COM is not set
-# CONFIG_LANCE is not set
-# CONFIG_NET_VENDOR_SMC is not set
-# CONFIG_NET_VENDOR_RACAL is not set
-# CONFIG_HP100 is not set
-# CONFIG_NET_ISA is not set
-# CONFIG_NET_PCI is not set
-# CONFIG_NET_POCKET is not set
-
-#
-# Ethernet (1000 Mbit)
-#
-# CONFIG_ACENIC is not set
-# CONFIG_DL2K is not set
-# CONFIG_E1000 is not set
-# CONFIG_MYRI_SBUS is not set
-# CONFIG_NS83820 is not set
-# CONFIG_HAMACHI is not set
-# CONFIG_YELLOWFIN is not set
-# CONFIG_SK98LIN is not set
-# CONFIG_TIGON3 is not set
-# CONFIG_FDDI is not set
-# CONFIG_HIPPI is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=y
-# CONFIG_PPP_MULTILINK is not set
-# CONFIG_PPP_FILTER is not set
-CONFIG_PPP_ASYNC=m
-# CONFIG_PPP_SYNC_TTY is not set
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_MPPE=m
-CONFIG_PPPOE=m
-# CONFIG_SLIP is not set
-
-#
-# Wireless LAN (non-hamradio)
-#
-CONFIG_NET_RADIO=y
-# CONFIG_STRIP is not set
-# CONFIG_WAVELAN is not set
-# CONFIG_ARLAN is not set
-# CONFIG_AIRONET4500 is not set
-# CONFIG_AIRONET4500_NONCS is not set
-# CONFIG_AIRONET4500_PROC is not set
-# CONFIG_AIRO is not set
-# CONFIG_HERMES is not set
-# CONFIG_PLX_HERMES is not set
-# CONFIG_PCI_HERMES is not set
-CONFIG_NET_WIRELESS=y
-
-#
-# Token Ring devices
-#
-# CONFIG_TR is not set
-# CONFIG_NET_FC is not set
-# CONFIG_RCPCI is not set
-CONFIG_SHAPER=m
-
-#
-# Wan interfaces
-#
-# CONFIG_WAN is not set
-
-#
-# Amateur Radio support
-#
-# CONFIG_HAMRADIO is not set
-
-#
-# IrDA (infrared) support
-#
-# CONFIG_IRDA is not set
-
-#
-# ISDN subsystem
-#
-# CONFIG_ISDN is not set
-
-#
-# Input core support
-#
-# CONFIG_INPUT is not set
-# CONFIG_INPUT_KEYBDEV is not set
-# CONFIG_INPUT_MOUSEDEV is not set
-# CONFIG_INPUT_JOYDEV is not set
-# CONFIG_INPUT_EVDEV is not set
-
-#
-# Character devices
-#
-# CONFIG_VT is not set
-CONFIG_SERIAL=y
-CONFIG_SERIAL_CONSOLE=y
-# CONFIG_SERIAL_EXTENDED is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_UNIX98_PTYS=y
-CONFIG_UNIX98_PTY_COUNT=128
-
-#
-# I2C support
-#
-# CONFIG_I2C is not set
-
-#
-# Mice
-#
-# CONFIG_BUSMOUSE is not set
-# CONFIG_MOUSE is not set
-
-#
-# Joysticks
-#
-# CONFIG_INPUT_GAMEPORT is not set
-# CONFIG_QIC02_TAPE is not set
-
-#
-# Watchdog Cards
-#
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-# CONFIG_ACQUIRE_WDT is not set
-# CONFIG_ADVANTECH_WDT is not set
-# CONFIG_ALIM7101_WDT is not set
-# CONFIG_SC520_WDT is not set
-# CONFIG_PCWATCHDOG is not set
-# CONFIG_EUROTECH_WDT is not set
-# CONFIG_IB700_WDT is not set
-# CONFIG_WAFER_WDT is not set
-# CONFIG_I810_TCO is not set
-# CONFIG_MIXCOMWD is not set
-# CONFIG_60XX_WDT is not set
-# CONFIG_SC1200_WDT is not set
-CONFIG_SOFT_WATCHDOG=y
-# CONFIG_W83877F_WDT is not set
-# CONFIG_WDT is not set
-# CONFIG_WDTPCI is not set
-# CONFIG_MACHZ_WDT is not set
-# CONFIG_INDYDOG is not set
-# CONFIG_AMD7XX_TCO is not set
-# CONFIG_AMD_PM768 is not set
-# CONFIG_NVRAM is not set
-# CONFIG_RTC is not set
-# CONFIG_DTLK is not set
-# CONFIG_R3964 is not set
-# CONFIG_APPLICOM is not set
-
-#
-# Ftape, the floppy tape device driver
-#
-# CONFIG_FTAPE is not set
-# CONFIG_AGP is not set
-# CONFIG_DRM is not set
-
-#
-# File systems
-#
-CONFIG_BLKDEV_SWAP=m
-# CONFIG_QUOTA is not set
-# CONFIG_AUTOFS_FS is not set
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_ADFS_FS is not set
-# CONFIG_ADFS_FS_RW is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BEFS_DEBUG is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EXT3_FS is not set
-# CONFIG_JBD is not set
-# CONFIG_JBD_DEBUG is not set
-# CONFIG_FAT_FS is not set
-# CONFIG_MSDOS_FS is not set
-# CONFIG_UMSDOS_FS is not set
-# CONFIG_VFAT_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS_FS is not set
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-# CONFIG_JFFS2_BBC_ARMLIB is not set
-CONFIG_JFFS2_BBC_LZO=y
-CONFIG_JFFS2_BBC_LZARI=y
-CONFIG_JFFS2_BBC_LZHD=y
-CONFIG_JFFS2_BBC_LZSS=y
-# CONFIG_CRAMFS is not set
-CONFIG_SQUASHFS=y
-# CONFIG_TMPFS is not set
-CONFIG_RAMFS=y
-# CONFIG_ISO9660_FS is not set
-# CONFIG_JOLIET is not set
-# CONFIG_ZISOFS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_NTFS_FS is not set
-# CONFIG_NTFS_RW is not set
-# CONFIG_HPFS_FS is not set
-CONFIG_PROC_FS=y
-CONFIG_DEVFS_FS=y
-CONFIG_DEVFS_MOUNT=y
-# CONFIG_DEVFS_DEBUG is not set
-# CONFIG_DEVPTS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_QNX4FS_RW is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_EXT2_FS is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UDF_FS is not set
-# CONFIG_UDF_RW is not set
-# CONFIG_UFS_FS is not set
-# CONFIG_UFS_FS_WRITE is not set
-
-#
-# Network File Systems
-#
-# CONFIG_CODA_FS is not set
-# CONFIG_INTERMEZZO_FS is not set
-CONFIG_NFS_FS=m
-CONFIG_NFS_V3=y
-# CONFIG_ROOT_NFS is not set
-CONFIG_SWAP_VIA_NFS=m
-CONFIG_NETSWAP=y
-# CONFIG_NFSD is not set
-# CONFIG_NFSD_V3 is not set
-# CONFIG_NFSD_TCP is not set
-CONFIG_SUNRPC=m
-CONFIG_LOCKD=m
-CONFIG_LOCKD_V4=y
-# CONFIG_SMB_FS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_NCPFS_PACKET_SIGNING is not set
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-# CONFIG_NCPFS_STRONG is not set
-# CONFIG_NCPFS_NFS_NS is not set
-# CONFIG_NCPFS_OS2_NS is not set
-# CONFIG_NCPFS_SMALLDOS is not set
-# CONFIG_NCPFS_NLS is not set
-# CONFIG_NCPFS_EXTRAS is not set
-# CONFIG_ZISOFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-# CONFIG_MSDOS_PARTITION is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_SMB_NLS is not set
-# CONFIG_NLS is not set
-
-#
-# Multimedia devices
-#
-# CONFIG_VIDEO_DEV is not set
-
-#
-# Sound
-#
-# CONFIG_SOUND is not set
-
-#
-# USB support
-#
-# CONFIG_USB is not set
-
-#
-# Support for USB gadgets
-#
-# CONFIG_USB_GADGET is not set
-
-#
-# Bluetooth support
-#
-# CONFIG_BLUEZ is not set
-
-#
-# Kernel hacking
-#
-CONFIG_CROSSCOMPILE=y
-# CONFIG_KERNPROF is not set
-# CONFIG_MCOUNT is not set
-# CONFIG_DEBUG is not set
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_MIPS_UNCACHED is not set
-# CONFIG_KTRACE is not set
-# CONFIG_HWSIM is not set
-
-#
-# Library routines
-#
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
diff --git a/packages/linux/linux-wrt-2.4.20/diag.c b/packages/linux/linux-wrt-2.4.20/diag.c
deleted file mode 100644
index d39ac7c698..0000000000
--- a/packages/linux/linux-wrt-2.4.20/diag.c
+++ /dev/null
@@ -1,203 +0,0 @@
-// replacement diag module
-// (c) 2004 openwrt
-// mbm at alt dot org
-//
-// initial release 2004/03/28
-//
-// 2004/08/26 asus & buffalo support added
-
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/kernel.h>
-#include <linux/sysctl.h>
-#include <asm/io.h>
-#include <typedefs.h>
-#include <bcm4710.h>
-#include <sbutils.h>
-
-extern char * nvram_get(const char *name);
-static void *sbh;
-
-// v2.x - - - - -
-#define DIAG_GPIO (1<<1)
-#define DMZ_GPIO (1<<7)
-
-static void set_gpio(uint32 mask, uint32 value) {
- sb_gpiocontrol(sbh,mask,0);
- sb_gpioouten(sbh,mask,mask);
- sb_gpioout(sbh,mask,value);
-}
-
-static void v2_set_diag(u8 state) {
- set_gpio(DIAG_GPIO,state);
-}
-static void v2_set_dmz(u8 state) {
- set_gpio(DMZ_GPIO,state);
-}
-
-// v1.x - - - - -
-#define LED_DIAG 0x13
-#define LED_DMZ 0x12
-
-static void v1_set_diag(u8 state) {
- if (!state) {
- *(volatile u8*)(KSEG1ADDR(BCM4710_EUART)+LED_DIAG)=0xFF;
- } else {
- *(volatile u8*)(KSEG1ADDR(BCM4710_EUART)+LED_DIAG);
- }
-}
-static void v1_set_dmz(u8 state) {
- if (!state) {
- *(volatile u8*)(KSEG1ADDR(BCM4710_EUART)+LED_DMZ)=0xFF;
- } else {
- *(volatile u8*)(KSEG1ADDR(BCM4710_EUART)+LED_DMZ);
- }
-}
-
-// - - - - -
-static void ignore(u8 ignored) {};
-
-// - - - - -
-#define BIT_DMZ 0x01
-#define BIT_DIAG 0x04
-
-void (*set_diag)(u8 state);
-void (*set_dmz)(u8 state);
-
-static unsigned int diag = 0;
-
-static void diag_change()
-{
- printk(KERN_INFO "led -> %02x\n",diag);
-
- set_diag(0xFF); // off
- set_dmz(0xFF); // off
-
- if(diag & BIT_DIAG)
- set_diag(0x00); // on
- if(diag & BIT_DMZ)
- set_dmz(0x00); // on
-}
-
-static int proc_diag(ctl_table *table, int write, struct file *filp,
- void *buffer, size_t *lenp)
-{
- int r;
- r = proc_dointvec(table, write, filp, buffer, lenp);
- if (write && !r) {
- diag_change();
- }
- return r;
-}
-
-// - - - - -
-static unsigned char reset_gpio = 0;
-static unsigned char reset_polarity = 0;
-static unsigned int reset = 0;
-
-static int proc_reset(ctl_table *table, int write, struct file *filp,
- void *buffer, size_t *lenp)
-{
-
- if (reset_gpio) {
- sb_gpiocontrol(sbh,reset_gpio,reset_gpio);
- sb_gpioouten(sbh,reset_gpio,0);
- reset=!(sb_gpioin(sbh)&reset_gpio);
-
- if (reset_polarity) reset=!reset;
- } else {
- reset=0;
- }
-
- return proc_dointvec(table, write, filp, buffer, lenp);
-}
-
-// - - - - -
-static struct ctl_table_header *diag_sysctl_header;
-
-static ctl_table sys_diag[] = {
- {
- ctl_name: 2000,
- procname: "diag",
- data: &diag,
- maxlen: sizeof(diag),
- mode: 0644,
- proc_handler: proc_diag
- },
- {
- ctl_name: 2001,
- procname: "reset",
- data: &reset,
- maxlen: sizeof(reset),
- mode: 0444,
- proc_handler: proc_reset
- },
- { 0 }
-};
-
-static int __init diag_init()
-{
- char *buf;
- u32 board_type;
- sbh = sb_kattach();
- sb_gpiosetcore(sbh);
-
- board_type = sb_boardtype(sbh);
- printk(KERN_INFO "diag boardtype: %08x\n",board_type);
-
- set_diag=ignore;
- set_dmz=ignore;
-
- if (board_type & 0x400) {
- board_type=1;
- buf=nvram_get("boardtype")?:"";
- if (!strcmp(buf,"bcm94710dev")) {
- buf=nvram_get("boardnum")?:"";
- if (!strcmp(buf,"42")) {
- // wrt54g v1.x
- set_diag=v1_set_diag;
- set_dmz=v1_set_dmz;
- reset_gpio=(1<<6);
- reset_polarity=0;
- } else if (!strcmp(buf,"asusX")) {
- //asus wl-500g
- //no leds
- reset_gpio=(1<<6);
- reset_polarity=1;
- }
- } else if (!strcmp(buf,"bcm94710ap")) {
- buf=nvram_get("boardnum")?:"";
- if (!strcmp(buf,"42")) {
- // buffalo
- set_dmz=v2_set_dmz;
- reset_gpio=(1<<4);
- reset_polarity=1;
- } else if (!strcmp(buf,"44")) {
- //dell truemobile
- set_dmz=v2_set_dmz;
- reset_gpio=(1<<0);
- reset_polarity=0;
- }
- }
- } else {
- board_type=2;
- set_diag=v2_set_diag;
- set_dmz=v2_set_dmz;
- reset_gpio=(1<<6);
- reset_polarity=0;
- }
- printk(KERN_INFO "using v%d hardware\n",board_type);
-
- diag_sysctl_header = register_sysctl_table(sys_diag, 0);
- diag_change();
-
- return 0;
-}
-
-static void __exit diag_exit()
-{
- unregister_sysctl_table(diag_sysctl_header);
-}
-
-module_init(diag_init);
-module_exit(diag_exit);
diff --git a/packages/linux/linux-wrt-2.4.20/gcc3.patch b/packages/linux/linux-wrt-2.4.20/gcc3.patch
deleted file mode 100644
index bb4ee661b4..0000000000
--- a/packages/linux/linux-wrt-2.4.20/gcc3.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/drivers/mtd/mtdblock_ro.c~gcc3 2005-01-07 04:49:24.300224000 -0500
-+++ linux-2.4.20/drivers/mtd/mtdblock_ro.c 2005-01-07 04:50:19.309861960 -0500
-@@ -178,7 +178,7 @@
- res = 0;
-
- if (MINOR(req->rq_dev) >= MAX_MTD_DEVICES)
-- panic(__FUNCTION__": minor out of bound");
-+ panic("%s: minor out of bound", __FUNCTION__);
-
- if ((req->sector + req->current_nr_sectors) > (mtdblk->mtd->size >> 9))
- goto end_req;
---- linux-2.4.20/net/ipv4/netfilter/ip_nat_helper.c~gcc3 2005-01-07 04:49:24.303224000 -0500
-+++ linux-2.4.20/net/ipv4/netfilter/ip_nat_helper.c 2005-01-07 04:50:19.310861808 -0500
-@@ -382,9 +382,9 @@
- const char *tmp = me->me->name;
-
- if (strlen(tmp) + 6 > MODULE_MAX_NAMELEN) {
-- printk(__FUNCTION__ ": unable to "
-+ printk("%s: unable to "
- "compute conntrack helper name "
-- "from %s\n", tmp);
-+ "from %s\n", __FUNCTION__, tmp);
- return -EBUSY;
- }
- tmp += 6;
-@@ -467,7 +467,7 @@
- && ct_helper->me) {
- __MOD_DEC_USE_COUNT(ct_helper->me);
- } else
-- printk(__FUNCTION__ ": unable to decrement usage count"
-- " of conntrack helper %s\n", me->me->name);
-+ printk("%s: unable to decrement usage count"
-+ " of conntrack helper %s\n", __FUNCTION__, me->me->name);
- }
- }
diff --git a/packages/linux/linux-wrt-2.4.20/gcc_mtune.patch b/packages/linux/linux-wrt-2.4.20/gcc_mtune.patch
deleted file mode 100644
index db8b5a7305..0000000000
--- a/packages/linux/linux-wrt-2.4.20/gcc_mtune.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/arch/mips/Makefile~gcc_mtune 2005-01-07 04:06:12.000000000 -0500
-+++ linux-2.4.20/arch/mips/Makefile 2005-01-07 04:07:03.532480104 -0500
-@@ -54,47 +54,47 @@
- # CPU-dependent compiler/assembler options for optimization.
- #
- ifdef CONFIG_CPU_R3000
--GCCFLAGS += -mcpu=r3000 -mips1
-+GCCFLAGS += -mtune=r3000 -mips1
- endif
- ifdef CONFIG_CPU_TX39XX
--GCCFLAGS += -mcpu=r3000 -mips1
-+GCCFLAGS += -mtune=r3000 -mips1
- endif
- ifdef CONFIG_CPU_R6000
--GCCFLAGS += -mcpu=r6000 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r6000 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_R4300
--GCCFLAGS += -mcpu=r4300 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r4300 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_VR41XX
--GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r4600 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_R4X00
--GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r4600 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_TX49XX
--GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r4600 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_MIPS32
--GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r4600 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_MIPS64
--GCCFLAGS += -mcpu=r4600 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r4600 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_R5000
--GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r5000 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_R5432
--GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r5000 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_NEVADA
- # Cannot use -mmad with currently recommended tools
--GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r5000 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_RM7000
--GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
-+GCCFLAGS += -mtune=r5000 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_SB1
--GCCFLAGS += $(call check_gcc, -mcpu=sb1, -mcpu=r5000) \
-+GCCFLAGS += $(call check_gcc, -mtune=sb1, -mtune=r5000) \
- -mips2 -Wa,--trap
- ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
- MODFLAGS += -msb1-pass1-workarounds
diff --git a/packages/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch b/packages/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch
deleted file mode 100644
index 45cfe20894..0000000000
--- a/packages/linux/linux-wrt-2.4.20/linux-2.4.20-mipscvs.patch
+++ /dev/null
@@ -1,119169 +0,0 @@
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Entries
---- linux-2.4.20/arch/alpha/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.9/Mon Nov 5 20:15:21 2001/-ko/Tlinux_2_4_20
-+/bootloader.lds/1.3/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
-+/bootp.c/1.8/Mon Nov 5 20:15:21 2001/-ko/Tlinux_2_4_20
-+/head.S/1.2/Sun Jan 3 17:50:12 1999/-ko/Tlinux_2_4_20
-+/main.c/1.5/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Repository
---- linux-2.4.20/arch/alpha/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha/boot
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Root
---- linux-2.4.20/arch/alpha/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Tag
---- linux-2.4.20/arch/alpha/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Entries
---- linux-2.4.20/arch/alpha/boot/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Entries 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1,3 @@
-+/mkbb.c/1.1.1.1/Sun Jun 1 03:16:44 1997/-ko/Tlinux_2_4_20
-+/objstrip.c/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Repository
---- linux-2.4.20/arch/alpha/boot/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha/boot/tools
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Root
---- linux-2.4.20/arch/alpha/boot/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Tag
---- linux-2.4.20/arch/alpha/boot/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/boot/tools/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Entries
---- linux-2.4.20/arch/alpha/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.14.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/config.in/1.45.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.27/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/vmlinux.lds.in/1.3/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Repository
---- linux-2.4.20/arch/alpha/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha
-diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Root
---- linux-2.4.20/arch/alpha/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Tag
---- linux-2.4.20/arch/alpha/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Entries
---- linux-2.4.20/arch/alpha/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Entries 2005-01-06 22:59:04.000000000 -0600
-@@ -0,0 +1,63 @@
-+/Makefile/1.19/Sat Sep 22 12:49:03 2001/-ko/Tlinux_2_4_20
-+/alpha_ksyms.c/1.33.2.3/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/check_asm.c/1.1/Sat Sep 19 19:15:24 1998/-ko/Tlinux_2_4_20
-+/console.c/1.3/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/core_apecs.c/1.9/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/core_cia.c/1.19/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/core_irongate.c/1.7/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/core_lca.c/1.9/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/core_mcpcia.c/1.16/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/core_polaris.c/1.8/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/core_t2.c/1.9/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/core_titan.c/1.6/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/core_tsunami.c/1.17/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/core_wildfire.c/1.2/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/entry.S/1.31.2.2/Tue Sep 10 15:32:47 2002/-ko/Tlinux_2_4_20
-+/es1888.c/1.2/Sat Oct 9 00:00:50 1999/-ko/Tlinux_2_4_20
-+/head.S/1.10/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
-+/irq.c/1.24/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/irq_alpha.c/1.9/Mon Nov 5 20:15:21 2001/-ko/Tlinux_2_4_20
-+/irq_i8259.c/1.3.4.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
-+/irq_impl.h/1.4/Tue Mar 7 15:45:26 2000/-ko/Tlinux_2_4_20
-+/irq_pyxis.c/1.1/Thu Mar 23 02:25:40 2000/-ko/Tlinux_2_4_20
-+/irq_smp.c/1.3/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/irq_srm.c/1.2/Thu Mar 23 02:25:40 2000/-ko/Tlinux_2_4_20
-+/machvec_impl.h/1.8/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/ns87312.c/1.1/Sat Oct 9 00:00:50 1999/-ko/Tlinux_2_4_20
-+/osf_sys.c/1.33.2.1/Tue Sep 10 15:32:47 2002/-ko/Tlinux_2_4_20
-+/pci-noop.c/1.3.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.19.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/pci_impl.h/1.9/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/pci_iommu.c/1.15.2.2/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/process.c/1.26/Mon Nov 5 20:15:21 2001/-ko/Tlinux_2_4_20
-+/proto.h/1.18.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.17/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
-+/semaphore.c/1.6/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.31.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.16.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/smc37c669.c/1.8.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/smc37c93x.c/1.5/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/smp.c/1.30.2.2/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/srm_env.c/1.2.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/sys_alcor.c/1.9/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
-+/sys_cabriolet.c/1.13/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_dp264.c/1.22/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_eb64p.c/1.8/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
-+/sys_eiger.c/1.6/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_jensen.c/1.11/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
-+/sys_miata.c/1.13.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/sys_mikasa.c/1.9/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
-+/sys_nautilus.c/1.7/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/sys_noritake.c/1.9/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
-+/sys_rawhide.c/1.12/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_ruffian.c/1.13/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_rx164.c/1.6/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
-+/sys_sable.c/1.8/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/sys_sio.c/1.13/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/sys_sx164.c/1.12/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_takara.c/1.9/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
-+/sys_titan.c/1.4/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/sys_wildfire.c/1.4/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/time.c/1.27.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.23.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Repository
---- linux-2.4.20/arch/alpha/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha/kernel
-diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Root
---- linux-2.4.20/arch/alpha/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Tag
---- linux-2.4.20/arch/alpha/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/kernel/CVS/Tag 2005-01-06 22:59:04.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Entries
---- linux-2.4.20/arch/alpha/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Entries 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1,54 @@
-+/Makefile/1.17/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/callback_srm.S/1.1/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+/checksum.c/1.3/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/clear_page.S/1.1/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/clear_user.S/1.3/Sun Jun 13 16:30:00 1999/-ko/Tlinux_2_4_20
-+/copy_page.S/1.1/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/copy_user.S/1.4/Fri May 12 21:06:02 2000/-ko/Tlinux_2_4_20
-+/csum_ipv6_magic.S/1.4/Thu Feb 24 00:12:37 2000/-ko/Tlinux_2_4_20
-+/csum_partial_copy.c/1.6/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/dec_and_lock.c/1.2.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/divide.S/1.1.1.1/Sun Jun 1 03:16:44 1997/-ko/Tlinux_2_4_20
-+/ev6-clear_page.S/1.1/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/ev6-clear_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-copy_page.S/1.1/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/ev6-copy_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-csum_ipv6_magic.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-divide.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-memchr.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-memcpy.S/1.2/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/ev6-memset.S/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/ev6-strncpy_from_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-stxcpy.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev6-stxncpy.S/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/ev67-strcat.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev67-strchr.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev67-strlen.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev67-strlen_user.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev67-strncat.S/1.1/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/ev67-strrchr.S/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/fpreg.c/1.1/Fri Feb 4 07:40:20 2000/-ko/Tlinux_2_4_20
-+/io.c/1.7/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/memchr.S/1.1/Sat Oct 9 00:00:50 1999/-ko/Tlinux_2_4_20
-+/memcpy.c/1.4/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/memmove.S/1.2/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/memset.S/1.2/Tue Aug 25 09:13:31 1998/-ko/Tlinux_2_4_20
-+/srm_printk.c/1.2/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+/srm_puts.c/1.2/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+/stackcheck.S/1.1/Sat Sep 19 19:15:34 1998/-ko/Tlinux_2_4_20
-+/stackkill.S/1.1/Sat Sep 19 19:15:34 1998/-ko/Tlinux_2_4_20
-+/stacktrace.c/1.1/Sat Sep 19 19:15:34 1998/-ko/Tlinux_2_4_20
-+/strcasecmp.c/1.1/Tue Aug 25 09:13:31 1998/-ko/Tlinux_2_4_20
-+/strcat.S/1.1.1.1/Sun Jun 1 03:16:44 1997/-ko/Tlinux_2_4_20
-+/strchr.S/1.1.1.1/Sun Jun 1 03:16:44 1997/-ko/Tlinux_2_4_20
-+/strcpy.S/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/strlen.S/1.1.1.1/Sun Jun 1 03:16:44 1997/-ko/Tlinux_2_4_20
-+/strlen_user.S/1.4/Sat Dec 4 03:58:58 1999/-ko/Tlinux_2_4_20
-+/strncat.S/1.1.1.1/Sun Jun 1 03:16:44 1997/-ko/Tlinux_2_4_20
-+/strncpy.S/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/strncpy_from_user.S/1.2/Sun Jun 13 16:30:01 1999/-ko/Tlinux_2_4_20
-+/strrchr.S/1.2/Sat Dec 6 23:51:55 1997/-ko/Tlinux_2_4_20
-+/stxcpy.S/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/stxncpy.S/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/udelay.c/1.1/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Repository
---- linux-2.4.20/arch/alpha/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Repository 2005-01-06 22:59:04.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha/lib
-diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Root
---- linux-2.4.20/arch/alpha/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Root 2005-01-06 22:59:04.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Tag
---- linux-2.4.20/arch/alpha/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/lib/CVS/Tag 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Entries
---- linux-2.4.20/arch/alpha/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Entries 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/math.c/1.3.4.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/qrnnd.S/1.1/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/sfp-util.h/1.2/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Repository
---- linux-2.4.20/arch/alpha/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Repository 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha/math-emu
-diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Root
---- linux-2.4.20/arch/alpha/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Root 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Tag
---- linux-2.4.20/arch/alpha/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/math-emu/CVS/Tag 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Entries
---- linux-2.4.20/arch/alpha/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Entries 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.2/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.4/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.17.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/init.c/1.23.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/numa.c/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Repository
---- linux-2.4.20/arch/alpha/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Repository 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/alpha/mm
-diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Root
---- linux-2.4.20/arch/alpha/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Root 2005-01-06 22:59:05.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/alpha/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Tag
---- linux-2.4.20/arch/alpha/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/alpha/mm/CVS/Tag 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Entries
---- linux-2.4.20/arch/arm/boot/bootp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Entries 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.4/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/bootp.lds/1.1/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/init.S/1.4/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Repository
---- linux-2.4.20/arch/arm/boot/bootp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Repository 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/boot/bootp
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Root
---- linux-2.4.20/arch/arm/boot/bootp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Root 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/bootp/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Tag
---- linux-2.4.20/arch/arm/boot/bootp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/bootp/CVS/Tag 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Entries
---- linux-2.4.20/arch/arm/boot/compressed/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Entries 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1,18 @@
-+/Makefile/1.21.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/Makefile.debug/1.2/Tue Aug 25 09:13:35 1998/-ko/Tlinux_2_4_20
-+/head-clps7500.S/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/head-epxa10db.S/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/head-ftvpci.S/1.2/Fri Mar 9 20:33:42 2001/-ko/Tlinux_2_4_20
-+/head-integrator.S/1.1/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/head-l7200.S/1.2/Fri Mar 9 20:33:42 2001/-ko/Tlinux_2_4_20
-+/head-mx1ads.S/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/head-netwinder.S/1.4/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/head-sa1100.S/1.9/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/head-shark.S/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/head.S/1.14.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/hw-bse.c/1.1/Mon Aug 28 22:00:12 2000/-ko/Tlinux_2_4_20
-+/ll_char_wr.S/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/misc.c/1.5.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/ofw-shark.c/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds.in/1.4/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Repository
---- linux-2.4.20/arch/arm/boot/compressed/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Repository 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/boot/compressed
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Root
---- linux-2.4.20/arch/arm/boot/compressed/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Root 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Tag
---- linux-2.4.20/arch/arm/boot/compressed/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/compressed/CVS/Tag 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Entries
---- linux-2.4.20/arch/arm/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.9.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/install.sh/1.1/Tue Mar 17 22:06:27 1998/-ko/Tlinux_2_4_20
-+D/bootp////
-+D/compressed////
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Repository
---- linux-2.4.20/arch/arm/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Repository 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/boot
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Root
---- linux-2.4.20/arch/arm/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Root 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Tag
---- linux-2.4.20/arch/arm/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/boot/CVS/Tag 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Entries
---- linux-2.4.20/arch/arm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,21 @@
-+/Makefile/1.28.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/config.in/1.37.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.19/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/vmlinux-armo.lds.in/1.11.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/vmlinux-armv.lds.in/1.13.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/def-configs////
-+D/kernel////
-+D/lib////
-+D/mach-anakin////
-+D/mach-clps711x////
-+D/mach-ebsa110////
-+D/mach-epxa10db////
-+D/mach-footbridge////
-+D/mach-integrator////
-+D/mach-mx1ads////
-+D/mach-sa1100////
-+D/mach-shark////
-+D/mm////
-+D/nwfpe////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Repository
---- linux-2.4.20/arch/arm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Repository 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm
-diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Root
---- linux-2.4.20/arch/arm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Root 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Tag
---- linux-2.4.20/arch/arm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/CVS/Tag 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Entries
---- linux-2.4.20/arch/arm/def-configs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Entries 2005-01-06 22:59:08.000000000 -0600
-@@ -0,0 +1,43 @@
-+/a5k/1.5/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/adsbitsy/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/anakin/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/assabet/1.6.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/badge4/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/brutus/1.9/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
-+/cerfcube/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/cerfpda/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/cerfpod/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/clps7500/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/ebsa110/1.8.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/edb7211/1.1/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/empeg/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/epxa10db/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/flexanet/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/footbridge/1.10/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/fortunet/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/freebird/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/freebird_new/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/frodo/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/graphicsclient/1.5.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/graphicsmaster/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/h3600/1.2.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/huw_webpanel/1.1/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
-+/integrator/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/jornada720/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/lart/1.5.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/lusl7200/1.2/Mon Jun 19 22:45:39 2000/-ko/Tlinux_2_4_20
-+/neponset/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/omnimeter/1.1/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
-+/pangolin/1.3.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/pfs168_mqtft/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/pfs168_mqvga/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/pfs168_sastn/1.1.2.1/Wed Jun 26 22:35:02 2002/-ko/Tlinux_2_4_20
-+/pfs168_satft/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/pleb/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/rpc/1.7.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/shannon/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/shark/1.3.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/sherman/1.2/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
-+/system3/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/victor/1.2/Mon Jun 19 22:45:39 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Repository
---- linux-2.4.20/arch/arm/def-configs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Repository 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/def-configs
-diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Root
---- linux-2.4.20/arch/arm/def-configs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Root 2005-01-06 22:59:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/def-configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Tag
---- linux-2.4.20/arch/arm/def-configs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/def-configs/CVS/Tag 2005-01-06 22:59:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Entries
---- linux-2.4.20/arch/arm/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Entries 2005-01-06 22:59:09.000000000 -0600
-@@ -0,0 +1,44 @@
-+/Makefile/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/arch.c/1.10/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
-+/armksyms.c/1.24.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/arthur.c/1.7/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
-+/bios32.c/1.25.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/calls.S/1.13.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/compat.c/1.2.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/debug-armo.S/1.2/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/debug-armv.S/1.10.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/dec21285.c/1.17/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/dma-arc.c/1.9.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/dma-footbridge.c/1.6/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/dma-isa.c/1.7/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/dma-rpc.c/1.12/Fri Mar 9 20:33:42 2001/-ko/Tlinux_2_4_20
-+/dma.c/1.11.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/ecard.c/1.18/Sat Sep 22 12:49:04 2001/-ko/Tlinux_2_4_20
-+/entry-armo.S/1.12/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
-+/entry-armv.S/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/entry-common.S/1.20.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/entry-header.S/1.2.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/fiq.c/1.10/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/ftv-pci.c/1.1/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/head-armo.S/1.9/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/head-armv.S/1.20/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/init_task.c/1.10.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/io.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/irq-arch.c/1.2/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.19/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/isa.c/1.3/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/leds-ftvpci.c/1.1/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/oldlatches.c/1.9/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
-+/plx90x0.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/process.c/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.15/Fri Oct 19 01:23:32 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.2/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/semaphore.c/1.10.2.2/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.24/Sun Dec 2 11:34:35 2001/-ko/Tlinux_2_4_20
-+/signal.c/1.19.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/sys_arm.c/1.22/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/time-acorn.c/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/time.c/1.18/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/traps.c/1.23.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/via82c505.c/1.4.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Repository
---- linux-2.4.20/arch/arm/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Repository 2005-01-06 22:59:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/kernel
-diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Root
---- linux-2.4.20/arch/arm/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Root 2005-01-06 22:59:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Tag
---- linux-2.4.20/arch/arm/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/kernel/CVS/Tag 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Entries
---- linux-2.4.20/arch/arm/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Entries 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1,52 @@
-+/Makefile/1.22/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/ashldi3.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/ashrdi3.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/backtrace.S/1.7.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/changebit.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/clearbit.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/copy_page.S/1.3/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/csumipv6.S/1.2/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/csumpartial.S/1.3/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/csumpartialcopy.S/1.4/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/csumpartialcopygeneric.S/1.1/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/csumpartialcopyuser.S/1.5/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/delay.S/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/ecard.S/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/findbit.S/1.4/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/floppydma.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/gcclib.h/1.2/Sun Dec 2 11:34:35 2001/-ko/Tlinux_2_4_20
-+/getuser.S/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/io-acorn.S/1.10.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/io-readsb.S/1.3/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
-+/io-readsl-armv3.S/1.2/Sat Sep 22 12:49:05 2001/-ko/Tlinux_2_4_20
-+/io-readsl-armv4.S/1.3/Fri Oct 19 01:23:33 2001/-ko/Tlinux_2_4_20
-+/io-readsw-armv3.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/io-readsw-armv4.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/io-shark.c/1.3.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/io-writesb.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/io-writesl.S/1.4/Fri Oct 19 01:23:33 2001/-ko/Tlinux_2_4_20
-+/io-writesw-armv3.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/io-writesw-armv4.S/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/kbd.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/lib1funcs.S/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/longlong.h/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/lshrdi3.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/memchr.S/1.2/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/memcpy.S/1.6/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/memset.S/1.2/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/memzero.S/1.2/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/muldi3.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/putuser.S/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/setbit.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/strchr.S/1.2/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/strncpy_from_user.S/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/strnlen_user.S/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/strrchr.S/1.3.4.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/testchangebit.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/testclearbit.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/testsetbit.S/1.3/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/uaccess-armo.S/1.4/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/uaccess.S/1.9/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/ucmpdi2.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+/udivdi3.c/1.1/Tue Nov 6 00:54:53 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Repository
---- linux-2.4.20/arch/arm/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Repository 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/lib
-diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Root
---- linux-2.4.20/arch/arm/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Root 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Tag
---- linux-2.4.20/arch/arm/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/lib/CVS/Tag 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Entries
---- linux-2.4.20/arch/arm/mach-anakin/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Entries 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/arch.c/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/mm.c/1.1/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Repository
---- linux-2.4.20/arch/arm/mach-anakin/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Repository 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-anakin
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Root
---- linux-2.4.20/arch/arm/mach-anakin/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Root 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-anakin/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Tag
---- linux-2.4.20/arch/arm/mach-anakin/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-anakin/CVS/Tag 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Entries
---- linux-2.4.20/arch/arm/mach-clps711x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Entries 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1,14 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/autcpu12.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/cdb89712.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/clep7312.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/dma.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/edb7211-arch.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/edb7211-mm.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/fortunet.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/mm.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/p720t-leds.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/p720t.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Repository
---- linux-2.4.20/arch/arm/mach-clps711x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Repository 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-clps711x
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Root
---- linux-2.4.20/arch/arm/mach-clps711x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Root 2005-01-06 22:59:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-clps711x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Tag
---- linux-2.4.20/arch/arm/mach-clps711x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-clps711x/CVS/Tag 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Entries
---- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Entries 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/arch.c/1.2/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.1/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/io.c/1.5.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/leds.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/mm.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/time.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Repository
---- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Repository 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-ebsa110
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Root
---- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Root 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-ebsa110/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Tag
---- linux-2.4.20/arch/arm/mach-ebsa110/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-ebsa110/CVS/Tag 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Entries
---- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Entries 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.1/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/arch.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/dma.c/1.2/Sun Dec 2 11:34:35 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.1/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/mm.c/1.1.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Repository
---- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Repository 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-epxa10db
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Root
---- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Root 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-epxa10db/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Tag
---- linux-2.4.20/arch/arm/mach-epxa10db/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-epxa10db/CVS/Tag 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Entries
---- linux-2.4.20/arch/arm/mach-footbridge/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Entries 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1,13 @@
-+/Makefile/1.3/Sat Sep 22 12:49:06 2001/-ko/Tlinux_2_4_20
-+/arch.c/1.3/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/cats-hw.c/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/cats-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/ebsa285-leds.c/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/ebsa285-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/mm.c/1.1/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/netwinder-hw.c/1.2/Wed Jan 10 05:27:26 2001/-ko/Tlinux_2_4_20
-+/netwinder-leds.c/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/netwinder-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/personal-pci.c/1.2/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Repository
---- linux-2.4.20/arch/arm/mach-footbridge/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Repository 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-footbridge
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Root
---- linux-2.4.20/arch/arm/mach-footbridge/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Root 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-footbridge/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Tag
---- linux-2.4.20/arch/arm/mach-footbridge/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-footbridge/CVS/Tag 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Entries
---- linux-2.4.20/arch/arm/mach-integrator/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Entries 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/arch.c/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/cpu.c/1.2.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/dma.c/1.2/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.1/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/leds.c/1.1/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/mm.c/1.1/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/pci_v3.c/1.3.2.1/Wed Jun 26 22:35:03 2002/-ko/Tlinux_2_4_20
-+/time.c/1.2/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Repository
---- linux-2.4.20/arch/arm/mach-integrator/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Repository 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-integrator
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Root
---- linux-2.4.20/arch/arm/mach-integrator/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Root 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-integrator/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Tag
---- linux-2.4.20/arch/arm/mach-integrator/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-integrator/CVS/Tag 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Entries
---- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Entries 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/arch.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/cpu.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/mm.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Repository
---- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Repository 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-mx1ads
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Root
---- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Root 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-mx1ads/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Tag
---- linux-2.4.20/arch/arm/mach-mx1ads/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-mx1ads/CVS/Tag 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Entries
---- linux-2.4.20/arch/arm/mach-sa1100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Entries 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1,61 @@
-+/Makefile/1.6.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/adsbitsy.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/assabet.c/1.3.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/badge4.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/brutus.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/cerf.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/cpu-sa1100.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/cpu-sa1110.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/dma-sa1100.c/1.4.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/dma-sa1111.c/1.4.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/dma.h/1.3/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/empeg.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/flexanet.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/freebird.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/frodo.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/generic.c/1.2.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/generic.h/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/graphicsclient.c/1.3.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/graphicsmaster.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/h3600.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/huw_webpanel.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/itsy.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/jornada720.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/lart.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/leds-adsbitsy.c/1.1/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/leds-assabet.c/1.2.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/leds-brutus.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/leds-cerf.c/1.2/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/leds-flexanet.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/leds-frodo.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/leds-graphicsclient.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/leds-graphicsmaster.c/1.1/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/leds-lart.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/leds-pfs168.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/leds-simpad.c/1.2/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/leds-system3.c/1.1.2.1/Wed Jun 26 22:35:04 2002/-ko/Tlinux_2_4_20
-+/leds.c/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/leds.h/1.3.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/nanoengine.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/neponset.c/1.3.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/omnimeter.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/pangolin.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/pcipool.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/pcipool.h/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/pfs168.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/pleb.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/pm.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/sa1111-pcibuf.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/sa1111.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/sa1111.h/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/shannon.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/sherman.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/simpad.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/sleep.S/1.1/Tue Nov 6 07:55:45 2001/-ko/Tlinux_2_4_20
-+/sleep.h/1.1/Tue Nov 6 07:55:46 2001/-ko/Tlinux_2_4_20
-+/system3.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/victor.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/xp860.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/yopy.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Repository
---- linux-2.4.20/arch/arm/mach-sa1100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Repository 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-sa1100
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Root
---- linux-2.4.20/arch/arm/mach-sa1100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Root 2005-01-06 22:59:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-sa1100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Tag
---- linux-2.4.20/arch/arm/mach-sa1100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-sa1100/CVS/Tag 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Entries
---- linux-2.4.20/arch/arm/mach-shark/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Entries 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.3/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+/arch.c/1.3/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/dma.c/1.3/Tue Nov 6 07:55:46 2001/-ko/Tlinux_2_4_20
-+/leds.c/1.2/Tue Nov 6 07:55:46 2001/-ko/Tlinux_2_4_20
-+/mm.c/1.3/Tue Nov 6 07:55:46 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Repository
---- linux-2.4.20/arch/arm/mach-shark/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Repository 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mach-shark
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Root
---- linux-2.4.20/arch/arm/mach-shark/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Root 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mach-shark/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Tag
---- linux-2.4.20/arch/arm/mach-shark/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mach-shark/CVS/Tag 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Entries
---- linux-2.4.20/arch/arm/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Entries 2005-01-06 22:59:15.000000000 -0600
-@@ -0,0 +1,28 @@
-+/Makefile/1.15.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/alignment.c/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/consistent.c/1.8/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/discontig.c/1.1/Sat Sep 22 12:49:07 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.3/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/fault-armo.c/1.9/Fri Mar 9 20:33:42 2001/-ko/Tlinux_2_4_20
-+/fault-armv.c/1.22.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fault-common.c/1.17.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/init.c/1.27/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/ioremap.c/1.8/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+/mm-armo.c/1.8/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+/mm-armv.c/1.22.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/mm-clps7500.c/1.3/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+/mm-ftvpci.c/1.1/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/mm-l7200.c/1.5/Wed Aug 22 03:23:55 2001/-ko/Tlinux_2_4_20
-+/mm-rpc.c/1.11/Thu Apr 5 04:56:08 2001/-ko/Tlinux_2_4_20
-+/mm-tbox.c/1.4/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/proc-arm1020.S/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/proc-arm2,3.S/1.11/Thu Apr 5 04:56:08 2001/-ko/Tlinux_2_4_20
-+/proc-arm6,7.S/1.21/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
-+/proc-arm720.S/1.9.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/proc-arm920.S/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/proc-arm922.S/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/proc-arm926.S/1.1.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/proc-sa110.S/1.24.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/proc-syms.c/1.1/Thu Oct 5 01:18:42 2000/-ko/Tlinux_2_4_20
-+/small_page.c/1.9/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Repository
---- linux-2.4.20/arch/arm/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Repository 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/mm
-diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Root
---- linux-2.4.20/arch/arm/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Root 2005-01-06 22:59:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Tag
---- linux-2.4.20/arch/arm/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/mm/CVS/Tag 2005-01-06 22:59:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Entries
---- linux-2.4.20/arch/arm/nwfpe/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Entries 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1,26 @@
-+/ARM-gcc.h/1.1.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/ChangeLog/1.2.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+/double_cpdo.c/1.6.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/entry26.S/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/extended_cpdo.c/1.6.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpa11.c/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpa11.h/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpa11.inl/1.4/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
-+/fpa11_cpdo.c/1.6/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
-+/fpa11_cpdt.c/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpa11_cprt.c/1.6.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpmodule.c/1.8.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpmodule.h/1.2/Sat Oct 9 00:00:51 1999/-ko/Tlinux_2_4_20
-+/fpmodule.inl/1.4/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
-+/fpopcode.c/1.4.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/fpopcode.h/1.3/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+/fpsr.h/1.3/Thu Feb 24 00:12:37 2000/-ko/Tlinux_2_4_20
-+/milieu.h/1.1/Tue Jun 22 23:06:23 1999/-ko/Tlinux_2_4_20
-+/single_cpdo.c/1.5.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/softfloat-macros/1.1/Tue Jun 22 23:06:23 1999/-ko/Tlinux_2_4_20
-+/softfloat-specialize/1.1.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/softfloat.c/1.2.2.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+/softfloat.h/1.1.4.1/Wed Jun 26 22:35:05 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Repository
---- linux-2.4.20/arch/arm/nwfpe/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Repository 2005-01-06 22:59:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/nwfpe
-diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Root
---- linux-2.4.20/arch/arm/nwfpe/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Root 2005-01-06 22:59:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/nwfpe/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Tag
---- linux-2.4.20/arch/arm/nwfpe/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/nwfpe/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Entries
---- linux-2.4.20/arch/arm/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Entries 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.4.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/constants-hdr/1.1/Thu Apr 5 04:56:08 2001/-ko/Tlinux_2_4_20
-+/gen-mach-types/1.1/Mon Aug 28 22:00:12 2000/-ko/Tlinux_2_4_20
-+/getconstants.c/1.4/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/mach-types/1.12.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Repository
---- linux-2.4.20/arch/arm/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/arm/tools
-diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Root
---- linux-2.4.20/arch/arm/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/arm/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Tag
---- linux-2.4.20/arch/arm/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/arm/tools/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Entries
---- linux-2.4.20/arch/cris/boot/compressed/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Entries 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.3.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/README/1.1/Fri Mar 9 20:33:43 2001/-ko/Tlinux_2_4_20
-+/decompress.ld/1.4/Fri Aug 24 03:38:28 2001/-ko/Tlinux_2_4_20
-+/head.S/1.3/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/misc.c/1.3/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Repository
---- linux-2.4.20/arch/cris/boot/compressed/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/boot/compressed
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Root
---- linux-2.4.20/arch/cris/boot/compressed/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Tag
---- linux-2.4.20/arch/cris/boot/compressed/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/compressed/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Entries
---- linux-2.4.20/arch/cris/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Entries 2005-01-06 23:08:25.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.1.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+D/compressed////
-+D/rescue////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Repository
---- linux-2.4.20/arch/cris/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/boot
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Root
---- linux-2.4.20/arch/cris/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Tag
---- linux-2.4.20/arch/cris/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Entries
---- linux-2.4.20/arch/cris/boot/rescue/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Entries 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.2.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/head.S/1.3.2.1/Tue Feb 26 05:58:58 2002/-ko/Tlinux_2_4_20
-+/kimagerescue.S/1.3/Mon Nov 5 20:15:22 2001/-ko/Tlinux_2_4_20
-+/rescue.ld/1.2/Mon Nov 5 20:15:22 2001/-ko/Tlinux_2_4_20
-+/testrescue.S/1.3/Mon Nov 5 20:15:22 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Repository
---- linux-2.4.20/arch/cris/boot/rescue/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/boot/rescue
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Root
---- linux-2.4.20/arch/cris/boot/rescue/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/rescue/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Tag
---- linux-2.4.20/arch/cris/boot/rescue/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/rescue/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Entries
---- linux-2.4.20/arch/cris/boot/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Entries 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1,2 @@
-+/build.c/1.1/Wed Jun 13 17:27:38 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Repository
---- linux-2.4.20/arch/cris/boot/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/boot/tools
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Root
---- linux-2.4.20/arch/cris/boot/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Tag
---- linux-2.4.20/arch/cris/boot/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/boot/tools/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Entries
---- linux-2.4.20/arch/cris/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Entries 2005-01-06 23:08:26.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.6.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/README.mm/1.1/Fri Mar 9 20:33:43 2001/-ko/Tlinux_2_4_20
-+/config.in/1.7.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/cris.ld/1.6/Mon Nov 5 20:15:22 2001/-ko/Tlinux_2_4_20
-+/defconfig/1.6.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/drivers////
-+D/kernel////
-+D/lib////
-+D/mm////
-diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Repository
---- linux-2.4.20/arch/cris/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris
-diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Root
---- linux-2.4.20/arch/cris/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Tag
---- linux-2.4.20/arch/cris/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/CVS/Tag 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Entries
---- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Entries 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Repository
---- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Repository 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/drivers/bluetooth
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Root
---- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Root 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Tag
---- linux-2.4.20/arch/cris/drivers/bluetooth/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/bluetooth/CVS/Tag 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Entries
---- linux-2.4.20/arch/cris/drivers/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Entries 2005-01-06 23:08:25.000000000 -0600
-@@ -0,0 +1,22 @@
-+/Config.in/1.6.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/axisflashmap.c/1.6.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/ds1302.c/1.2.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/eeprom.c/1.3/Fri Aug 24 03:38:28 2001/-ko/Tlinux_2_4_20
-+/ethernet.c/1.5.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/gpio.c/1.4.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/i2c.c/1.2.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/i2c.h/1.2/Thu Jun 14 04:23:46 2001/-ko/Tlinux_2_4_20
-+/ide.c/1.4.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/parport.c/1.5.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/pcf8563.c/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/serial.c/1.7.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.5.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/sync_serial.c/1.2.2.3/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/usb-host.c/1.6.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/usb-host.h/1.2/Sat Sep 22 12:49:08 2001/-ko/Tlinux_2_4_20
-+/virtex.c/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/virtex.h/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+D/bluetooth////
-+D/examples////
-+D/lpslave////
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Repository
---- linux-2.4.20/arch/cris/drivers/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Repository 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/drivers
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Root
---- linux-2.4.20/arch/cris/drivers/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Root 2005-01-06 22:59:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Tag
---- linux-2.4.20/arch/cris/drivers/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/CVS/Tag 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Entries
---- linux-2.4.20/arch/cris/drivers/examples/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Entries 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+/kiobuftest.c/1.1/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Repository
---- linux-2.4.20/arch/cris/drivers/examples/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Repository 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/drivers/examples
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Root
---- linux-2.4.20/arch/cris/drivers/examples/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Root 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/examples/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Tag
---- linux-2.4.20/arch/cris/drivers/examples/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/examples/CVS/Tag 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Entries
---- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Entries 2005-01-06 22:59:20.000000000 -0600
-@@ -0,0 +1,8 @@
-+/Makefile/1.1/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/bintocarr.pl/1.2/Mon Nov 5 20:15:22 2001/-ko/Tlinux_2_4_20
-+/e100lpslave.README/1.1/Thu Aug 23 22:24:21 2001/-ko/Tlinux_2_4_20
-+/e100lpslave.S/1.2/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
-+/e100lpslave.h/1.1/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
-+/e100lpslaveld/1.1/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
-+/e100lpslavenet.c/1.2.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Repository
---- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Repository 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/drivers/lpslave
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Root
---- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Root 2005-01-06 22:59:19.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/drivers/lpslave/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Tag
---- linux-2.4.20/arch/cris/drivers/lpslave/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/drivers/lpslave/CVS/Tag 2005-01-06 22:59:20.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Entries
---- linux-2.4.20/arch/cris/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Entries 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1,20 @@
-+/Makefile/1.6.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/debugport.c/1.2.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.8.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/entryoffsets.c/1.2/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
-+/fasttimer.c/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/head.S/1.7.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/hexify.c/1.1/Fri Mar 9 20:33:43 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.5.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
-+/kgdb.c/1.4.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/ksyms.c/1.3.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
-+/process.c/1.8.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.6.2.1/Tue Feb 26 05:58:59 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.7.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/shadows.c/1.2/Thu Jun 14 04:23:47 2001/-ko/Tlinux_2_4_20
-+/signal.c/1.5.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/sys_cris.c/1.6/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
-+/time.c/1.4.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.7.2.2/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Repository
---- linux-2.4.20/arch/cris/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Repository 2005-01-06 22:59:20.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/kernel
-diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Root
---- linux-2.4.20/arch/cris/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Root 2005-01-06 22:59:20.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Tag
---- linux-2.4.20/arch/cris/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/kernel/CVS/Tag 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Entries
---- linux-2.4.20/arch/cris/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Entries 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.2/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
-+/checksum.S/1.4/Mon Nov 5 20:15:23 2001/-ko/Tlinux_2_4_20
-+/checksumcopy.S/1.5/Mon Nov 5 20:15:23 2001/-ko/Tlinux_2_4_20
-+/csumcpfruser.S/1.2/Mon Nov 5 20:15:23 2001/-ko/Tlinux_2_4_20
-+/dmacopy.c/1.1/Fri Mar 9 20:33:43 2001/-ko/Tlinux_2_4_20
-+/dram_init.S/1.4.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/hw_settings.S/1.2.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/memset.c/1.3/Mon Nov 5 20:15:23 2001/-ko/Tlinux_2_4_20
-+/old_checksum.c/1.1/Fri Mar 9 20:33:43 2001/-ko/Tlinux_2_4_20
-+/string.c/1.3/Mon Nov 5 20:15:23 2001/-ko/Tlinux_2_4_20
-+/usercopy.c/1.3/Mon Nov 5 20:15:23 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Repository
---- linux-2.4.20/arch/cris/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Repository 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/lib
-diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Root
---- linux-2.4.20/arch/cris/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Root 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Tag
---- linux-2.4.20/arch/cris/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/lib/CVS/Tag 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Entries
---- linux-2.4.20/arch/cris/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Entries 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.3.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.6.2.3/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/init.c/1.5.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.2/Thu Jun 14 04:23:47 2001/-ko/Tlinux_2_4_20
-+/tlb.c/1.4/Fri Aug 24 03:38:29 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Repository
---- linux-2.4.20/arch/cris/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Repository 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/cris/mm
-diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Root
---- linux-2.4.20/arch/cris/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Root 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/cris/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Tag
---- linux-2.4.20/arch/cris/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/cris/mm/CVS/Tag 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/CVS/Entries
---- linux-2.4.20/arch/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,17 @@
-+D/alpha////
-+D/arm////
-+D/cris////
-+D/i386////
-+D/ia64////
-+D/m68k////
-+D/mips////
-+D/mips64////
-+D/parisc////
-+D/ppc////
-+D/ppc64////
-+D/s390////
-+D/s390x////
-+D/sh////
-+D/sparc////
-+D/sparc64////
-+D/x86_64////
-diff -urNd -urNd linux-2.4.20/arch/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/CVS/Repository
---- linux-2.4.20/arch/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch
-diff -urNd -urNd linux-2.4.20/arch/CVS/Root linux-2.4.20-mipscvs-20050106/arch/CVS/Root
---- linux-2.4.20/arch/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/CVS/Tag
---- linux-2.4.20/arch/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Entries
---- linux-2.4.20/arch/i386/boot/compressed/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Entries 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.2/Tue Mar 17 22:06:48 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.9.2.1/Tue Feb 26 05:59:00 2002/-ko/Tlinux_2_4_20
-+/head.S/1.9/Sat Jul 8 00:53:01 2000/-ko/Tlinux_2_4_20
-+/misc.c/1.15.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Repository
---- linux-2.4.20/arch/i386/boot/compressed/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Repository 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/boot/compressed
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Root
---- linux-2.4.20/arch/i386/boot/compressed/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Root 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Tag
---- linux-2.4.20/arch/i386/boot/compressed/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/CVS/Tag 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/compressed/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/.cvsignore
---- linux-2.4.20/arch/i386/boot/compressed/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/compressed/.cvsignore 1998-03-17 16:06:48.000000000 -0600
-@@ -0,0 +1,4 @@
-+*tmppiggy*
-+.*.flags
-+vmlinux
-+vmlinux.out
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Entries
---- linux-2.4.20/arch/i386/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Entries 2005-01-06 23:08:25.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.2/Tue Mar 17 22:06:45 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.10/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
-+/bootsect.S/1.14/Sun Dec 2 11:34:35 2001/-ko/Tlinux_2_4_20
-+/install.sh/1.2/Fri Oct 19 01:23:33 2001/-ko/Tlinux_2_4_20
-+/setup.S/1.25.2.2/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/video.S/1.9/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
-+D/compressed////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Repository
---- linux-2.4.20/arch/i386/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Repository 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/boot
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Root
---- linux-2.4.20/arch/i386/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Root 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Tag
---- linux-2.4.20/arch/i386/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/CVS/Tag 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/boot/.cvsignore
---- linux-2.4.20/arch/i386/boot/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/.cvsignore 1998-03-17 16:06:45.000000000 -0600
-@@ -0,0 +1,5 @@
-+*.s
-+.*.flags
-+bootsect
-+setup
-+zImage
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Entries
---- linux-2.4.20/arch/i386/boot/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Entries 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1,3 @@
-+/.cvsignore/1.2/Tue Mar 17 22:06:50 1998/-ko/Tlinux_2_4_20
-+/build.c/1.10/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Repository
---- linux-2.4.20/arch/i386/boot/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Repository 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/boot/tools
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Root
---- linux-2.4.20/arch/i386/boot/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Root 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Tag
---- linux-2.4.20/arch/i386/boot/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/CVS/Tag 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/boot/tools/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/.cvsignore
---- linux-2.4.20/arch/i386/boot/tools/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/boot/tools/.cvsignore 1998-03-17 16:06:50.000000000 -0600
-@@ -0,0 +1,2 @@
-+build
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Entries
---- linux-2.4.20/arch/i386/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Entries 2005-01-06 23:08:25.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.24.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/config.in/1.62.2.4/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.76.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.12.2.1/Tue Feb 26 05:59:00 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Repository
---- linux-2.4.20/arch/i386/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Repository 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386
-diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Root
---- linux-2.4.20/arch/i386/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Root 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Tag
---- linux-2.4.20/arch/i386/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/CVS/Tag 2005-01-06 22:59:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Entries
---- linux-2.4.20/arch/i386/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Entries 2005-01-06 23:08:25.000000000 -0600
-@@ -0,0 +1,45 @@
-+/.cvsignore/1.2/Tue Mar 17 22:06:51 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.26.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/acpitable.c/1.1.2.1/Wed Jun 26 22:35:06 2002/-ko/Tlinux_2_4_20
-+/acpitable.h/1.1/Sun Dec 2 11:34:35 2001/-ko/Tlinux_2_4_20
-+/apic.c/1.21.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/apm.c/1.32.2.4/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/bluesmoke.c/1.10.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/cpuid.c/1.5/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/dmi_scan.c/1.9.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/entry.S/1.42.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/head.S/1.27.2.2/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/i386_ksyms.c/1.41.2.3/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
-+/i387.c/1.6.2.1/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
-+/i8259.c/1.19/Fri Oct 19 01:23:34 2001/-ko/Tlinux_2_4_20
-+/init_task.c/1.8/Fri Oct 19 01:23:34 2001/-ko/Tlinux_2_4_20
-+/io_apic.c/1.33.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/ioport.c/1.7/Sat Oct 9 00:00:52 1999/-ko/Tlinux_2_4_20
-+/irq.c/1.38.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/ldt.c/1.13/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/mca.c/1.16/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
-+/microcode.c/1.17.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/mpparse.c/1.13.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/msr.c/1.6/Tue Nov 6 00:54:54 2001/-ko/Tlinux_2_4_20
-+/mtrr.c/1.34.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/nmi.c/1.1.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.2.4.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/pci-i386.c/1.14.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/pci-i386.h/1.7.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/pci-irq.c/1.18.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/pci-pc.c/1.25.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/pci-visws.c/1.6.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/process.c/1.41.2.2/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.27.2.1/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.7.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.53.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/signal.c/1.26.2.2/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.35.2.5/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/smpboot.c/1.18.2.4/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/sys_i386.c/1.11/Thu Apr 5 04:56:08 2001/-ko/Tlinux_2_4_20
-+/time.c/1.20.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/trampoline.S/1.7.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.41.2.3/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/visws_apic.c/1.8/Fri Mar 9 20:33:43 2001/-ko/Tlinux_2_4_20
-+/vm86.c/1.16.2.2/Tue Sep 10 15:32:48 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Repository
---- linux-2.4.20/arch/i386/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Repository 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/kernel
-diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Root
---- linux-2.4.20/arch/i386/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Root 2005-01-06 22:59:22.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Tag
---- linux-2.4.20/arch/i386/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/CVS/Tag 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/kernel/.cvsignore
---- linux-2.4.20/arch/i386/kernel/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/kernel/.cvsignore 1998-03-17 16:06:51.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Entries
---- linux-2.4.20/arch/i386/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Entries 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.2/Tue Mar 17 22:06:58 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.16/Fri Oct 19 01:23:35 2001/-ko/Tlinux_2_4_20
-+/checksum.S/1.4.4.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/dec_and_lock.c/1.1/Sun Jul 9 02:54:55 2000/-ko/Tlinux_2_4_20
-+/delay.c/1.9/Sat Sep 22 12:49:09 2001/-ko/Tlinux_2_4_20
-+/getuser.S/1.1/Tue Mar 17 22:06:59 1998/-ko/Tlinux_2_4_20
-+/iodebug.c/1.1/Thu Jan 27 01:05:22 2000/-ko/Tlinux_2_4_20
-+/memcpy.c/1.1/Fri Aug 25 06:33:44 2000/-ko/Tlinux_2_4_20
-+/mmx.c/1.7.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/old-checksum.c/1.1/Mon Feb 15 02:16:31 1999/-ko/Tlinux_2_4_20
-+/strstr.c/1.1/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/usercopy.c/1.8/Sun Dec 2 11:34:35 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Repository
---- linux-2.4.20/arch/i386/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Repository 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/lib
-diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Root
---- linux-2.4.20/arch/i386/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Root 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Tag
---- linux-2.4.20/arch/i386/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/CVS/Tag 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/lib/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/lib/.cvsignore
---- linux-2.4.20/arch/i386/lib/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/lib/.cvsignore 1998-03-17 16:06:58.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Entries
---- linux-2.4.20/arch/i386/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Entries 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1,48 @@
-+/Makefile/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/README/1.4/Sat Jan 29 01:41:57 2000/-ko/Tlinux_2_4_20
-+/control_w.h/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/div_Xsig.S/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/div_small.S/1.2/Tue Mar 3 01:22:32 1998/-ko/Tlinux_2_4_20
-+/errors.c/1.4/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/exception.h/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/fpu_arith.c/1.2/Tue Mar 3 01:22:33 1998/-ko/Tlinux_2_4_20
-+/fpu_asm.h/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/fpu_aux.c/1.2/Tue Mar 3 01:22:33 1998/-ko/Tlinux_2_4_20
-+/fpu_emu.h/1.4/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/fpu_entry.c/1.10/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/fpu_etc.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/fpu_proto.h/1.3/Sun Dec 2 11:34:36 2001/-ko/Tlinux_2_4_20
-+/fpu_system.h/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/fpu_tags.c/1.1/Tue Mar 3 01:22:35 1998/-ko/Tlinux_2_4_20
-+/fpu_trig.c/1.5/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
-+/get_address.c/1.7/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/load_store.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/mul_Xsig.S/1.1.1.1/Sun Jun 1 03:16:33 1997/-ko/Tlinux_2_4_20
-+/poly.h/1.5/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
-+/poly_2xm1.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/poly_atan.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/poly_l2.c/1.3/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/poly_sin.c/1.4/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/poly_tan.c/1.5/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/polynom_Xsig.S/1.1.1.1/Sun Jun 1 03:16:33 1997/-ko/Tlinux_2_4_20
-+/reg_add_sub.c/1.2.8.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/reg_compare.c/1.3.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/reg_constant.c/1.2/Tue Mar 3 01:22:38 1998/-ko/Tlinux_2_4_20
-+/reg_constant.h/1.2/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/reg_convert.c/1.1/Tue Mar 3 01:22:38 1998/-ko/Tlinux_2_4_20
-+/reg_divide.c/1.2.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/reg_ld_str.c/1.4.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/reg_mul.c/1.4.2.1/Wed Jun 26 22:35:07 2002/-ko/Tlinux_2_4_20
-+/reg_norm.S/1.2/Tue Mar 3 01:22:40 1998/-ko/Tlinux_2_4_20
-+/reg_round.S/1.5/Wed Jun 13 17:27:39 2001/-ko/Tlinux_2_4_20
-+/reg_u_add.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
-+/reg_u_div.S/1.5/Thu Aug 23 22:24:22 2001/-ko/Tlinux_2_4_20
-+/reg_u_mul.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
-+/reg_u_sub.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
-+/round_Xsig.S/1.1.1.1/Sun Jun 1 03:16:33 1997/-ko/Tlinux_2_4_20
-+/shr_Xsig.S/1.1.1.1/Sun Jun 1 03:16:33 1997/-ko/Tlinux_2_4_20
-+/status_w.h/1.2/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
-+/version.h/1.3/Sat Jan 29 01:41:58 2000/-ko/Tlinux_2_4_20
-+/wm_shrx.S/1.2/Tue Mar 3 01:22:42 1998/-ko/Tlinux_2_4_20
-+/wm_sqrt.S/1.3/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Repository
---- linux-2.4.20/arch/i386/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Repository 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/math-emu
-diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Root
---- linux-2.4.20/arch/i386/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Root 2005-01-06 22:59:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Tag
---- linux-2.4.20/arch/i386/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/math-emu/CVS/Tag 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Entries
---- linux-2.4.20/arch/i386/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Entries 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:02 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/extable.c/1.4/Fri Oct 19 01:23:35 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.23.2.3/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/init.c/1.34.2.4/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.10.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/pageattr.c/1.1.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Repository
---- linux-2.4.20/arch/i386/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Repository 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/i386/mm
-diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Root
---- linux-2.4.20/arch/i386/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Root 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/i386/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Tag
---- linux-2.4.20/arch/i386/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/CVS/Tag 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/i386/mm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/i386/mm/.cvsignore
---- linux-2.4.20/arch/i386/mm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/i386/mm/.cvsignore 1998-03-17 16:07:02.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Entries
---- linux-2.4.20/arch/ia64/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Entries 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.4.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/bootloader.c/1.5/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
-+/bootloader.lds/1.2/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Repository
---- linux-2.4.20/arch/ia64/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Repository 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/boot
-diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Root
---- linux-2.4.20/arch/ia64/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Root 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Tag
---- linux-2.4.20/arch/ia64/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/boot/CVS/Tag 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Entries
---- linux-2.4.20/arch/ia64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,13 @@
-+/Makefile/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/config.in/1.22.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/defconfig/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/vmlinux.lds.S/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D/boot////
-+D/dig////
-+D/hp////
-+D/ia32////
-+D/kernel////
-+D/lib////
-+D/mm////
-+D/sn////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Repository
---- linux-2.4.20/arch/ia64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Repository 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64
-diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Root
---- linux-2.4.20/arch/ia64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Root 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Tag
---- linux-2.4.20/arch/ia64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/CVS/Tag 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Entries
---- linux-2.4.20/arch/ia64/dig/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Entries 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.4/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
-+/machvec.c/1.2/Mon Aug 28 22:00:12 2000/-ko/Tlinux_2_4_20
-+/setup.c/1.7.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Repository
---- linux-2.4.20/arch/ia64/dig/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Repository 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/dig
-diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Root
---- linux-2.4.20/arch/ia64/dig/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Root 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/dig/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Tag
---- linux-2.4.20/arch/ia64/dig/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/dig/CVS/Tag 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Entries
---- linux-2.4.20/arch/ia64/hp/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Entries 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/sba_iommu.c/1.6.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Repository
---- linux-2.4.20/arch/ia64/hp/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Repository 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/hp/common
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Root
---- linux-2.4.20/arch/ia64/hp/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Root 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Tag
---- linux-2.4.20/arch/ia64/hp/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/common/CVS/Tag 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Entries
---- linux-2.4.20/arch/ia64/hp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D/common////
-+D/sim////
-+D/zx1////
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Repository
---- linux-2.4.20/arch/ia64/hp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Repository 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/hp
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Root
---- linux-2.4.20/arch/ia64/hp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Root 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Tag
---- linux-2.4.20/arch/ia64/hp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/CVS/Tag 2005-01-06 22:59:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Entries
---- linux-2.4.20/arch/ia64/hp/sim/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpsim_console.c/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpsim_irq.c/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpsim_machvec.c/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpsim_setup.c/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpsim_ssc.h/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Repository
---- linux-2.4.20/arch/ia64/hp/sim/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Repository 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/hp/sim
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Root
---- linux-2.4.20/arch/ia64/hp/sim/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Root 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/sim/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Tag
---- linux-2.4.20/arch/ia64/hp/sim/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/sim/CVS/Tag 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Entries
---- linux-2.4.20/arch/ia64/hp/zx1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Entries 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.3.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpzx1_machvec.c/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/hpzx1_misc.c/1.6.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Repository
---- linux-2.4.20/arch/ia64/hp/zx1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Repository 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/hp/zx1
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Root
---- linux-2.4.20/arch/ia64/hp/zx1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Root 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/hp/zx1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Tag
---- linux-2.4.20/arch/ia64/hp/zx1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/hp/zx1/CVS/Tag 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Entries
---- linux-2.4.20/arch/ia64/ia32/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Entries 2005-01-06 22:59:29.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.7/Fri Aug 24 03:38:30 2001/-ko/Tlinux_2_4_20
-+/binfmt_elf32.c/1.13.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/ia32_entry.S/1.12.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/ia32_ioctl.c/1.3.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/ia32_ldt.c/1.2/Sun Dec 2 11:34:36 2001/-ko/Tlinux_2_4_20
-+/ia32_signal.c/1.7.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/ia32_support.c/1.6.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/ia32_traps.c/1.4.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/sys_ia32.c/1.22.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Repository
---- linux-2.4.20/arch/ia64/ia32/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Repository 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/ia32
-diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Root
---- linux-2.4.20/arch/ia64/ia32/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Root 2005-01-06 22:59:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/ia32/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Tag
---- linux-2.4.20/arch/ia64/ia32/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/ia32/CVS/Tag 2005-01-06 22:59:29.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Entries
---- linux-2.4.20/arch/ia64/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Entries 2005-01-06 22:59:34.000000000 -0600
-@@ -0,0 +1,47 @@
-+/Makefile/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/acpi.c/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/brl_emu.c/1.2.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/efi.c/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/efi_stub.S/1.5.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/efivars.c/1.3.2.3/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/entry.S/1.15.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/entry.h/1.5/Sun Dec 2 11:34:36 2001/-ko/Tlinux_2_4_20
-+/fw-emu.c/1.9.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/gate.S/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/head.S/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/ia64_ksyms.c/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/init_task.c/1.2/Fri Oct 19 01:23:35 2001/-ko/Tlinux_2_4_20
-+/iosapic.c/1.4.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/irq.c/1.15.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/irq_ia64.c/1.10.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/irq_lsapic.c/1.1/Fri Aug 24 03:38:31 2001/-ko/Tlinux_2_4_20
-+/ivt.S/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/machvec.c/1.3/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
-+/mca.c/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/mca_asm.S/1.9.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/minstate.h/1.6.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/pal.S/1.8.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/palinfo.c/1.6.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/pci.c/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/perfmon.c/1.8.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/perfmon_generic.h/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/perfmon_itanium.h/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/perfmon_mckinley.h/1.2.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/process.c/1.13.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/ptrace.c/1.13.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/sal.c/1.6.2.1/Wed Jun 26 22:35:08 2002/-ko/Tlinux_2_4_20
-+/salinfo.c/1.1.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/semaphore.c/1.7/Wed Jun 13 17:27:40 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/sigframe.h/1.2/Sun Dec 2 11:34:36 2001/-ko/Tlinux_2_4_20
-+/signal.c/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/smp.c/1.13.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/smpboot.c/1.5.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/sys_ia64.c/1.12.2.1/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/time.c/1.12.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/traps.c/1.11.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/unaligned.c/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/unwind.c/1.10.2.2/Sat Jan 11 17:53:09 2003/-ko/Tlinux_2_4_20
-+/unwind_decoder.c/1.1/Sun Jun 25 01:20:03 2000/-ko/Tlinux_2_4_20
-+/unwind_i.h/1.3.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Repository
---- linux-2.4.20/arch/ia64/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Repository 2005-01-06 22:59:29.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/kernel
-diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Root
---- linux-2.4.20/arch/ia64/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Root 2005-01-06 22:59:29.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Tag
---- linux-2.4.20/arch/ia64/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/kernel/CVS/Tag 2005-01-06 22:59:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Entries
---- linux-2.4.20/arch/ia64/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Entries 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1,23 @@
-+/Makefile/1.9.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/checksum.c/1.2.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/clear_page.S/1.5.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/clear_user.S/1.6/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/copy_page.S/1.6.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/copy_page_mck.S/1.1.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/copy_user.S/1.11.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/csum_partial_copy.c/1.3/Fri Aug 24 03:38:32 2001/-ko/Tlinux_2_4_20
-+/do_csum.S/1.5.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/flush.S/1.4/Wed Jun 13 17:27:41 2001/-ko/Tlinux_2_4_20
-+/idiv32.S/1.2/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/idiv64.S/1.3/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/io.c/1.3/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
-+/ip_fast_csum.S/1.1.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/memcpy.S/1.5/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/memcpy_mck.S/1.1.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/memset.S/1.4.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/strlen.S/1.6/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/strlen_user.S/1.5/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/strncpy_from_user.S/1.5/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/strnlen_user.S/1.4/Sun Dec 2 11:34:37 2001/-ko/Tlinux_2_4_20
-+/swiotlb.c/1.4.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Repository
---- linux-2.4.20/arch/ia64/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Repository 2005-01-06 22:59:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/lib
-diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Root
---- linux-2.4.20/arch/ia64/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Root 2005-01-06 22:59:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Tag
---- linux-2.4.20/arch/ia64/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/lib/CVS/Tag 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Entries
---- linux-2.4.20/arch/ia64/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Entries 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.2/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.3.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.7.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/init.c/1.14.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/tlb.c/1.10.2.1/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Repository
---- linux-2.4.20/arch/ia64/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Repository 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/mm
-diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Root
---- linux-2.4.20/arch/ia64/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Root 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Tag
---- linux-2.4.20/arch/ia64/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/mm/CVS/Tag 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/configs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,2 @@
-+D/sn1////
-+D/sn2////
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/configs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Repository 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/configs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Root
---- linux-2.4.20/arch/ia64/sn/configs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Root 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/configs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/CVS/Tag 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Entries 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1,13 @@
-+/defconfig-bigsur-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-bigsur-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-dig-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-dig-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-generic-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-generic-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-hp-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-prom-medusa/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn1-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn1-mp-modules/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn1-mp-syn1-0/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn1-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Repository 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/configs/sn1
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Root
---- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Root 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/configs/sn1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn1/CVS/Tag 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Entries 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1,8 @@
-+/defconfig-dig-numa/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn2-dig-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn2-dig-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn2-mp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn2-mp-modules/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn2-prom-medusa/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/defconfig-sn2-sp/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Repository 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/configs/sn2
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Root
---- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Root 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/configs/sn2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/configs/sn2/CVS/Tag 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,5 @@
-+D/configs////
-+D/fakeprom////
-+D/io////
-+D/kernel////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Repository 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Root
---- linux-2.4.20/arch/ia64/sn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Root 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/CVS/Tag 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Entries 2005-01-06 22:59:36.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/README/1.1.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/fpmem.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/fpmem.h/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/fprom.lds/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/fpromasm.S/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/fw-emu.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/klgraph_init.c/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/main.c/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+/runsim/1.1.2.1/Wed Jun 26 22:35:09 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Repository 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/fakeprom
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Root
---- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Root 2005-01-06 22:59:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/fakeprom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/fakeprom/CVS/Tag 2005-01-06 22:59:36.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/io/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,36 @@
-+/Makefile/1.2.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/alenlist.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/ate_utils.c/1.1.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/cdl.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/eeprom.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/efi-rtc.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/hcl.c/1.2.2.2/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/hcl_util.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/hubdev.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/hubspc.c/1.2.2.2/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/ifconfig_net.c/1.1.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/invent.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/io.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/klconflib.c/1.3.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/klgraph.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/klgraph_hack.c/1.3.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/l1.c/1.4.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/l1_command.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/labelcl.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/ml_SN_init.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/ml_iograph.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/module.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/pci_bus_cvlink.c/1.2.2.1/Wed Jun 26 22:35:10 2002/-ko/Tlinux_2_4_20
-+/pci_dma.c/1.3.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/pciba.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pciio.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/sgi_if.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/sgi_io_init.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/sgi_io_sim.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/stubs.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/xbow.c/1.3.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/xswitch.c/1.2.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/xtalk.c/1.3.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+D/sn1////
-+D/sn2////
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/io/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Repository 2005-01-06 22:59:36.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/io
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Root
---- linux-2.4.20/arch/ia64/sn/io/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Root 2005-01-06 22:59:36.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/io/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/CVS/Tag 2005-01-06 22:59:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Entries 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1,8 @@
-+/hub_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/hubcounters.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/huberror.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/ip37.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/mem_refcnt.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/ml_SN_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Repository 2005-01-06 22:59:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/io/sn1
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Root
---- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Root 2005-01-06 22:59:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/io/sn1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn1/CVS/Tag 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,5 @@
-+/bte_error.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/ml_SN_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/shub_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/shuberror.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+D/pcibr////
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Repository 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/io/sn2
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Root
---- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Root 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/io/sn2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/CVS/Tag 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Entries 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1,10 @@
-+/pcibr_ate.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_config.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_dvr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_error.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_hints.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_idbg.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_intr.c/1.1.2.1/Wed Jun 26 22:35:11 2002/-ko/Tlinux_2_4_20
-+/pcibr_rrb.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/pcibr_slot.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Repository 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/io/sn2/pcibr
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Root
---- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Root 2005-01-06 22:59:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/io/sn2/pcibr/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/io/sn2/pcibr/CVS/Tag 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Entries 2005-01-06 23:08:24.000000000 -0600
-@@ -0,0 +1,16 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/bte.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/iomv.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/llsc4.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/llsc4.h/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/machvec.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/mca.c/1.1.2.1/Wed Jun 26 22:35:15 2002/-ko/Tlinux_2_4_20
-+/misctest.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/probe.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/sn_asm.S/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/sn_ksyms.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/sv.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+D/sn1////
-+D/sn2////
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Repository 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/kernel
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Root
---- linux-2.4.20/arch/ia64/sn/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Root 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/CVS/Tag 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Entries 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/cache.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/error.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/iomv.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/sn1_smp.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/synergy.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Repository 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/kernel/sn1
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Root
---- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Root 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/kernel/sn1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn1/CVS/Tag 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Entries 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/cache.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/iomv.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/sn2_smp.c/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Repository 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/kernel/sn2
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Root
---- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Root 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/kernel/sn2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/kernel/sn2/CVS/Tag 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Entries
---- linux-2.4.20/arch/ia64/sn/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Entries 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+/make_textsym/1.1.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Repository
---- linux-2.4.20/arch/ia64/sn/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Repository 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/sn/tools
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Root
---- linux-2.4.20/arch/ia64/sn/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Root 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/sn/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Tag
---- linux-2.4.20/arch/ia64/sn/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/sn/tools/CVS/Tag 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Entries
---- linux-2.4.20/arch/ia64/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Entries 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.6.4.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/print_offsets.awk/1.3/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
-+/print_offsets.c/1.9.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Repository
---- linux-2.4.20/arch/ia64/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Repository 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ia64/tools
-diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Root
---- linux-2.4.20/arch/ia64/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Root 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ia64/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Tag
---- linux-2.4.20/arch/ia64/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ia64/tools/CVS/Tag 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Entries
---- linux-2.4.20/arch/m68k/amiga/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Entries 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.4/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/amiga_ksyms.c/1.9/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/amiints.c/1.9/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/amisound.c/1.8/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
-+/chipram.c/1.6/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/cia.c/1.5/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
-+/config.c/1.17.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/pcmcia.c/1.3/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Repository
---- linux-2.4.20/arch/m68k/amiga/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Repository 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/amiga
-diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Root
---- linux-2.4.20/arch/m68k/amiga/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Root 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/amiga/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Tag
---- linux-2.4.20/arch/m68k/amiga/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/amiga/CVS/Tag 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Entries
---- linux-2.4.20/arch/m68k/apollo/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Entries 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.3/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/config.c/1.5.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/dma.c/1.1/Fri Feb 18 00:24:29 2000/-ko/Tlinux_2_4_20
-+/dn_debug.c/1.2/Sat Oct 9 00:00:54 1999/-ko/Tlinux_2_4_20
-+/dn_ints.c/1.5.2.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Repository
---- linux-2.4.20/arch/m68k/apollo/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Repository 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/apollo
-diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Root
---- linux-2.4.20/arch/m68k/apollo/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Root 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/apollo/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Tag
---- linux-2.4.20/arch/m68k/apollo/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/apollo/CVS/Tag 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Entries
---- linux-2.4.20/arch/m68k/atari/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Entries 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1,14 @@
-+/Makefile/1.4.2.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/ataints.c/1.7.4.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/atakeyb.c/1.12/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/atari_ksyms.c/1.5/Thu May 7 02:57:13 1998/-ko/Tlinux_2_4_20
-+/atasound.c/1.4/Sat Sep 19 19:16:02 1998/-ko/Tlinux_2_4_20
-+/atasound.h/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/config.c/1.8.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/debug.c/1.5/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
-+/hades-pci.c/1.2/Fri Mar 9 20:33:44 2001/-ko/Tlinux_2_4_20
-+/joystick.c/1.9/Sat Jul 15 03:32:23 2000/-ko/Tlinux_2_4_20
-+/stdma.c/1.4/Sat Oct 9 00:00:55 1999/-ko/Tlinux_2_4_20
-+/stram.c/1.15.2.1/Wed Jun 26 22:35:16 2002/-ko/Tlinux_2_4_20
-+/time.c/1.6.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Repository
---- linux-2.4.20/arch/m68k/atari/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Repository 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/atari
-diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Root
---- linux-2.4.20/arch/m68k/atari/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Root 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/atari/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Tag
---- linux-2.4.20/arch/m68k/atari/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/atari/CVS/Tag 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Entries
---- linux-2.4.20/arch/m68k/bvme6000/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Entries 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.2/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/bvmeints.c/1.2/Mon Feb 15 02:16:37 1999/-ko/Tlinux_2_4_20
-+/config.c/1.7.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/rtc.c/1.8.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Repository
---- linux-2.4.20/arch/m68k/bvme6000/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Repository 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/bvme6000
-diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Root
---- linux-2.4.20/arch/m68k/bvme6000/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Root 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/bvme6000/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Tag
---- linux-2.4.20/arch/m68k/bvme6000/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/bvme6000/CVS/Tag 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Entries
---- linux-2.4.20/arch/m68k/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Entries 2005-01-06 23:08:22.000000000 -0600
-@@ -0,0 +1,23 @@
-+/Makefile/1.10/Wed Aug 22 03:23:56 2001/-ko/Tlinux_2_4_20
-+/config.in/1.35.2.2/Wed Sep 11 12:44:26 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.16/Mon Jun 19 22:45:39 2000/-ko/Tlinux_2_4_20
-+/vmlinux-sun3.lds/1.2.2.1/Tue Feb 26 05:59:01 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.5.2.1/Tue Feb 26 05:59:01 2002/-ko/Tlinux_2_4_20
-+D/amiga////
-+D/apollo////
-+D/atari////
-+D/bvme6000////
-+D/fpsp040////
-+D/hp300////
-+D/ifpsp060////
-+D/kernel////
-+D/lib////
-+D/mac////
-+D/math-emu////
-+D/mm////
-+D/mvme147////
-+D/mvme16x////
-+D/q40////
-+D/sun3////
-+D/sun3x////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Repository
---- linux-2.4.20/arch/m68k/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Repository 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k
-diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Root
---- linux-2.4.20/arch/m68k/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Root 2005-01-06 22:59:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Tag
---- linux-2.4.20/arch/m68k/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/CVS/Tag 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Entries
---- linux-2.4.20/arch/m68k/fpsp040/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Entries 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1,45 @@
-+/Makefile/1.3/Wed Apr 19 04:00:05 2000/-ko/Tlinux_2_4_20
-+/README/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/bindec.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/binstr.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/bugfix.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/decbin.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/do_func.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/fpsp.h/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/gen_except.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/get_op.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/kernel_ex.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/res_func.S/1.2/Tue Aug 25 09:14:16 1998/-ko/Tlinux_2_4_20
-+/round.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/sacos.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/sasin.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/satan.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/satanh.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/scale.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/scosh.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/setox.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/sgetem.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/sint.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/skeleton.S/1.4/Mon Feb 15 02:16:38 1999/-ko/Tlinux_2_4_20
-+/slog2.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/slogn.S/1.2/Tue Aug 25 09:14:17 1998/-ko/Tlinux_2_4_20
-+/smovecr.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/srem_mod.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/ssin.S/1.2/Tue Aug 25 09:14:17 1998/-ko/Tlinux_2_4_20
-+/ssinh.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/stan.S/1.2/Tue Aug 25 09:14:18 1998/-ko/Tlinux_2_4_20
-+/stanh.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/sto_res.S/1.2/Tue Aug 25 09:14:18 1998/-ko/Tlinux_2_4_20
-+/stwotox.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/tbldo.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/util.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/x_bsun.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/x_fline.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/x_operr.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+/x_ovfl.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/x_snan.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/x_store.S/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/x_unfl.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/x_unimp.S/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/x_unsupp.S/1.1.1.1/Sun Jun 1 03:16:35 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Repository
---- linux-2.4.20/arch/m68k/fpsp040/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Repository 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/fpsp040
-diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Root
---- linux-2.4.20/arch/m68k/fpsp040/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Root 2005-01-06 22:59:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/fpsp040/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Tag
---- linux-2.4.20/arch/m68k/fpsp040/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/fpsp040/CVS/Tag 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Entries
---- linux-2.4.20/arch/m68k/hp300/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Entries 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.3/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/README.hp300/1.1/Tue Aug 25 09:14:19 1998/-ko/Tlinux_2_4_20
-+/config.c/1.4.4.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/hil.c/1.4.4.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/hp300map.map/1.1/Sat Sep 19 19:16:06 1998/-ko/Tlinux_2_4_20
-+/ints.c/1.3.4.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/ints.h/1.2/Sat Sep 19 19:16:06 1998/-ko/Tlinux_2_4_20
-+/ksyms.c/1.1/Tue Aug 25 09:14:20 1998/-ko/Tlinux_2_4_20
-+/reboot.S/1.1/Tue Aug 25 09:14:20 1998/-ko/Tlinux_2_4_20
-+/time.c/1.3.4.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/time.h/1.1/Tue Aug 25 09:14:21 1998/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Repository
---- linux-2.4.20/arch/m68k/hp300/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Repository 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/hp300
-diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Root
---- linux-2.4.20/arch/m68k/hp300/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Root 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/hp300/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Tag
---- linux-2.4.20/arch/m68k/hp300/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/hp300/CVS/Tag 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Entries
---- linux-2.4.20/arch/m68k/ifpsp060/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Entries 2005-01-06 23:08:22.000000000 -0600
-@@ -0,0 +1,20 @@
-+/CHANGES/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/MISC/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Apr 19 04:00:05 2000/-ko/Tlinux_2_4_20
-+/README/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/TEST.DOC/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/fplsp.doc/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/fplsp.sa/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/fpsp.doc/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/fpsp.sa/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/fskeleton.S/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/ftest.sa/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/ilsp.doc/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/ilsp.sa/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/iskeleton.S/1.6/Mon Feb 15 02:16:40 1999/-ko/Tlinux_2_4_20
-+/isp.doc/1.1.1.1/Sun Jun 1 03:16:36 1997/-ko/Tlinux_2_4_20
-+/isp.sa/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/itest.sa/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/os.S/1.3/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/pfpsp.sa/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+D/src////
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Repository
---- linux-2.4.20/arch/m68k/ifpsp060/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Repository 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/ifpsp060
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Root
---- linux-2.4.20/arch/m68k/ifpsp060/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Root 2005-01-06 22:59:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Tag
---- linux-2.4.20/arch/m68k/ifpsp060/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/CVS/Tag 2005-01-06 22:59:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Entries
---- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Entries 2005-01-06 22:59:55.000000000 -0600
-@@ -0,0 +1,9 @@
-+/README-SRC/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/fplsp.S/1.2/Fri Mar 9 20:33:44 2001/-ko/Tlinux_2_4_20
-+/fpsp.S/1.4/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
-+/ftest.S/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/ilsp.S/1.2/Thu Apr 5 04:56:09 2001/-ko/Tlinux_2_4_20
-+/isp.S/1.3/Thu Apr 5 04:56:09 2001/-ko/Tlinux_2_4_20
-+/itest.S/1.1/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/pfpsp.S/1.4/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Repository
---- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Repository 2005-01-06 22:59:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/ifpsp060/src
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Root
---- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Root 2005-01-06 22:59:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Tag
---- linux-2.4.20/arch/m68k/ifpsp060/src/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/ifpsp060/src/CVS/Tag 2005-01-06 22:59:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Entries
---- linux-2.4.20/arch/m68k/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Entries 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1,18 @@
-+/Makefile/1.10/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/bios32.c/1.9/Thu Apr 5 04:56:09 2001/-ko/Tlinux_2_4_20
-+/entry.S/1.19.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/head.S/1.10.2.1/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/ints.c/1.9/Thu Apr 5 04:56:09 2001/-ko/Tlinux_2_4_20
-+/m68k_defs.c/1.4/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/m68k_defs.head/1.1/Sun Apr 5 11:23:46 1998/-ko/Tlinux_2_4_20
-+/m68k_ksyms.c/1.15/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
-+/process.c/1.16.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.16.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.6/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.16.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.15.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/sun3-head.S/1.3.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/sys_m68k.c/1.13/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+/time.c/1.7/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
-+/traps.c/1.10.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Repository
---- linux-2.4.20/arch/m68k/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Repository 2005-01-06 22:59:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/kernel
-diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Root
---- linux-2.4.20/arch/m68k/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Root 2005-01-06 22:59:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Tag
---- linux-2.4.20/arch/m68k/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/kernel/CVS/Tag 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Entries
---- linux-2.4.20/arch/m68k/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Entries 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.7/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
-+/ashldi3.c/1.1/Thu Jan 11 04:02:42 2001/-ko/Tlinux_2_4_20
-+/ashrdi3.c/1.1.1.1/Sun Jun 1 03:16:34 1997/-ko/Tlinux_2_4_20
-+/checksum.c/1.2/Sat Sep 19 19:16:09 1998/-ko/Tlinux_2_4_20
-+/lshrdi3.c/1.1/Fri Feb 18 00:24:29 2000/-ko/Tlinux_2_4_20
-+/memcmp.c/1.1.1.1/Sun Jun 1 03:16:34 1997/-ko/Tlinux_2_4_20
-+/memcpy.c/1.1.1.1/Sun Jun 1 03:16:34 1997/-ko/Tlinux_2_4_20
-+/memset.c/1.1.1.1/Sun Jun 1 03:16:34 1997/-ko/Tlinux_2_4_20
-+/muldi3.c/1.1/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/semaphore.S/1.4/Thu Jun 14 04:23:47 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Repository
---- linux-2.4.20/arch/m68k/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Repository 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/lib
-diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Root
---- linux-2.4.20/arch/m68k/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Root 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Tag
---- linux-2.4.20/arch/m68k/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/lib/CVS/Tag 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Entries
---- linux-2.4.20/arch/m68k/mac/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Entries 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1,15 @@
-+/Makefile/1.5/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/baboon.c/1.2/Wed Jan 10 05:27:27 2001/-ko/Tlinux_2_4_20
-+/bootparse.c/1.2/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/config.c/1.9.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/debug.c/1.8.2.2/Wed Sep 11 12:44:27 2002/-ko/Tlinux_2_4_20
-+/iop.c/1.5/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+/mac_ksyms.c/1.3/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/mac_penguin.S/1.1/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/macboing.c/1.5/Sat Jul 15 03:32:23 2000/-ko/Tlinux_2_4_20
-+/macints.c/1.9.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.4.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/oss.c/1.4/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/psc.c/1.5/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+/via.c/1.4/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Repository
---- linux-2.4.20/arch/m68k/mac/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Repository 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/mac
-diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Root
---- linux-2.4.20/arch/m68k/mac/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Root 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/mac/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Tag
---- linux-2.4.20/arch/m68k/mac/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mac/CVS/Tag 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Entries
---- linux-2.4.20/arch/m68k/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,16 @@
-+/Makefile/1.4/Wed Jan 10 17:17:54 2001/-ko/Tlinux_2_4_20
-+/fp_arith.c/1.1/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/fp_arith.h/1.1/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/fp_cond.S/1.2/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/fp_decode.h/1.2/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/fp_emu.h/1.3.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/fp_entry.S/1.3/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/fp_log.c/1.1/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/fp_move.S/1.2/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/fp_movem.S/1.2/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/fp_scan.S/1.2/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/fp_trig.c/1.1/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/fp_trig.h/1.1/Sat Oct 9 00:00:56 1999/-ko/Tlinux_2_4_20
-+/fp_util.S/1.3/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/multi_arith.h/1.2.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Repository
---- linux-2.4.20/arch/m68k/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Repository 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/math-emu
-diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Root
---- linux-2.4.20/arch/m68k/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Root 2005-01-06 22:59:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Tag
---- linux-2.4.20/arch/m68k/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/math-emu/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Entries
---- linux-2.4.20/arch/m68k/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.5/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.1.1.1/Sun Jun 1 03:16:33 1997/-ko/Tlinux_2_4_20
-+/fault.c/1.10.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/hwtest.c/1.1/Tue Aug 25 09:14:30 1998/-ko/Tlinux_2_4_20
-+/init.c/1.16/Fri Oct 19 01:23:36 2001/-ko/Tlinux_2_4_20
-+/kmap.c/1.9/Fri Mar 9 20:33:45 2001/-ko/Tlinux_2_4_20
-+/memory.c/1.15.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/motorola.c/1.5/Wed Jun 13 17:27:42 2001/-ko/Tlinux_2_4_20
-+/sun3mmu.c/1.4/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Repository
---- linux-2.4.20/arch/m68k/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/mm
-diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Root
---- linux-2.4.20/arch/m68k/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Tag
---- linux-2.4.20/arch/m68k/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mm/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Entries
---- linux-2.4.20/arch/m68k/mvme147/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,4 @@
-+/147ints.c/1.1/Sun Jun 13 16:30:26 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
-+/config.c/1.7.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Repository
---- linux-2.4.20/arch/m68k/mvme147/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/mvme147
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Root
---- linux-2.4.20/arch/m68k/mvme147/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme147/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Tag
---- linux-2.4.20/arch/m68k/mvme147/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme147/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Entries
---- linux-2.4.20/arch/m68k/mvme16x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,6 @@
-+/16xints.c/1.3/Mon Feb 15 02:16:49 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
-+/config.c/1.7.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/mvme16x_ksyms.c/1.1/Fri Feb 18 00:24:30 2000/-ko/Tlinux_2_4_20
-+/rtc.c/1.8/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Repository
---- linux-2.4.20/arch/m68k/mvme16x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/mvme16x
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Root
---- linux-2.4.20/arch/m68k/mvme16x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/mvme16x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Tag
---- linux-2.4.20/arch/m68k/mvme16x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/mvme16x/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Entries
---- linux-2.4.20/arch/m68k/q40/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.2/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
-+/README/1.5/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+/config.c/1.8.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/q40ints.c/1.4.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Repository
---- linux-2.4.20/arch/m68k/q40/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/q40
-diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Root
---- linux-2.4.20/arch/m68k/q40/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/q40/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Tag
---- linux-2.4.20/arch/m68k/q40/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/q40/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Entries
---- linux-2.4.20/arch/m68k/sun3/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Entries 2005-01-06 23:08:22.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.6/Wed Aug 22 03:23:57 2001/-ko/Tlinux_2_4_20
-+/config.c/1.4.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/dvma.c/1.3/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
-+/idprom.c/1.1/Sat Oct 9 00:00:57 1999/-ko/Tlinux_2_4_20
-+/intersil.c/1.2.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/leds.c/1.1/Sat Oct 9 00:00:57 1999/-ko/Tlinux_2_4_20
-+/mmu_emu.c/1.4.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/sbus.c/1.2.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/sun3_ksyms.c/1.2/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
-+/sun3dvma.c/1.1.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+/sun3ints.c/1.4.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+D/prom////
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Repository
---- linux-2.4.20/arch/m68k/sun3/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/sun3
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Root
---- linux-2.4.20/arch/m68k/sun3/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Tag
---- linux-2.4.20/arch/m68k/sun3/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Entries
---- linux-2.4.20/arch/m68k/sun3/prom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.2/Sat Feb 5 06:47:08 2000/-ko/Tlinux_2_4_20
-+/console.c/1.2/Fri Feb 4 07:40:23 2000/-ko/Tlinux_2_4_20
-+/init.c/1.1/Sat Oct 9 00:00:57 1999/-ko/Tlinux_2_4_20
-+/misc.c/1.2/Fri Feb 4 07:40:23 2000/-ko/Tlinux_2_4_20
-+/printf.c/1.1/Sat Oct 9 00:00:57 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Repository
---- linux-2.4.20/arch/m68k/sun3/prom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/sun3/prom
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Root
---- linux-2.4.20/arch/m68k/sun3/prom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Tag
---- linux-2.4.20/arch/m68k/sun3/prom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3/prom/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Entries
---- linux-2.4.20/arch/m68k/sun3x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,8 @@
-+/Makefile/1.3/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
-+/config.c/1.3.2.1/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/dvma.c/1.2/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/sun3x_ksyms.c/1.1/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
-+/time.c/1.4.2.2/Wed Sep 11 12:44:28 2002/-ko/Tlinux_2_4_20
-+/time.h/1.2.2.1/Wed Jun 26 22:35:17 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Repository
---- linux-2.4.20/arch/m68k/sun3x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/sun3x
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Root
---- linux-2.4.20/arch/m68k/sun3x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/sun3x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Tag
---- linux-2.4.20/arch/m68k/sun3x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/sun3x/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Entries
---- linux-2.4.20/arch/m68k/tools/amiga/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Entries 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.1.1.1/Sun Jun 1 03:16:37 1997/-ko/Tlinux_2_4_20
-+/dmesg.c/1.2/Sat Oct 9 00:00:57 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Repository
---- linux-2.4.20/arch/m68k/tools/amiga/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/tools/amiga
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Root
---- linux-2.4.20/arch/m68k/tools/amiga/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/amiga/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Tag
---- linux-2.4.20/arch/m68k/tools/amiga/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/amiga/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Entries
---- linux-2.4.20/arch/m68k/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Entries 2005-01-06 23:08:22.000000000 -0600
-@@ -0,0 +1 @@
-+D/amiga////
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Repository
---- linux-2.4.20/arch/m68k/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Repository 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/m68k/tools
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Root
---- linux-2.4.20/arch/m68k/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Root 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/m68k/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Tag
---- linux-2.4.20/arch/m68k/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/m68k/tools/CVS/Tag 2005-01-06 22:59:58.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/algor/README linux-2.4.20-mipscvs-20050106/arch/mips/algor/README
---- linux-2.4.20/arch/mips/algor/README 1999-06-25 19:40:12.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/algor/README 1969-12-31 18:00:00.000000000 -0600
-@@ -1,5 +0,0 @@
--The code for the Algorithmics P4032 evaluation board is currently under
--development. I'll release it when it's up to the same strength as
--the other ports.
--
-- Ralf
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/arc_con.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/arc_con.c
---- linux-2.4.20/arch/mips/arc/arc_con.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/arc_con.c 2002-12-19 08:02:56.000000000 -0600
-@@ -32,19 +32,16 @@
-
- static int __init prom_console_setup(struct console *co, char *options)
- {
-- if (prom_flags & PROM_FLAG_USE_AS_CONSOLE)
-- return 0;
-- else
-- return 1;
-+ return !(prom_flags & PROM_FLAG_USE_AS_CONSOLE);
- }
-
- static struct console arc_cons = {
-- name: "ttyS",
-- write: prom_console_write,
-- device: prom_console_device,
-- setup: prom_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "arc",
-+ .write = prom_console_write,
-+ .device = prom_console_device,
-+ .setup = prom_console_setup,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/console.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/console.c
---- linux-2.4.20/arch/mips/arc/console.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/console.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,63 +0,0 @@
--/*
-- * This file is subject to the terms and conditions of the GNU General Public
-- * License. See the file "COPYING" in the main directory of this archive
-- * for more details.
-- *
-- * Copyright (C) 1996 David S. Miller (dm@sgi.com)
-- * Compability with board caches, Ulf Carlsson
-- */
--#include <linux/kernel.h>
--#include <asm/sgialib.h>
--#include <asm/bcache.h>
--
--/*
-- * IP22 boardcache is not compatible with board caches. Thus we disable it
-- * during romvec action. Since r4xx0.c is always compiled and linked with your
-- * kernel, this shouldn't cause any harm regardless what MIPS processor you
-- * have.
-- *
-- * The ARC write and read functions seem to interfere with the serial lines
-- * in some way. You should be careful with them.
-- */
--
--void prom_putchar(char c)
--{
-- ULONG cnt;
-- CHAR it = c;
--
-- bc_disable();
-- ArcWrite(1, &it, 1, &cnt);
-- bc_enable();
--}
--
--char prom_getchar(void)
--{
-- ULONG cnt;
-- CHAR c;
--
-- bc_disable();
-- ArcRead(0, &c, 1, &cnt);
-- bc_enable();
--
-- return c;
--}
--
--void prom_printf(char *fmt, ...)
--{
-- va_list args;
-- char ppbuf[1024];
-- char *bptr;
--
-- va_start(args, fmt);
-- vsprintf(ppbuf, fmt, args);
--
-- bptr = ppbuf;
--
-- while (*bptr != 0) {
-- if (*bptr == '\n')
-- prom_putchar('\r');
--
-- prom_putchar(*bptr++);
-- }
-- va_end(args);
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Entries
---- linux-2.4.20/arch/mips/arc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Entries 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Mon Dec 6 23:13:20 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5.2.2/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
-+/arc_con.c/1.1.4.6/Thu Dec 19 14:02:56 2002/-ko/Tlinux_2_4_20
-+/cmdline.c/1.5.2.3/Mon Aug 5 23:53:30 2002/-ko/Tlinux_2_4_20
-+/env.c/1.4.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
-+/file.c/1.3.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
-+/identify.c/1.5.2.7/Tue Jan 28 11:55:51 2003/-ko/Tlinux_2_4_20
-+/init.c/1.10.2.3/Thu Aug 1 22:26:40 2002/-ko/Tlinux_2_4_20
-+/memory.c/1.22.2.2/Thu Aug 1 22:26:40 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.6.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
-+/promlib.c/1.1.2.1/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
-+/salone.c/1.3.2.1/Thu Aug 1 22:26:40 2002/-ko/Tlinux_2_4_20
-+/time.c/1.3.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
-+/tree.c/1.3.2.1/Thu Jan 24 23:14:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Repository
---- linux-2.4.20/arch/mips/arc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Repository 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/arc
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Root
---- linux-2.4.20/arch/mips/arc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Root 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Tag
---- linux-2.4.20/arch/mips/arc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/CVS/Tag 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/arc/.cvsignore
---- linux-2.4.20/arch/mips/arc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/.cvsignore 1999-12-06 17:13:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/identify.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/identify.c
---- linux-2.4.20/arch/mips/arc/identify.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/identify.c 2003-01-28 05:55:51.000000000 -0600
-@@ -32,7 +32,7 @@
- { "SGI-IP22",
- "SGI Indy",
- MACH_GROUP_SGI,
-- MACH_SGI_INDY,
-+ MACH_SGI_IP22,
- PROM_FLAG_ARCS
- }, { "SGI-IP27",
- "SGI Origin",
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/arc/Makefile
---- linux-2.4.20/arch/mips/arc/Makefile 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/Makefile 2002-09-28 17:28:38.000000000 -0500
-@@ -4,10 +4,11 @@
-
- L_TARGET = arclib.a
-
--obj-y += cmdline.o console.o env.o file.o \
-- identify.o init.o misc.o time.o tree.o
-+obj-y += cmdline.o env.o file.o identify.o init.o \
-+ misc.o time.o tree.o
-
- obj-$(CONFIG_ARC_MEMORY) += memory.o
- obj-$(CONFIG_ARC_CONSOLE) += arc_con.o
-+obj-$(CONFIG_ARC_PROMLIB) += promlib.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/arc/promlib.c linux-2.4.20-mipscvs-20050106/arch/mips/arc/promlib.c
---- linux-2.4.20/arch/mips/arc/promlib.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/arc/promlib.c 2002-09-28 17:28:38.000000000 -0500
-@@ -0,0 +1,43 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1996 David S. Miller (dm@sgi.com)
-+ * Compability with board caches, Ulf Carlsson
-+ */
-+#include <linux/kernel.h>
-+#include <asm/sgialib.h>
-+#include <asm/bcache.h>
-+
-+/*
-+ * IP22 boardcache is not compatible with board caches. Thus we disable it
-+ * during romvec action. Since r4xx0.c is always compiled and linked with your
-+ * kernel, this shouldn't cause any harm regardless what MIPS processor you
-+ * have.
-+ *
-+ * The ARC write and read functions seem to interfere with the serial lines
-+ * in some way. You should be careful with them.
-+ */
-+
-+void prom_putchar(char c)
-+{
-+ ULONG cnt;
-+ CHAR it = c;
-+
-+ bc_disable();
-+ ArcWrite(1, &it, 1, &cnt);
-+ bc_enable();
-+}
-+
-+char prom_getchar(void)
-+{
-+ ULONG cnt;
-+ CHAR c;
-+
-+ bc_disable();
-+ ArcRead(0, &c, 1, &cnt);
-+ bc_enable();
-+
-+ return c;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/clocks.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/clocks.c
---- linux-2.4.20/arch/mips/au1000/common/clocks.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/clocks.c 2002-12-11 00:12:29.000000000 -0600
-@@ -30,21 +30,21 @@
- #include <linux/module.h>
- #include <asm/au1000.h>
-
--static unsigned int au1000_clock; // Hz
-+static unsigned int au1x00_clock; // Hz
- static unsigned int lcd_clock; // KHz
- static unsigned long uart_baud_base;
-
- /*
- * Set the au1000_clock
- */
--void set_au1000_speed(unsigned int new_freq)
-+void set_au1x00_speed(unsigned int new_freq)
- {
-- au1000_clock = new_freq;
-+ au1x00_clock = new_freq;
- }
-
--unsigned int get_au1000_speed(void)
-+unsigned int get_au1x00_speed(void)
- {
-- return au1000_clock;
-+ return au1x00_clock;
- }
-
-
-@@ -54,27 +54,27 @@
- * we want to be able to use the same code on different
- * speed CPUs.
- */
--unsigned long get_au1000_uart_baud_base(void)
-+unsigned long get_au1x00_uart_baud_base(void)
- {
- return uart_baud_base;
- }
-
--void set_au1000_uart_baud_base(unsigned long new_baud_base)
-+void set_au1x00_uart_baud_base(unsigned long new_baud_base)
- {
- uart_baud_base = new_baud_base;
- }
-
- /*
-- * Calculate the Au1000's LCD clock based on the current
-+ * Calculate the Au1x00's LCD clock based on the current
- * cpu clock and the system bus clock, and try to keep it
- * below 40 MHz (the Pb1000 board can lock-up if the LCD
- * clock is over 40 MHz).
- */
--void set_au1000_lcd_clock(void)
-+void set_au1x00_lcd_clock(void)
- {
- unsigned int static_cfg0;
- unsigned int sys_busclk =
-- (get_au1000_speed()/1000) /
-+ (get_au1x00_speed()/1000) /
- ((int)(au_readl(SYS_POWERCTRL)&0x03) + 2);
-
- static_cfg0 = au_readl(MEM_STCFG0);
-@@ -90,9 +90,9 @@
- lcd_clock);
- }
-
--unsigned int get_au1000_lcd_clock(void)
-+unsigned int get_au1x00_lcd_clock(void)
- {
- return lcd_clock;
- }
-
--EXPORT_SYMBOL(get_au1000_lcd_clock);
-+EXPORT_SYMBOL(get_au1x00_lcd_clock);
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Entries
---- linux-2.4.20/arch/mips/au1000/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Entries 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:38 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.5.2.6/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/clocks.c/1.2.2.4/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.2.2.4/Sat Jan 25 05:38:40 2003/-ko/Tlinux_2_4_20
-+/dma.c/1.1.2.4/Mon Aug 5 23:53:30 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.3.2.2/Mon Aug 5 23:53:30 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.11.2.13/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/power.c/1.2.2.7/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.5.2.4/Wed Feb 5 21:22:54 2003/-ko/Tlinux_2_4_20
-+/puts.c/1.2/Fri May 18 01:02:18 2001/-ko/Tlinux_2_4_20
-+/reset.c/1.2.2.8/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/rtc.c/1.1.2.3/Thu Jul 4 12:06:38 2002/-ko/Tlinux_2_4_20
-+/serial.c/1.7.2.8/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/time.c/1.5.2.9/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/usbdev.c/1.2.2.7/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Repository
---- linux-2.4.20/arch/mips/au1000/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Repository 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/au1000/common
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Root
---- linux-2.4.20/arch/mips/au1000/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Root 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Tag
---- linux-2.4.20/arch/mips/au1000/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/CVS/Tag 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/.cvsignore
---- linux-2.4.20/arch/mips/au1000/common/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/.cvsignore 2001-12-02 05:34:38.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/dbg_io.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/dbg_io.c
---- linux-2.4.20/arch/mips/au1000/common/dbg_io.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/dbg_io.c 2003-01-24 23:38:40.000000000 -0600
-@@ -56,7 +56,7 @@
- #define UART16550_READ(y) (au_readl(DEBUG_BASE + y) & 0xff)
- #define UART16550_WRITE(y,z) (au_writel(z&0xff, DEBUG_BASE + y))
-
--extern unsigned long get_au1000_uart_baud_base(void);
-+extern unsigned long get_au1x00_uart_baud_base(void);
- extern unsigned long cal_r4koff(void);
-
- void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop)
-@@ -75,7 +75,7 @@
- uint32 divisor;
-
- /* set divisor */
-- divisor = get_au1000_uart_baud_base() / baud;
-+ divisor = get_au1x00_uart_baud_base() / baud;
- UART16550_WRITE(UART_CLK, divisor & 0xffff);
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/irq.c
---- linux-2.4.20/arch/mips/au1000/common/irq.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/irq.c 2002-12-11 00:12:29.000000000 -0600
-@@ -53,8 +53,14 @@
- #include <asm/pb1500.h>
- #elif defined(CONFIG_MIPS_PB1100)
- #include <asm/pb1100.h>
-+#elif defined(CONFIG_MIPS_DB1000)
-+#include <asm/db1x00.h>
-+#elif defined(CONFIG_MIPS_DB1100)
-+#include <asm/db1x00.h>
-+#elif defined(CONFIG_MIPS_DB1500)
-+#include <asm/db1x00.h>
- #else
--#error unsupported alchemy board
-+#error unsupported Alchemy board
- #endif
-
- #undef DEBUG_IRQ
-@@ -97,6 +103,7 @@
- extern void counter0_irq(int irq, void *dev_id, struct pt_regs *regs);
- #endif
-
-+static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;
-
- static void setup_local_irq(unsigned int irq_nr, int type, int int_req)
- {
-@@ -296,8 +303,8 @@
- {
- int i;
- unsigned long flags, mask;
-- save_and_cli(flags);
-
-+ spin_lock_irqsave(&irq_lock, flags);
- if (controller) {
- mask = au_readl(IC1_MASKSET);
- for (i=32; i<64; i++) {
-@@ -310,7 +317,8 @@
- local_disable_irq(i);
- }
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&irq_lock, flags);
-+
- return mask;
- }
-
-@@ -318,8 +326,8 @@
- {
- int i;
- unsigned long flags, new_mask;
-- save_and_cli(flags);
-
-+ spin_lock_irqsave(&irq_lock, flags);
- for (i=0; i<32; i++) {
- if (mask & (1<<i)) {
- if (controller)
-@@ -333,7 +341,7 @@
- else
- new_mask = au_readl(IC0_MASKSET);
-
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&irq_lock, flags);
- }
-
-
-@@ -348,7 +356,7 @@
- NULL
- };
-
--
-+/*
- static struct hw_interrupt_type fall_edge_irq_type = {
- "Au1000 Fall Edge",
- startup_irq,
-@@ -359,7 +367,7 @@
- end_irq,
- NULL
- };
--
-+*/
-
- static struct hw_interrupt_type level_irq_type = {
- "Au1000 Level",
-@@ -384,9 +392,8 @@
- {
- int i;
- unsigned long cp0_status;
-- extern char except_vec0_au1000;
-
-- cp0_status = read_32bit_cp0_register(CP0_STATUS);
-+ cp0_status = read_c0_status();
- memset(irq_desc, 0, sizeof(irq_desc));
- set_except_vector(0, au1000_IRQ);
-
-@@ -423,7 +430,7 @@
- case AU1000_IRDA_RX_INT:
-
- case AU1000_MAC0_DMA_INT:
--#ifdef CONFIG_MIPS_PB1000
-+#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1500)
- case AU1000_MAC1_DMA_INT:
- #endif
- #ifdef CONFIG_MIPS_PB1500
-@@ -458,6 +465,15 @@
- case AU1000_GPIO_13: // DC_IRQ#
- case AU1000_GPIO_23: // 2-wire SCL
- #endif
-+#if defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-+ case AU1000_GPIO_0: // PCMCIA Card 0 Fully_Interted#
-+ case AU1000_GPIO_1: // PCMCIA Card 0 STSCHG#
-+ case AU1000_GPIO_2: // PCMCIA Card 0 IRQ#
-+
-+ case AU1000_GPIO_3: // PCMCIA Card 1 Fully_Interted#
-+ case AU1000_GPIO_4: // PCMCIA Card 1 STSCHG#
-+ case AU1000_GPIO_5: // PCMCIA Card 1 IRQ#
-+#endif
- setup_local_irq(i, INTC_INT_LOW_LEVEL, 0);
- irq_desc[i].handler = &level_irq_type;
- break;
-@@ -490,7 +506,7 @@
- }
- }
-
-- set_cp0_status(ALLINTS);
-+ set_c0_status(ALLINTS);
- #ifdef CONFIG_REMOTE_DEBUG
- /* If local serial I/O used for debug port, enter kgdb at once */
- puts("Waiting for kgdb to connect...");
-@@ -575,8 +591,6 @@
- {
- int irq = 0, i;
- static unsigned long intc1_req0 = 0;
-- volatile unsigned short levels, mdr;
-- unsigned char ide_status;
-
- intc1_req0 |= au_readl(IC1_REQ0INT);
-
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/Makefile
---- linux-2.4.20/arch/mips/au1000/common/Makefile 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/Makefile 2002-12-11 00:12:29.000000000 -0600
-@@ -21,7 +21,7 @@
- obj-y := prom.o int-handler.o dma.o irq.o puts.o time.o reset.o \
- clocks.o power.o usbdev.o
-
--obj-$(CONFIG_AU1000_UART) += serial.o
-+obj-$(CONFIG_AU1X00_UART) += serial.o
- obj-$(CONFIG_AU1000_USB_DEVICE) += usbdev.o
- obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
- obj-$(CONFIG_RTC) += rtc.o
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/power.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/power.c
---- linux-2.4.20/arch/mips/au1000/common/power.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/power.c 2002-12-11 00:12:29.000000000 -0600
-@@ -67,6 +67,8 @@
-
- #ifdef CONFIG_PM
-
-+static spinlock_t pm_lock = SPIN_LOCK_UNLOCKED;
-+
- unsigned long suspend_mode;
-
- void wakeup_from_suspend(void)
-@@ -77,7 +79,7 @@
- int au_sleep(void)
- {
- unsigned long wakeup, flags;
-- save_and_cli(flags);
-+ spin_lock_irqsave(&pm_lock,flags);
-
- flush_cache_all();
- /* pin 6 is gpio */
-@@ -104,7 +106,7 @@
- /* after a wakeup, the cpu vectors back to 0x1fc00000 so
- * it's up to the boot code to get us back here.
- */
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pm_lock, flags);
- return 0;
- }
-
-@@ -158,31 +160,31 @@
- old_refresh;
- unsigned long new_baud_base, new_cpu_freq, new_clk, new_refresh;
-
-- save_and_cli(flags);
-+ spin_lock_irqsave(&pm_lock, flags);
- if (!write) {
- *len = 0;
- } else {
- /* Parse the new frequency */
- if (*len > TMPBUFLEN - 1) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pm_lock, flags);
- return -EFAULT;
- }
- if (copy_from_user(buf, buffer, *len)) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pm_lock, flags);
- return -EFAULT;
- }
- buf[*len] = 0;
- p = buf;
- val = simple_strtoul(p, &p, 0);
- if (val > MAX_CPU_FREQ) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pm_lock, flags);
- return -EFAULT;
- }
-
- pll = val / 12;
- if ((pll > 33) || (pll < 7)) { /* 396 MHz max, 84 MHz min */
- /* revisit this for higher speed cpus */
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pm_lock, flags);
- return -EFAULT;
- }
-
-@@ -247,7 +249,7 @@
- intc0_mask = save_local_and_disable(0);
- intc1_mask = save_local_and_disable(1);
- local_enable_irq(AU1000_TOY_MATCH2_INT);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pm_lock, flags);
- calibrate_delay();
- restore_local_and_enable(0, intc0_mask);
- restore_local_and_enable(1, intc1_mask);
-@@ -323,4 +325,9 @@
- }
- }
-
-+void au1k_wait(void)
-+{
-+ __asm__("nop\n\t" "nop\n\t");
-+}
-+
- #endif /* CONFIG_PM */
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/prom.c
---- linux-2.4.20/arch/mips/au1000/common/prom.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/prom.c 2003-02-05 15:22:54.000000000 -0600
-@@ -105,9 +105,11 @@
- inline unsigned char str2hexnum(unsigned char c)
- {
- if(c >= '0' && c <= '9')
-- return c - '0';
-+ return c - '0';
- if(c >= 'a' && c <= 'f')
-- return c - 'a' + 10;
-+ return c - 'a' + 10;
-+ if(c >= 'A' && c <= 'F')
-+ return c - 'A' + 10;
- return 0; /* foo */
- }
-
-@@ -128,7 +130,6 @@
-
- int get_ethernet_addr(char *ethernet_addr)
- {
-- int i;
- char *ethaddr_str;
-
- ethaddr_str = prom_getenv("ethaddr");
-@@ -139,10 +140,14 @@
- str2eaddr(ethernet_addr, ethaddr_str);
-
- #if 0
-+ {
-+ int i;
-+
- printk("get_ethernet_addr: ");
- for (i=0; i<5; i++)
- printk("%02x:", (unsigned char)*(ethernet_addr+i));
- printk("%02x\n", *(ethernet_addr+i));
-+ }
- #endif
-
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/reset.c
---- linux-2.4.20/arch/mips/au1000/common/reset.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/reset.c 2002-12-11 00:12:29.000000000 -0600
-@@ -42,7 +42,7 @@
- void au1000_restart(char *command)
- {
- /* Set all integrated peripherals to disabled states */
-- u32 prid = read_32bit_cp0_register(CP0_PRID);
-+ u32 prid = read_c0_prid();
-
- printk(KERN_NOTICE "\n** Resetting Integrated Peripherals\n");
- switch (prid & 0xFF000000)
-@@ -107,10 +107,19 @@
- break;
- }
-
-- set_cp0_status(ST0_BEV | ST0_ERL);
-- set_cp0_config(CONF_CM_UNCACHED);
-+ set_c0_status(ST0_BEV | ST0_ERL);
-+ set_c0_config(CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
-+
-+#ifdef CONFIG_MIPS_PB1500
-+ au_writel(0x00000000, 0xAE00001C);
-+#endif
-+
-+#ifdef CONFIG_MIPS_PB1100
-+ au_writel(0x00000000, 0xAE00001C);
-+#endif
-+
- __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/serial.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/serial.c
---- linux-2.4.20/arch/mips/au1000/common/serial.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/serial.c 2002-12-11 00:12:29.000000000 -0600
-@@ -1,7 +1,7 @@
- /*
- *
- * BRIEF MODULE DESCRIPTION
-- * Au1000 serial port driver.
-+ * Au1x00 serial port driver.
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-@@ -56,14 +56,14 @@
- #undef SERIAL_DEBUG_AUTOCONF
-
- #ifdef MODULE
--#undef CONFIG_AU1000_SERIAL_CONSOLE
-+#undef CONFIG_AU1X00_SERIAL_CONSOLE
- #endif
-
- #define CONFIG_SERIAL_RSA
-
- #define RS_STROBE_TIME (10*HZ)
- #define RS_ISR_PASS_LIMIT 256
--
-+
- /*
- * End of serial driver configuration section.
- */
-@@ -98,7 +98,7 @@
- #include <linux/init.h>
- #include <asm/uaccess.h>
- #include <linux/delay.h>
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- #include <linux/console.h>
- #endif
- #ifdef CONFIG_MAGIC_SYSRQ
-@@ -131,7 +131,7 @@
-
- static struct timer_list serial_timer;
-
--extern unsigned long get_au1000_uart_baud_base(void);
-+extern unsigned long get_au1x00_uart_baud_base(void);
-
- /* serial subtype definitions */
- #ifndef SERIAL_TYPE_NORMAL
-@@ -149,11 +149,11 @@
-
- static struct async_struct *IRQ_ports[NR_IRQS];
- static int IRQ_timeout[NR_IRQS];
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- static struct console sercons;
- static int lsr_break_flag;
- #endif
--#if defined(CONFIG_AU1000_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
- static unsigned long break_pressed; /* break, really ... */
- #endif
-
-@@ -216,6 +216,7 @@
- static struct semaphore tmp_buf_sem = MUTEX;
- #endif
-
-+static spinlock_t serial_lock = SPIN_LOCK_UNLOCKED;
-
- static inline int serial_paranoia_check(struct async_struct *info,
- kdev_t device, const char *routine)
-@@ -275,12 +276,12 @@
- if (serial_paranoia_check(info, tty->device, "rs_stop"))
- return;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (info->IER & UART_IER_THRI) {
- info->IER &= ~UART_IER_THRI;
- serial_out(info, UART_IER, info->IER);
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- static void rs_start(struct tty_struct *tty)
-@@ -291,14 +292,14 @@
- if (serial_paranoia_check(info, tty->device, "rs_start"))
- return;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (info->xmit.head != info->xmit.tail
- && info->xmit.buf
- && !(info->IER & UART_IER_THRI)) {
- info->IER |= UART_IER_THRI;
- serial_out(info, UART_IER, info->IER);
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- /*
-@@ -368,7 +369,7 @@
- * may get masked by ignore_status_mask
- * or read_status_mask.
- */
--#if defined(CONFIG_AU1000_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
- if (info->line == sercons.index) {
- if (!break_pressed) {
- break_pressed = jiffies;
-@@ -398,7 +399,7 @@
- }
- *status &= info->read_status_mask;
-
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- if (info->line == sercons.index) {
- /* Recover the break flag from console xmit */
- *status |= lsr_break_flag;
-@@ -428,7 +429,7 @@
- goto ignore_char;
- }
- }
--#if defined(CONFIG_AU1000_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
- if (break_pressed && info->line == sercons.index) {
- if (ch != 0 &&
- time_before(jiffies, break_pressed + HZ*5)) {
-@@ -664,9 +665,9 @@
- info = IRQ_ports[i];
- if (!info)
- continue;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- rs_interrupt_single(i, NULL, NULL);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
- }
- last_strobe = jiffies;
-@@ -674,9 +675,9 @@
-
- #if 0
- if (IRQ_ports[0]) {
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- rs_interrupt_single(0, NULL, NULL);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
-
- mod_timer(&serial_timer, jiffies + IRQ_timeout[0]);
- }
-@@ -730,7 +731,7 @@
- if (!page)
- return -ENOMEM;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
-
- if (info->flags & ASYNC_INITIALIZED) {
- free_page(page);
-@@ -890,11 +891,11 @@
- change_speed(info, 0);
-
- info->flags |= ASYNC_INITIALIZED;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return 0;
-
- errout:
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return retval;
- }
-
-@@ -918,7 +919,7 @@
- state->irq);
- #endif
-
-- save_flags(flags); cli(); /* Disable interrupts */
-+ spin_lock_irqsave(&serial_lock, flags);
-
- /*
- * clear delta_msr_wait queue to avoid mem leaks: we may free the irq
-@@ -990,7 +991,7 @@
- au_writel(0, UART_MOD_CNTRL + state->port);
- au_sync_delay(10);
- #endif
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
-
-@@ -1041,7 +1042,7 @@
- if (!baud) {
- baud = 9600; /* B0 transition handled in rs_set_termios */
- }
-- baud_base = get_au1000_uart_baud_base();
-+ baud_base = get_au1x00_uart_baud_base();
-
- //if (baud == 38400 &&
- if (((info->flags & ASYNC_SPD_MASK) == ASYNC_SPD_CUST)) {
-@@ -1136,12 +1137,12 @@
- */
- if ((cflag & CREAD) == 0)
- info->ignore_status_mask |= UART_LSR_DR;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
-
- serial_outp(info, UART_CLK, quot & 0xffff);
- serial_outp(info, UART_LCR, cval);
- info->LCR = cval; /* Save LCR */
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- static void rs_put_char(struct tty_struct *tty, unsigned char ch)
-@@ -1155,17 +1156,17 @@
- if (!tty || !info->xmit.buf)
- return;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (CIRC_SPACE(info->xmit.head,
- info->xmit.tail,
- SERIAL_XMIT_SIZE) == 0) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return;
- }
-
- info->xmit.buf[info->xmit.head] = ch;
- info->xmit.head = (info->xmit.head + 1) & (SERIAL_XMIT_SIZE-1);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- static void rs_flush_chars(struct tty_struct *tty)
-@@ -1182,10 +1183,10 @@
- || !info->xmit.buf)
- return;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- info->IER |= UART_IER_THRI;
- serial_out(info, UART_IER, info->IER);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- static int rs_write(struct tty_struct * tty, int from_user,
-@@ -1201,7 +1202,7 @@
- if (!tty || !info->xmit.buf || !tmp_buf)
- return 0;
-
-- save_flags(flags);
-+ spin_lock_irqsave(&serial_lock, flags);
- if (from_user) {
- down(&tmp_buf_sem);
- while (1) {
-@@ -1229,7 +1230,7 @@
- memcpy(info->xmit.buf + info->xmit.head, tmp_buf, c);
- info->xmit.head = ((info->xmit.head + c) &
- (SERIAL_XMIT_SIZE-1));
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- buf += c;
- count -= c;
- ret += c;
-@@ -1253,7 +1254,7 @@
- count -= c;
- ret += c;
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
- if (info->xmit.head != info->xmit.tail
- && !tty->stopped
-@@ -1290,9 +1291,9 @@
-
- if (serial_paranoia_check(info, tty->device, "rs_flush_buffer"))
- return;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- info->xmit.head = info->xmit.tail = 0;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- wake_up_interruptible(&tty->write_wait);
- #ifdef SERIAL_HAVE_POLL_WAIT
- wake_up_interruptible(&tty->poll_wait);
-@@ -1349,9 +1350,9 @@
- if (tty->termios->c_cflag & CRTSCTS)
- info->MCR &= ~UART_MCR_RTS;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- serial_out(info, UART_MCR, info->MCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- static void rs_unthrottle(struct tty_struct * tty)
-@@ -1376,9 +1377,9 @@
- }
- if (tty->termios->c_cflag & CRTSCTS)
- info->MCR |= UART_MCR_RTS;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- serial_out(info, UART_MCR, info->MCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- /*
-@@ -1562,9 +1563,9 @@
- unsigned int result;
- unsigned long flags;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- status = serial_in(info, UART_LSR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- result = ((status & UART_LSR_TEMT) ? TIOCSER_TEMT : 0);
-
- /*
-@@ -1592,9 +1593,9 @@
- unsigned long flags;
-
- control = info->MCR;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- status = serial_in(info, UART_MSR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- result = ((control & UART_MCR_RTS) ? TIOCM_RTS : 0)
- | ((control & UART_MCR_DTR) ? TIOCM_DTR : 0)
- #ifdef TIOCM_OUT1
-@@ -1668,10 +1669,10 @@
- default:
- return -EINVAL;
- }
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- info->MCR |= ALPHA_KLUDGE_MCR; /* Don't ask */
- serial_out(info, UART_MCR, info->MCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return 0;
- }
-
-@@ -1707,13 +1708,13 @@
-
- if (!CONFIGURED_SERIAL_PORT(info))
- return;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (break_state == -1)
- info->LCR |= UART_LCR_SBC;
- else
- info->LCR &= ~UART_LCR_SBC;
- serial_out(info, UART_LCR, info->LCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
-
-@@ -1768,10 +1769,10 @@
- * Caller should use TIOCGICOUNT to see which one it was
- */
- case TIOCMIWAIT:
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- /* note the counters on entry */
- cprev = info->state->icount;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- /* Force modem status interrupts on */
- info->IER |= UART_IER_MSI;
- serial_out(info, UART_IER, info->IER);
-@@ -1780,9 +1781,9 @@
- /* see if a signal did it */
- if (signal_pending(current))
- return -ERESTARTSYS;
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- cnow = info->state->icount; /* atomic copy */
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr &&
- cnow.dcd == cprev.dcd && cnow.cts == cprev.cts)
- return -EIO; /* no change => error */
-@@ -1803,9 +1804,9 @@
- * RI where only 0->1 is counted.
- */
- case TIOCGICOUNT:
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- cnow = info->state->icount;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- icount.cts = cnow.cts;
- icount.dsr = cnow.dsr;
- icount.rng = cnow.rng;
-@@ -1850,9 +1851,9 @@
- if ((old_termios->c_cflag & CBAUD) &&
- !(cflag & CBAUD)) {
- info->MCR &= ~(UART_MCR_DTR|UART_MCR_RTS);
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- serial_out(info, UART_MCR, info->MCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- /* Handle transition away from B0 status */
-@@ -1863,9 +1864,9 @@
- !test_bit(TTY_THROTTLED, &tty->flags)) {
- info->MCR |= UART_MCR_RTS;
- }
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- serial_out(info, UART_MCR, info->MCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- /* Handle turning off CRTSCTS */
-@@ -1897,12 +1898,12 @@
-
- state = info->state;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
-
- if (tty_hung_up_p(filp)) {
- DBG_CNT("before DEC-hung");
- MOD_DEC_USE_COUNT;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return;
- }
-
-@@ -1929,11 +1930,11 @@
- if (state->count) {
- DBG_CNT("before DEC-2");
- MOD_DEC_USE_COUNT;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return;
- }
- info->flags |= ASYNC_CLOSING;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- /*
- * Save the termios structure, since this port may have
- * separate termios for callout and dialin.
-@@ -2158,21 +2159,21 @@
- printk("block_til_ready before block: ttys%d, count = %d\n",
- state->line, state->count);
- #endif
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (!tty_hung_up_p(filp)) {
- extra_count = 1;
- state->count--;
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- info->blocked_open++;
- while (1) {
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (!(info->flags & ASYNC_CALLOUT_ACTIVE) &&
- (tty->termios->c_cflag & CBAUD))
- serial_out(info, UART_MCR,
- serial_inp(info, UART_MCR) |
- (UART_MCR_DTR | UART_MCR_RTS));
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- set_current_state(TASK_INTERRUPTIBLE);
- if (tty_hung_up_p(filp) ||
- !(info->flags & ASYNC_INITIALIZED)) {
-@@ -2347,7 +2348,7 @@
- *tty->termios = info->state->callout_termios;
- change_speed(info, 0);
- }
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- if (sercons.cflag && sercons.index == line) {
- tty->termios->c_cflag = sercons.cflag;
- sercons.cflag = 0;
-@@ -2395,10 +2396,10 @@
- info->quot = 0;
- info->tty = 0;
- }
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- status = serial_in(info, UART_MSR);
- control = info != &scr_info ? info->MCR : serial_in(info, UART_MCR);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
-
- stat_buf[0] = 0;
- stat_buf[1] = 0;
-@@ -2531,7 +2532,7 @@
- info->iomem_reg_shift = state->iomem_reg_shift;
-
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- state->xmit_fifo_size = uart_config[state->type].dfl_xmit_fifo_size;
-
- if (info->port) {
-@@ -2547,7 +2548,7 @@
- serial_outp(info, UART_FCR, 0);
- (void)serial_in(info, UART_RX);
- serial_outp(info, UART_IER, 0);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- int register_serial(struct serial_struct *req);
-@@ -2574,7 +2575,7 @@
- IRQ_ports[i] = 0;
- IRQ_timeout[i] = 0;
- }
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- /*
- * The interrupt of the serial console port
- * can't be shared.
-@@ -2653,7 +2654,7 @@
- panic("Couldn't register callout driver");
-
- for (i = 0, state = rs_table; i < NR_PORTS; i++,state++) {
-- state->baud_base = get_au1000_uart_baud_base();
-+ state->baud_base = get_au1x00_uart_baud_base();
- state->magic = SSTATE_MAGIC;
- state->line = i;
- state->type = PORT_UNKNOWN;
-@@ -2726,7 +2727,7 @@
- if (HIGH_BITS_OFFSET)
- port += (unsigned long) req->port_high << HIGH_BITS_OFFSET;
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- for (i = 0; i < NR_PORTS; i++) {
- if ((rs_table[i].port == port) &&
- (rs_table[i].iomem_base == req->iomem_base))
-@@ -2739,12 +2740,12 @@
- break;
- }
- if (i == NR_PORTS) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- return -1;
- }
- state = &rs_table[i];
- if (rs_table[i].count) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- printk("Couldn't configure serial #%d (port=%ld,irq=%d): "
- "device already open\n", i, port, req->irq);
- return -1;
-@@ -2766,11 +2767,11 @@
- }
- autoconfig(state);
- if (state->type == PORT_UNKNOWN) {
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- printk("register_serial(): autoconfig failed\n");
- return -1;
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
-
- printk(KERN_INFO "ttyS%02d at %s 0x%04lx (irq = %d) is a %s\n",
- state->line + SERIAL_DEV_OFFSET,
-@@ -2798,7 +2799,7 @@
- unsigned long flags;
- struct serial_state *state = &rs_table[line];
-
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- if (state->info && state->info->tty)
- tty_hangup(state->info->tty);
- state->type = PORT_UNKNOWN;
-@@ -2810,7 +2811,7 @@
- serial_driver.minor_start + state->line);
- tty_unregister_devfs(&callout_driver,
- callout_driver.minor_start + state->line);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
- }
-
- static void __exit rs_fini(void)
-@@ -2822,7 +2823,7 @@
-
- /* printk("Unloading %s: version %s\n", serial_name, serial_version); */
- del_timer_sync(&serial_timer);
-- save_flags(flags); cli();
-+ spin_lock_irqsave(&serial_lock, flags);
- remove_bh(SERIAL_BH);
- if ((e1 = tty_unregister_driver(&serial_driver)))
- printk("serial: failed to unregister serial driver (%d)\n",
-@@ -2830,7 +2831,7 @@
- if ((e2 = tty_unregister_driver(&callout_driver)))
- printk("serial: failed to unregister callout driver (%d)\n",
- e2);
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&serial_lock, flags);
-
- for (i = 0; i < NR_PORTS; i++) {
- if ((info = rs_table[i].info)) {
-@@ -2850,7 +2851,7 @@
-
- module_init(rs_init);
- module_exit(rs_fini);
--MODULE_DESCRIPTION("Au1000 serial driver");
-+MODULE_DESCRIPTION("Au1x00 serial driver");
-
-
- /*
-@@ -2858,7 +2859,7 @@
- * Serial console driver
- * ------------------------------------------------------------
- */
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
-
- #define BOTH_EMPTY (UART_LSR_TEMT | UART_LSR_THRE)
-
-@@ -2927,6 +2928,35 @@
- serial_out(info, UART_IER, ier);
- }
-
-+/*
-+ * Receive character from the serial port
-+ */
-+static int serial_console_wait_key(struct console *co)
-+{
-+ static struct async_struct *info;
-+ int ier, c;
-+
-+ info = &async_sercons;
-+
-+ /*
-+ * First save the IER then disable the interrupts so
-+ * that the real driver for the port does not get the
-+ * character.
-+ */
-+ ier = serial_in(info, UART_IER);
-+ serial_out(info, UART_IER, 0x00);
-+
-+ while ((serial_in(info, UART_LSR) & UART_LSR_DR) == 0);
-+ c = serial_in(info, UART_RX);
-+
-+ /*
-+ * Restore the interrupts
-+ */
-+ serial_out(info, UART_IER, ier);
-+
-+ return c;
-+}
-+
- static kdev_t serial_console_device(struct console *c)
- {
- return MKDEV(TTY_MAJOR, 64 + c->index);
-@@ -3020,7 +3050,7 @@
- info->io_type = state->io_type;
- info->iomem_base = state->iomem_base;
- info->iomem_reg_shift = state->iomem_reg_shift;
-- state->baud_base = get_au1000_uart_baud_base();
-+ state->baud_base = get_au1x00_uart_baud_base();
- quot = state->baud_base / baud;
-
- cval = cflag & (CSIZE | CSTOPB);
-@@ -3048,18 +3078,18 @@
- }
-
- static struct console sercons = {
-- name: "ttyS",
-- write: serial_console_write,
-- device: serial_console_device,
-- setup: serial_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "ttyS",
-+ .write = serial_console_write,
-+ .device = serial_console_device,
-+ .setup = serial_console_setup,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
- * Register console.
- */
--void __init au1000_serial_console_init(void)
-+void __init au1x00_serial_console_init(void)
- {
- register_console(&sercons);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/time.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/time.c
---- linux-2.4.20/arch/mips/au1000/common/time.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/time.c 2002-12-11 00:12:29.000000000 -0600
-@@ -45,7 +45,7 @@
- #include <linux/timex.h>
-
- extern void startup_match20_interrupt(void);
--
-+extern void do_softirq(void);
- extern volatile unsigned long wall_jiffies;
- unsigned long missed_heart_beats = 0;
-
-@@ -63,9 +63,11 @@
- static unsigned long last_pc0, last_match20;
- #endif
-
-+static spinlock_t time_lock = SPIN_LOCK_UNLOCKED;
-+
- static inline void ack_r4ktimer(unsigned long newval)
- {
-- write_32bit_cp0_register(CP0_COMPARE, newval);
-+ write_c0_compare(newval);
- }
-
- /*
-@@ -93,7 +95,7 @@
- goto null;
-
- do {
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- timerhi += (count < timerlo); /* Wrap around */
- timerlo = count;
-
-@@ -102,7 +104,7 @@
- r4k_cur += r4k_offset;
- ack_r4ktimer(r4k_cur);
-
-- } while (((unsigned long)read_32bit_cp0_register(CP0_COUNT)
-+ } while (((unsigned long)read_c0_count()
- - r4k_cur) < 0x7fffffff);
-
- irq_exit(cpu, irq);
-@@ -174,7 +176,7 @@
- int trim_divide = 16;
- unsigned long flags;
-
-- save_and_cli(flags);
-+ spin_lock_irqsave(&time_lock, flags);
-
- counter = au_readl(SYS_COUNTER_CNTRL);
- au_writel(counter | SYS_CNTRL_EN1, SYS_COUNTER_CNTRL);
-@@ -193,16 +195,16 @@
- while (au_readl(SYS_RTCREAD) < start);
-
- /* Start r4k counter. */
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
- end = start + (32768 / trim_divide)/2; /* wait 0.5 seconds */
-
- while (end > au_readl(SYS_RTCREAD));
-
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- cpu_speed = count * 2;
- mips_counter_frequency = count;
-- set_au1000_uart_baud_base(((cpu_speed) / 4) / 16);
-- restore_flags(flags);
-+ set_au1x00_uart_baud_base(((cpu_speed) / 4) / 16);
-+ spin_unlock_irqrestore(&time_lock, flags);
- return (cpu_speed / HZ);
- }
-
-@@ -221,11 +223,11 @@
- est_freq -= est_freq%10000;
- printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
- (est_freq%1000000)*100/1000000);
-- set_au1000_speed(est_freq);
-- set_au1000_lcd_clock(); // program the LCD clock
-- r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-+ set_au1x00_speed(est_freq);
-+ set_au1x00_lcd_clock(); // program the LCD clock
-+ r4k_cur = (read_c0_count() + r4k_offset);
-
-- write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-+ write_c0_compare(r4k_cur);
-
- /* no RTC on the pb1000 */
- xtime.tv_sec = 0;
-@@ -258,7 +260,7 @@
- startup_match20_interrupt();
- #endif
-
-- //set_cp0_status(ALLINTS);
-+ //set_c0_status(ALLINTS);
- au_sync();
- }
-
-@@ -266,7 +268,7 @@
- #define USECS_PER_JIFFY (1000000/HZ)
- #define USECS_PER_JIFFY_FRAC (0x100000000*1000000/HZ&0xffffffff)
-
--
-+#ifndef CONFIG_PM
- static unsigned long
- div64_32(unsigned long v1, unsigned long v2, unsigned long v3)
- {
-@@ -274,7 +276,7 @@
- do_div64_32(r0, v1, v2, v3);
- return r0;
- }
--
-+#endif
-
- static unsigned long do_fast_gettimeoffset(void)
- {
-@@ -326,7 +328,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -376,7 +378,7 @@
- write_lock_irq (&xtime_lock);
-
- /* This is revolting. We need to set the xtime.tv_usec correctly.
-- * However, the value in this location is is value at the last tick.
-+ * However, the value in this location is value at the last tick.
- * Discover what correction gettimeofday would have done, and then
- * undo it!
- */
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/common/usbdev.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/usbdev.c
---- linux-2.4.20/arch/mips/au1000/common/usbdev.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/common/usbdev.c 2002-12-11 00:12:29.000000000 -0600
-@@ -199,7 +199,7 @@
-
- #if 0
- static void
--dump_setup(devrequest* s)
-+dump_setup(struct usb_ctrlrequest* s)
- {
- dbg(__FUNCTION__ ": requesttype=%d", s->requesttype);
- dbg(__FUNCTION__ ": request=%d %s", s->request,
-@@ -635,9 +635,9 @@
- */
-
- static ep0_stage_t
--do_get_status(struct usb_dev* dev, devrequest* setup)
-+do_get_status(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
-- switch (setup->requesttype) {
-+ switch (setup->bRequestType) {
- case 0x80: // Device
- // FIXME: send device status
- break;
-@@ -657,9 +657,9 @@
- }
-
- static ep0_stage_t
--do_clear_feature(struct usb_dev* dev, devrequest* setup)
-+do_clear_feature(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
-- switch (setup->requesttype) {
-+ switch (setup->bRequestType) {
- case 0x00: // Device
- if ((le16_to_cpu(setup->wValue) & 0xff) == 1)
- dev->remote_wakeup_en = 0;
-@@ -670,7 +670,7 @@
- if ((le16_to_cpu(setup->wValue) & 0xff) == 0) {
- endpoint_t *ep =
- epaddr_to_ep(dev,
-- le16_to_cpu(setup->index) & 0xff);
-+ le16_to_cpu(setup->wIndex) & 0xff);
-
- endpoint_unstall(ep);
- endpoint_reset_datatoggle(ep);
-@@ -683,7 +683,7 @@
- }
-
- static ep0_stage_t
--do_reserved(struct usb_dev* dev, devrequest* setup)
-+do_reserved(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- // Invalid request, stall End Point 0
- endpoint_stall(&dev->ep[0]);
-@@ -691,9 +691,9 @@
- }
-
- static ep0_stage_t
--do_set_feature(struct usb_dev* dev, devrequest* setup)
-+do_set_feature(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
-- switch (setup->requesttype) {
-+ switch (setup->bRequestType) {
- case 0x00: // Device
- if ((le16_to_cpu(setup->wValue) & 0xff) == 1)
- dev->remote_wakeup_en = 1;
-@@ -701,10 +701,10 @@
- endpoint_stall(&dev->ep[0]);
- break;
- case 0x02: // End Point
-- if ((le16_to_cpu(setup->vwValue) & 0xff) == 0) {
-+ if ((le16_to_cpu(setup->wValue) & 0xff) == 0) {
- endpoint_t *ep =
- epaddr_to_ep(dev,
-- le16_to_cpu(setup->index) & 0xff);
-+ le16_to_cpu(setup->wIndex) & 0xff);
-
- endpoint_stall(ep);
- } else
-@@ -716,7 +716,7 @@
- }
-
- static ep0_stage_t
--do_set_address(struct usb_dev* dev, devrequest* setup)
-+do_set_address(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- int new_state = dev->state;
- int new_addr = le16_to_cpu(setup->wValue);
-@@ -743,9 +743,9 @@
- }
-
- static ep0_stage_t
--do_get_descriptor(struct usb_dev* dev, devrequest* setup)
-+do_get_descriptor(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
-- int strnum, desc_len = le16_to_cpu(setup->length);
-+ int strnum, desc_len = le16_to_cpu(setup->wLength);
-
- switch (le16_to_cpu(setup->wValue) >> 8) {
- case USB_DT_DEVICE:
-@@ -812,7 +812,7 @@
- }
-
- static ep0_stage_t
--do_set_descriptor(struct usb_dev* dev, devrequest* setup)
-+do_set_descriptor(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- // TODO: implement
- // there will be an OUT data stage (the descriptor to set)
-@@ -820,7 +820,7 @@
- }
-
- static ep0_stage_t
--do_get_configuration(struct usb_dev* dev, devrequest* setup)
-+do_get_configuration(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- // send dev->configuration
- dbg("sending config");
-@@ -830,7 +830,7 @@
- }
-
- static ep0_stage_t
--do_set_configuration(struct usb_dev* dev, devrequest* setup)
-+do_set_configuration(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- // set active config to low-byte of setup->wValue
- dev->configuration = le16_to_cpu(setup->wValue) & 0xff;
-@@ -851,10 +851,10 @@
- }
-
- static ep0_stage_t
--do_get_interface(struct usb_dev* dev, devrequest* setup)
-+do_get_interface(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- // interface must be zero.
-- if ((le16_to_cpu(setup->index) & 0xff) || dev->state == ADDRESS) {
-+ if ((le16_to_cpu(setup->wIndex) & 0xff) || dev->state == ADDRESS) {
- // FIXME: respond with "request error". how?
- } else if (dev->state == CONFIGURED) {
- // send dev->alternate_setting
-@@ -868,12 +868,12 @@
- }
-
- static ep0_stage_t
--do_set_interface(struct usb_dev* dev, devrequest* setup)
-+do_set_interface(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- if (dev->state == ADDRESS) {
- // FIXME: respond with "request error". how?
- } else if (dev->state == CONFIGURED) {
-- dev->interface = le16_to_cpu(setup->index) & 0xff;
-+ dev->interface = le16_to_cpu(setup->wIndex) & 0xff;
- dev->alternate_setting =
- le16_to_cpu(setup->wValue) & 0xff;
- // interface and alternate_setting must be zero
-@@ -886,14 +886,14 @@
- }
-
- static ep0_stage_t
--do_synch_frame(struct usb_dev* dev, devrequest* setup)
-+do_synch_frame(struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- // TODO
- return SETUP_STAGE;
- }
-
- typedef ep0_stage_t (*req_method_t)(struct usb_dev* dev,
-- devrequest* setup);
-+ struct usb_ctrlrequest* setup);
-
-
- /* Table of the standard device request handlers */
-@@ -916,25 +916,25 @@
-
- // SETUP packet request dispatcher
- static void
--do_setup (struct usb_dev* dev, devrequest* setup)
-+do_setup (struct usb_dev* dev, struct usb_ctrlrequest* setup)
- {
- req_method_t m;
-
-- dbg(__FUNCTION__ ": req %d %s", setup->request,
-- get_std_req_name(setup->request));
-+ dbg(__FUNCTION__ ": req %d %s", setup->bRequestType,
-+ get_std_req_name(setup->bRequestType));
-
-- if ((setup->requesttype & USB_TYPE_MASK) != USB_TYPE_STANDARD ||
-- (setup->requesttype & USB_RECIP_MASK) != USB_RECIP_DEVICE) {
-+ if ((setup->bRequestType & USB_TYPE_MASK) != USB_TYPE_STANDARD ||
-+ (setup->bRequestType & USB_RECIP_MASK) != USB_RECIP_DEVICE) {
- err(__FUNCTION__ ": invalid requesttype 0x%02x",
-- setup->requesttype);
-+ setup->bRequestType);
- return;
- }
-
-- if ((setup->requesttype & 0x80) == USB_DIR_OUT && setup->length)
-- dbg(__FUNCTION__ ": OUT phase! length=%d", setup->length);
-+ if ((setup->bRequestType & 0x80) == USB_DIR_OUT && setup->wLength)
-+ dbg(__FUNCTION__ ": OUT phase! length=%d", setup->wLength);
-
-- if (setup->request < sizeof(req_method)/sizeof(req_method_t))
-- m = req_method[setup->request];
-+ if (setup->bRequestType < sizeof(req_method)/sizeof(req_method_t))
-+ m = req_method[setup->bRequestType];
- else
- m = do_reserved;
-
-@@ -973,14 +973,14 @@
- vdbg("SU bit is %s in setup stage",
- (pkt->status & PKT_STATUS_SU) ? "set" : "not set");
-
-- if (pkt->size == sizeof(devrequest)) {
-+ if (pkt->size == sizeof(struct usb_ctrlrequest)) {
- #ifdef VDEBUG
- if (pkt->status & PKT_STATUS_ACK)
- vdbg("received SETUP");
- else
- vdbg("received NAK SETUP");
- #endif
-- do_setup(dev, (devrequest*)pkt->payload);
-+ do_setup(dev, (struct usb_ctrlrequest*)pkt->payload);
- } else
- err(__FUNCTION__ ": wrong size SETUP received");
- break;
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Entries
---- linux-2.4.20/arch/mips/au1000/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Entries 2005-01-06 23:08:21.000000000 -0600
-@@ -0,0 +1,5 @@
-+D/common////
-+D/db1x00////
-+D/pb1000////
-+D/pb1100////
-+D/pb1500////
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Repository
---- linux-2.4.20/arch/mips/au1000/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Repository 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/au1000
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Root
---- linux-2.4.20/arch/mips/au1000/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Root 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Tag
---- linux-2.4.20/arch/mips/au1000/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/CVS/Tag 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Entries
---- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Entries 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1.2.1/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.2/Mon Dec 16 18:00:48 2002//Tlinux_2_4_20
-+/pci_ops.c/1.1.2.1/Wed Dec 11 06:12:29 2002//Tlinux_2_4_20
-+/setup.c/1.1.2.3/Tue Jan 7 10:41:30 2003//Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Repository
---- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Repository 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/au1000/db1x00
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Root
---- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Root 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Tag
---- linux-2.4.20/arch/mips/au1000/db1x00/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/CVS/Tag 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/init.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/init.c
---- linux-2.4.20/arch/mips/au1000/db1x00/init.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/init.c 2002-12-11 00:12:29.000000000 -0600
-@@ -0,0 +1,73 @@
-+/*
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * PB1000 board setup
-+ *
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * ppopov@mvista.com or source@mvista.com
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/mm.h>
-+#include <linux/sched.h>
-+#include <linux/bootmem.h>
-+#include <asm/addrspace.h>
-+#include <asm/bootinfo.h>
-+#include <linux/config.h>
-+#include <linux/string.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+
-+int prom_argc;
-+char **prom_argv, **prom_envp;
-+extern void __init prom_init_cmdline(void);
-+extern char *prom_getenv(char *envname);
-+
-+const char *get_system_type(void)
-+{
-+ return "Alchemy Db1000";
-+}
-+
-+int __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
-+{
-+ unsigned char *memsize_str;
-+ unsigned long memsize;
-+
-+ prom_argc = argc;
-+ prom_argv = argv;
-+ prom_envp = envp;
-+
-+ mips_machgroup = MACH_GROUP_ALCHEMY;
-+ mips_machtype = MACH_DB1000; /* set the platform # */
-+ prom_init_cmdline();
-+
-+ memsize_str = prom_getenv("memsize");
-+ if (!memsize_str) {
-+ memsize = 0x04000000;
-+ } else {
-+ memsize = simple_strtol(memsize_str, NULL, 0);
-+ }
-+ add_memory_region(0, memsize, BOOT_MEM_RAM);
-+ return 0;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/Makefile
---- linux-2.4.20/arch/mips/au1000/db1x00/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/Makefile 2002-12-11 00:12:29.000000000 -0600
-@@ -0,0 +1,24 @@
-+#
-+# Copyright 2000 MontaVista Software Inc.
-+# Author: MontaVista Software, Inc.
-+# ppopov@mvista.com or source@mvista.com
-+#
-+# Makefile for the Alchemy Semiconductor PB1000 board.
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+.S.s:
-+ $(CPP) $(CFLAGS) $< -o $*.s
-+.S.o:
-+ $(CC) $(CFLAGS) -c $< -o $*.o
-+
-+O_TARGET := db1x00.o
-+
-+obj-y := init.o setup.o
-+
-+obj-$(CONFIG_PCI) += pci_fixup.o pci_ops.o
-+
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_fixup.c
---- linux-2.4.20/arch/mips/au1000/db1x00/pci_fixup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_fixup.c 2002-12-16 12:00:48.000000000 -0600
-@@ -0,0 +1,107 @@
-+/*
-+ * BRIEF MODULE DESCRIPTION
-+ * Board specific pci fixups.
-+ *
-+ * Copyright 2001,2002 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * ppopov@mvista.com or source@mvista.com
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#include <linux/config.h>
-+
-+#ifdef CONFIG_PCI
-+
-+#include <linux/types.h>
-+#include <linux/pci.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+
-+#include <asm/au1000.h>
-+#include <asm/pb1500.h>
-+
-+#undef DEBUG
-+#ifdef DEBUG
-+#define DBG(x...) printk(x)
-+#else
-+#define DBG(x...)
-+#endif
-+
-+static void fixup_resource(int r_num, struct pci_dev *dev) ;
-+static unsigned long virt_io_addr;
-+
-+void __init pcibios_fixup_resources(struct pci_dev *dev)
-+{
-+ /* will need to fixup IO resources */
-+}
-+
-+void __init pcibios_fixup(void)
-+{
-+#ifdef CONFIG_CPU_AU1500
-+ int i;
-+ struct pci_dev *dev;
-+
-+ virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START,
-+ Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1);
-+
-+ if (!virt_io_addr) {
-+ printk(KERN_ERR "Unable to ioremap pci space\n");
-+ return;
-+ }
-+
-+ set_io_port_base(virt_io_addr);
-+#endif // CONFIG_CPU_AU1500
-+}
-+
-+void __init pcibios_fixup_irqs(void)
-+{
-+#ifdef CONFIG_CPU_AU1500
-+ unsigned int slot, func;
-+ unsigned char pin;
-+ struct pci_dev *dev;
-+
-+ pci_for_each_dev(dev) {
-+ if (dev->bus->number != 0)
-+ return;
-+
-+ dev->irq = 0xff;
-+ slot = PCI_SLOT(dev->devfn);
-+ switch (slot) {
-+ case 12:
-+ case 13:
-+ dev->irq = AU1000_PCI_INTA;
-+ break;
-+
-+ }
-+ pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-+ DBG("slot %d irq %d\n", slot, dev->irq);
-+ }
-+#endif // CONFIG_CPU_AU1500
-+}
-+unsigned int pcibios_assign_all_busses(void)
-+{
-+ return 0;
-+}
-+
-+static void fixup_resource(int r_num, struct pci_dev *dev)
-+{
-+}
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/pci_ops.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_ops.c
---- linux-2.4.20/arch/mips/au1000/db1x00/pci_ops.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/pci_ops.c 2002-12-11 00:12:29.000000000 -0600
-@@ -0,0 +1,251 @@
-+/*
-+ * BRIEF MODULE DESCRIPTION
-+ * Pb1500 specific pci support.
-+ *
-+ * Copyright 2001,2002 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * ppopov@mvista.com or source@mvista.com
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#include <linux/config.h>
-+
-+#ifdef CONFIG_PCI
-+
-+#include <linux/types.h>
-+#include <linux/pci.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+
-+#include <asm/au1000.h>
-+#include <asm/pb1500.h>
-+#include <asm/pci_channel.h>
-+
-+#define PCI_ACCESS_READ 0
-+#define PCI_ACCESS_WRITE 1
-+
-+#undef DEBUG
-+#ifdef DEBUG
-+#define DBG(x...) printk(x)
-+#else
-+#define DBG(x...)
-+#endif
-+
-+#ifndef CONFIG_CPU_AU1500
-+struct pci_channel mips_pci_channels[] = {
-+ {(struct pci_ops *) NULL, (struct resource *) NULL,
-+ (struct resource *) NULL, (int) NULL, (int) NULL}
-+};
-+#else
-+
-+/* TBD */
-+static struct resource pci_io_resource = {
-+ "pci IO space",
-+ Au1500_PCI_IO_START,
-+ Au1500_PCI_IO_END,
-+ IORESOURCE_IO
-+};
-+
-+static struct resource pci_mem_resource = {
-+ "pci memory space",
-+ Au1500_PCI_MEM_START,
-+ Au1500_PCI_MEM_END,
-+ IORESOURCE_MEM
-+};
-+
-+extern struct pci_ops pb1500_pci_ops;
-+
-+struct pci_channel mips_pci_channels[] = {
-+ {&pb1500_pci_ops, &pci_io_resource, &pci_mem_resource, (10<<3),(16<<3)},
-+ {(struct pci_ops *) NULL, (struct resource *) NULL,
-+ (struct resource *) NULL, (int) NULL, (int) NULL}
-+};
-+
-+static unsigned long cfg_addr;
-+static int config_access(unsigned char access_type, struct pci_dev *dev,
-+ unsigned char where, u32 * data)
-+{
-+ unsigned char bus = dev->bus->number;
-+ unsigned int dev_fn = dev->devfn;
-+ unsigned int device, function;
-+ unsigned long config, status;
-+ static int first = 1;
-+
-+ /*
-+ * 7:3 = slot
-+ * 2:0 = function
-+ */
-+
-+ if (bus != 0) {
-+ *data = 0xffffffff;
-+ return -1;
-+ }
-+
-+ if (first) {
-+ first = 0;
-+ cfg_addr = ioremap(Au1500_EXT_CFG, 0x10000000);
-+ if (!cfg_addr)
-+ printk (KERN_ERR "PCI unable to ioremap cfg space\n");
-+ }
-+
-+ device = (dev_fn >> 3) & 0x1f;
-+ function = dev_fn & 0x7;
-+
-+#if 1
-+ //if (!cfg_addr || (device < 10) || (device > 16)) {
-+ if (!cfg_addr || (device > 16)) {
-+ *data = 0xffffffff;
-+ return -1;
-+ }
-+#endif
-+
-+ au_writel(((0x2000 << 16) | (au_readl(Au1500_PCI_STATCMD) & 0xffff)),
-+ Au1500_PCI_STATCMD);
-+ //au_writel(au_readl(Au1500_PCI_CFG) & ~PCI_ERROR, Au1500_PCI_CFG);
-+ au_sync_udelay(1);
-+
-+ /* setup the lower 31 bits of the 36 bit address */
-+ config = cfg_addr |
-+ ((1<<device)<<11) | (function << 8) | (where & ~0x3);
-+
-+#if 0
-+ printk("cfg access: config %x, dev_fn %x, device %x function %x\n",
-+ config, dev_fn, device, function);
-+#endif
-+
-+ if (access_type == PCI_ACCESS_WRITE) {
-+ au_writel(*data, config);
-+ } else {
-+ *data = au_readl(config);
-+ }
-+ au_sync_udelay(1);
-+
-+ DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n",
-+ access_type, bus, device, where, *data, config);
-+
-+ /* check master abort */
-+ status = au_readl(Au1500_PCI_STATCMD);
-+ if (status & (1<<29)) {
-+ *data = 0xffffffff;
-+ return -1;
-+ } else if ((status >> 28) & 0xf) {
-+ DBG("PCI ERR detected: status %x\n", status);
-+ *data = 0xffffffff;
-+ return -1;
-+ }
-+ else {
-+ return PCIBIOS_SUCCESSFUL;
-+ }
-+}
-+
-+
-+static int read_config_byte(struct pci_dev *dev, int where, u8 * val)
-+{
-+ u32 data;
-+ int ret;
-+
-+ ret = config_access(PCI_ACCESS_READ, dev, where, &data);
-+ if (where & 1) data >>= 8;
-+ if (where & 2) data >>= 16;
-+ *val = data & 0xff;
-+ return ret;
-+}
-+
-+
-+static int read_config_word(struct pci_dev *dev, int where, u16 * val)
-+{
-+ u32 data;
-+ int ret;
-+
-+ ret = config_access(PCI_ACCESS_READ, dev, where, &data);
-+ if (where & 2) data >>= 16;
-+ *val = data & 0xffff;
-+ return ret;
-+}
-+
-+static int read_config_dword(struct pci_dev *dev, int where, u32 * val)
-+{
-+ int ret;
-+
-+ ret = config_access(PCI_ACCESS_READ, dev, where, val);
-+ return ret;
-+}
-+
-+
-+static int write_config_byte(struct pci_dev *dev, int where, u8 val)
-+{
-+ u32 data = 0;
-+
-+ if (config_access(PCI_ACCESS_READ, dev, where, &data))
-+ return -1;
-+
-+ data = (data & ~(0xff << ((where & 3) << 3))) |
-+ (val << ((where & 3) << 3));
-+
-+ if (config_access(PCI_ACCESS_WRITE, dev, where, &data))
-+ return -1;
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int write_config_word(struct pci_dev *dev, int where, u16 val)
-+{
-+ u32 data = 0;
-+
-+ if (where & 1)
-+ return PCIBIOS_BAD_REGISTER_NUMBER;
-+
-+ if (config_access(PCI_ACCESS_READ, dev, where, &data))
-+ return -1;
-+
-+ data = (data & ~(0xffff << ((where & 3) << 3))) |
-+ (val << ((where & 3) << 3));
-+
-+ if (config_access(PCI_ACCESS_WRITE, dev, where, &data))
-+ return -1;
-+
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int write_config_dword(struct pci_dev *dev, int where, u32 val)
-+{
-+ if (where & 3)
-+ return PCIBIOS_BAD_REGISTER_NUMBER;
-+
-+ if (config_access(PCI_ACCESS_WRITE, dev, where, &val))
-+ return -1;
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+struct pci_ops pb1500_pci_ops = {
-+ read_config_byte,
-+ read_config_word,
-+ read_config_dword,
-+ write_config_byte,
-+ write_config_word,
-+ write_config_dword
-+};
-+
-+#endif // CONFIG_CPU_AU1500
-+#endif /* CONFIG_PCI */
-+
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/db1x00/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/setup.c
---- linux-2.4.20/arch/mips/au1000/db1x00/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/db1x00/setup.c 2003-01-07 04:41:30.000000000 -0600
-@@ -0,0 +1,244 @@
-+/*
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Alchemy Db1000 board setup.
-+ *
-+ * Copyright 2000 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * ppopov@mvista.com or source@mvista.com
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/sched.h>
-+#include <linux/ioport.h>
-+#include <linux/mm.h>
-+#include <linux/console.h>
-+#include <linux/mc146818rtc.h>
-+#include <linux/delay.h>
-+
-+#include <asm/cpu.h>
-+#include <asm/bootinfo.h>
-+#include <asm/irq.h>
-+#include <asm/keyboard.h>
-+#include <asm/mipsregs.h>
-+#include <asm/reboot.h>
-+#include <asm/pgtable.h>
-+#include <asm/au1000.h>
-+#include <asm/db1x00.h>
-+
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
-+extern void console_setup(char *, int *);
-+char serial_console[20];
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+extern unsigned long initrd_start, initrd_end;
-+extern void * __rd_start, * __rd_end;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+extern struct ide_ops std_ide_ops;
-+extern struct ide_ops *ide_ops;
-+#endif
-+
-+void (*__wbflush) (void);
-+extern struct rtc_ops no_rtc_ops;
-+extern char * __init prom_getcmdline(void);
-+extern void au1000_restart(char *);
-+extern void au1000_halt(void);
-+extern void au1000_power_off(void);
-+extern struct resource ioport_resource;
-+extern struct resource iomem_resource;
-+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_AU1500)
-+extern phys_t (*fixup_bigphys_addr)(phys_t phys_addr, phys_t size);
-+static phys_t db_fixup_bigphys_addr(phys_t phys_addr, phys_t size);
-+#endif
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+void au1x00_wbflush(void)
-+{
-+ __asm__ volatile ("sync");
-+}
-+
-+void __init au1x00_setup(void)
-+{
-+ char *argptr;
-+ u32 pin_func, static_cfg0;
-+ u32 sys_freqctrl, sys_clksrc;
-+ u32 prid = read_c0_prid();
-+
-+ argptr = prom_getcmdline();
-+
-+ /* Various early Au1000 Errata corrected by this */
-+ set_c0_config(1<<19); /* Config[OD] */
-+
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
-+ if ((argptr = strstr(argptr, "console=")) == NULL) {
-+ argptr = prom_getcmdline();
-+ strcat(argptr, " console=ttyS0,115200");
-+ }
-+#endif
-+
-+#ifdef CONFIG_FB_AU1100
-+ if ((argptr = strstr(argptr, "video=")) == NULL) {
-+ argptr = prom_getcmdline();
-+ /* default panel */
-+ //strcat(argptr, " video=au1100fb:panel:Sharp_320x240_16");
-+ strcat(argptr, " video=au1100fb:panel:s10,nohwcursor");
-+ }
-+#endif
-+
-+#if defined(CONFIG_SOUND_AU1000) && !defined(CONFIG_CPU_AU1000)
-+ // au1000 does not support vra, au1500 and au1100 do
-+ strcat(argptr, " au1000_audio=vra");
-+ argptr = prom_getcmdline();
-+#endif
-+
-+ rtc_ops = &no_rtc_ops;
-+ __wbflush = au1x00_wbflush;
-+ _machine_restart = au1000_restart;
-+ _machine_halt = au1000_halt;
-+ _machine_power_off = au1000_power_off;
-+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_AU1500)
-+ fixup_bigphys_addr = db_fixup_bigphys_addr;
-+#endif
-+
-+ // IO/MEM resources.
-+ set_io_port_base(0);
-+#ifdef CONFIG_CPU_AU1500
-+ ioport_resource.start = 0x00000000;
-+#else
-+ /* don't allow any legacy ports probing */
-+ ioport_resource.start = 0x10000000;
-+#endif
-+ ioport_resource.end = 0xffffffff;
-+ iomem_resource.start = 0x10000000;
-+ iomem_resource.end = 0xffffffff;
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ initrd_start = (unsigned long)&__rd_start;
-+ initrd_end = (unsigned long)&__rd_end;
-+#endif
-+
-+ //
-+ // NOTE:
-+ //
-+ // YAMON (specifically reset_db1500.s) enables 32khz osc
-+ // YAMON (specifically reset_db1x00.s) setups all clocking and GPIOs
-+ // YAMON (specifically reset_db1500.s) setups all PCI
-+ //
-+
-+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#ifdef CONFIG_USB_OHCI
-+ if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
-+ char usb_args[80];
-+ argptr = prom_getcmdline();
-+ memset(usb_args, 0, sizeof(usb_args));
-+ sprintf(usb_args, " usb_ohci=base:0x%x,len:0x%x,irq:%d",
-+ USB_OHCI_BASE, USB_OHCI_LEN, AU1000_USB_HOST_INT);
-+ strcat(argptr, usb_args);
-+ }
-+#endif
-+
-+#ifdef CONFIG_USB_OHCI
-+ // enable host controller and wait for reset done
-+ au_writel(0x08, USB_HOST_CONFIG);
-+ udelay(1000);
-+ au_writel(0x0E, USB_HOST_CONFIG);
-+ udelay(1000);
-+ au_readl(USB_HOST_CONFIG); // throw away first read
-+ while (!(au_readl(USB_HOST_CONFIG) & 0x10))
-+ au_readl(USB_HOST_CONFIG);
-+#endif
-+
-+#ifdef CONFIG_AU1000_USB_DEVICE
-+ // 2nd USB port is USB device
-+ pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
-+ au_writel(pin_func, SYS_PINFUNC);
-+#endif
-+
-+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+
-+#ifdef CONFIG_FB
-+ // Needed if PCI video card in use
-+ conswitchp = &dummy_con;
-+#endif
-+
-+#ifndef CONFIG_SERIAL_NONSTANDARD
-+ /* don't touch the default serial console */
-+ au_writel(0, UART0_ADDR + UART_CLK);
-+#endif
-+ //au_writel(0, UART3_ADDR + UART_CLK);
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+ ide_ops = &std_ide_ops;
-+#endif
-+
-+#if 0
-+ //// FIX!!! must be valid for au1000, au1500 and au1100
-+ /* Enable Au1000 BCLK switching */
-+ switch (prid & 0x000000FF)
-+ {
-+ case 0x00: /* DA */
-+ case 0x01: /* HA */
-+ case 0x02: /* HB */
-+ break;
-+ default: /* HC and newer */
-+ au_writel(0x00000060, 0xb190003c);
-+ break;
-+ }
-+#endif
-+
-+ au_writel(0, 0xAE000010); /* turn off pcmcia power */
-+
-+#ifdef CONFIG_MIPS_DB1000
-+ printk("AMD Alchemy Au1000/Db1000 Board\n");
-+#endif
-+#ifdef CONFIG_MIPS_DB1500
-+ printk("AMD Alchemy Au1500/Db1500 Board\n");
-+#endif
-+#ifdef CONFIG_MIPS_DB1100
-+ printk("AMD Alchemy Au1100/Db1100 Board\n");
-+#endif
-+}
-+
-+#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_AU1500)
-+static phys_t db_fixup_bigphys_addr(phys_t phys_addr, phys_t size)
-+{
-+ u32 pci_start = (u32)Au1500_PCI_MEM_START;
-+ u32 pci_end = (u32)Au1500_PCI_MEM_END;
-+
-+ /* Don't fixup 36 bit addresses */
-+ if ((phys_addr >> 32) != 0) return phys_addr;
-+
-+ /* check for pci memory window */
-+ if ((phys_addr >= pci_start) && ((phys_addr + size) < pci_end)) {
-+ return (phys_t)((phys_addr - pci_start) +
-+ Au1500_PCI_MEM_START);
-+ }
-+ else
-+ return phys_addr;
-+}
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Entries
---- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Entries 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:38 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/init.c/1.4.2.4/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.3.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.2.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.8.2.8/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Repository
---- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Repository 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/au1000/pb1000
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Root
---- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Root 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Tag
---- linux-2.4.20/arch/mips/au1000/pb1000/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/CVS/Tag 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/.cvsignore
---- linux-2.4.20/arch/mips/au1000/pb1000/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/.cvsignore 2001-12-02 05:34:38.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1000/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/setup.c
---- linux-2.4.20/arch/mips/au1000/pb1000/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1000/setup.c 2002-12-11 00:12:29.000000000 -0600
-@@ -52,7 +52,7 @@
- #define CONFIG_AU1000_OHCI_FIX
- #endif
-
--#if defined(CONFIG_AU1000_SERIAL_CONSOLE)
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
- extern void console_setup(char *, int *);
- char serial_console[20];
- #endif
-@@ -67,6 +67,7 @@
- extern struct ide_ops *ide_ops;
- #endif
-
-+void (*__wbflush) (void);
- extern struct rtc_ops no_rtc_ops;
- extern char * __init prom_getcmdline(void);
- extern void au1000_restart(char *);
-@@ -77,19 +78,24 @@
-
- void __init bus_error_init(void) { /* nothing */ }
-
--void __init au1000_setup(void)
-+void au1000_wbflush(void)
-+{
-+ __asm__ volatile ("sync");
-+}
-+
-+void __init au1x00_setup(void)
- {
- char *argptr;
- u32 pin_func, static_cfg0;
- u32 sys_freqctrl, sys_clksrc;
-- u32 prid = read_32bit_cp0_register(CP0_PRID);
-+ u32 prid = read_c0_prid();
-
- argptr = prom_getcmdline();
-
- /* Various early Au1000 Errata corrected by this */
-- set_cp0_config(1<<19); /* Config[OD] */
-+ set_c0_config(1<<19); /* Config[OD] */
-
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- if ((argptr = strstr(argptr, "console=")) == NULL) {
- argptr = prom_getcmdline();
- strcat(argptr, " console=ttyS0,115200");
-@@ -97,6 +103,7 @@
- #endif
-
- rtc_ops = &no_rtc_ops;
-+ __wbflush = au1000_wbflush;
- _machine_restart = au1000_restart;
- _machine_halt = au1000_halt;
- _machine_power_off = au1000_power_off;
-@@ -119,7 +126,7 @@
- au_writel(0, SYS_PINSTATERD);
- udelay(100);
-
--#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
- #ifdef CONFIG_USB_OHCI
- if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
- char usb_args[80];
-@@ -181,7 +188,7 @@
- #ifdef CONFIG_USB_OHCI
- sys_clksrc |= ((4<<12) | (0<<11) | (0<<10));
- #endif
--#ifdef CONFIG_AU1000_USB_DEVICE
-+#ifdef CONFIG_AU1X00_USB_DEVICE
- sys_clksrc |= ((4<<7) | (0<<6) | (0<<5));
- #endif
- au_writel(sys_clksrc, SYS_CLKSRC);
-@@ -200,14 +207,14 @@
- // configure pins GPIO[14:9] as GPIO
- pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8080);
-
--#ifndef CONFIG_AU1000_USB_DEVICE
-+#ifndef CONFIG_AU1X00_USB_DEVICE
- // 2nd USB port is USB host
- pin_func |= 0x8000;
- #endif
- au_writel(pin_func, SYS_PINFUNC);
- au_writel(0x2800, SYS_TRIOUTCLR);
- au_writel(0x0030, SYS_OUTPUTCLR);
--#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
-
- // make gpio 15 an input (for interrupt line)
- pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x100);
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Entries
---- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Entries 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.6/Tue Dec 31 05:00:22 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Repository
---- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Repository 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/au1000/pb1100
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Root
---- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Root 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Tag
---- linux-2.4.20/arch/mips/au1000/pb1100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/CVS/Tag 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/Makefile
---- linux-2.4.20/arch/mips/au1000/pb1100/Makefile 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/Makefile 2002-11-13 04:00:14.000000000 -0600
-@@ -10,10 +10,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET := pb1100.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1100/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/setup.c
---- linux-2.4.20/arch/mips/au1000/pb1100/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1100/setup.c 2002-12-30 23:00:22.000000000 -0600
-@@ -52,7 +52,7 @@
- #define CONFIG_AU1000_OHCI_FIX
- #endif
-
--#if defined(CONFIG_AU1000_SERIAL_CONSOLE)
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
- extern void console_setup(char *, int *);
- char serial_console[20];
- #endif
-@@ -71,6 +71,7 @@
- extern struct rtc_ops pb1500_rtc_ops;
- #endif
-
-+void (*__wbflush) (void);
- extern char * __init prom_getcmdline(void);
- extern void au1000_restart(char *);
- extern void au1000_halt(void);
-@@ -81,7 +82,12 @@
-
- void __init bus_error_init(void) { /* nothing */ }
-
--void __init au1100_setup(void)
-+void au1100_wbflush(void)
-+{
-+ __asm__ volatile ("sync");
-+}
-+
-+void __init au1x00_setup(void)
- {
- char *argptr;
- u32 pin_func, static_cfg0;
-@@ -92,20 +98,21 @@
- /* NOTE: The memory map is established by YAMON 2.08+ */
-
- /* Various early Au1000 Errata corrected by this */
-- set_cp0_config(1<<19); /* Config[OD] */
-+ set_c0_config(1<<19); /* Config[OD] */
-
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- if ((argptr = strstr(argptr, "console=")) == NULL) {
- argptr = prom_getcmdline();
- strcat(argptr, " console=ttyS0,115200");
- }
- #endif
-
--#ifdef CONFIG_SOUND_AU1000
-+#ifdef CONFIG_SOUND_AU1X00
- strcat(argptr, " au1000_audio=vra");
- argptr = prom_getcmdline();
- #endif
-
-+ __wbflush = au1100_wbflush;
- _machine_restart = au1000_restart;
- _machine_halt = au1000_halt;
- _machine_power_off = au1000_power_off;
-@@ -128,7 +135,7 @@
- au_writel(0, SYS_PININPUTEN);
- udelay(100);
-
--#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
- #ifdef CONFIG_USB_OHCI
- if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
- char usb_args[80];
-@@ -175,12 +182,12 @@
-
- // get USB Functionality pin state (device vs host drive pins)
- pin_func = au_readl(SYS_PINFUNC) & (u32)(~0x8000);
--#ifndef CONFIG_AU1000_USB_DEVICE
-+#ifndef CONFIG_AU1X00_USB_DEVICE
- // 2nd USB port is USB host
- pin_func |= 0x8000;
- #endif
- au_writel(pin_func, SYS_PINFUNC);
--#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
-
- #ifdef CONFIG_USB_OHCI
- // enable host controller and wait for reset done
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Entries
---- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Entries 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.3/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.4/Mon Dec 16 18:00:48 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.1.2.4/Wed Dec 11 06:12:29 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.10/Sun Dec 29 10:30:35 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Repository
---- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Repository 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/au1000/pb1500
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Root
---- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Root 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Tag
---- linux-2.4.20/arch/mips/au1000/pb1500/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/CVS/Tag 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_fixup.c
---- linux-2.4.20/arch/mips/au1000/pb1500/pci_fixup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_fixup.c 2002-12-16 12:00:48.000000000 -0600
-@@ -57,8 +57,8 @@
- {
- int i;
- struct pci_dev *dev;
--
-- virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START,
-+
-+ virt_io_addr = (unsigned long)ioremap(Au1500_PCI_IO_START,
- Au1500_PCI_IO_END - Au1500_PCI_IO_START + 1);
-
- if (!virt_io_addr) {
-@@ -66,13 +66,7 @@
- return;
- }
-
-- pci_for_each_dev(dev) {
-- for (i=0; i < DEVICE_COUNT_RESOURCE; i++) {
-- if (dev->resource[i].start) {
-- fixup_resource(i, dev);
-- }
-- }
-- }
-+ set_io_port_base(virt_io_addr);
- }
-
- void __init pcibios_fixup_irqs(void)
-@@ -103,17 +97,7 @@
- return 0;
- }
-
--static void fixup_resource(int r_num, struct pci_dev *dev)
-+static void fixup_resource(int r_num, struct pci_dev *dev)
- {
-- unsigned long start, size, new_start;
--
-- if (dev->resource[r_num].flags & IORESOURCE_IO) {
-- start = dev->resource[r_num].start;
-- size = dev->resource[r_num].end - start;
-- new_start = virt_io_addr + (start - Au1500_PCI_IO_START);
-- dev->resource[r_num].start = new_start;
-- dev->resource[r_num].end = new_start + size;
-- }
- }
--
- #endif
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/pci_ops.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_ops.c
---- linux-2.4.20/arch/mips/au1000/pb1500/pci_ops.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/pci_ops.c 2002-12-11 00:12:29.000000000 -0600
-@@ -6,6 +6,8 @@
- * Author: MontaVista Software, Inc.
- * ppopov@mvista.com or source@mvista.com
- *
-+ * Support for all devices (greater than 16) added by David Gathright.
-+ *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
-@@ -46,78 +48,66 @@
- #ifdef DEBUG
- #define DBG(x...) printk(x)
- #else
--#define DBG(x...)
-+#define DBG(x...)
- #endif
-
- /* TBD */
- static struct resource pci_io_resource = {
-- "pci IO space",
-- Au1500_PCI_IO_START,
-- Au1500_PCI_IO_END,
-+ "pci IO space",
-+ (u32)Au1500_PCI_IO_START + 0x300,
-+ (u32)Au1500_PCI_IO_END,
- IORESOURCE_IO
- };
-
- static struct resource pci_mem_resource = {
-- "pci memory space",
-- Au1500_PCI_MEM_START,
-- Au1500_PCI_MEM_END,
-+ "pci memory space",
-+ (u32)Au1500_PCI_MEM_START,
-+ (u32)Au1500_PCI_MEM_END,
- IORESOURCE_MEM
- };
-
- extern struct pci_ops pb1500_pci_ops;
-
- struct pci_channel mips_pci_channels[] = {
-- {&pb1500_pci_ops, &pci_io_resource, &pci_mem_resource, (10<<3),(16<<3)},
-+ {&pb1500_pci_ops, &pci_io_resource, &pci_mem_resource, (0<<3),(19<<3)},
- {(struct pci_ops *) NULL, (struct resource *) NULL,
- (struct resource *) NULL, (int) NULL, (int) NULL}
- };
-
--static unsigned long cfg_addr;
--static int config_access(unsigned char access_type, struct pci_dev *dev,
-+static int config_access(unsigned char access_type, struct pci_dev *dev,
- unsigned char where, u32 * data)
- {
- unsigned char bus = dev->bus->number;
- unsigned int dev_fn = dev->devfn;
-- unsigned int device, function;
-+ unsigned int device = PCI_SLOT(dev_fn);
-+ unsigned int function = PCI_FUNC(dev_fn);
- unsigned long config, status;
-- static int first = 1;
--
-- /*
-- * 7:3 = slot
-- * 2:0 = function
-- */
--
-- if (bus != 0) {
-- *data = 0xffffffff;
-- return -1;
-- }
--
-- if (first) {
-- first = 0;
-- cfg_addr = ioremap(Au1500_EXT_CFG, 0x10000000);
-- if (!cfg_addr)
-- printk (KERN_ERR "PCI unable to ioremap cfg space\n");
-- }
--
-- device = (dev_fn >> 3) & 0x1f;
-- function = dev_fn & 0x7;
-+ unsigned long cfg_addr;
-
--#if 1
-- //if (!cfg_addr || (device < 10) || (device > 16)) {
-- if (!cfg_addr || (device > 16)) {
-+ if (device > 19) {
- *data = 0xffffffff;
- return -1;
- }
--#endif
-
-- au_writel(((0x2000 << 16) | (au_readl(Au1500_PCI_STATCMD) & 0xffff)),
-+ au_writel(((0x2000 << 16) | (au_readl(Au1500_PCI_STATCMD) & 0xffff)),
- Au1500_PCI_STATCMD);
- //au_writel(au_readl(Au1500_PCI_CFG) & ~PCI_ERROR, Au1500_PCI_CFG);
- au_sync_udelay(1);
-
-- /* setup the lower 31 bits of the 36 bit address */
-- config = cfg_addr |
-- ((1<<device)<<11) | (function << 8) | (where & ~0x3);
-+ /* setup the config window */
-+ if (bus == 0) {
-+ cfg_addr = ioremap( Au1500_EXT_CFG | ((1<<device)<<11) ,
-+ 0x00100000);
-+ } else {
-+ cfg_addr = ioremap( Au1500_EXT_CFG_TYPE1 | (bus<<16) |
-+ (device<<11), 0x00100000);
-+ }
-+
-+ if (!cfg_addr)
-+ panic (KERN_ERR "PCI unable to ioremap cfg space\n");
-+
-+ /* setup the lower bits of the 36 bit address */
-+ config = cfg_addr | (function << 8) | (where & ~0x3);
-
- #if 0
- printk("cfg access: config %x, dev_fn %x, device %x function %x\n",
-@@ -129,22 +119,28 @@
- } else {
- *data = au_readl(config);
- }
-- au_sync_udelay(1);
-+ au_sync_udelay(2);
-
-- DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n",
-+
-+ DBG("config_access: %d bus %d device %d at %x *data %x, conf %x\n",
- access_type, bus, device, where, *data, config);
-
-+ /* unmap io space */
-+ iounmap( cfg_addr );
-+
- /* check master abort */
- status = au_readl(Au1500_PCI_STATCMD);
-- if (status & (1<<29)) {
-+#if 0
-+printk("cfg access: status %x, data %x\n", status, *data );
-+#endif
-+ if (status & (1<<29)) {
- *data = 0xffffffff;
- return -1;
- } else if ((status >> 28) & 0xf) {
- DBG("PCI ERR detected: status %x\n", status);
- *data = 0xffffffff;
- return -1;
-- }
-- else {
-+ } else {
- return PCIBIOS_SUCCESSFUL;
- }
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/au1000/pb1500/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/setup.c
---- linux-2.4.20/arch/mips/au1000/pb1500/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/au1000/pb1500/setup.c 2002-12-29 04:30:35.000000000 -0600
-@@ -43,6 +43,7 @@
- #include <asm/mipsregs.h>
- #include <asm/reboot.h>
- #include <asm/pgtable.h>
-+#include <asm/wbflush.h>
- #include <asm/au1000.h>
- #include <asm/pb1500.h>
-
-@@ -52,7 +53,7 @@
- #define CONFIG_AU1000_OHCI_FIX
- #endif
-
--#if defined(CONFIG_AU1000_SERIAL_CONSOLE)
-+#if defined(CONFIG_AU1X00_SERIAL_CONSOLE)
- extern void console_setup(char *, int *);
- char serial_console[20];
- #endif
-@@ -71,17 +72,27 @@
- extern struct rtc_ops pb1500_rtc_ops;
- #endif
-
-+void (*__wbflush) (void);
- extern char * __init prom_getcmdline(void);
- extern void au1000_restart(char *);
- extern void au1000_halt(void);
- extern void au1000_power_off(void);
- extern struct resource ioport_resource;
- extern struct resource iomem_resource;
-+#ifdef CONFIG_64BIT_PHYS_ADDR
-+extern phys_t (*fixup_bigphys_addr)(phys_t phys_addr, phys_t size);
-+static phys_t pb1500_fixup_bigphys_addr(phys_t phys_addr, phys_t size);
-+#endif
-
-
- void __init bus_error_init(void) { /* nothing */ }
-
--void __init au1500_setup(void)
-+void au1500_wbflush(void)
-+{
-+ __asm__ volatile ("sync");
-+}
-+
-+void __init au1x00_setup(void)
- {
- char *argptr;
- u32 pin_func, static_cfg0;
-@@ -92,27 +103,31 @@
- /* NOTE: The memory map is established by YAMON 2.08+ */
-
- /* Various early Au1500 Errata corrected by this */
-- set_cp0_config(1<<19); /* Config[OD] */
-+ set_c0_config(1<<19); /* Config[OD] */
-
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
- if ((argptr = strstr(argptr, "console=")) == NULL) {
- argptr = prom_getcmdline();
- strcat(argptr, " console=ttyS0,115200");
- }
- #endif
-
--#ifdef CONFIG_SOUND_AU1000
-+#ifdef CONFIG_SOUND_AU1X00
- strcat(argptr, " au1000_audio=vra");
- argptr = prom_getcmdline();
- #endif
-
-+ __wbflush = au1500_wbflush;
- _machine_restart = au1000_restart;
- _machine_halt = au1000_halt;
- _machine_power_off = au1000_power_off;
-+#ifdef CONFIG_64BIT_PHYS_ADDR
-+ fixup_bigphys_addr = pb1500_fixup_bigphys_addr;
-+#endif
-
- // IO/MEM resources.
- set_io_port_base(0);
-- ioport_resource.start = 0x10000000;
-+ ioport_resource.start = 0x00000000;
- ioport_resource.end = 0xffffffff;
- iomem_resource.start = 0x10000000;
- iomem_resource.end = 0xffffffff;
-@@ -128,7 +143,7 @@
- au_writel(0, SYS_PINSTATERD);
- udelay(100);
-
--#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#if defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
- #ifdef CONFIG_USB_OHCI
- if ((argptr = strstr(argptr, "usb_ohci=")) == NULL) {
- char usb_args[80];
-@@ -178,7 +193,7 @@
- pin_func |= 0x8000;
- #endif
- au_writel(pin_func, SYS_PINFUNC);
--#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1000_USB_DEVICE)
-+#endif // defined (CONFIG_USB_OHCI) || defined (CONFIG_AU1X00_USB_DEVICE)
-
-
- #ifdef CONFIG_USB_OHCI
-@@ -259,3 +274,23 @@
- }
- #endif
- }
-+
-+#ifdef CONFIG_64BIT_PHYS_ADDR
-+static phys_t pb1500_fixup_bigphys_addr(phys_t phys_addr,
-+ phys_t size)
-+{
-+ u32 pci_start = (u32)Au1500_PCI_MEM_START;
-+ u32 pci_end = (u32)Au1500_PCI_MEM_END;
-+
-+ /* Don't fixup 36 bit addresses */
-+ if ((phys_addr >> 32) != 0) return phys_addr;
-+
-+ /* check for pci memory window */
-+ if ((phys_addr >= pci_start) && ((phys_addr + size) < pci_end)) {
-+ return (phys_t)((phys_addr - pci_start) +
-+ Au1500_PCI_MEM_START);
-+ }
-+ else
-+ return phys_addr;
-+}
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/baget.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/baget.c
---- linux-2.4.20/arch/mips/baget/baget.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/baget.c 2002-08-05 18:53:31.000000000 -0500
-@@ -20,7 +20,7 @@
- * Following code is based on routines from 'mm/vmalloc.c'
- * Additional parameters ioaddr is needed to iterate across real I/O address.
- */
--static inline int alloc_area_pte(pte_t * pte, unsigned long address,
-+static inline int alloc_area_pte(pte_t * pte, unsigned long address,
- unsigned long size, unsigned long ioaddr)
- {
- unsigned long end;
-@@ -35,7 +35,7 @@
- printk("kseg2_alloc_io: page already exists\n");
- /*
- * For MIPS looks pretty to have transparent mapping
-- * for KSEG2 areas -- user can't access one, and no
-+ * for KSEG2 areas -- user can't access one, and no
- * problems with virtual <--> physical translation.
- */
- page = ioaddr & PAGE_MASK;
-@@ -49,7 +49,7 @@
- return 0;
- }
-
--static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address,
-+static inline int alloc_area_pmd(pmd_t * pmd, unsigned long address,
- unsigned long size, unsigned long ioaddr)
- {
- unsigned long end;
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/bagetIRQ.S linux-2.4.20-mipscvs-20050106/arch/mips/baget/bagetIRQ.S
---- linux-2.4.20/arch/mips/baget/bagetIRQ.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/bagetIRQ.S 2002-08-05 18:53:31.000000000 -0500
-@@ -24,28 +24,28 @@
- .set push
- .set noreorder
- jal a1
-- .set pop
-- move a0, sp
-+ .set pop
-+ move a0, sp
-
- la a1, ret_from_irq
- jr a1
- END(bagetIRQ)
--
-+
- #define DBE_HANDLER 0x1C
--
-+
- NESTED(try_read, PT_SIZE, sp)
- mfc0 t3, CP0_STATUS # save flags and
- CLI # disable interrupts
-
- li t0, KSEG2
-- sltu t1, t0, a0 # Is it KSEG2 address ?
-- beqz t1, mapped # No - already mapped !
--
-- move t0, a0
-+ sltu t1, t0, a0 # Is it KSEG2 address ?
-+ beqz t1, mapped # No - already mapped !
-+
-+ move t0, a0
- ori t0, 0xfff
- xori t0, 0xfff # round address to page
-
-- ori t1, t0, 0xf00 # prepare EntryLo (N,V,D,G)
-+ ori t1, t0, 0xf00 # prepare EntryLo (N,V,D,G)
-
- mfc0 t2, CP0_ENTRYHI # save ASID value
- mtc0 zero, CP0_INDEX
-@@ -56,15 +56,15 @@
- tlbwi # ... and write ones
- nop
- nop
-- mtc0 t2, CP0_ENTRYHI
--
--mapped:
-+ mtc0 t2, CP0_ENTRYHI
-+
-+mapped:
- la t0, exception_handlers
- lw t1, DBE_HANDLER(t0) # save real handler
-- la t2, dbe_handler
-+ la t2, dbe_handler
- sw t2, DBE_HANDLER(t0) # set temporary local handler
- li v0, -1 # default (failure) value
--
-+
- li t2, 1
- beq t2, a1, 1f
- li t2, 2
-@@ -80,13 +80,13 @@
- b out
-
- 4: lw v0, (a0) # word
--
--out:
-+
-+out:
- sw t1, DBE_HANDLER(t0) # restore real handler
- mtc0 t3, CP0_STATUS # restore CPU flags
-- jr ra
--
--dbe_handler:
-+ jr ra
-+
-+dbe_handler:
- li v0, -1 # mark our failure
- .set push
- .set noreorder
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/balo.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo.c
---- linux-2.4.20/arch/mips/baget/balo.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo.c 2002-08-05 18:53:31.000000000 -0500
-@@ -16,7 +16,7 @@
-
- static void mem_move (long *to, long *from, long size)
- {
-- while (size > 0) {
-+ while (size > 0) {
- *to++ = *from++;
- size -= sizeof(long);
- }
-@@ -59,7 +59,7 @@
- "jr\t%1\n\t"
- "nop\n\t"
- ".set\tat\n\t"
-- ".set\treorder"
-+ ".set\treorder"
- : "=&r" (tmp)
- : "Ir" (start), "Ir" (mem_upper)
- : "memory");
-@@ -71,7 +71,7 @@
- extern char _ramdisk_start, _ramdisk_end;
-
- outs( "Relocating Linux... " );
-- mem_move((long*)KSEG0, (long*)&_vmlinux_start,
-+ mem_move((long*)KSEG0, (long*)&_vmlinux_start,
- &_vmlinux_end-&_vmlinux_start);
- outs("done.\n");
-
-@@ -86,7 +86,7 @@
- outs("done.\n");
- }
-
-- {
-+ {
- extern void flush_cache_low(int isize, int dsize);
- flush_cache_low(256*1024,256*1024);
- }
-@@ -102,10 +102,10 @@
- balo_state = MEM_PROBE;
- outs("RAM: <");
- while(mem_limit < mem_limit_dbe) {
-- if (can_write(mem_limit) && *mem_limit != 0)
-+ if (can_write(mem_limit) && *mem_limit != 0)
- break; /* cycle found */
- outc('.');
-- if (can_write(mem_limit))
-+ if (can_write(mem_limit))
- *mem_limit = -1; /* mark */
- mem_limit += 0x40000;
- }
-@@ -124,7 +124,7 @@
- }
-
- void int_handler(struct pt_regs *regs)
--{
-+{
- switch (balo_state) {
- case BALO_INIT:
- balo_printf("\nBALO: trap in balo itself.\n");
-@@ -162,7 +162,7 @@
-
- while(1) {
- *mem_limit_dbe;
-- if (can_write(mem_limit_dbe))
-+ if (can_write(mem_limit_dbe))
- *mem_limit_dbe = 0;
-
- mem_limit_dbe += 0x40000; /* +1M */
-@@ -174,7 +174,7 @@
- {
- extern void except_vec3_generic(void);
-
-- cli();
-+ cli();
- outs(banner);
- memcpy((void *)(KSEG0 + 0x80), &except_vec3_generic, 0x80);
- mem_init();
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/balo_supp.S linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo_supp.S
---- linux-2.4.20/arch/mips/baget/balo_supp.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/balo_supp.S 2002-08-05 18:53:31.000000000 -0500
-@@ -8,10 +8,10 @@
- #include <asm/stackframe.h>
- #include <asm/mipsregs.h>
- #include <asm/addrspace.h>
--
-+
- .text
- .set mips1
--
-+
- /* General exception vector. */
- NESTED(except_vec3_generic, 0, sp)
- .set noat
-@@ -20,7 +20,7 @@
- END(except_vec3_generic)
-
- NESTED(except_vec3_generic_code, 0, sp)
-- SAVE_ALL
-+ SAVE_ALL
- mfc0 k1, CP0_CAUSE
- la k0, int_cause
- sw k1, (k0)
-@@ -33,7 +33,7 @@
- la k0, badvaddr
- sw k1, (k0)
-
-- la k0, int_handler
-+ la k0, int_handler
- .set noreorder
- jal k0
- .set reorder
-@@ -47,7 +47,7 @@
- .set at
- .set macro
- .set noreorder
--
-+
- move t1, a0 # ISIZE
- move t2, a1 # DSIZE
-
-@@ -88,7 +88,7 @@
- sb zero, -8(t0)
- bne t0, t1, 1b
- sb zero, -4(t0)
--
-+
- la v0, 1f
- or v0, KSEG1
- j v0 # Run uncached
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Entries
---- linux-2.4.20/arch/mips/baget/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Entries 2005-01-06 23:08:21.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.5.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/baget.c/1.3.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/bagetIRQ.S/1.3.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/balo.c/1.3.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/balo_supp.S/1.3.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.13.2.2/Mon Dec 2 00:24:45 2002/-ko/Tlinux_2_4_20
-+/ld.script.balo/1.2.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/print.c/1.3.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1/Sun Jan 17 03:49:38 1999/-ko/Tlinux_2_4_20
-+/setup.c/1.7.2.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/time.c/1.6.4.1/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/vacserial.c/1.13.2.4/Thu Nov 7 01:47:45 2002/-ko/Tlinux_2_4_20
-+D/prom////
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Repository
---- linux-2.4.20/arch/mips/baget/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Repository 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/baget
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Root
---- linux-2.4.20/arch/mips/baget/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Root 2005-01-06 23:00:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Tag
---- linux-2.4.20/arch/mips/baget/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/baget/.cvsignore
---- linux-2.4.20/arch/mips/baget/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/irq.c
---- linux-2.4.20/arch/mips/baget/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/irq.c 2002-12-01 18:24:45.000000000 -0600
-@@ -32,19 +32,19 @@
- /*
- * This table is a correspondence between IRQ numbers and CPU PILs
- */
--
--static int irq_to_pil_map[BAGET_IRQ_NR] = {
-+
-+static int irq_to_pil_map[BAGET_IRQ_NR] = {
- 7/*fixme: dma_err -1*/,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, /* 0x00 - 0x0f */
- -1,-1,-1,-1, 3,-1,-1,-1, 2, 2, 2,-1, 3,-1,-1,3/*fixme: lance*/, /* 0x10 - 0x1f */
- -1,-1,-1,-1,-1,-1, 5,-1,-1,-1,-1,-1, 7,-1,-1,-1, /* 0x20 - 0x2f */
- -1, 3, 2/*fixme systimer:3*/, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3 /* 0x30 - 0x3f */
- };
-
--static inline int irq_to_pil(int irq_nr)
-+static inline int irq_to_pil(int irq_nr)
- {
- int pil = -1;
-
-- if (irq_nr >= BAGET_IRQ_NR)
-+ if (irq_nr >= BAGET_IRQ_NR)
- baget_printk("irq_to_pil: too large irq_nr = 0x%x\n", irq_nr);
- else {
- pil = irq_to_pil_map[irq_nr];
-@@ -59,13 +59,13 @@
-
- static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
- {
-- unsigned long status = read_32bit_cp0_register(CP0_STATUS);
-+ unsigned long status = read_c0_status();
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
-- write_32bit_cp0_register(CP0_STATUS, status);
-+ write_c0_status(status);
- }
-
--/*
-+/*
- * These two functions may be used for unconditional IRQ
- * masking via their PIL protection.
- */
-@@ -91,22 +91,22 @@
-
- static volatile unsigned int pil_in_use[BAGET_PIL_NR] = { 0, };
-
--void mask_irq_count(int irq_nr)
-+void mask_irq_count(int irq_nr)
- {
- unsigned long flags;
- int pil = irq_to_pil(irq_nr);
--
-+
- save_and_cli(flags);
- if (!--pil_in_use[pil])
- mask_irq(irq_nr);
- restore_flags(flags);
- }
-
--void unmask_irq_count(int irq_nr)
-+void unmask_irq_count(int irq_nr)
- {
- unsigned long flags;
- int pil = irq_to_pil(irq_nr);
--
-+
- save_and_cli(flags);
- if (!pil_in_use[pil]++)
- unmask_irq(irq_nr);
-@@ -148,7 +148,7 @@
-
- for (i = 0 ; i < BAGET_IRQ_NR ; i++) {
- action = irq_action[i];
-- if (!action)
-+ if (!action)
- continue;
- len += sprintf(buf+len, "%2d: %8d %c %s",
- i, kstat.irqs[0][i],
-@@ -181,7 +181,7 @@
- irq_enter(cpu, irq);
- kstat.irqs[cpu][irq]++;
-
-- mask_irq(irq);
-+ mask_irq(irq);
- action = *(irq + irq_action);
- if (action) {
- if (!(action->flags & SA_INTERRUPT))
-@@ -208,14 +208,14 @@
- /*
- * What to do in case of 'no VIC register available' for current interrupt
- */
--static void vic_reg_error(unsigned long address, unsigned char active_pils)
-+static void vic_reg_error(unsigned long address, unsigned char active_pils)
- {
- printk("\nNo VIC register found: reg=%08lx active_pils=%02x\n"
-- "Current interrupt mask from CP0_CAUSE: %02x\n",
-- address, 0xff & active_pils,
-- 0xff & (read_32bit_cp0_register(CP0_CAUSE)>>8));
-+ "Current interrupt mask from CP0_CAUSE: %02x\n",
-+ address, 0xff & active_pils,
-+ 0xff & (read_c0_cause()>>8));
- { int i; for (i=0; i<10000; i++) udelay(1000); }
--}
-+}
-
- static char baget_fpu_irq = BAGET_FPU_IRQ;
- #define BAGET_INT_FPU {(unsigned long)&baget_fpu_irq, 1}
-@@ -225,27 +225,27 @@
- */
- asmlinkage void baget_interrupt(struct pt_regs *regs)
- {
-- static struct baget_int_reg int_reg[BAGET_PIL_NR] = {
-+ static struct baget_int_reg int_reg[BAGET_PIL_NR] = {
- BAGET_INT_NONE, BAGET_INT_NONE, BAGET_INT0_ACK, BAGET_INT1_ACK,
-- BAGET_INT_NONE, BAGET_INT_FPU, BAGET_INT_NONE, BAGET_INT5_ACK
-+ BAGET_INT_NONE, BAGET_INT_FPU, BAGET_INT_NONE, BAGET_INT5_ACK
- };
- unsigned char active_pils;
-- while ((active_pils = read_32bit_cp0_register(CP0_CAUSE)>>8)) {
-+ while ((active_pils = read_c0_cause()>>8)) {
- int pil;
- struct baget_int_reg* reg;
-
- for (pil = 0; pil < BAGET_PIL_NR; pil++) {
- if (!(active_pils & (1<<pil))) continue;
--
-+
- reg = &int_reg[pil];
-
- if (reg->address) {
- extern int try_read(unsigned long,int);
- int irq = try_read(reg->address, reg->size);
-
-- if (irq != -1)
-+ if (irq != -1)
- do_IRQ(BAGET_IRQ_MASK(irq), regs);
-- else
-+ else
- vic_reg_error(reg->address, active_pils);
- } else {
- printk("baget_interrupt: unknown interrupt "
-@@ -297,9 +297,9 @@
- return 0;
- }
-
--int request_irq(unsigned int irq,
-+int request_irq(unsigned int irq,
- void (*handler)(int, void *, struct pt_regs *),
-- unsigned long irqflags,
-+ unsigned long irqflags,
- const char * devname,
- void *dev_id)
- {
-@@ -310,12 +310,12 @@
- return -EINVAL;
- if (!handler)
- return -EINVAL;
-- if (irq_to_pil_map[irq] < 0)
-+ if (irq_to_pil_map[irq] < 0)
- return -EINVAL;
-
- action = (struct irqaction *)
- kmalloc(sizeof(struct irqaction), GFP_KERNEL);
-- if (!action)
-+ if (!action)
- return -ENOMEM;
-
- action->handler = handler;
-@@ -332,13 +332,13 @@
-
- return retval;
- }
--
-+
- void free_irq(unsigned int irq, void *dev_id)
- {
- struct irqaction * action, **p;
- unsigned long flags;
-
-- if (irq >= BAGET_IRQ_NR)
-+ if (irq >= BAGET_IRQ_NR)
- printk("Trying to free IRQ%d\n",irq);
-
- for (p = irq + irq_action; (action = *p) != NULL; p = &action->next) {
-@@ -375,7 +375,7 @@
- *(volatile char*) BAGET_WRERR_ACK = 0;
- }
-
--static struct irqaction irq0 =
-+static struct irqaction irq0 =
- { write_err_interrupt, SA_INTERRUPT, 0, "bus write error", NULL, NULL};
-
- void __init init_IRQ(void)
-@@ -388,6 +388,6 @@
- /* Enable interrupts for pils 2 and 3 (lines 0 and 1) */
- modify_cp0_intmask(0, (1<<2)|(1<<3));
-
-- if (setup_baget_irq(0, &irq0) < 0)
-+ if (setup_baget_irq(0, &irq0) < 0)
- printk("init_IRQ: unable to register write_err irq\n");
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/ld.script.balo linux-2.4.20-mipscvs-20050106/arch/mips/baget/ld.script.balo
---- linux-2.4.20/arch/mips/baget/ld.script.balo 2001-07-02 16:40:14.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/ld.script.balo 2002-08-05 18:53:31.000000000 -0500
-@@ -42,13 +42,13 @@
- /* Startup code */
- . = ALIGN(4096);
- __init_begin = .;
-- *(.text.init)
-- *(.data.init)
-+ *(.text.init)
-+ *(.data.init)
- . = ALIGN(4096); /* Align double page for init_task_union */
- __init_end = .;
-
-- *(.fini)
-- *(.reginfo)
-+ *(.fini)
-+ *(.reginfo)
- /* Adjust the address for the data segment. We want to adjust up to
- the same address within the page on the next page up. It would
- be more correct to do this:
-@@ -68,18 +68,18 @@
- *(.data)
- CONSTRUCTORS
-
-- *(.data1)
-+ *(.data1)
- _gp = . + 0x8000;
-- *(.lit8)
-- *(.lit4)
-- *(.ctors)
-- *(.dtors)
-- *(.got.plt) *(.got)
-- *(.dynamic)
-+ *(.lit8)
-+ *(.lit4)
-+ *(.ctors)
-+ *(.dtors)
-+ *(.got.plt) *(.got)
-+ *(.dynamic)
- /* We want the small data sections together, so single-instruction offsets
- can access them all, and initialized data all before uninitialized, so
- we can shorten the on-disk segment size. */
-- *(.sdata)
-+ *(.sdata)
- _edata = .;
- PROVIDE (edata = .);
-
-@@ -96,21 +96,21 @@
-
- /* These are needed for ELF backends which have not yet been
- converted to the new style linker. */
-- *(.stab)
-- *(.stabstr)
-+ *(.stab)
-+ *(.stabstr)
- /* DWARF debug sections.
- Symbols in the .debug DWARF section are relative to the beginning of the
- section so we begin .debug at 0. It's not clear yet what needs to happen
- for the others. */
-- *(.debug)
-- *(.debug_srcinfo)
-- *(.debug_aranges)
-- *(.debug_pubnames)
-- *(.debug_sfnames)
-- *(.line)
-+ *(.debug)
-+ *(.debug_srcinfo)
-+ *(.debug_aranges)
-+ *(.debug_pubnames)
-+ *(.debug_sfnames)
-+ *(.line)
- /* These must appear regardless of . */
-- *(.gptab.data) *(.gptab.sdata)
-- *(.gptab.bss) *(.gptab.sbss)
-+ *(.gptab.data) *(.gptab.sdata)
-+ *(.gptab.bss) *(.gptab.sbss)
-
- _vmlinux_start = .;
- *(.vmlinux)
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/baget/Makefile
---- linux-2.4.20/arch/mips/baget/Makefile 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/Makefile 2002-08-05 18:53:31.000000000 -0500
-@@ -8,13 +8,13 @@
- #
- # Note 2! The CFLAGS definitions are now in the main makefile...
-
--all: baget.a
-+all: baget.a
-
- O_TARGET := baget.a
-
- export-objs := vacserial.o vacrtc.o
- obj-y := baget.o print.o setup.o time.o irq.o bagetIRQ.o \
-- reset.o wbflush.o
-+ reset.o
- obj-$(CONFIG_SERIAL) += vacserial.o
- obj-$(CONFIG_VAC_RTC) += vacrtc.o
-
-@@ -39,7 +39,7 @@
- dummy.o: dummy.c image.bin ramdisk.bin
- $(CC) $(CFLAGS) -c -o $@ $<
- $(OBJCOPY) --add-section=.vmlinux=image.bin \
-- --add-section=.ramdisk=ramdisk.bin $@
-+ --add-section=.ramdisk=ramdisk.bin $@
-
- balo.h: image
- $(NM) $< | awk ' \
-@@ -50,13 +50,13 @@
- /balo_ramdisk_size/ { printf "#define RAMDISK_SIZE 0x%s\n", $$1 } \
- ' > $@
- balo.o: balo.c balo.h
-- $(CC) $(CFLAGS) -c $<
-+ $(CC) $(CFLAGS) -c $<
-
- balo_supp.o: balo_supp.S
- $(CC) $(CFLAGS) -c $<
-
- balo: balo.o dummy.o balo_supp.o print.o
-- $(LD) $(LDFLAGS) -T ld.script.balo -o $@ $^
-+ $(LD) $(LDFLAGS) -T ld.script.balo -o $@ $^
-
- clean:
- rm -f balo balo.h dummy.c image image.bin
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/print.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/print.c
---- linux-2.4.20/arch/mips/baget/print.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/print.c 2002-08-05 18:53:31.000000000 -0500
-@@ -14,7 +14,7 @@
- */
- // #define BAGET_PRINTK
-
--/*
-+/*
- * This function is same for BALO and Linux baget_printk,
- * and normally prints characted to second (UART A) console.
- */
-@@ -25,7 +25,7 @@
- {
- int i;
- vac_outb(c, VAC_UART_B_TX);
-- for (i=0; i<10000; i++)
-+ for (i=0; i<10000; i++)
- delay();
- }
-
-@@ -36,7 +36,7 @@
- outc_low(c);
- }
-
--void outs(char *s)
-+void outs(char *s)
- {
- while(*s) outc(*s++);
- }
-@@ -77,7 +77,7 @@
- void __init balo_printf( char *f, ... )
- {
- int *arg = (int*)&f + 1;
-- char c;
-+ char c;
- int format = 0;
-
- while((c = *f++) != 0) {
-@@ -110,7 +110,7 @@
- }
-
- void __init balo_hungup(void)
--{
-+{
- outs("Hunging up.\n");
-- while(1);
-+ while(1);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Entries
---- linux-2.4.20/arch/mips/baget/prom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Entries 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:17:55 2001/-ko/Tlinux_2_4_20
-+/init.c/1.7.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Repository
---- linux-2.4.20/arch/mips/baget/prom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/baget/prom
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Root
---- linux-2.4.20/arch/mips/baget/prom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Tag
---- linux-2.4.20/arch/mips/baget/prom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/.cvsignore
---- linux-2.4.20/arch/mips/baget/prom/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/prom/init.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/init.c
---- linux-2.4.20/arch/mips/baget/prom/init.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/prom/init.c 2002-08-05 18:53:31.000000000 -0500
-@@ -1,7 +1,7 @@
- /*
- * init.c: PROM library initialisation code.
- *
-- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
-+ * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
- #include <linux/init.h>
- #include <asm/addrspace.h>
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/setup.c
---- linux-2.4.20/arch/mips/baget/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/setup.c 2002-08-05 18:53:31.000000000 -0500
-@@ -15,10 +15,10 @@
- long int vac_memory_upper;
-
- #define CACHEABLE_STR(val) ((val) ? "not cached" : "cached")
--#define MIN(a,b) (((a)<(b)) ? (a):(b))
--
-+#define MIN(a,b) (((a)<(b)) ? (a):(b))
-+
- static void __init vac_show(void)
--{
-+{
- int i;
- unsigned short val, decode = vac_inw(VAC_DECODE_CTRL);
- unsigned short a24_base = vac_inw(VAC_A24_BASE);
-@@ -37,7 +37,7 @@
- VAC_IOSEL3_CTRL,
- VAC_IOSEL4_CTRL,
- VAC_IOSEL5_CTRL };
--
-+
- printk("[DSACKi %s, DRAMCS%s qualified, boundary%s qualified%s]\n",
- (decode & VAC_DECODE_DSACKI) ? "on" : "off",
- (decode & VAC_DECODE_QFY_DRAMCS) ? "" : " not",
-@@ -71,24 +71,24 @@
- VAC_ICFSEL_MODULE_VAL(vac_inw(VAC_ICFSEL_BASE)))<<4,
- (decode & VAC_DECODE_QFY_ICFSEL) ? "qualified" : "");
-
--
-+
- printk("region0 at 00000000 (%dMB)\t[dram, %s, delay %d cpuclk"
- ", cached]\n",
- (vac_inw(VAC_DRAM_MASK)+1)>>4,
- (decode & VAC_DECODE_DSACK) ? "D32" : "3state",
- VAC_DECODE_CPUCLK_VAL(decode));
--
-+
- for (i = 0; i < sizeof(regs)/sizeof(regs[0]); i++) {
-- unsigned long from =
-+ unsigned long from =
- ((unsigned long)vac_inw(bndr[i]))<<16;
-- unsigned long to =
-+ unsigned long to =
- ((unsigned long)
-- ((i+1 == sizeof(bndr)/sizeof(bndr[0])) ?
-+ ((i+1 == sizeof(bndr)/sizeof(bndr[0])) ?
- 0xff00 : vac_inw(bndr[i+1])))<<16;
--
--
-+
-+
- val = vac_inw(regs[i]);
-- printk("region%d at %08lx (%dMB)\t[%s %s/%s, %s]\n",
-+ printk("region%d at %08lx (%dMB)\t[%s %s/%s, %s]\n",
- i+1,
- from,
- (unsigned int)((to - from) >> 20),
-@@ -96,13 +96,13 @@
- asiz[VAC_REG_ASIZ_VAL(val)],
- ((val & VAC_REG_WORD) ? "D16" : "D32"),
- CACHEABLE_STR(val&VAC_A24_A24_CACHINH));
--
-+
- if (a24_addr >= from && a24_addr < to)
- printk("\ta24 at %08lx (%dMB)\t[vme, A24/%s, %s]\n",
- a24_addr,
- MIN((unsigned int)(a24_addr - from)>>20, 32),
- (a24_base & VAC_A24_DATAPATH) ? "user" :
-- ((a24_base & VAC_A24_D32_ENABLE) ?
-+ ((a24_base & VAC_A24_D32_ENABLE) ?
- "D32" : "D16"),
- CACHEABLE_STR(a24_base & VAC_A24_A24_CACHINH));
- }
-@@ -122,7 +122,7 @@
- (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
- VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
- (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "");
--
-+
- printk("region5 at fff00000 (896KB)\t[local io, %s]\n",
- CACHEABLE_STR(vac_inw(VAC_A24_BASE) & VAC_A24_IO_CACHINH));
-
-@@ -131,7 +131,7 @@
- printk("\tio%d[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
- "\n\t read %d%s cpuclk, write %d%s cpuclk, "
- "assert %d%s%s cpuclk]\n",
-- i,
-+ i,
- VAC_CTRL_DELAY_DSACKI_VAL(val),
- state[val & (VAC_CTRL_IORD|VAC_CTRL_IOWR)],
- (val & VAC_CTRL_DSACK0) ? "dsack0*, " : "",
-@@ -143,15 +143,15 @@
- (VAC_CTRL_DELAY_IOWR_VAL(val)&1) ? ".5" : "",
- VAC_CTRL_DELAY_IOSELI_VAL(val)/2,
- (VAC_CTRL_DELAY_IOSELI_VAL(val)&1) ? ".5" : "",
-- (vac_inw(VAC_DEV_LOC) & VAC_DEV_LOC_IOSEL(i)) ?
-+ (vac_inw(VAC_DEV_LOC) & VAC_DEV_LOC_IOSEL(i)) ?
- ", id" : "");
- }
--
-+
- printk("region6 at fffe0000 (128KB)\t[vme, A16/%s, "
- "not cached]\n",
-- (a24_base & VAC_A24_A16D32_ENABLE) ?
-+ (a24_base & VAC_A24_A16D32_ENABLE) ?
- ((a24_base & VAC_A24_A16D32) ? "D32" : "D16") : "user");
--
-+
- val = vac_inw(VAC_SHRCS_CTRL);
- printk("shared[ack %d cpuclk%s, %s%srecovery %d cpuclk, "
- "read %d%s, write %d%s, assert %d%s]\n",
-@@ -182,8 +182,8 @@
- default:
- panic("Unknown VAC revision number");
- }
--
-- vac_outw(mem_limit-1, VAC_DRAM_MASK);
-+
-+ vac_outw(mem_limit-1, VAC_DRAM_MASK);
- vac_outw(mem_limit, VAC_BNDR2);
- vac_outw(mem_limit, VAC_BNDR3);
- vac_outw(((BAGET_A24M_BASE>>16)&~VAC_A24_D32_ENABLE)|VAC_A24_DATAPATH,
-@@ -293,19 +293,19 @@
- vac_outw(VAC_INT_CTRL_TIMER_PIO10|
- VAC_INT_CTRL_UART_B_PIO7|
- VAC_INT_CTRL_UART_A_PIO7,VAC_INT_CTRL);
-- /*
-+ /*
- * Set quadro speed for both UARTs.
- * To do it we need use formulae from VIC/VAC manual,
- * keeping in mind Baget's 50MHz frequency...
- */
-- vac_outw((500000/(384*16))<<8,VAC_CPU_CLK_DIV);
-+ vac_outw((500000/(384*16))<<8,VAC_CPU_CLK_DIV);
- }
-
- static void __init vic_show(void)
- {
- unsigned char val;
- char *timeout[] = { "4", "16", "32", "64", "128", "256", "disabled" };
-- char *deadlock[] = { "[dedlk only]", "[dedlk only]",
-+ char *deadlock[] = { "[dedlk only]", "[dedlk only]",
- "[dedlk], [halt w/ rmc], [lberr]",
- "[dedlk], [halt w/o rmc], [lberr]" };
-
-@@ -318,7 +318,7 @@
- printk("metastability delay ");
- printk("%s ",
- deadlock[VIC_IFACE_CFG_DEADLOCK_VAL(val)]);
--
-+
-
- printk("interrupts: ");
- val = vic_inb(VIC_ERR_INT);
-@@ -331,7 +331,7 @@
- if (!(val & VIC_ERR_INT_ACFAIL))
- printk("[acfail] ");
- printk("\n");
--
-+
- printk("timeouts: ");
- val = vic_inb(VIC_XFER_TIMO);
- printk("local %s, vme %s ",
-@@ -357,7 +357,7 @@
- printk("[local boundary cross]");
- if (val & VIC_BXFER_DEF_VME_CROSS)
- printk("[vme boundary cross]");
--
-+
- }
-
- static void __init vic_init(void)
-@@ -372,7 +372,7 @@
- vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT2);
- vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT3);
- vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE,VIC_VME_INT4);
--/*
-+/*
- vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT5);
- */
- vic_outb(VIC_INT_IPL(3)|VIC_INT_DISABLE, VIC_VME_INT6);
-@@ -387,7 +387,7 @@
- VIC_INT_HIGH|VIC_INT_DISABLE, VIC_LINT3);
- vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_EDGE|
- VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT4);
--/*
-+/*
- vic_outb(VIC_INT_IPL(3)|VIC_INT_NOAUTO|VIC_INT_LEVEL|
- VIC_INT_LOW|VIC_INT_DISABLE, VIC_LINT5);
- */
-@@ -446,7 +446,7 @@
- VIC_RELEASE_RWD, VIC_RELEASE);
- vic_outb(VIC_IC6_RUN, VIC_IC6);
- vic_outb(0, VIC_IC7);
--
-+
- vic_show();
- }
-
-@@ -470,7 +470,7 @@
- extern void baget_machine_restart(char *command);
- extern void baget_machine_halt(void);
- extern void baget_machine_power_off(void);
--
-+
- void __init baget_setup(void)
- {
- printk("BT23/63-201n found.\n");
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/time.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/time.c
---- linux-2.4.20/arch/mips/baget/time.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/time.c 2002-08-05 18:53:31.000000000 -0500
-@@ -19,25 +19,25 @@
- #include <asm/io.h>
- #include <asm/irq.h>
- #include <asm/ptrace.h>
--#include <asm/system.h>
-+#include <asm/system.h>
-
- #include <asm/baget/baget.h>
-
- extern rwlock_t xtime_lock;
-
--/*
-+/*
- * To have precision clock, we need to fix available clock frequency
- */
- #define FREQ_NOM 79125 /* Baget frequency ratio */
- #define FREQ_DEN 10000
-
--static inline int timer_intr_valid(void)
-+static inline int timer_intr_valid(void)
- {
- static unsigned long long ticks, valid_ticks;
-
- if (ticks++ * FREQ_DEN >= valid_ticks * FREQ_NOM) {
-- /*
-- * We need no overflow checks,
-+ /*
-+ * We need no overflow checks,
- * due baget unable to work 3000 years...
- * At least without reboot...
- */
-@@ -63,10 +63,10 @@
- vic_outb(ss0cr0, VIC_SS0CR0);
-
- vic_outb(VIC_INT_IPL(6)|VIC_INT_NOAUTO|VIC_INT_EDGE|
-- VIC_INT_LOW|VIC_INT_ENABLE, VIC_LINT2);
-+ VIC_INT_LOW|VIC_INT_ENABLE, VIC_LINT2);
- }
-
--static struct irqaction timer_irq =
-+static struct irqaction timer_irq =
- { timer_interrupt, SA_INTERRUPT, 0, "timer", NULL, NULL};
-
- void __init time_init(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/vacserial.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/vacserial.c
---- linux-2.4.20/arch/mips/baget/vacserial.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/vacserial.c 2002-11-06 19:47:45.000000000 -0600
-@@ -26,7 +26,7 @@
- ((state->flags & ASYNC_SHARE_IRQ) ? SA_SHIRQ : SA_INTERRUPT)
-
- #define SERIAL_INLINE
--
-+
- #if defined(MODULE) && defined(SERIAL_DEBUG_MCOUNT)
- #define DBG_CNT(s) baget_printk("(%s):[%x] refc=%d, serc=%d, ttyc=%d-> %s\n", \
- kdevname(tty->device),(info->flags),serial_refcount,info->count,tty->count,s)
-@@ -89,7 +89,7 @@
- #ifdef SERIAL_INLINE
- #define _INLINE_ inline
- #endif
--
-+
- static char *serial_name = "VAC Serial driver";
- static char *serial_version = "4.26";
-
-@@ -100,7 +100,7 @@
-
- /* number of characters left in xmit buffer before we ask for more */
- #define WAKEUP_CHARS 256
--
-+
- /*
- * IRQ_timeout - How long the timeout should be for each IRQ
- * should be after the IRQ has been active.
-@@ -126,7 +126,7 @@
- static struct serial_uart_config uart_config[] = {
- { "unknown", 1, 0 }, /* Must go first -- used as unasigned */
- { "VAC UART", 1, 0 }
--};
-+};
- #define VAC_UART_TYPE 1 /* Just index in above array */
-
- static struct serial_state rs_table[] = {
-@@ -135,9 +135,9 @@
- * so we need special function to access ones.
- * To identify port we use their TX offset
- */
-- { 0, 9600, VAC_UART_B_TX, BAGET_VAC_UART_IRQ,
-+ { 0, 9600, VAC_UART_B_TX, BAGET_VAC_UART_IRQ,
- STD_COM_FLAGS }, /* VAC UART B */
-- { 0, 9600, VAC_UART_A_TX, BAGET_VAC_UART_IRQ,
-+ { 0, 9600, VAC_UART_A_TX, BAGET_VAC_UART_IRQ,
- STD_COM_FLAGS } /* VAC UART A */
- };
-
-@@ -185,7 +185,7 @@
- }
-
- /*
-- To unify UART A/B access we will use following function
-+ To unify UART A/B access we will use following function
- to compute register offsets by register index.
- */
-
-@@ -197,7 +197,7 @@
-
- #define VAC_UART_REG_NR 5
-
--static inline int uart_offset_map(unsigned long port, int reg_index)
-+static inline int uart_offset_map(unsigned long port, int reg_index)
- {
- static const unsigned int ind_to_reg[VAC_UART_REG_NR][NR_PORTS] = {
- { VAC_UART_B_MODE, VAC_UART_A_MODE },
-@@ -217,7 +217,7 @@
- int val = vac_inw(uart_offset_map(info->port,offset));
- #ifdef DEBUG_IO_PORT_A
- if (info->port == VAC_UART_A_TX)
-- printk("UART_A_IN: reg = 0x%04x, val = 0x%04x\n",
-+ printk("UART_A_IN: reg = 0x%04x, val = 0x%04x\n",
- uart_offset_map(info->port,offset), val);
- #endif
- return val;
-@@ -237,7 +237,7 @@
- {
- #ifdef DEBUG_IO_PORT_A
- if (info->port == VAC_UART_A_TX)
-- printk("UART_A_OUT: offset = 0x%04x, val = 0x%04x\n",
-+ printk("UART_A_OUT: offset = 0x%04x, val = 0x%04x\n",
- uart_offset_map(info->port,offset), value);
- #endif
- vac_outw(value, uart_offset_map(info->port,offset));
-@@ -268,7 +268,7 @@
-
- if (serial_paranoia_check(info, tty->device, "rs_stop"))
- return;
--
-+
- save_flags(flags); cli();
- if (info->IER & VAC_UART_INT_TX_EMPTY) {
- info->IER &= ~VAC_UART_INT_TX_EMPTY;
-@@ -281,12 +281,12 @@
- {
- struct async_struct *info = (struct async_struct *)tty->driver_data;
- unsigned long flags;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_start"))
- return;
--
-+
- save_flags(flags); cli();
-- if (info->xmit_cnt && info->xmit_buf
-+ if (info->xmit_cnt && info->xmit_buf
- && !(info->IER & VAC_UART_INT_TX_EMPTY)) {
- info->IER |= VAC_UART_INT_TX_EMPTY;
- serial_out(info, VAC_UART_INT_MASK, info->IER);
-@@ -306,7 +306,7 @@
- * rs_interrupt() should try to keep the interrupt handler as fast as
- * possible. After you are done making modifications, it is not a bad
- * idea to do:
-- *
-+ *
- * gcc -S -DKERNEL -Wall -Wstrict-prototypes -O6 -fomit-frame-pointer serial.c
- *
- * and look at the resulting assemble code in serial.s.
-@@ -345,20 +345,20 @@
- break;
- *tty->flip.char_buf_ptr = ch;
- icount->rx++;
--
-+
- #ifdef SERIAL_DEBUG_INTR
- baget_printk("DR%02x:%02x...", rx, *status);
- #endif
- *tty->flip.flag_buf_ptr = 0;
-- if (*status & (VAC_UART_STATUS_RX_BREAK_CHANGE
-- | VAC_UART_STATUS_RX_ERR_PARITY
-- | VAC_UART_STATUS_RX_ERR_FRAME
-+ if (*status & (VAC_UART_STATUS_RX_BREAK_CHANGE
-+ | VAC_UART_STATUS_RX_ERR_PARITY
-+ | VAC_UART_STATUS_RX_ERR_FRAME
- | VAC_UART_STATUS_RX_ERR_OVERRUN)) {
- /*
- * For statistics only
- */
- if (*status & VAC_UART_STATUS_RX_BREAK_CHANGE) {
-- *status &= ~(VAC_UART_STATUS_RX_ERR_FRAME
-+ *status &= ~(VAC_UART_STATUS_RX_ERR_FRAME
- | VAC_UART_STATUS_RX_ERR_PARITY);
- icount->brk++;
- } else if (*status & VAC_UART_STATUS_RX_ERR_PARITY)
-@@ -379,7 +379,7 @@
- goto ignore_char;
- }
- *status &= info->read_status_mask;
--
-+
- if (*status & (VAC_UART_STATUS_RX_BREAK_CHANGE)) {
- #ifdef SERIAL_DEBUG_INTR
- baget_printk("handling break....");
-@@ -417,9 +417,9 @@
- static _INLINE_ void transmit_chars(struct async_struct *info, int *intr_done)
- {
- int count;
--
-+
- if (info->x_char) {
-- serial_outw(info, VAC_UART_TX,
-+ serial_outw(info, VAC_UART_TX,
- (((unsigned short)info->x_char)<<8));
- info->state->icount.tx++;
- info->x_char = 0;
-@@ -435,7 +435,7 @@
- }
- count = info->xmit_fifo_size;
- do {
-- serial_out(info, VAC_UART_TX,
-+ serial_out(info, VAC_UART_TX,
- (unsigned short)info->xmit_buf[info->xmit_tail++] \
- << 8);
- info->xmit_tail = info->xmit_tail & (SERIAL_XMIT_SIZE-1);
-@@ -443,7 +443,7 @@
- if (--info->xmit_cnt <= 0)
- break;
- } while (--count > 0);
--
-+
- if (info->xmit_cnt < WAKEUP_CHARS)
- rs_sched_event(info, RS_EVENT_WRITE_WAKEUP);
-
-@@ -463,7 +463,7 @@
- {
- #if 0 /* VAC hasn't modem control */
- wake_up_interruptible(&info->open_wait);
-- rs_sched_event(info, RS_EVENT_WRITE_WAKEUP);
-+ rs_sched_event(info, RS_EVENT_WRITE_WAKEUP);
- #endif
- }
-
-@@ -484,10 +484,10 @@
- (VAC_INT_CTRL_UART_A_PIO7|VAC_INT_CTRL_UART_B_DISABLE)))
-
- /*
-- * Following two functions were proposed by Pavel Osipenko
-+ * Following two functions were proposed by Pavel Osipenko
- * to make VAC/VIC behaviour more regular.
- */
--static void intr_begin(struct async_struct* info)
-+static void intr_begin(struct async_struct* info)
- {
- serial_outw(info, VAC_UART_INT_MASK, 0);
- }
-@@ -495,7 +495,7 @@
- static void intr_end(struct async_struct* info)
- {
- vac_outw(VAC_INT_CTRL_UART_DISABLE(info), VAC_INT_CTRL);
-- vac_outw(VAC_INT_CTRL_UART_ENABLE, VAC_INT_CTRL);
-+ vac_outw(VAC_INT_CTRL_UART_ENABLE, VAC_INT_CTRL);
-
- serial_outw(info, VAC_UART_INT_MASK, info->IER);
- }
-@@ -522,8 +522,8 @@
- intr_begin(info); /* Mark we begin port handling */
-
- if (!info->tty ||
-- (serial_inw (info, VAC_UART_INT_STATUS)
-- & VAC_UART_STATUS_INTS) == 0)
-+ (serial_inw (info, VAC_UART_INT_STATUS)
-+ & VAC_UART_STATUS_INTS) == 0)
- {
- if (!end_mark)
- end_mark = info;
-@@ -565,7 +565,7 @@
- #endif /* #ifdef CONFIG_SERIAL_SHARE_IRQ */
-
-
--/* The original driver was simplified here:
-+/* The original driver was simplified here:
- two functions were joined to reduce code */
-
- #define rs_interrupt_single rs_interrupt
-@@ -595,7 +595,7 @@
- {
- struct async_struct *info = (struct async_struct *) private_;
- struct tty_struct *tty;
--
-+
- tty = info->tty;
- if (!tty)
- return;
-@@ -695,7 +695,7 @@
- retval = -EBUSY;
- goto errout;
- #endif /* CONFIG_SERIAL_SHARE_IRQ */
-- } else
-+ } else
- handler = rs_interrupt_single;
-
-
-@@ -729,7 +729,7 @@
- (void) serial_inw(info, VAC_UART_RX);
-
- /*
-- * Now, initialize the UART
-+ * Now, initialize the UART
- */
- serial_outp(info, VAC_UART_MODE, VAC_UART_MODE_INITIAL); /*reset DLAB*/
-
-@@ -739,7 +739,7 @@
- info->IER = VAC_UART_INT_RX_BREAK_CHANGE | VAC_UART_INT_RX_ERRS | \
- VAC_UART_INT_RX_READY;
- serial_outp(info, VAC_UART_INT_MASK, info->IER); /*enable interrupts*/
--
-+
- /*
- * And clear the interrupt registers again for luck.
- */
-@@ -763,7 +763,7 @@
- info->flags |= ASYNC_INITIALIZED;
- restore_flags(flags);
- return 0;
--
-+
- errout:
- restore_flags(flags);
- return retval;
-@@ -788,7 +788,7 @@
- baget_printk("Shutting down serial port %d (irq %d)....", info->line,
- state->irq);
- #endif
--
-+
- save_flags(flags); cli(); /* Disable interrupts */
-
- /*
-@@ -796,7 +796,7 @@
- * here so the queue might never be waken up
- */
- wake_up_interruptible(&info->delta_msr_wait);
--
-+
- /*
- * First unlink the serial port from the IRQ chain...
- */
-@@ -807,7 +807,7 @@
- else
- IRQ_ports[state->irq] = info->next_port;
- figure_IRQ_timeout(state->irq);
--
-+
- /*
- * Free the IRQ, if necessary
- */
-@@ -817,7 +817,7 @@
- free_irq(state->irq, NULL);
- retval = request_irq(state->irq, rs_interrupt_single,
- IRQ_T(state), "serial", NULL);
--
-+
- if (retval)
- printk("serial shutdown: request_irq: error %d"
- " Couldn't reacquire IRQ.\n", retval);
-@@ -832,11 +832,11 @@
-
- info->IER = 0;
- serial_outp(info, VAC_UART_INT_MASK, 0x00); /* disable all intrs */
--
-+
- /* disable break condition */
- serial_out(info, VAC_UART_MODE, serial_inp(info, VAC_UART_MODE) & \
- ~VAC_UART_MODE_SEND_BREAK);
--
-+
- if (info->tty)
- set_bit(TTY_IO_ERROR, &info->tty->flags);
-
-@@ -845,14 +845,14 @@
- }
-
- /*
-- * When we set line mode, we call this function
-+ * When we set line mode, we call this function
- * for Baget-specific adjustments.
- */
-
- static inline unsigned short vac_uart_mode_fixup (unsigned short cval)
- {
- #ifdef QUAD_UART_SPEED
-- /*
-+ /*
- * When we are using 4-x advantage in speed:
- *
- * Disadvantage : can't support 75, 150 bauds
-@@ -863,7 +863,7 @@
- cval |= VAC_UART_MODE_BAUD(speed-2);
- #endif
-
-- /*
-+ /*
- * In general, we have Tx and Rx ON all time
- * and use int mask flag for their disabling.
- */
-@@ -872,10 +872,10 @@
- cval |= VAC_UART_MODE_CHAR_RX_ENABLE;
- cval |= VAC_UART_MODE_CHAR_TX_ENABLE;
-
-- /* Low 4 bits are not used in UART */
-- cval &= ~0xf;
-+ /* Low 4 bits are not used in UART */
-+ cval &= ~0xf;
-
-- return cval;
-+ return cval;
- }
-
- /*
-@@ -901,8 +901,8 @@
- case CS7: cval = 0x0; bits = 9; break;
- case CS8: cval = VAC_UART_MODE_8BIT_CHAR; bits = 10; break;
- /* Never happens, but GCC is too dumb to figure it out */
-- case CS5:
-- case CS6:
-+ case CS5:
-+ case CS6:
- default: cval = 0x0; bits = 9; break;
- }
- cval &= ~VAC_UART_MODE_PARITY_ENABLE;
-@@ -949,7 +949,7 @@
- VAC_UART_STATUS_RX_ERR_PARITY;
- if (I_BRKINT(info->tty) || I_PARMRK(info->tty))
- info->read_status_mask |= VAC_UART_STATUS_RX_BREAK_CHANGE;
--
-+
- /*
- * Characters to ignore
- */
-@@ -960,7 +960,7 @@
- if (I_IGNBRK(info->tty)) {
- info->ignore_status_mask |= VAC_UART_STATUS_RX_BREAK_CHANGE;
- /*
-- * If we're ignore parity and break indicators, ignore
-+ * If we're ignore parity and break indicators, ignore
- * overruns too. (For real raw support).
- */
- if (I_IGNPAR(info->tty))
-@@ -1045,7 +1045,7 @@
- {
- struct async_struct *info = (struct async_struct *)tty->driver_data;
- unsigned long flags;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_flush_chars"))
- return;
-
-@@ -1065,7 +1065,7 @@
- int c, ret = 0;
- struct async_struct *info = (struct async_struct *)tty->driver_data;
- unsigned long flags;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_write"))
- return 0;
-
-@@ -1103,7 +1103,7 @@
- up(&tmp_buf_sem);
- } else {
- while (1) {
-- cli();
-+ cli();
- c = MIN(count,
- MIN(SERIAL_XMIT_SIZE - info->xmit_cnt - 1,
- SERIAL_XMIT_SIZE - info->xmit_head));
-@@ -1133,7 +1133,7 @@
- {
- struct async_struct *info = (struct async_struct *)tty->driver_data;
- int ret;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_write_room"))
- return 0;
- ret = SERIAL_XMIT_SIZE - info->xmit_cnt - 1;
-@@ -1145,7 +1145,7 @@
- static int rs_chars_in_buffer(struct tty_struct *tty)
- {
- struct async_struct *info = (struct async_struct *)tty->driver_data;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_chars_in_buffer"))
- return 0;
- return info->xmit_cnt;
-@@ -1154,14 +1154,14 @@
- static void rs_flush_buffer(struct tty_struct *tty)
- {
- struct async_struct *info = (struct async_struct *)tty->driver_data;
-- unsigned long flags;
--
-+ unsigned long flags;
-+
- if (serial_paranoia_check(info, tty->device, "rs_flush_buffer"))
- return;
-
- save_flags(flags); cli();
- info->xmit_cnt = info->xmit_head = info->xmit_tail = 0;
-- restore_flags(flags);
-+ restore_flags(flags);
-
- wake_up_interruptible(&tty->write_wait);
- if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-@@ -1191,7 +1191,7 @@
- /*
- * ------------------------------------------------------------
- * rs_throttle()
-- *
-+ *
- * This routine is called by the upper-layer tty layer to signal that
- * incoming characters should be throttled.
- * ------------------------------------------------------------
-@@ -1202,14 +1202,14 @@
-
- #ifdef SERIAL_DEBUG_THROTTLE
- char buf[64];
--
-+
- baget_printk("throttle %s: %d....\n", tty_name(tty, buf),
- tty->ldisc.chars_in_buffer(tty));
- #endif
-
- if (serial_paranoia_check(info, tty->device, "rs_throttle"))
- return;
--
-+
- if (I_IXOFF(tty))
- rs_send_xchar(tty, STOP_CHAR(tty));
- }
-@@ -1219,14 +1219,14 @@
- struct async_struct *info = (struct async_struct *)tty->driver_data;
- #ifdef SERIAL_DEBUG_THROTTLE
- char buf[64];
--
-+
- baget_printk("unthrottle %s: %d....\n", tty_name(tty, buf),
- tty->ldisc.chars_in_buffer(tty));
- #endif
-
- if (serial_paranoia_check(info, tty->device, "rs_unthrottle"))
- return;
--
-+
- if (I_IXOFF(tty)) {
- if (info->x_char)
- info->x_char = 0;
-@@ -1246,7 +1246,7 @@
- {
- struct serial_struct tmp;
- struct serial_state *state = info->state;
--
-+
- if (!retinfo)
- return -EFAULT;
- memset(&tmp, 0, sizeof(tmp));
-@@ -1278,11 +1278,11 @@
- return -EFAULT;
- state = info->state;
- old_state = *state;
--
-+
- change_irq = new_serial.irq != state->irq;
- change_port = (new_serial.port != state->port) ||
- (new_serial.hub6 != state->hub6);
--
-+
- if (!capable(CAP_SYS_ADMIN)) {
- if (change_irq || change_port ||
- (new_serial.baud_base != state->baud_base) ||
-@@ -1344,7 +1344,7 @@
- info->xmit_fifo_size = state->xmit_fifo_size =
- new_serial.xmit_fifo_size;
-
-- release_region(state->port,8);
-+ release_region(state->port,8);
- if (change_port || change_irq) {
- /*
- * We need to shutdown the serial port at the old
-@@ -1358,7 +1358,7 @@
- if (state->type != PORT_UNKNOWN)
- request_region(state->port,8,"serial(set)");
-
--
-+
- check_and_exit:
- if (!state->port || !state->type)
- return 0;
-@@ -1390,13 +1390,13 @@
- * release the bus after transmitting. This must be done when
- * the transmit shift register is empty, not be done when the
- * transmit holding register is empty. This functionality
-- * allows an RS485 driver to be written in user space.
-+ * allows an RS485 driver to be written in user space.
- */
- static int get_lsr_info(struct async_struct * info, unsigned int *value)
- {
- unsigned short status;
- unsigned int result;
-- unsigned long flags;
-+ unsigned long flags;
-
- save_flags(flags); cli();
- status = serial_inw(info, VAC_UART_INT_STATUS);
-@@ -1431,13 +1431,13 @@
- static int do_autoconfig(struct async_struct * info)
- {
- int retval;
--
-+
- if (!capable(CAP_SYS_ADMIN))
- return -EPERM;
--
-+
- if (info->state->count > 1)
- return -EBUSY;
--
-+
- shutdown(info);
-
- autoconfig(info->state);
-@@ -1455,7 +1455,7 @@
- {
- struct async_struct * info = (struct async_struct *)tty->driver_data;
- unsigned long flags;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_break"))
- return;
-
-@@ -1480,7 +1480,7 @@
- struct async_struct * info = (struct async_struct *)tty->driver_data;
- struct async_icount cprev, cnow; /* kernel counter temps */
- struct serial_icounter_struct *p_cuser; /* user space */
-- unsigned long flags;
-+ unsigned long flags;
-
- if (serial_paranoia_check(info, tty->device, "rs_ioctl"))
- return -ENODEV;
-@@ -1491,7 +1491,7 @@
- if (tty->flags & (1 << TTY_IO_ERROR))
- return -EIO;
- }
--
-+
- switch (cmd) {
- case TIOCMGET:
- return get_modem_info(info, (unsigned int *) arg);
-@@ -1516,7 +1516,7 @@
- info, sizeof(struct async_struct)))
- return -EFAULT;
- return 0;
--
-+
- /*
- * Wait for any of the 4 modem inputs (DCD,RI,DSR,CTS)to change
- * - mask passed in arg for lines of interest
-@@ -1533,21 +1533,21 @@
- /* see if a signal did it */
- if (signal_pending(current))
- return -ERESTARTSYS;
-- save_flags(flags); cli();
-+ save_flags(flags); cli();
- cnow = info->state->icount; /* atomic copy */
-- restore_flags(flags);
-- if (cnow.rng == cprev.rng &&
-- cnow.dsr == cprev.dsr &&
-- cnow.dcd == cprev.dcd &&
-+ restore_flags(flags);
-+ if (cnow.rng == cprev.rng &&
-+ cnow.dsr == cprev.dsr &&
-+ cnow.dcd == cprev.dcd &&
- cnow.cts == cprev.cts)
- return -EIO; /* no change => error */
-- if ( ((arg & TIOCM_RNG) &&
-+ if ( ((arg & TIOCM_RNG) &&
- (cnow.rng != cprev.rng)) ||
-- ((arg & TIOCM_DSR) &&
-+ ((arg & TIOCM_DSR) &&
- (cnow.dsr != cprev.dsr)) ||
-- ((arg & TIOCM_CD) &&
-+ ((arg & TIOCM_CD) &&
- (cnow.dcd != cprev.dcd)) ||
-- ((arg & TIOCM_CTS) &&
-+ ((arg & TIOCM_CTS) &&
- (cnow.cts != cprev.cts)) ) {
- return 0;
- }
-@@ -1555,14 +1555,14 @@
- }
- /* NOTREACHED */
-
-- /*
-+ /*
- * Get counter of input serial line interrupts (DCD,RI,DSR,CTS)
- * Return: write counters to the user passed counter struct
- * NB: both 1->0 and 0->1 transitions are counted except for
- * RI where only 0->1 is counted.
- */
- case TIOCGICOUNT:
-- save_flags(flags); cli();
-+ save_flags(flags); cli();
- cnow = info->state->icount;
- restore_flags(flags);
- p_cuser = (struct serial_icounter_struct *) arg;
-@@ -1596,7 +1596,7 @@
- /* "setserial -W" is called in Debian boot */
- printk ("TIOCSER?WILD ioctl obsolete, ignored.\n");
- return 0;
--
-+
- default:
- return -ENOIOCTLCMD;
- }
-@@ -1609,7 +1609,7 @@
- unsigned int cflag = tty->termios->c_cflag;
-
- if ( (cflag == old_termios->c_cflag)
-- && ( RELEVANT_IFLAG(tty->termios->c_iflag)
-+ && ( RELEVANT_IFLAG(tty->termios->c_iflag)
- == RELEVANT_IFLAG(old_termios->c_iflag)))
- return;
-
-@@ -1627,7 +1627,7 @@
- /*
- * ------------------------------------------------------------
- * rs_close()
-- *
-+ *
- * This routine is called when the serial port gets closed. First, we
- * wait for the last remaining data to be sent. Then, we unlink its
- * async structure from the interrupt chain if necessary, and we free
-@@ -1644,18 +1644,18 @@
- return;
-
- state = info->state;
--
-+
- save_flags(flags); cli();
--
-+
- if (tty_hung_up_p(filp)) {
- DBG_CNT("before DEC-hung");
- MOD_DEC_USE_COUNT;
- restore_flags(flags);
- return;
- }
--
-+
- #ifdef SERIAL_DEBUG_OPEN
-- baget_printk("rs_close ttys%d, count = %d\n",
-+ baget_printk("rs_close ttys%d, count = %d\n",
- info->line, state->count);
- #endif
- if ((tty->count == 1) && (state->count != 1)) {
-@@ -1693,7 +1693,7 @@
- if (info->flags & ASYNC_CALLOUT_ACTIVE)
- info->state->callout_termios = *tty->termios;
- /*
-- * Now we wait for the transmit buffer to clear; and we notify
-+ * Now we wait for the transmit buffer to clear; and we notify
- * the line discipline to only process XON/XOFF characters.
- */
- tty->closing = 1;
-@@ -1746,7 +1746,7 @@
- struct async_struct * info = (struct async_struct *)tty->driver_data;
- unsigned long orig_jiffies, char_time;
- int lsr;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_wait_until_sent"))
- return;
-
-@@ -1761,7 +1761,7 @@
- * Set the check interval to be 1/5 of the estimated time to
- * send a single character, and make it at least 1. The check
- * interval should also be less than the timeout.
-- *
-+ *
- * Note: we have to use pretty tight timings here to satisfy
- * the NIST-PCTS.
- */
-@@ -1772,7 +1772,7 @@
- if (timeout)
- char_time = MIN(char_time, timeout);
- #ifdef SERIAL_DEBUG_RS_WAIT_UNTIL_SENT
-- baget_printk("In rs_wait_until_sent(%d) check=%lu...",
-+ baget_printk("In rs_wait_until_sent(%d) check=%lu...",
- timeout, char_time);
- baget_printk("jiff=%lu...", jiffies);
- #endif
-@@ -1801,12 +1801,12 @@
- {
- struct async_struct * info = (struct async_struct *)tty->driver_data;
- struct serial_state *state = info->state;
--
-+
- if (serial_paranoia_check(info, tty->device, "rs_hangup"))
- return;
-
- state = info->state;
--
-+
- rs_flush_buffer(tty);
- shutdown(info);
- info->event = 0;
-@@ -1827,8 +1827,8 @@
- DECLARE_WAITQUEUE(wait, current);
- struct serial_state *state = info->state;
- int retval;
-- int do_clocal = 0, extra_count = 0;
-- unsigned long flags;
-+ int do_clocal = 0, extra_count = 0;
-+ unsigned long flags;
-
- /*
- * If the device is in the middle of being closed, then block
-@@ -1864,7 +1864,7 @@
- info->flags |= ASYNC_CALLOUT_ACTIVE;
- return 0;
- }
--
-+
- /*
- * If non-blocking mode is set, or the port is not enabled,
- * then make the check up front and then exit.
-@@ -1884,7 +1884,7 @@
- if (tty->termios->c_cflag & CLOCAL)
- do_clocal = 1;
- }
--
-+
- /*
- * Block waiting for the carrier detect and the line to become
- * free (i.e., not in use by the callout). While we are in
-@@ -1898,12 +1898,12 @@
- baget_printk("block_til_ready before block: ttys%d, count = %d\n",
- state->line, state->count);
- #endif
-- save_flags(flags); cli();
-+ save_flags(flags); cli();
- if (!tty_hung_up_p(filp)) {
-- extra_count = 1;
-+ extra_count = 1;
- state->count--;
- }
-- restore_flags(flags);
-+ restore_flags(flags);
- info->blocked_open++;
- while (1) {
- set_current_state(TASK_INTERRUPTIBLE);
-@@ -1913,7 +1913,7 @@
- if (info->flags & ASYNC_HUP_NOTIFY)
- retval = -EAGAIN;
- else
-- retval = -ERESTARTSYS;
-+ retval = -ERESTARTSYS;
- #else
- retval = -EAGAIN;
- #endif
-@@ -1996,10 +1996,10 @@
- int retval, line;
- unsigned long page;
-
-- MOD_INC_USE_COUNT;
-+ MOD_INC_USE_COUNT;
- line = MINOR(tty->device) - tty->driver.minor_start;
- if ((line < 0) || (line >= NR_PORTS)) {
-- MOD_DEC_USE_COUNT;
-+ MOD_DEC_USE_COUNT;
- return -ENODEV;
- }
- retval = get_async_struct(line, &info);
-@@ -2010,12 +2010,12 @@
- tty->driver_data = info;
- info->tty = tty;
- if (serial_paranoia_check(info, tty->device, "rs_open")) {
-- /* MOD_DEC_USE_COUNT; "info->tty" will cause this */
-+ /* MOD_DEC_USE_COUNT; "info->tty" will cause this */
- return -ENODEV;
- }
-
- #ifdef SERIAL_DEBUG_OPEN
-- baget_printk("rs_open %s%d, count = %d\n",
-+ baget_printk("rs_open %s%d, count = %d\n",
- tty->driver.name, info->line,
- info->state->count);
- #endif
-@@ -2073,7 +2073,7 @@
- (info->flags & ASYNC_SPLIT_TERMIOS)) {
- if (tty->driver.subtype == SERIAL_TYPE_NORMAL)
- *tty->termios = info->state->normal_termios;
-- else
-+ else
- *tty->termios = info->state->callout_termios;
- change_speed(info);
- }
-@@ -2103,7 +2103,7 @@
- int ret;
-
- ret = sprintf(buf, "%d: uart:%s port:%X irq:%d",
-- state->line, uart_config[state->type].name,
-+ state->line, uart_config[state->type].name,
- state->port, state->irq);
-
- if (!state->port || (state->type == PORT_UNKNOWN)) {
-@@ -2123,7 +2123,7 @@
- info->quot = 0;
- info->tty = 0;
- }
--
-+
- if (info->quot) {
- ret += sprintf(buf+ret, " baud:%d",
- state->baud_base / info->quot);
-@@ -2134,12 +2134,12 @@
-
- if (state->icount.frame)
- ret += sprintf(buf+ret, " fe:%d", state->icount.frame);
--
-+
- if (state->icount.parity)
- ret += sprintf(buf+ret, " pe:%d", state->icount.parity);
--
-+
- if (state->icount.brk)
-- ret += sprintf(buf+ret, " brk:%d", state->icount.brk);
-+ ret += sprintf(buf+ret, " brk:%d", state->icount.brk);
-
- if (state->icount.overrun)
- ret += sprintf(buf+ret, " oe:%d", state->icount.overrun);
-@@ -2218,14 +2218,14 @@
- */
- static void autoconfig(struct serial_state * state)
- {
-- struct async_struct *info, scr_info;
-+ struct async_struct *info, scr_info;
- unsigned long flags;
-
- /* Setting up important parameters */
- state->type = VAC_UART_TYPE;
- state->xmit_fifo_size = uart_config[state->type].dfl_xmit_fifo_size;
-
-- info = &scr_info; /* This is just for serial_{in,out} */
-+ info = &scr_info; /* This is just for serial_{in,out} */
-
- info->magic = SERIAL_MAGIC;
- info->port = state->port;
-@@ -2233,7 +2233,7 @@
-
- save_flags(flags); cli();
-
-- /* + Flush VAC input fifo */
-+ /* + Flush VAC input fifo */
- (void)serial_in(info, VAC_UART_RX);
- (void)serial_in(info, VAC_UART_RX);
- (void)serial_in(info, VAC_UART_RX);
-@@ -2273,7 +2273,7 @@
- do {
- serial_out(info, VAC_UART_INT_MASK, 0);
- info->IER |= VAC_UART_INT_TX_EMPTY;
-- serial_out(info, VAC_UART_INT_MASK,
-+ serial_out(info, VAC_UART_INT_MASK,
- info->IER);
- info = info->next_port;
- } while (info);
-@@ -2303,7 +2303,7 @@
- mod_timer(&vacs_timer, jiffies + IRQ_timeout[0] - 2);
- }
- }
--
-+
- /*
- * The serial driver boot-time initialization code!
- */
-@@ -2336,7 +2336,7 @@
- * It is not a good idea to share interrupts with console,
- * but it looks we cannot avoid it.
- */
--#if 0
-+#if 0
-
- #ifdef CONFIG_SERIAL_CONSOLE
- /*
-@@ -2355,7 +2355,7 @@
- show_serial_version();
-
- /* Initialize the tty_driver structure */
--
-+
- memset(&serial_driver, 0, sizeof(struct tty_driver));
- serial_driver.magic = TTY_DRIVER_MAGIC;
- serial_driver.driver_name = "serial";
-@@ -2393,7 +2393,7 @@
- serial_driver.break_ctl = rs_break;
- serial_driver.wait_until_sent = rs_wait_until_sent;
- serial_driver.read_proc = rs_read_proc;
--
-+
- /*
- * The callout device is just like normal device except for
- * major number and the subtype code.
-@@ -2409,7 +2409,7 @@
- panic("Couldn't register serial driver");
- if (tty_register_driver(&callout_driver))
- panic("Couldn't register callout driver");
--
-+
- for (i = 0, state = rs_table; i < NR_PORTS; i++,state++) {
- state->magic = SSTATE_MAGIC;
- state->line = i;
-@@ -2419,7 +2419,7 @@
- state->closing_wait = 30*HZ;
- state->callout_termios = callout_driver.init_termios;
- state->normal_termios = serial_driver.init_termios;
-- state->icount.cts = state->icount.dsr =
-+ state->icount.cts = state->icount.dsr =
- state->icount.rng = state->icount.dcd = 0;
- state->icount.rx = state->icount.tx = 0;
- state->icount.frame = state->icount.parity = 0;
-@@ -2518,13 +2518,13 @@
- return rs_init();
- }
-
--void cleanup_module(void)
-+void cleanup_module(void)
- {
- unsigned long flags;
- int e1, e2;
- int i;
-
-- printk("Unloading %s: version %s\n", serial_name, serial_version);
-+ printk("Unloading %s: version %s\n", serial_name, serial_version);
- save_flags(flags);
- cli();
-
-@@ -2535,7 +2535,7 @@
- printk("SERIAL: failed to unregister serial driver (%d)\n",
- e1);
- if ((e2 = tty_unregister_driver(&callout_driver)))
-- printk("SERIAL: failed to unregister callout driver (%d)\n",
-+ printk("SERIAL: failed to unregister callout driver (%d)\n",
- e2);
- restore_flags(flags);
-
-@@ -2765,19 +2765,19 @@
- /* Baget VAC need some adjustments for computed value */
- cval = vac_uart_mode_fixup(cval);
-
-- serial_outp(&scr_info, VAC_UART_MODE, cval);
-+ serial_outp(&scr_info, VAC_UART_MODE, cval);
- serial_outp(&scr_info, VAC_UART_INT_MASK, 0);
-
- return 0;
- }
-
- static struct console sercons = {
-- name: "ttyS",
-- write: serial_console_write,
-- device: serial_console_device,
-- setup: serial_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "ttyS",
-+ .write = serial_console_write,
-+ .device = serial_console_device,
-+ .setup = serial_console_setup,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
-@@ -2808,7 +2808,7 @@
- autoconfig(info); /* autoconfigure ttyS0, whatever that is */
-
- #ifdef PRINT_DEBUG_PORT_INFO
-- baget_printk("kgdb debug interface:: tty%02d at 0x%04x",
-+ baget_printk("kgdb debug interface:: tty%02d at 0x%04x",
- info->line, info->port);
- switch (info->type) {
- case PORT_8250:
-@@ -2831,7 +2831,7 @@
- break;
- }
- #endif
--
-+
- if (info->port == PORT_UNKNOWN)
- return -1;
-
-@@ -2843,7 +2843,7 @@
- (void)serial_inp(info, VAC_UART_RX);
-
- /*
-- * Now, initialize the UART
-+ * Now, initialize the UART
- */
- serial_outp(info,VAC_UART_MODE,VAC_UART_MODE_INITIAL); /* reset DLAB */
- if (info->flags & ASYNC_FOURPORT) {
-diff -urNd -urNd linux-2.4.20/arch/mips/baget/wbflush.c linux-2.4.20-mipscvs-20050106/arch/mips/baget/wbflush.c
---- linux-2.4.20/arch/mips/baget/wbflush.c 2000-02-25 00:52:30.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/baget/wbflush.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,24 +0,0 @@
--/*
-- * Setup the right wbflush routine for Baget/MIPS.
-- *
-- * Copyright (C) 1999 Gleb Raiko & Vladimir Roganov
-- */
--
--#include <linux/init.h>
--#include <asm/bootinfo.h>
--
--void (*__wbflush) (void);
--
--static void wbflush_baget(void);
--
--void __init wbflush_setup(void)
--{
-- __wbflush = wbflush_baget;
--}
--
--/*
-- * Baget/MIPS doesnt need to write back the WB.
-- */
--static void wbflush_baget(void)
--{
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Entries
---- linux-2.4.20/arch/mips/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Entries 2005-01-06 23:08:21.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.5.6.1/Tue Aug 27 23:00:29 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.13.2.2/Thu Aug 1 18:20:59 2002/-ko/Tlinux_2_4_20
-+/addinitrd.c/1.1.6.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/ecoff.h/1.1/Sat Mar 13 12:36:50 1999/-ko/Tlinux_2_4_20
-+/elf2ecoff.c/1.6.2.5/Mon Nov 18 02:19:26 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Repository
---- linux-2.4.20/arch/mips/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/boot
-diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Root
---- linux-2.4.20/arch/mips/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Tag
---- linux-2.4.20/arch/mips/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/boot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/boot/.cvsignore
---- linux-2.4.20/arch/mips/boot/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/.cvsignore 2002-08-27 18:00:29.000000000 -0500
-@@ -0,0 +1,6 @@
-+.depend
-+.*.flags
-+mkboot zImage zImage.tmp
-+addinitrd
-+elf2ecoff
-+vmlinux.ecoff
-diff -urNd -urNd linux-2.4.20/arch/mips/boot/elf2ecoff.c linux-2.4.20-mipscvs-20050106/arch/mips/boot/elf2ecoff.c
---- linux-2.4.20/arch/mips/boot/elf2ecoff.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/boot/elf2ecoff.c 2002-11-17 20:19:26.000000000 -0600
-@@ -285,7 +285,7 @@
- if (argc < 3 || argc > 4) {
- usage:
- fprintf(stderr,
-- "usage: elf2aout <elf executable> <a.out executable> [-a]\n");
-+ "usage: elf2ecoff <elf executable> <ecoff executable> [-a]\n");
- exit(1);
- }
- if (argc == 4) {
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Entries
---- linux-2.4.20/arch/mips/cobalt/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Entries 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.6.2.1/Mon Nov 25 02:01:20 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.7/Tue Jan 28 00:47:58 2003/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.5/Mon Dec 2 00:24:45 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.2.2.9/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/promcon.c/1.1.2.3/Thu Nov 7 01:47:45 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.3.2.5/Mon Dec 2 00:24:45 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.2.2.7/Fri Jan 10 04:09:06 2003/-ko/Tlinux_2_4_20
-+/via.c/1.2.2.5/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Repository
---- linux-2.4.20/arch/mips/cobalt/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/cobalt
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Root
---- linux-2.4.20/arch/mips/cobalt/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Tag
---- linux-2.4.20/arch/mips/cobalt/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/.cvsignore
---- linux-2.4.20/arch/mips/cobalt/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/.cvsignore 2002-11-24 20:01:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/int-handler.S
---- linux-2.4.20/arch/mips/cobalt/int-handler.S 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/int-handler.S 2003-01-27 18:47:58.000000000 -0600
-@@ -6,8 +6,7 @@
- * for more details.
- *
- * Copyright (C) 1995, 1996, 1997 by Ralf Baechle
-- * Copyright (C) 2001 by Liam Davies (ldavies@agile.tv)
-- *
-+ * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
- */
- #include <asm/asm.h>
- #include <asm/mipsregs.h>
-@@ -30,7 +29,9 @@
- /*
- * Get pending Interrupts
- */
-- mfc0 s0,CP0_CAUSE # get irq mask
-+ mfc0 s0,CP0_CAUSE # get raw irq status
-+ mfc0 a0,CP0_STATUS # get irq mask
-+ and s0,s0,a0 # compute masked irq status
-
- andi a0,s0,CAUSEF_IP2 /* Check for Galileo timer */
- beq a0,zero,1f
-@@ -57,7 +58,7 @@
- andi a0,s0,CAUSEF_IP4
-
- /* Ethernet 0 interrupt */
-- li a0,COBALT_RAQ_ETH0_IRQ
-+ li a0,COBALT_ETH0_IRQ
- jal do_IRQ
- move a1,sp
-
-@@ -69,7 +70,7 @@
- andi a0,s0,CAUSEF_IP5
-
- /* Ethernet 1 interrupt */
-- li a0,COBALT_RAQ_ETH1_IRQ
-+ li a0,COBALT_ETH1_IRQ
- jal do_IRQ
- move a1,sp
-
-@@ -80,7 +81,7 @@
- andi a0,s0,CAUSEF_IP7
-
- /* Serial interrupt */
-- li a0,7
-+ li a0,COBALT_SERIAL_IRQ
- jal do_IRQ
- move a1,sp
-
-@@ -91,7 +92,7 @@
- nop
-
- /* PCI interrupt */
-- li a0,9
-+ li a0,COBALT_QUBE_SLOT_IRQ
- jal do_IRQ
- move a1,sp
-
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/irq.c
---- linux-2.4.20/arch/mips/cobalt/irq.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/irq.c 2002-12-01 18:24:45.000000000 -0600
-@@ -77,7 +77,7 @@
- unsigned long flags;
-
- save_and_cli(flags);
-- change_cp0_status(irqnr_to_type[irq], irqnr_to_type[irq]);
-+ change_c0_status(irqnr_to_type[irq], irqnr_to_type[irq]);
- restore_flags(flags);
- }
-
-@@ -93,7 +93,7 @@
- unsigned long flags;
-
- save_and_cli(flags);
-- change_cp0_status(irqnr_to_type[irq], ~(irqnr_to_type[irq]));
-+ change_c0_status(irqnr_to_type[irq], ~(irqnr_to_type[irq]));
- restore_flags(flags);
- }
-
-@@ -133,8 +133,8 @@
-
- /* Mask all cpu interrupts
- (except IE4, we already masked those at VIA level) */
-- clear_cp0_status(ST0_IM);
-- set_cp0_status(IE_IRQ4);
-+ clear_c0_status(ST0_IM);
-+ set_c0_status(IE_IRQ4);
-
- cli();
-
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/pci.c
---- linux-2.4.20/arch/mips/cobalt/pci.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -48,7 +48,7 @@
- {
- unsigned short pci_cmd;
- unsigned long ioaddr_base = 0x10108000; /* It's magic, ask Doug. */
-- unsigned long memaddr_base = 0x12000000;
-+ unsigned long memaddr_base = 0x12001000;
- int i;
-
- /* Enable bits in COMMAND so driver can talk to it. */
-@@ -60,6 +60,9 @@
- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, COBALT_QUBE_SLOT_IRQ);
- dev->irq = COBALT_QUBE_SLOT_IRQ;
-
-+ ioaddr_base += 0x2000 * PCI_FUNC(dev->devfn);
-+ memaddr_base += 0x2000 * PCI_FUNC(dev->devfn);
-+
- /* Fixup base addresses, we only support I/O at the moment. */
- for(i = 0; i <= 5; i++) {
- unsigned int regaddr = (PCI_BASE_ADDRESS_0 + (i * 4));
-@@ -125,27 +128,18 @@
-
- /* Fixup the first tulip located at device PCICONF_ETH0 */
- if (PCI_SLOT(dev->devfn) == COBALT_PCICONF_ETH0) {
-- /*
-- * The IRQ of the first Tulip is different on Qube and RaQ
-- */
-- if (cobalt_board_id == COBALT_BRD_ID_RAQ2) {
-- /* Setup the first Tulip on the RAQ */
-- pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-- COBALT_RAQ_ETH0_IRQ);
-- dev->irq = COBALT_RAQ_ETH0_IRQ;
-- } else {
-- /* All Qube's route this the same way. */
-- pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-- COBALT_QUBE_ETH_IRQ);
-- dev->irq = COBALT_QUBE_ETH_IRQ;
-- }
-+ /* Setup the first Tulip */
-+ pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-+ COBALT_ETH0_IRQ);
-+ dev->irq = COBALT_ETH0_IRQ;
-+
- dev->resource[0].start = 0x100000;
- dev->resource[0].end = 0x10007f;
-- if (dev->resource[1].start < 0x10000000) {
-- dev->resource[1].start = 0xe9ffec00;
-- dev->resource[1].end = 0xe9ffefff;
-- pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, 0xe9ffec00);
-- }
-+
-+ dev->resource[1].start = 0x12000000;
-+ dev->resource[1].end = dev->resource[1].start + 0x3ff;
-+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, dev->resource[1].start);
-+
- /* Fixup the second tulip located at device PCICONF_ETH1 */
- } else if (PCI_SLOT(dev->devfn) == COBALT_PCICONF_ETH1) {
-
-@@ -156,14 +150,18 @@
-
- /* Give it it's IRQ. */
- pci_write_config_byte(dev, PCI_INTERRUPT_LINE,
-- COBALT_RAQ_ETH1_IRQ);
-- dev->irq = COBALT_RAQ_ETH1_IRQ;
-+ COBALT_ETH1_IRQ);
-+ dev->irq = COBALT_ETH1_IRQ;
-
- /* And finally, a usable I/O space allocation, right after what
- * the first Tulip uses.
- */
- dev->resource[0].start = 0x101000;
- dev->resource[0].end = 0x10107f;
-+
-+ dev->resource[1].start = 0x12000400;
-+ dev->resource[1].end = dev->resource[1].start + 0x3ff;
-+ pci_write_config_dword(dev, PCI_BASE_ADDRESS_1, dev->resource[1].start);
- }
- }
-
-@@ -219,7 +217,7 @@
- */
- pci_read_config_word(dev, PCI_REVISION_ID, &galileo_id);
- galileo_id &= 0xff; /* mask off class info */
-- if (galileo_id == 0x10) {
-+ if (galileo_id >= 0x10) {
- /* New Galileo, assumes PCI stop line to VIA is connected. */
- *((volatile unsigned int *)0xb4000c04) = 0x00004020;
- } else if (galileo_id == 0x1 || galileo_id == 0x2) {
-@@ -403,7 +401,7 @@
- return str;
- }
-
--int pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- u16 cmd, status;
-
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/promcon.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/promcon.c
---- linux-2.4.20/arch/mips/cobalt/promcon.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/promcon.c 2002-11-06 19:47:45.000000000 -0600
-@@ -77,12 +77,12 @@
- }
-
- static struct console ns16550_console = {
-- name: "prom",
-- setup: NULL,
-- write: ns16550_console_write,
-- device: ns16550_console_dev,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "prom",
-+ .setup = NULL,
-+ .write = ns16550_console_write,
-+ .device = ns16550_console_dev,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- void __init ns16550_setup_console(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/reset.c
---- linux-2.4.20/arch/mips/cobalt/reset.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/reset.c 2002-12-01 18:24:45.000000000 -0600
-@@ -28,10 +28,10 @@
- * kernel in the flush locks up somewhen during of after the PCI
- * detection stuff.
- */
-- set_cp0_status(ST0_BEV | ST0_ERL);
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ set_c0_status(ST0_BEV | ST0_ERL);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
- __asm__ __volatile__(
- "jr\t%0"
- :
-diff -urNd -urNd linux-2.4.20/arch/mips/cobalt/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/setup.c
---- linux-2.4.20/arch/mips/cobalt/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/cobalt/setup.c 2003-01-09 22:09:06.000000000 -0600
-@@ -6,7 +6,7 @@
- * for more details.
- *
- * Copyright (C) 1996, 1997 by Ralf Baechle
-- * Copyright (C) 2001 by Liam Davies (ldavies@agile.tv)
-+ * Copyright (C) 2001, 2002, 2003 by Liam Davies (ldavies@agile.tv)
- *
- */
-
-@@ -99,7 +99,8 @@
- #ifdef CONFIG_BLK_DEV_IDE
- ide_ops = &std_ide_ops;
- #endif
-- set_io_port_base(0xb0000000);
-+
-+ set_io_port_base(KSEG1ADDR(0x10000000));
-
- /*
- * This is a prom style console. We just poke at the
-diff -urNd -urNd linux-2.4.20/arch/mips/config-shared.in linux-2.4.20-mipscvs-20050106/arch/mips/config-shared.in
---- linux-2.4.20/arch/mips/config-shared.in 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/config-shared.in 2003-02-14 12:43:55.000000000 -0600
-@@ -14,19 +14,29 @@
- fi
- endmenu
-
-+#
-+# Keep these alphabetically sorted
-+#
- mainmenu_option next_comment
- comment 'Machine selection'
- dep_bool 'Support for Acer PICA 1 chipset (EXPERIMENTAL)' CONFIG_ACER_PICA_61 $CONFIG_EXPERIMENTAL
--dep_bool 'Support for Alchemy Semi PB1000 board' CONFIG_MIPS_PB1000 $CONFIG_MIPS32
-+dep_bool 'Support for Alchemy Db1000 board' CONFIG_MIPS_DB1000 $CONFIG_MIPS32
-+dep_bool 'Support for Alchemy Db1100 board' CONFIG_MIPS_DB1100 $CONFIG_MIPS32
-+dep_bool 'Support for Alchemy Db1500 board' CONFIG_MIPS_DB1500 $CONFIG_MIPS32
-+dep_bool 'Support for Alchemy PB1000 board' CONFIG_MIPS_PB1000 $CONFIG_MIPS32
- if [ "$CONFIG_MIPS_PB1000" = "y" ]; then
- bool ' Support for PCI AUTO Config' CONFIG_PCI_AUTO
- fi
--dep_bool 'Support for Alchemy Semi PB1100 board' CONFIG_MIPS_PB1100 $CONFIG_MIPS32
--dep_bool 'Support for Alchemy Semi PB1500 board' CONFIG_MIPS_PB1500 $CONFIG_MIPS32
--dep_bool 'Support for Algorithmics P4032 (EXPERIMENTAL)' CONFIG_ALGOR_P4032 $CONFIG_EXPERIMENTAL
-+dep_bool 'Support for Alchemy PB1100 board' CONFIG_MIPS_PB1100 $CONFIG_MIPS32
-+dep_bool 'Support for Alchemy PB1500 board' CONFIG_MIPS_PB1500 $CONFIG_MIPS32
- dep_bool 'Support for BAGET MIPS series (EXPERIMENTAL)' CONFIG_BAGET_MIPS $CONFIG_MIPS32 $CONFIG_EXPERIMENTAL
-+bool 'Support for CASIO CASSIOPEIA E-10/15/55/65' CONFIG_CASIO_E55
- dep_bool 'Support for Cobalt Server (EXPERIMENTAL)' CONFIG_MIPS_COBALT $CONFIG_EXPERIMENTAL
--dep_bool 'Support for DECstations' CONFIG_DECSTATION $CONFIG_MIPS32
-+if [ "$CONFIG_MIPS32" = "y" ]; then
-+ bool 'Support for DECstations' CONFIG_DECSTATION
-+else
-+ dep_bool 'Support for DECstations (EXPERIMENTAL)' CONFIG_DECSTATION $CONFIG_EXPERIMENTAL
-+fi
- dep_bool 'Support for Galileo EV64120 Evaluation board (EXPERIMENTAL)' CONFIG_MIPS_EV64120 $CONFIG_EXPERIMENTAL
- if [ "$CONFIG_MIPS_EV64120" = "y" ]; then
- bool ' Enable Second PCI (PCI1)' CONFIG_EVB_PCI1
-@@ -38,13 +48,21 @@
- dep_bool 'Support for Galileo EV96100 Evaluation board (EXPERIMENTAL)' CONFIG_MIPS_EV96100 $CONFIG_EXPERIMENTAL
- bool 'Support for Globespan IVR board' CONFIG_MIPS_IVR
- bool 'Support for Hewlett Packard LaserJet board' CONFIG_HP_LASERJET
-+bool 'Support for IBM WorkPad z50' CONFIG_IBM_WORKPAD
-+bool 'Support for LASAT Networks platforms' CONFIG_LASAT
-+if [ "$CONFIG_LASAT" = "y" ]; then
-+ tristate ' PICVUE LCD display driver' CONFIG_PICVUE
-+ dep_tristate ' PICVUE LCD display driver /proc interface' CONFIG_PICVUE_PROC $CONFIG_PICVUE
-+ bool ' DS1603 RTC driver' CONFIG_DS1603
-+ bool ' LASAT sysctl interface' CONFIG_LASAT_SYSCTL
-+fi
- bool 'Support for ITE 8172G board' CONFIG_MIPS_ITE8172
- if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
- bool ' Support for older IT8172 (Rev C)' CONFIG_IT8172_REVC
- fi
--dep_bool 'Support for MIPS Atlas board (EXPERIMENTAL)' CONFIG_MIPS_ATLAS $CONFIG_EXPERIMENTAL
-+bool 'Support for MIPS Atlas board' CONFIG_MIPS_ATLAS
- bool 'Support for MIPS Magnum 4000' CONFIG_MIPS_MAGNUM_4000
--dep_bool 'Support for MIPS Malta board (EXPERIMENTAL)' CONFIG_MIPS_MALTA $CONFIG_EXPERIMENTAL
-+bool 'Support for MIPS Malta board' CONFIG_MIPS_MALTA
- dep_bool 'Support for MIPS SEAD board (EXPERIMENTAL)' CONFIG_MIPS_SEAD $CONFIG_EXPERIMENTAL
- bool 'Support for Momentum Ocelot board' CONFIG_MOMENCO_OCELOT
- bool 'Support for Momentum Ocelot-G board' CONFIG_MOMENCO_OCELOT_G
-@@ -56,6 +74,9 @@
- fi
- bool 'Support for NEC Osprey board' CONFIG_NEC_OSPREY
- bool 'Support for NEC Eagle/Hawk board' CONFIG_NEC_EAGLE
-+if [ "$CONFIG_NEC_EAGLE" = "y" ]; then
-+ tristate ' NEC VRC4173 support' CONFIG_VRC4173
-+fi
- bool 'Support for Olivetti M700-10' CONFIG_OLIVETTI_M700
- dep_bool 'Support for Philips Nino (EXPERIMENTAL)' CONFIG_NINO $CONFIG_MIPS32 $CONFIG_EXPERIMENTAL
- if [ "$CONFIG_NINO" = "y" ]; then
-@@ -73,16 +94,68 @@
- bool ' Mapped kernel support' CONFIG_MAPPED_KERNEL
- bool ' Kernel text replication support' CONFIG_REPLICATE_KTEXT
- bool ' Exception handler replication support' CONFIG_REPLICATE_EXHANDLERS
-- bool ' Multi-Processing support' CONFIG_SMP
-+ define_bool CONFIG_SMP_CAPABLE y
- #bool ' IP27 XXL' CONFIG_SGI_SN0_XXL
- fi
- dep_bool 'Support for SGI-IP32 (O2) (EXPERIMENTAL)' CONFIG_SGI_IP32 $CONFIG_EXPERIMENTAL
- dep_bool 'Support for Broadcom BCM1xxx SOCs (EXPERIMENTAL)' CONFIG_SIBYTE_SB1xxx_SOC $CONFIG_EXPERIMENTAL
- if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
-- choice ' BCM1xxx SOC Type' \
-- "BCM1250 CONFIG_SIBYTE_SB1250" BCM1250
-+ choice ' BCM1xxx SOC-based board' \
-+ "BCM91250A-SWARM CONFIG_SIBYTE_SWARM \
-+ BCM91250E-Sentosa CONFIG_SIBYTE_SENTOSA \
-+ BCM91120C-CRhine CONFIG_SIBYTE_CRHINE \
-+ BCM91120x-Carmel CONFIG_SIBYTE_CARMEL \
-+ BCM91125C-CRhone CONFIG_SIBYTE_CRHONE \
-+ BCM91125E-Rhone CONFIG_SIBYTE_RHONE \
-+ Other CONFIG_SIBYTE_UNKNOWN" CONFIG_SIBYTE_SWARM
-+
-+ if [ "$CONFIG_SIBYTE_UNKNOWN" = "y" ]; then
-+ choice ' BCM1xxx SOC Type' \
-+ "BCM91250 CONFIG_SIBYTE_SB1250 \
-+ BCM91120 CONFIG_SIBYTE_BCM1120 \
-+ BCM91125 CONFIG_SIBYTE_BCM1125 \
-+ BCM91125H CONFIG_SIBYTE_BCM1125H" CONFIG_SIBYTE_SB1250
-+ unset CONFIG_SIBYTE_BOARD
-+ else
-+ define_bool CONFIG_SIBYTE_BOARD y
-+ if [ "$CONFIG_SIBYTE_SWARM" = "y" -o \
-+ "$CONFIG_SIBYTE_SENTOSA" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_SB1250 y
-+ unset CONFIG_SIBYTE_BCM1120
-+ unset CONFIG_SIBYTE_BCM1125
-+ unset CONFIG_SIBYTE_BCM1125H
-+ fi
-+ if [ "$CONFIG_SIBYTE_CRHINE" = "y" -o \
-+ "$CONFIG_SIBYTE_CARMEL" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_BCM1120 y
-+ unset CONFIG_SIBYTE_SB1250
-+ unset CONFIG_SIBYTE_BCM1125
-+ unset CONFIG_SIBYTE_BCM1125H
-+ fi
-+ if [ "$CONFIG_SIBYTE_CRHONE" = "y" -o \
-+ "$CONFIG_SIBYTE_RHONE" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_BCM1125H y
-+ unset CONFIG_SIBYTE_SB1250
-+ unset CONFIG_SIBYTE_BCM1120
-+ unset CONFIG_SIBYTE_BCM1125
-+ fi
-+ fi
-+
-+ if [ "$CONFIG_SIBYTE_BCM1120" = "y" -o \
-+ "$CONFIG_SIBYTE_BCM1125" = "y" -o \
-+ "$CONFIG_SIBYTE_BCM1125H" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_BCM112X y
-+ choice 'BCM1xxx Pass' \
-+ "Hybrid CONFIG_CPU_SB1_PASS_2 \
-+ A1-A2 CONFIG_CPU_SB1_PASS_3" A1-A2
-+ else
-+ unset CONFIG_SIBYTE_BCM112X
-+ choice 'BCM1250 Pass' \
-+ "Pass1 CONFIG_CPU_SB1_PASS_1 \
-+ A3-A10 CONFIG_CPU_SB1_PASS_2 \
-+ B0-B3 CONFIG_CPU_SB1_PASS_2_2" A3-A10
-+ fi
-
-- bool ' Running under simulation' CONFIG_SIMULATION
- bool ' Booting from CFE' CONFIG_SIBYTE_CFE
- dep_bool ' Use firmware console' CONFIG_SIBYTE_CFE_CONSOLE $CONFIG_SIBYTE_CFE
- if [ "$CONFIG_SIBYTE_CFE" = "n" ]; then
-@@ -90,25 +163,41 @@
- int ' Memory size (in megabytes)' CONFIG_SIBYTE_STANDALONE_RAM_SIZE 32
- fi
-
-+ bool ' Support for Bus Watcher statistics' CONFIG_SIBYTE_BUS_WATCHER
- bool ' Support for SB1/SOC profiling - SB1/SCD perf counters' CONFIG_SIBYTE_SB1250_PROF
-- bool ' Support for ZBbus profiling' CONFIG_BCM1250_TBPROF
-+ bool ' Support for ZBbus profiling' CONFIG_SIBYTE_TBPROF
-
-- if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-- if [ "$CONFIG_SIBYTE_STANDALONE" != "y" ]; then
-- bool ' Multi-Processing support' CONFIG_SMP
-+ if [ "$CONFIG_SIBYTE_SB1250" = "y" -o \
-+ "$CONFIG_SIBYTE_BCM1125" = "y" -o \
-+ "$CONFIG_SIBYTE_BCM1125H" = "y" ]; then
-+ bool ' Support for BCM1250/BCM1125 onchip PCI controller' CONFIG_PCI
-+ fi
-+
-+ if [ "$CONFIG_SIBYTE_SB1250" = "y" -o \
-+ "$CONFIG_SIBYTE_BCM1125H" = "y" ]; then
-+ if [ "$CONFIG_PCI" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_HAS_LDT y
- fi
- fi
-
-- if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-- bool ' Support for BCM1250/BCM112x onchip PCI controller' CONFIG_PCI
-+ if [ "$CONFIG_SIBYTE_SWARM" = "y" -o \
-+ "$CONFIG_SIBYTE_CARMEL" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_GENBUS_IDE y
- fi
-
- if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-- bool ' Support for SWARM board' CONFIG_SIBYTE_SWARM
-+ if [ "$CONFIG_SIBYTE_STANDALONE" != "y" ]; then
-+ define_bool CONFIG_SMP_CAPABLE y
-+ fi
- fi
- fi
- bool 'Support for SNI RM200 PCI' CONFIG_SNI_RM200_PCI
-+bool 'Support for TANBAC TB0226 (Mbase)' CONFIG_TANBAC_TB0226
- dep_bool 'Support for Toshiba JMR-TX3927 board' CONFIG_TOSHIBA_JMR3927 $CONFIG_MIPS32
-+bool 'Support for Victor MP-C303/304' CONFIG_VICTOR_MPC30X
-+if [ "$CONFIG_VICTOR_MPC30X" = "y" ]; then
-+ tristate ' NEC VRC4173 support' CONFIG_VRC4173
-+fi
- bool 'Support for ZAO Networks Capcella' CONFIG_ZAO_CAPCELLA
-
- dep_bool 'High Memory Support' CONFIG_HIGHMEM $CONFIG_MIPS32
-@@ -127,56 +216,94 @@
- define_bool CONFIG_MIPS_JAZZ y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
-- define_bool CONFIG_ROTTEN_IRQ y
- define_bool CONFIG_OLD_TIME_C y
- fi
-+if [ "$CONFIG_CASIO_E55" = "y" ]; then
-+ define_bool CONFIG_CPU_VR41XX y
-+ define_bool CONFIG_IRQ_CPU y
-+ define_bool CONFIG_NEW_TIME_C y
-+ define_bool CONFIG_VR41XX_TIME_C y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_ISA y
-+ define_bool CONFIG_DUMMY_KEYB y
-+ define_bool CONFIG_SCSI n
-+fi
- if [ "$CONFIG_MIPS_PB1000" = "y" ]; then
-- define_bool CONFIG_MIPS_AU1000 y
-- define_bool CONFIG_NEW_IRQ y
-+ define_bool CONFIG_CPU_AU1X00 y
-+ define_bool CONFIG_CPU_AU1000 y
- define_bool CONFIG_PCI y
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
-- define_bool CONFIG_SWAP_IO_SPACE y
-- define_bool CONFIG_AU1000_USB_DEVICE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
-+ define_bool CONFIG_AU1X00_USB_DEVICE y
- fi
- if [ "$CONFIG_MIPS_PB1100" = "y" ]; then
-- define_bool CONFIG_MIPS_AU1000 y
-- define_bool CONFIG_NEW_IRQ y
-+ define_bool CONFIG_CPU_AU1X00 y
-+ define_bool CONFIG_CPU_AU1100 y
- define_bool CONFIG_PCI y
- define_bool CONFIG_PCI_AUTO n
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
-- define_bool CONFIG_SWAP_IO_SPACE y
-- define_bool CONFIG_AU1000_USB_DEVICE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
-+ define_bool CONFIG_AU1X00_USB_DEVICE y
- fi
- if [ "$CONFIG_MIPS_PB1500" = "y" ]; then
-- define_bool CONFIG_MIPS_AU1000 y
-+ define_bool CONFIG_CPU_AU1X00 y
-+ define_bool CONFIG_CPU_AU1500 y
-+ define_bool CONFIG_PCI y
-+ define_bool CONFIG_NEW_PCI y
-+ define_bool CONFIG_PCI_AUTO y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_PC_KEYB y
-+ define_bool CONFIG_AU1X00_USB_DEVICE y
-+fi
-+if [ "$CONFIG_MIPS_DB1000" = "y" ]; then
-+ define_bool CONFIG_CPU_AU1X00 y
-+ define_bool CONFIG_CPU_AU1000 y
-+ # CONFIG_PCI needed for USB
-+ define_bool CONFIG_PCI y
-+ define_bool CONFIG_NEW_PCI y
-+ define_bool CONFIG_PCI_AUTO n
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_PC_KEYB y
-+ define_bool CONFIG_SWAP_IO_SPACE y
-+fi
-+if [ "$CONFIG_MIPS_DB1500" = "y" ]; then
-+ define_bool CONFIG_CPU_AU1X00 y
-+ define_bool CONFIG_CPU_AU1500 y
- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_PCI y
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_PCI_AUTO y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
-- define_bool CONFIG_AU1000_USB_DEVICE y
- fi
--if [ "$CONFIG_ALGOR_P4032" = "y" ]; then
-+if [ "$CONFIG_MIPS_DB1100" = "y" ]; then
-+ define_bool CONFIG_CPU_AU1X00 y
-+ define_bool CONFIG_CPU_AU1100 y
-+ define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_PCI y
-+ define_bool CONFIG_NEW_PCI y
-+ define_bool CONFIG_PCI_AUTO y
- define_bool CONFIG_NONCOHERENT_IO y
-- define_bool CONFIG_OLD_TIME_C y
-+ define_bool CONFIG_PC_KEYB y
-+ define_bool CONFIG_SWAP_IO_SPACE y
- fi
- if [ "$CONFIG_MIPS_COBALT" = "y" ]; then
- define_bool CONFIG_COBALT_LCD y
- define_bool CONFIG_I8259 y
- define_bool CONFIG_PCI y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
- fi
- if [ "$CONFIG_DECSTATION" = "y" ]; then
-+ define_bool CONFIG_BOOT_ELF32 y
- define_bool CONFIG_IRQ_CPU y
-- define_bool CONFIG_NEW_IRQ y
-+ define_int CONFIG_L1_CACHE_SHIFT 4
- define_bool CONFIG_NONCOHERENT_IO y
- fi
- if [ "$CONFIG_MIPS_EV64120" = "y" ]; then
-@@ -189,11 +316,11 @@
- if [ "$CONFIG_MIPS_EV96100" = "y" ]; then
- define_bool CONFIG_PCI y
- define_bool CONFIG_MIPS_GT96100 y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PCI_AUTO y
-- define_bool CONFIG_SWAP_IO_SPACE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- fi
- if [ "$CONFIG_MIPS_IVR" = "y" ]; then
- define_bool CONFIG_PCI y
-@@ -202,18 +329,34 @@
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PCI_AUTO y
- define_bool CONFIG_IT8172_CIR y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- fi
- if [ "$CONFIG_HP_LASERJET" = "y" ]; then
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_NEW_TIME_C y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PCI y
- #not yet define_bool CONFIG_PCI_AUTO y
- fi
-+if [ "$CONFIG_IBM_WORKPAD" = "y" ]; then
-+ define_bool CONFIG_CPU_VR41XX y
-+ define_bool CONFIG_IRQ_CPU y
-+ define_bool CONFIG_NEW_TIME_C y
-+ define_bool CONFIG_VR41XX_TIME_C y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_ISA y
-+ define_bool CONFIG_DUMMY_KEYB y
-+ define_bool CONFIG_SCSI n
-+fi
-+if [ "$CONFIG_LASAT" = "y" ]; then
-+ define_bool CONFIG_BOARD_SCACHE y
-+ define_bool CONFIG_R5000_CPU_SCACHE y
-+ define_bool CONFIG_PCI y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_NEW_TIME_C y
-+ define_bool CONFIG_NEW_IRQ y
-+fi
- if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
- define_bool CONFIG_PCI y
- define_bool CONFIG_IT8712 y
-@@ -222,17 +365,16 @@
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PCI_AUTO y
- define_bool CONFIG_IT8172_CIR y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- fi
- if [ "$CONFIG_MIPS_ATLAS" = "y" ]; then
- define_bool CONFIG_BOOT_ELF32 y
- define_int CONFIG_L1_CACHE_SHIFT 5
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PCI y
-- define_bool CONFIG_SWAP_IO_SPACE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- fi
- if [ "$CONFIG_MIPS_MAGNUM_4000" = "y" -o \
- "$CONFIG_OLIVETTI_M700" = "y" ]; then
-@@ -251,16 +393,15 @@
- define_bool CONFIG_HAVE_STD_PC_SERIAL_PORT y
- define_bool CONFIG_I8259 y
- define_int CONFIG_L1_CACHE_SHIFT 5
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
-- define_bool CONFIG_SWAP_IO_SPACE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_PC_KEYB y
- define_bool CONFIG_PCI y
- fi
- if [ "$CONFIG_MIPS_SEAD" = "y" ]; then
- define_int CONFIG_L1_CACHE_SHIFT 5
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PCI n
-@@ -268,16 +409,16 @@
- if [ "$CONFIG_MOMENCO_OCELOT" = "y" ]; then
- define_bool CONFIG_PCI y
- define_bool CONFIG_SYSCLK_100 y
-- define_bool CONFIG_SWAP_IO_SPACE y
-- define_bool CONFIG_NEW_IRQ y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_OLD_TIME_C y
- fi
- if [ "$CONFIG_MOMENCO_OCELOT_G" = "y" ]; then
- define_bool CONFIG_PCI y
- define_bool CONFIG_SYSCLK_100 y
-- define_bool CONFIG_SWAP_IO_SPACE y
-- define_bool CONFIG_NEW_IRQ y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_OLD_TIME_C y
- fi
-@@ -290,7 +431,6 @@
- define_bool CONFIG_PC_KEYB y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_PCI_AUTO y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_NEW_PCI y
- fi
-@@ -298,7 +438,6 @@
- define_bool CONFIG_ISA y
- define_bool CONFIG_PCI y
- define_bool CONFIG_PC_KEYB y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_I8259 y
- define_bool CONFIG_HAVE_STD_PC_SERIAL_PORT y
-@@ -310,7 +449,6 @@
- if [ "$CONFIG_DDB5477" = "y" ]; then
- define_bool CONFIG_PCI y
- define_bool CONFIG_NEW_TIME_C y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_NONCOHERENT_IO y
-@@ -320,9 +458,6 @@
- fi
- if [ "$CONFIG_NEC_OSPREY" = "y" ]; then
- define_bool CONFIG_VR4181 y
-- define_bool CONFIG_SERIAL y
-- define_bool CONFIG_SERIAL_MANY_PORTS y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
-@@ -331,7 +466,6 @@
- fi
- if [ "$CONFIG_NEC_EAGLE" = "y" ]; then
- define_bool CONFIG_CPU_VR41XX y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_VR41XX_TIME_C y
-@@ -344,22 +478,20 @@
- define_bool CONFIG_SCSI n
- fi
- if [ "$CONFIG_NINO" = "y" ]; then
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
- fi
- if [ "$CONFIG_SGI_IP22" = "y" ]; then
- define_bool CONFIG_ARC32 y
-- define_bool CONFIG_ARC_CONSOLE y
- define_bool CONFIG_ARC_MEMORY y
-+ define_bool CONFIG_ARC_PROMLIB y
- define_bool CONFIG_BOARD_SCACHE y
- define_bool CONFIG_BOOT_ELF32 y
-- define_bool CONFIG_SWAP_IO_SPACE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W n
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_IRQ_CPU y
- define_int CONFIG_L1_CACHE_SHIFT 5
-- define_bool CONFIG_NONCOHERENT_IO y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
-@@ -368,54 +500,82 @@
- if [ "$CONFIG_SGI_IP27" = "y" ]; then
- define_bool CONFIG_BOOT_ELF64 y
- define_bool CONFIG_ARC64 y
-+ define_int CONFIG_L1_CACHE_SHIFT 7
- #define_bool CONFIG_MAPPED_PCI_IO y
-+ define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_PCI y
- define_bool CONFIG_QL_ISP_A64 y
-- define_int CONFIG_L1_CACHE_SHIFT 7
- fi
- if [ "$CONFIG_SGI_IP32" = "y" ]; then
- define_bool CONFIG_ARC_MEMORY y
-+ define_bool CONFIG_ARC_PROMLIB y
- define_bool CONFIG_ARC32 y
-- #define_bool CONFIG_BOARD_SCACHE y
-+ define_bool CONFIG_BOARD_SCACHE y
-+ define_bool CONFIG_R5000_CPU_SCACHE y
- define_bool CONFIG_BOOT_ELF32 y
- define_int CONFIG_L1_CACHE_SHIFT 5
-+ define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_PC_KEYB y
- define_bool CONFIG_PCI y
- fi
--if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-- define_bool CONFIG_NEW_IRQ y
-+if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_DUMMY_KEYB y
-- define_bool CONFIG_SWAP_IO_SPACE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_BOOT_ELF32 y
- fi
- if [ "$CONFIG_SNI_RM200_PCI" = "y" ]; then
- define_bool CONFIG_ARC32 y
- define_bool CONFIG_ARC_MEMORY y
-+ define_bool CONFIG_ARC_PROMLIB y
- define_bool CONFIG_I8259 y
- define_bool CONFIG_ISA y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_OLD_TIME_C y
- define_bool CONFIG_PC_KEYB y
- define_bool CONFIG_PCI y
- fi
-+if [ "$CONFIG_TANBAC_TB0226" = "y" ]; then
-+ define_bool CONFIG_CPU_VR41XX y
-+ define_bool CONFIG_IRQ_CPU y
-+ define_bool CONFIG_NEW_TIME_C y
-+ define_bool CONFIG_VR41XX_TIME_C y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_ISA n
-+ define_bool CONFIG_PCI y
-+ define_bool CONFIG_NEW_PCI y
-+ define_bool CONFIG_PCI_AUTO y
-+ define_bool CONFIG_DUMMY_KEYB y
-+ define_bool CONFIG_SERIAL_MANY_PORTS y
-+fi
- if [ "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
- define_bool CONFIG_TOSHIBA_BOARDS y
- define_bool CONFIG_PCI y
- define_bool CONFIG_NEW_PCI y
- define_bool CONFIG_PCI_AUTO y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NONCOHERENT_IO y
-- define_bool CONFIG_SWAP_IO_SPACE y
-+ define_bool CONFIG_SWAP_IO_SPACE_W y
-+ define_bool CONFIG_SWAP_IO_SPACE_L y
- define_bool CONFIG_PC_KEYB y
- fi
-+if [ "$CONFIG_VICTOR_MPC30X" = "y" ]; then
-+ define_bool CONFIG_CPU_VR41XX y
-+ define_bool CONFIG_IRQ_CPU y
-+ define_bool CONFIG_NEW_TIME_C y
-+ define_bool CONFIG_VR41XX_TIME_C y
-+ define_bool CONFIG_NONCOHERENT_IO y
-+ define_bool CONFIG_ISA n
-+ define_bool CONFIG_PCI y
-+ define_bool CONFIG_NEW_PCI y
-+ define_bool CONFIG_PCI_AUTO y
-+ define_bool CONFIG_DUMMY_KEYB y
-+ define_bool CONFIG_SCSI n
-+fi
- if [ "$CONFIG_ZAO_CAPCELLA" = "y" ]; then
- define_bool CONFIG_CPU_VR41XX y
-- define_bool CONFIG_CPU_LITTLE_ENDIAN y
-- define_bool CONFIG_NEW_IRQ y
- define_bool CONFIG_IRQ_CPU y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_VR41XX_TIME_C y
-@@ -454,12 +614,8 @@
- RM7000 CONFIG_CPU_RM7000 \
- SB1 CONFIG_CPU_SB1" R4x00
-
--if [ "$CONFIG_CPU_R5000" = "y" ]; then
-- define_bool CONFIG_BOARD_SCACHE y
--fi
--
--if [ "$CONFIG_CPU_NEVADA" = "y" ]; then
-- define_bool CONFIG_BOARD_SCACHE y
-+if [ "$CONFIG_SMP_CAPABLE" = "y" ]; then
-+ bool ' Multi-Processing support' CONFIG_SMP
- fi
-
- if [ "$CONFIG_CPU_MIPS32" = "y" ]; then
-@@ -477,15 +633,13 @@
- fi
-
- if [ "$CONFIG_CPU_SB1" = "y" ]; then
-- choice 'SB1 Pass' \
-- "Pass1 CONFIG_CPU_SB1_PASS_1 \
-- Pass2 CONFIG_CPU_SB1_PASS_2
-- Pass2.2 CONFIG_CPU_SB1_PASS_2_2" Pass1
-+ # SB1 Pass-specific options
- if [ "$CONFIG_CPU_SB1_PASS_1" = "y" ]; then
- define_bool CONFIG_SB1_PASS_1_WORKAROUNDS y
- fi
- if [ "$CONFIG_CPU_SB1_PASS_2" = "y" ]; then
- define_bool CONFIG_SB1_PASS_2_WORKAROUNDS y
-+ define_bool CONFIG_SB1_PASS_2_1_WORKAROUNDS y
- else
- # Avoid prefetches on Pass 2 (before 2.2)
- bool ' Enable prefetches' CONFIG_CPU_HAS_PREFETCH
-@@ -494,9 +648,7 @@
- # XXXKW for now, let 2.2 use same WORKAROUNDS flag as pre-2.2
- define_bool CONFIG_SB1_PASS_2_WORKAROUNDS y
- fi
-- bool ' Support for SB1 Cache Error handler' CONFIG_SB1_CACHE_ERROR
-- dep_bool ' Ignore recoverable cache errors' CONFIG_SB1_CERR_IGNORE_RECOVERABLE $CONFIG_SB1_CACHE_ERROR
-- dep_bool ' Spin instead of running handler' CONFIG_SB1_CERR_SPIN $CONFIG_SB1_CACHE_ERROR
-+
- define_bool CONFIG_VTAG_ICACHE y
- fi
-
-@@ -547,15 +699,52 @@
- fi
- endmenu
-
-+#
-+# Choose endianess of code to generate. It's a frequent trap for users so the
-+# config file tries it's best to choose the right endianess for those systems
-+# where we know about their endianess. We only ask the user for systems
-+# known to be bi-endian; for those systems the defconfig file should defaults
-+# to the common endianess used for that system.
-+#
- mainmenu_option next_comment
- comment 'General setup'
--if [ "$CONFIG_DECSTATION" = "y" -o \
-- "$CONFIG_DDB5074" = "y" -o \
-- "$CONFIG_NINO" = "y" -o \
-- "$CONFIG_MIPS_COBALT" = "y" ]; then
-+if [ "$CONFIG_ACER_PICA_61" = "y" -o \
-+ "$CONFIG_CASIO_E55" = "y" -o \
-+ "$CONFIG_DDB5074" = "y" -o \
-+ "$CONFIG_DDB5476" = "y" -o \
-+ "$CONFIG_DDB5477" = "y" -o \
-+ "$CONFIG_DECSTATION" = "y" -o \
-+ "$CONFIG_HP_LASERJET" = "y" -o \
-+ "$CONFIG_IBM_WORKPAD" = "y" -o \
-+ "$CONFIG_LASAT" = "y" -o \
-+ "$CONFIG_MIPS_COBALT" = "y" -o \
-+ "$CONFIG_MIPS_ITE8172" = "y" -o \
-+ "$CONFIG_MIPS_IVR" = "y" -o \
-+ "$CONFIG_MIPS_PB1000" = "y" -o \
-+ "$CONFIG_MIPS_PB1100" = "y" -o \
-+ "$CONFIG_MIPS_PB1500" = "y" -o \
-+ "$CONFIG_NEC_OSPREY" = "y" -o \
-+ "$CONFIG_NEC_EAGLE" = "y" -o \
-+ "$CONFIG_NINO" = "y" -o \
-+ "$CONFIG_OLIVETTI_M700" = "y" -o \
-+ "$CONFIG_SNI_RM200_PCI" = "y" -o \
-+ "$CONFIG_VICTOR_MPC30X" = "y" -o \
-+ "$CONFIG_ZAO_CAPCELLA" = "y" ]; then
- define_bool CONFIG_CPU_LITTLE_ENDIAN y
- else
-- bool 'Generate little endian code' CONFIG_CPU_LITTLE_ENDIAN
-+ if [ "$CONFIG_BAGET_MIPS" = "y" -o \
-+ "$CONFIG_MIPS_EV64120" = "y" -o \
-+ "$CONFIG_MIPS_EV96100" = "y" -o \
-+ "$CONFIG_MOMENCO_OCELOT" = "y" -o \
-+ "$CONFIG_MOMENCO_OCELOT_G" = "y" -o \
-+ "$CONFIG_SGI_IP22" = "y" -o \
-+ "$CONFIG_SGI_IP27" = "y" -o \
-+ "$CONFIG_SGI_IP32" = "y" -o \
-+ "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
-+ define_bool CONFIG_CPU_LITTLE_ENDIAN n
-+ else
-+ bool 'Generate little endian code' CONFIG_CPU_LITTLE_ENDIAN
-+ fi
- fi
-
- if [ "$CONFIG_TOSHIBA_JMR3927" = "y" ]; then
-@@ -623,7 +812,14 @@
- define_bool CONFIG_BINFMT_AOUT n
- tristate 'Kernel support for ELF binaries' CONFIG_BINFMT_ELF
- dep_bool 'Kernel support for Linux/MIPS 32-bit binary compatibility' CONFIG_MIPS32_COMPAT $CONFIG_MIPS64
--define_bool CONFIG_BINFMT_ELF32 $CONFIG_MIPS32_COMPAT
-+dep_bool 'Kernel support for o32 binaries' CONFIG_MIPS32_O32 $CONFIG_MIPS32_COMPAT
-+dep_bool 'Kernel support for n32 binaries' CONFIG_MIPS32_N32 $CONFIG_MIPS32_COMPAT
-+if [ "$CONFIG_MIPS32_O32" = "y" -o \
-+ "$CONFIG_MIPS32_N32" = "y" ]; then
-+ define_bool CONFIG_BINFMT_ELF32 y
-+else
-+ define_bool CONFIG_BINFMT_ELF32 n
-+fi
-
- tristate 'Kernel support for MISC binaries' CONFIG_BINFMT_MISC
-
-@@ -641,6 +837,9 @@
- mainmenu_option next_comment
- comment 'MIPS initrd options'
- bool ' Embed root filesystem ramdisk into the kernel' CONFIG_EMBEDDED_RAMDISK
-+ if [ "$CONFIG_EMBEDDED_RAMDISK" = "y" ]; then
-+ string ' Filename of gziped ramdisk image' CONFIG_EMBEDDED_RAMDISK_IMAGE ramdisk.gz
-+ fi
- endmenu
- fi
-
-@@ -727,19 +926,6 @@
-
- #source drivers/misc/Config.in
-
--if [ "$CONFIG_DECSTATION" = "y" ]; then
-- mainmenu_option next_comment
-- comment 'DECStation Character devices'
--
-- tristate 'Standard/generic (dumb) serial support' CONFIG_SERIAL
-- dep_bool ' DZ11 Serial Support' CONFIG_DZ $CONFIG_SERIAL
-- dep_bool ' Z85C30 Serial Support' CONFIG_ZS $CONFIG_SERIAL $CONFIG_TC
-- dep_bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE $CONFIG_SERIAL
--# dep_bool 'MAXINE Access.Bus mouse (VSXXX-BB/GB) support' CONFIG_DTOP_MOUSE $CONFIG_ACCESSBUS
-- bool 'Enhanced Real Time Clock Support' CONFIG_RTC
-- endmenu
--fi
--
- if [ "$CONFIG_SGI_IP22" = "y" ]; then
- mainmenu_option next_comment
- comment 'SGI Character devices'
-@@ -789,11 +975,12 @@
- comment 'Kernel hacking'
-
- bool 'Are you using a crosscompiler' CONFIG_CROSSCOMPILE
--if [ "$CONFIG_SERIAL" = "y" -o "$CONFIG_AU1000_UART" = "y" ]; then
-- bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
-- dep_bool 'Console output to GDB' CONFIG_GDB_CONSOLE $CONFIG_REMOTE_DEBUG
--fi
- bool 'Enable run-time debugging' CONFIG_DEBUG
-+bool 'Remote GDB kernel debugging' CONFIG_REMOTE_DEBUG
-+dep_bool ' Console output to GDB' CONFIG_GDB_CONSOLE $CONFIG_REMOTE_DEBUG
-+if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
-+ dep_bool 'Compile for Corelis Debugger' CONFIG_SB1XXX_CORELIS $CONFIG_DEBUG
-+fi
- bool 'Magic SysRq key' CONFIG_MAGIC_SYSRQ
- if [ "$CONFIG_SMP" != "y" ]; then
- bool 'Run uncached' CONFIG_MIPS_UNCACHED
-diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Entries
---- linux-2.4.20/arch/mips/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Entries 2005-01-06 23:08:21.000000000 -0600
-@@ -0,0 +1,68 @@
-+/.cvsignore/1.1/Fri Oct 27 00:13:34 2000/-ko/Tlinux_2_4_20
-+/.gdbinit/1.1.1.1/Sun Jun 1 03:16:38 1997/-ko/Tlinux_2_4_20
-+/Makefile/1.78.2.22/Thu Feb 20 18:53:37 2003/-ko/Tlinux_2_4_20
-+/config-shared.in/1.1.2.47/Fri Feb 14 18:43:55 2003/-ko/Tlinux_2_4_20
-+/config.in/1.154.2.27/Thu Jul 25 18:48:46 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.117.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-atlas/1.48.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-capcella/1.1.2.20/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-cobalt/1.17.2.28/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-db1000/1.1.2.7/Fri Feb 7 23:39:40 2003/-ko/Tlinux_2_4_20
-+/defconfig-db1500/1.1.2.7/Fri Feb 7 23:39:40 2003/-ko/Tlinux_2_4_20
-+/defconfig-ddb5476/1.54.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ddb5477/1.24.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-decstation/1.76.2.36/Fri Feb 7 23:39:40 2003/-ko/Tlinux_2_4_20
-+/defconfig-e55/1.1.2.11/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-eagle/1.1.2.22/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ev64120/1.45.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ev96100/1.51.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-hp-lj/1.4.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ip22/1.92.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-it8172/1.39.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ivr/1.3.2.31/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-jmr3927/1.2.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-lasat/1.1.2.4/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-malta/1.51.2.34/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-mpc30x/1.1.2.11/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-nino/1.30.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ocelot/1.36.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-osprey/1.13.2.31/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-pb1000/1.29.2.40/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-pb1100/1.1.2.22/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-pb1500/1.1.2.31/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-rm200/1.67.2.29/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-sb1250-swarm/1.12.2.40/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-sead/1.1.2.21/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-tb0226/1.1.2.2/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-workpad/1.1.2.11/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/ld.script.in/1.7/Thu May 10 21:01:25 2001/-ko/Tlinux_2_4_20
-+D/arc////
-+D/au1000////
-+D/baget////
-+D/boot////
-+D/cobalt////
-+D/ddb5xxx////
-+D/dec////
-+D/galileo-boards////
-+D/gt64120////
-+D/hp-lj////
-+D/ite-boards////
-+D/jazz////
-+D/jmr3927////
-+D/kernel////
-+D/lasat////
-+D/lib////
-+D/math-emu////
-+D/mips-boards////
-+D/mm////
-+D/momentum////
-+D/philips////
-+D/ramdisk////
-+D/sgi-ip22////
-+D/sgi-ip27////
-+D/sgi-ip32////
-+D/sibyte////
-+D/sni////
-+D/tools////
-+D/vr4181////
-+D/vr41xx////
-diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Repository
---- linux-2.4.20/arch/mips/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Repository 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips
-diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Root
---- linux-2.4.20/arch/mips/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Root 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Tag
---- linux-2.4.20/arch/mips/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/CVS/Tag 2005-01-06 22:59:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/.cvsignore
---- linux-2.4.20/arch/mips/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/.cvsignore 2000-10-26 19:13:34.000000000 -0500
-@@ -0,0 +1 @@
-+ld.script
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/int-handler.S
---- linux-2.4.20/arch/mips/ddb5074/int-handler.S 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/int-handler.S 1969-12-31 18:00:00.000000000 -0600
-@@ -1,120 +0,0 @@
--/*
-- * arch/mips/ddb5074/int-handler.S -- NEC DDB Vrc-5074 interrupt handler
-- *
-- * Based on arch/mips/sgi/kernel/indyIRQ.S
-- *
-- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <asm/asm.h>
--#include <asm/mipsregs.h>
--#include <asm/regdef.h>
--#include <asm/stackframe.h>
--
--/* A lot of complication here is taken away because:
-- *
-- * 1) We handle one interrupt and return, sitting in a loop and moving across
-- * all the pending IRQ bits in the cause register is _NOT_ the answer, the
-- * common case is one pending IRQ so optimize in that direction.
-- *
-- * 2) We need not check against bits in the status register IRQ mask, that
-- * would make this routine slow as hell.
-- *
-- * 3) Linux only thinks in terms of all IRQs on or all IRQs off, nothing in
-- * between like BSD spl() brain-damage.
-- *
-- * Furthermore, the IRQs on the INDY look basically (barring software IRQs
-- * which we don't use at all) like:
-- *
-- * MIPS IRQ Source
-- * -------- ------
-- * 0 Software (ignored)
-- * 1 Software (ignored)
-- * 2 Local IRQ level zero
-- * 3 Local IRQ level one
-- * 4 8254 Timer zero
-- * 5 8254 Timer one
-- * 6 Bus Error
-- * 7 R4k timer (what we use)
-- *
-- * We handle the IRQ according to _our_ priority which is:
-- *
-- * Highest ---- R4k Timer
-- * Local IRQ zero
-- * Local IRQ one
-- * Bus Error
-- * 8254 Timer zero
-- * Lowest ---- 8254 Timer one
-- *
-- * then we just return, if multiple IRQs are pending then we will just take
-- * another exception, big deal.
-- */
--
-- .text
-- .set noreorder
-- .set noat
-- .align 5
-- NESTED(ddbIRQ, PT_SIZE, sp)
-- SAVE_ALL
-- CLI
-- .set at
-- mfc0 s0, CP0_CAUSE # get irq mask
--
--#if 1
-- mfc0 t2,CP0_STATUS # get enabled interrupts
-- and s0,t2 # isolate allowed ones
--#endif
-- /* First we check for r4k counter/timer IRQ. */
-- andi a0, s0, CAUSEF_IP2 # delay slot, check local level zero
-- beq a0, zero, 1f
-- andi a0, s0, CAUSEF_IP3 # delay slot, check local level one
--
-- /* Wheee, local level zero interrupt. */
-- jal ddb_local0_irqdispatch
-- move a0, sp # delay slot
--
-- j ret_from_irq
-- nop # delay slot
--
--1:
-- beq a0, zero, 1f
-- andi a0, s0, CAUSEF_IP6 # delay slot, check bus error
--
-- /* Wheee, local level one interrupt. */
-- move a0, sp
-- jal ddb_local1_irqdispatch
-- nop
--
-- j ret_from_irq
-- nop
--
--1:
-- beq a0, zero, 1f
-- nop
--
-- /* Wheee, an asynchronous bus error... */
-- move a0, sp
-- jal ddb_buserror_irq
-- nop
--
-- j ret_from_irq
-- nop
--
--1:
-- /* Here by mistake? This is possible, what can happen
-- * is that by the time we take the exception the IRQ
-- * pin goes low, so just leave if this is the case.
-- */
-- andi a0, s0, (CAUSEF_IP4 | CAUSEF_IP5)
-- beq a0, zero, 1f
--
-- /* Must be one of the 8254 timers... */
-- move a0, sp
-- jal ddb_8254timer_irq
-- nop
--1:
-- j ret_from_irq
-- nop
-- END(ddbIRQ)
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/irq.c
---- linux-2.4.20/arch/mips/ddb5074/irq.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/irq.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,226 +0,0 @@
--/*
-- * arch/mips/ddb5074/irq.c -- NEC DDB Vrc-5074 interrupt routines
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <linux/config.h>
--#include <linux/init.h>
--#include <linux/signal.h>
--#include <linux/sched.h>
--#include <linux/types.h>
--#include <linux/interrupt.h>
--#include <linux/ioport.h>
--
--#include <asm/io.h>
--#include <asm/irq.h>
--#include <asm/ptrace.h>
--#include <asm/nile4.h>
--#include <asm/ddb5074.h>
--
--
--extern void __init i8259_init(void);
--extern void i8259_disable_irq(unsigned int irq_nr);
--extern void i8259_enable_irq(unsigned int irq_nr);
--
--extern asmlinkage void ddbIRQ(void);
--extern asmlinkage void i8259_do_irq(int irq, struct pt_regs *regs);
--extern asmlinkage void do_IRQ(int irq, struct pt_regs *regs);
--
--
--void no_action(int cpl, void *dev_id, struct pt_regs *regs)
--{
--}
--
--
--#define M1543_PNP_CONFIG 0x03f0 /* PnP Config Port */
--#define M1543_PNP_INDEX 0x03f0 /* PnP Index Port */
--#define M1543_PNP_DATA 0x03f1 /* PnP Data Port */
--
--#define M1543_PNP_ALT_CONFIG 0x0370 /* Alternative PnP Config Port */
--#define M1543_PNP_ALT_INDEX 0x0370 /* Alternative PnP Index Port */
--#define M1543_PNP_ALT_DATA 0x0371 /* Alternative PnP Data Port */
--
--#define M1543_INT1_MASTER_CTRL 0x0020 /* INT_1 (master) Control Register */
--#define M1543_INT1_MASTER_MASK 0x0021 /* INT_1 (master) Mask Register */
--
--#define M1543_INT1_SLAVE_CTRL 0x00a0 /* INT_1 (slave) Control Register */
--#define M1543_INT1_SLAVE_MASK 0x00a1 /* INT_1 (slave) Mask Register */
--
--#define M1543_INT1_MASTER_ELCR 0x04d0 /* INT_1 (master) Edge/Level Control */
--#define M1543_INT1_SLAVE_ELCR 0x04d1 /* INT_1 (slave) Edge/Level Control */
--
--
--static void m1543_irq_setup(void)
--{
-- /*
-- * The ALI M1543 has 13 interrupt inputs, IRQ1..IRQ13. Not all
-- * the possible IO sources in the M1543 are in use by us. We will
-- * use the following mapping:
-- *
-- * IRQ1 - keyboard (default set by M1543)
-- * IRQ3 - reserved for UART B (default set by M1543) (note that
-- * the schematics for the DDB Vrc-5074 board seem to
-- * indicate that IRQ3 is connected to the DS1386
-- * watchdog timer interrupt output so we might have
-- * a conflict)
-- * IRQ4 - reserved for UART A (default set by M1543)
-- * IRQ5 - parallel (default set by M1543)
-- * IRQ8 - DS1386 time of day (RTC) interrupt
-- * IRQ12 - mouse
-- */
--
-- /*
-- * Assing mouse interrupt to IRQ12
-- */
--
-- /* Enter configuration mode */
-- outb(0x51, M1543_PNP_CONFIG);
-- outb(0x23, M1543_PNP_CONFIG);
--
-- /* Select logical device 7 (Keyboard) */
-- outb(0x07, M1543_PNP_INDEX);
-- outb(0x07, M1543_PNP_DATA);
--
-- /* Select IRQ12 */
-- outb(0x72, M1543_PNP_INDEX);
-- outb(0x0c, M1543_PNP_DATA);
--
-- /* Leave configration mode */
-- outb(0xbb, M1543_PNP_CONFIG);
--
--
-- /* Initialize the 8259 PIC in the M1543 */
-- i8259_init();
--
-- /* Enable the interrupt cascade */
-- nile4_enable_irq(NILE4_INT_INTE);
--
-- request_region(M1543_PNP_CONFIG, 2, "M1543 config");
-- request_region(M1543_INT1_MASTER_ELCR, 2, "pic ELCR");
--}
--
--static void nile4_irq_setup(void)
--{
-- int i;
--
-- /* Map all interrupts to CPU int #0 */
-- nile4_map_irq_all(0);
--
-- /* PCI INTA#-E# must be level triggered */
-- nile4_set_pci_irq_level_or_edge(0, 1);
-- nile4_set_pci_irq_level_or_edge(1, 1);
-- nile4_set_pci_irq_level_or_edge(2, 1);
-- nile4_set_pci_irq_level_or_edge(3, 1);
-- nile4_set_pci_irq_level_or_edge(4, 1);
--
-- /* PCI INTA#-D# must be active low, INTE# must be active high */
-- nile4_set_pci_irq_polarity(0, 0);
-- nile4_set_pci_irq_polarity(1, 0);
-- nile4_set_pci_irq_polarity(2, 0);
-- nile4_set_pci_irq_polarity(3, 0);
-- nile4_set_pci_irq_polarity(4, 1);
--
-- for (i = 0; i < 16; i++)
-- nile4_clear_irq(i);
--
-- /* Enable CPU int #0 */
-- nile4_enable_irq_output(0);
--
-- request_mem_region(NILE4_BASE, NILE4_SIZE, "Nile 4");
--}
--
--
--/*
-- * IRQ2 is cascade interrupt to second interrupt controller
-- */
--static struct irqaction irq2 = { no_action, 0, 0, "cascade", NULL, NULL };
--
--
--void disable_irq(unsigned int irq_nr)
--{
-- if (is_i8259_irq(irq_nr))
-- i8259_disable_irq(irq_nr);
-- else
-- nile4_disable_irq(irq_to_nile4(irq_nr));
--}
--
--void enable_irq(unsigned int irq_nr)
--{
-- if (is_i8259_irq(irq_nr))
-- i8259_enable_irq(irq_nr);
-- else
-- nile4_enable_irq(irq_to_nile4(irq_nr));
--}
--
--int table[16] = { 0, };
--
--void ddb_local0_irqdispatch(struct pt_regs *regs)
--{
-- u32 mask;
-- int nile4_irq;
--#if 1
-- volatile static int nesting = 0;
-- if (nesting++ == 0)
-- ddb5074_led_d3(1);
-- ddb5074_led_hex(nesting < 16 ? nesting : 15);
--#endif
--
-- mask = nile4_get_irq_stat(0);
-- nile4_clear_irq_mask(mask);
--
-- /* Handle the timer interrupt first */
-- if (mask & (1 << NILE4_INT_GPT)) {
-- nile4_disable_irq(NILE4_INT_GPT);
-- do_IRQ(nile4_to_irq(NILE4_INT_GPT), regs);
-- nile4_enable_irq(NILE4_INT_GPT);
-- mask &= ~(1 << NILE4_INT_GPT);
-- }
-- for (nile4_irq = 0; mask; nile4_irq++, mask >>= 1)
-- if (mask & 1) {
-- nile4_disable_irq(nile4_irq);
-- if (nile4_irq == NILE4_INT_INTE) {
-- int i8259_irq = nile4_i8259_iack();
-- i8259_do_irq(i8259_irq, regs);
-- } else
-- do_IRQ(nile4_to_irq(nile4_irq), regs);
-- nile4_enable_irq(nile4_irq);
-- }
--#if 1
-- if (--nesting == 0)
-- ddb5074_led_d3(0);
-- ddb5074_led_hex(nesting < 16 ? nesting : 15);
--#endif
--}
--
--void ddb_local1_irqdispatch(void)
--{
-- printk("ddb_local1_irqdispatch called\n");
--}
--
--void ddb_buserror_irq(void)
--{
-- printk("ddb_buserror_irq called\n");
--}
--
--void ddb_8254timer_irq(void)
--{
-- printk("ddb_8254timer_irq called\n");
--}
--
--void __init ddb_irq_setup(void)
--{
--#ifdef CONFIG_REMOTE_DEBUG
-- if (remote_debug)
-- set_debug_traps();
-- breakpoint(); /* you may move this line to whereever you want :-) */
--#endif
-- request_region(0x20, 0x20, "pic1");
-- request_region(0xa0, 0x20, "pic2");
-- i8259_setup_irq(2, &irq2);
--
-- nile4_irq_setup();
-- m1543_irq_setup();
--
-- set_except_vector(0, ddbIRQ);
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/Makefile
---- linux-2.4.20/arch/mips/ddb5074/Makefile 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/Makefile 1969-12-31 18:00:00.000000000 -0600
-@@ -1,18 +0,0 @@
--#
--# Makefile for the NEC DDB Vrc-5074 specific kernel interface routines
--# under Linux.
--#
--# Note! Dependencies are done automagically by 'make dep', which also
--# removes any old dependencies. DON'T put your own dependencies here
--# unless it's something special (ie not a .c file).
--#
--# Note 2! The CFLAGS definitions are now in the main makefile...
--#
--
--USE_STANDARD_AS_RULE := true
--
--O_TARGET = ddb5074.a
--
--obj-y := setup.o irq.o time.o prom.o pci.o int-handler.o nile4.o
--
--include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/nile4.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/nile4.c
---- linux-2.4.20/arch/mips/ddb5074/nile4.c 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/nile4.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,292 +0,0 @@
--/*
-- * arch/mips/ddb5074/nile4.c -- NEC Vrc-5074 Nile 4 support routines
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <linux/kernel.h>
--#include <linux/types.h>
--
--#include <asm/nile4.h>
--
--
--/*
-- * Physical Device Address Registers
-- *
-- * Note: 32 bit addressing only!
-- */
--void nile4_set_pdar(u32 pdar, u32 phys, u32 size, int width,
-- int on_memory_bus, int visible)
--{
-- u32 maskbits;
-- u32 widthbits;
--
-- if (pdar > NILE4_BOOTCS || (pdar & 7)) {
-- printk("nile4_set_pdar: invalid pdar %d\n", pdar);
-- return;
-- }
-- if (pdar == NILE4_INTCS && size != 0x00200000) {
-- printk("nile4_set_pdar: INTCS size must be 2 MB\n");
-- return;
-- }
-- switch (size) {
--#if 0 /* We don't support 4 GB yet */
-- case 0x100000000: /* 4 GB */
-- maskbits = 4;
-- break;
--#endif
-- case 0x80000000: /* 2 GB */
-- maskbits = 5;
-- break;
-- case 0x40000000: /* 1 GB */
-- maskbits = 6;
-- break;
-- case 0x20000000: /* 512 MB */
-- maskbits = 7;
-- break;
-- case 0x10000000: /* 256 MB */
-- maskbits = 8;
-- break;
-- case 0x08000000: /* 128 MB */
-- maskbits = 9;
-- break;
-- case 0x04000000: /* 64 MB */
-- maskbits = 10;
-- break;
-- case 0x02000000: /* 32 MB */
-- maskbits = 11;
-- break;
-- case 0x01000000: /* 16 MB */
-- maskbits = 12;
-- break;
-- case 0x00800000: /* 8 MB */
-- maskbits = 13;
-- break;
-- case 0x00400000: /* 4 MB */
-- maskbits = 14;
-- break;
-- case 0x00200000: /* 2 MB */
-- maskbits = 15;
-- break;
-- case 0: /* OFF */
-- maskbits = 0;
-- break;
-- default:
-- printk("nile4_set_pdar: unsupported size %p\n", (void *) size);
-- return;
-- }
-- switch (width) {
-- case 8:
-- widthbits = 0;
-- break;
-- case 16:
-- widthbits = 1;
-- break;
-- case 32:
-- widthbits = 2;
-- break;
-- case 64:
-- widthbits = 3;
-- break;
-- default:
-- printk("nile4_set_pdar: unsupported width %d\n", width);
-- return;
-- }
-- nile4_out32(pdar, maskbits | (on_memory_bus ? 0x10 : 0) |
-- (visible ? 0x20 : 0) | (widthbits << 6) |
-- (phys & 0xffe00000));
-- nile4_out32(pdar + 4, 0);
-- /*
-- * When programming a PDAR, the register should be read immediately
-- * after writing it. This ensures that address decoders are properly
-- * configured.
-- */
-- nile4_in32(pdar);
-- nile4_in32(pdar + 4);
--}
--
--
--/*
-- * PCI Master Registers
-- *
-- * Note: 32 bit addressing only!
-- */
--void nile4_set_pmr(u32 pmr, u32 type, u32 addr)
--{
-- if (pmr != NILE4_PCIINIT0 && pmr != NILE4_PCIINIT1) {
-- printk("nile4_set_pmr: invalid pmr %d\n", pmr);
-- return;
-- }
-- switch (type) {
-- case NILE4_PCICMD_IACK: /* PCI Interrupt Acknowledge */
-- case NILE4_PCICMD_IO: /* PCI I/O Space */
-- case NILE4_PCICMD_MEM: /* PCI Memory Space */
-- case NILE4_PCICMD_CFG: /* PCI Configuration Space */
-- break;
-- default:
-- printk("nile4_set_pmr: invalid type %d\n", type);
-- return;
-- }
-- nile4_out32(pmr, (type << 1) | 0x10 | (addr & 0xffe00000));
-- nile4_out32(pmr + 4, 0);
--}
--
--
--/*
-- * Interrupt Programming
-- */
--void nile4_map_irq(int nile4_irq, int cpu_irq)
--{
-- u32 offset, t;
--
-- offset = NILE4_INTCTRL;
-- if (nile4_irq >= 8) {
-- offset += 4;
-- nile4_irq -= 8;
-- }
-- t = nile4_in32(offset);
-- t &= ~(7 << (nile4_irq * 4));
-- t |= cpu_irq << (nile4_irq * 4);
-- nile4_out32(offset, t);
--}
--
--void nile4_map_irq_all(int cpu_irq)
--{
-- u32 all, t;
--
-- all = cpu_irq;
-- all |= all << 4;
-- all |= all << 8;
-- all |= all << 16;
-- t = nile4_in32(NILE4_INTCTRL);
-- t &= 0x88888888;
-- t |= all;
-- nile4_out32(NILE4_INTCTRL, t);
-- t = nile4_in32(NILE4_INTCTRL + 4);
-- t &= 0x88888888;
-- t |= all;
-- nile4_out32(NILE4_INTCTRL + 4, t);
--}
--
--void nile4_enable_irq(int nile4_irq)
--{
-- u32 offset, t;
--
-- offset = NILE4_INTCTRL;
-- if (nile4_irq >= 8) {
-- offset += 4;
-- nile4_irq -= 8;
-- }
-- t = nile4_in32(offset);
-- t |= 8 << (nile4_irq * 4);
-- nile4_out32(offset, t);
--}
--
--void nile4_disable_irq(int nile4_irq)
--{
-- u32 offset, t;
--
-- offset = NILE4_INTCTRL;
-- if (nile4_irq >= 8) {
-- offset += 4;
-- nile4_irq -= 8;
-- }
-- t = nile4_in32(offset);
-- t &= ~(8 << (nile4_irq * 4));
-- nile4_out32(offset, t);
--}
--
--void nile4_disable_irq_all(void)
--{
-- nile4_out32(NILE4_INTCTRL, 0);
-- nile4_out32(NILE4_INTCTRL + 4, 0);
--}
--
--u16 nile4_get_irq_stat(int cpu_irq)
--{
-- return nile4_in16(NILE4_INTSTAT0 + cpu_irq * 2);
--}
--
--void nile4_enable_irq_output(int cpu_irq)
--{
-- u32 t;
--
-- t = nile4_in32(NILE4_INTSTAT1 + 4);
-- t |= 1 << (16 + cpu_irq);
-- nile4_out32(NILE4_INTSTAT1, t);
--}
--
--void nile4_disable_irq_output(int cpu_irq)
--{
-- u32 t;
--
-- t = nile4_in32(NILE4_INTSTAT1 + 4);
-- t &= ~(1 << (16 + cpu_irq));
-- nile4_out32(NILE4_INTSTAT1, t);
--}
--
--void nile4_set_pci_irq_polarity(int pci_irq, int high)
--{
-- u32 t;
--
-- t = nile4_in32(NILE4_INTPPES);
-- if (high)
-- t &= ~(1 << (pci_irq * 2));
-- else
-- t |= 1 << (pci_irq * 2);
-- nile4_out32(NILE4_INTPPES, t);
--}
--
--void nile4_set_pci_irq_level_or_edge(int pci_irq, int level)
--{
-- u32 t;
--
-- t = nile4_in32(NILE4_INTPPES);
-- if (level)
-- t |= 2 << (pci_irq * 2);
-- else
-- t &= ~(2 << (pci_irq * 2));
-- nile4_out32(NILE4_INTPPES, t);
--}
--
--void nile4_clear_irq(int nile4_irq)
--{
-- nile4_out32(NILE4_INTCLR, 1 << nile4_irq);
--}
--
--void nile4_clear_irq_mask(u32 mask)
--{
-- nile4_out32(NILE4_INTCLR, mask);
--}
--
--u8 nile4_i8259_iack(void)
--{
-- u8 irq;
--
-- /* Set window 0 for interrupt acknowledge */
-- nile4_set_pmr(NILE4_PCIINIT0, NILE4_PCICMD_IACK, 0);
-- irq = *(volatile u8 *) NILE4_PCI_IACK_BASE;
-- /* Set window 0 for PCI I/O space */
-- nile4_set_pmr(NILE4_PCIINIT0, NILE4_PCICMD_IO, 0);
-- return irq;
--}
--
--#if 0
--void nile4_dump_irq_status(void)
--{
-- printk("CPUSTAT = %p:%p\n", (void *) nile4_in32(NILE4_CPUSTAT + 4),
-- (void *) nile4_in32(NILE4_CPUSTAT));
-- printk("INTCTRL = %p:%p\n", (void *) nile4_in32(NILE4_INTCTRL + 4),
-- (void *) nile4_in32(NILE4_INTCTRL));
-- printk("INTSTAT0 = %p:%p\n",
-- (void *) nile4_in32(NILE4_INTSTAT0 + 4),
-- (void *) nile4_in32(NILE4_INTSTAT0));
-- printk("INTSTAT1 = %p:%p\n",
-- (void *) nile4_in32(NILE4_INTSTAT1 + 4),
-- (void *) nile4_in32(NILE4_INTSTAT1));
-- printk("INTCLR = %p:%p\n", (void *) nile4_in32(NILE4_INTCLR + 4),
-- (void *) nile4_in32(NILE4_INTCLR));
-- printk("INTPPES = %p:%p\n", (void *) nile4_in32(NILE4_INTPPES + 4),
-- (void *) nile4_in32(NILE4_INTPPES));
--}
--#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/pci.c
---- linux-2.4.20/arch/mips/ddb5074/pci.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/pci.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,425 +0,0 @@
--/*
-- * arch/mips/ddb5074/pci.c -- NEC DDB Vrc-5074 PCI access routines
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Albert Dorofeev <albert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <linux/init.h>
--#include <linux/kernel.h>
--#include <linux/pci.h>
--#include <linux/types.h>
--#include <linux/sched.h>
--#include <linux/ioport.h>
--
--#include <asm/nile4.h>
--
--
--static u32 nile4_pre_pci_access0(int slot_num)
--{
-- u32 pci_addr = 0;
-- u32 virt_addr = NILE4_PCI_CFG_BASE;
--
-- /* Set window 1 address 8000000 - 64 bit - 2 MB (PCI config space) */
-- nile4_set_pdar(NILE4_PCIW1, PHYSADDR(virt_addr), 0x00200000, 64, 0,
-- 0);
-- if (slot_num > 2)
-- pci_addr = 0x00040000 << slot_num;
-- else
-- virt_addr += 0x00040000 << slot_num;
-- nile4_set_pmr(NILE4_PCIINIT1, NILE4_PCICMD_CFG, pci_addr);
-- return virt_addr;
--}
--
--static void nile4_post_pci_access0(void)
--{
-- /*
-- * Set window 1 back to address 8000000 - 64 bit - 128 MB
-- * (PCI IO space)
-- */
-- nile4_set_pdar(NILE4_PCIW1, PHYSADDR(NILE4_PCI_MEM_BASE),
-- 0x08000000, 64, 1, 1);
-- nile4_set_pmr(NILE4_PCIINIT1, NILE4_PCICMD_MEM, 0);
--}
--
--
--static int nile4_pci_read_config_dword(struct pci_dev *dev,
-- int where, u32 * val)
--{
-- int slot_num, func_num;
-- u32 base;
--
-- /*
-- * For starters let's do configuration cycle 0 only (one bus only)
-- */
-- if (dev->bus->number)
-- return PCIBIOS_FUNC_NOT_SUPPORTED;
--
-- slot_num = PCI_SLOT(dev->devfn);
-- func_num = PCI_FUNC(dev->devfn);
-- if (slot_num == 5) {
-- /*
-- * This is Nile 4 and it will crash if we access it like other
-- * devices
-- */
-- *val = nile4_in32(NILE4_PCI_BASE + where);
-- return PCIBIOS_SUCCESSFUL;
-- }
-- base = nile4_pre_pci_access0(slot_num);
-- *val =
-- *((volatile u32 *) (base + (func_num << 8) + (where & 0xfc)));
-- nile4_post_pci_access0();
-- return PCIBIOS_SUCCESSFUL;
--}
--
--static int nile4_pci_write_config_dword(struct pci_dev *dev, int where,
-- u32 val)
--{
-- int slot_num, func_num;
-- u32 base;
--
-- /*
-- * For starters let's do configuration cycle 0 only (one bus only)
-- */
-- if (dev->bus->number)
-- return PCIBIOS_FUNC_NOT_SUPPORTED;
--
-- slot_num = PCI_SLOT(dev->devfn);
-- func_num = PCI_FUNC(dev->devfn);
-- if (slot_num == 5) {
-- /*
-- * This is Nile 4 and it will crash if we access it like other
-- * devices
-- */
-- nile4_out32(NILE4_PCI_BASE + where, val);
-- return PCIBIOS_SUCCESSFUL;
-- }
-- base = nile4_pre_pci_access0(slot_num);
-- *((volatile u32 *) (base + (func_num << 8) + (where & 0xfc))) =
-- val;
-- nile4_post_pci_access0();
-- return PCIBIOS_SUCCESSFUL;
--}
--
--static int nile4_pci_read_config_word(struct pci_dev *dev, int where,
-- u16 * val)
--{
-- int status;
-- u32 result;
--
-- status = nile4_pci_read_config_dword(dev, where, &result);
-- if (status != PCIBIOS_SUCCESSFUL)
-- return status;
-- if (where & 2)
-- result >>= 16;
-- *val = result & 0xffff;
-- return PCIBIOS_SUCCESSFUL;
--}
--
--static int nile4_pci_read_config_byte(struct pci_dev *dev, int where,
-- u8 * val)
--{
-- int status;
-- u32 result;
--
-- status = nile4_pci_read_config_dword(dev, where, &result);
-- if (status != PCIBIOS_SUCCESSFUL)
-- return status;
-- if (where & 1)
-- result >>= 8;
-- if (where & 2)
-- result >>= 16;
-- *val = result & 0xff;
-- return PCIBIOS_SUCCESSFUL;
--}
--
--static int nile4_pci_write_config_word(struct pci_dev *dev, int where,
-- u16 val)
--{
-- int status, shift = 0;
-- u32 result;
--
-- status = nile4_pci_read_config_dword(dev, where, &result);
-- if (status != PCIBIOS_SUCCESSFUL)
-- return status;
-- if (where & 2)
-- shift += 16;
-- result &= ~(0xffff << shift);
-- result |= val << shift;
-- return nile4_pci_write_config_dword(dev, where, result);
--}
--
--static int nile4_pci_write_config_byte(struct pci_dev *dev, int where,
-- u8 val)
--{
-- int status, shift = 0;
-- u32 result;
--
-- status = nile4_pci_read_config_dword(dev, where, &result);
-- if (status != PCIBIOS_SUCCESSFUL)
-- return status;
-- if (where & 2)
-- shift += 16;
-- if (where & 1)
-- shift += 8;
-- result &= ~(0xff << shift);
-- result |= val << shift;
-- return nile4_pci_write_config_dword(dev, where, result);
--}
--
--struct pci_ops nile4_pci_ops = {
-- nile4_pci_read_config_byte,
-- nile4_pci_read_config_word,
-- nile4_pci_read_config_dword,
-- nile4_pci_write_config_byte,
-- nile4_pci_write_config_word,
-- nile4_pci_write_config_dword
--};
--
--struct {
-- struct resource ram;
-- struct resource flash;
-- struct resource isa_io;
-- struct resource pci_io;
-- struct resource isa_mem;
-- struct resource pci_mem;
-- struct resource nile4;
-- struct resource boot;
--} ddb5074_resources = {
-- { "RAM", 0x00000000, 0x03ffffff,
-- IORESOURCE_MEM | PCI_BASE_ADDRESS_MEM_TYPE_64},
-- { "Flash ROM", 0x04000000, 0x043fffff},
-- { "Nile4 ISA I/O", 0x06000000, 0x060fffff},
-- { "Nile4 PCI I/O", 0x06100000, 0x07ffffff},
-- { "Nile4 ISA mem", 0x08000000, 0x08ffffff, IORESOURCE_MEM},
-- { "Nile4 PCI mem", 0x09000000, 0x0fffffff, IORESOURCE_MEM},
-- { "Nile4 ctrl", 0x1fa00000, 0x1fbfffff,
-- IORESOURCE_MEM | PCI_BASE_ADDRESS_MEM_TYPE_64},
-- { "Boot ROM", 0x1fc00000, 0x1fffffff}
--};
--
--static void __init ddb5074_pci_fixup(void)
--{
-- struct pci_dev *dev;
--
-- pci_for_each_dev(dev) {
-- if (dev->vendor == PCI_VENDOR_ID_NEC &&
-- dev->device == PCI_DEVICE_ID_NEC_NILE4) {
-- /*
-- * The first 64-bit PCI base register should point to
-- * the Nile4 control registers. Unfortunately this
-- * isn't the case, so we fix it ourselves. This allows
-- * the serial driver to find the UART.
-- */
-- dev->resource[0] = ddb5074_resources.nile4;
-- request_resource(&iomem_resource,
-- &dev->resource[0]);
-- /*
-- * The second 64-bit PCI base register points to the
-- * first memory bank. Unfortunately the address is
-- * wrong, so we fix it (again).
-- */
-- dev->resource[2] = ddb5074_resources.ram;
-- request_resource(&iomem_resource,
-- &dev->resource[2]);
-- } else if (dev->vendor == PCI_VENDOR_ID_AL
-- && dev->device == PCI_DEVICE_ID_AL_M7101) {
-- /*
-- * It's nice to have the LEDs on the GPIO pins
-- * available for debugging
-- */
-- extern struct pci_dev *pci_pmu;
-- u8 t8;
--
-- pci_pmu = dev; /* for LEDs D2 and D3 */
-- /* Program the lines for LEDs D2 and D3 to output */
-- nile4_pci_read_config_byte(dev, 0x7d, &t8);
-- t8 |= 0xc0;
-- nile4_pci_write_config_byte(dev, 0x7d, t8);
-- /* Turn LEDs D2 and D3 off */
-- nile4_pci_read_config_byte(dev, 0x7e, &t8);
-- t8 |= 0xc0;
-- nile4_pci_write_config_byte(dev, 0x7e, t8);
-- }
-- }
--}
--
--static void __init pcibios_fixup_irqs(void)
--{
-- struct pci_dev *dev;
-- int slot_num;
--
-- pci_for_each_dev(dev) {
-- slot_num = PCI_SLOT(dev->devfn);
-- switch (slot_num) {
-- case 0:
-- dev->irq = nile4_to_irq(NILE4_INT_INTE);
-- break;
-- case 1:
-- dev->irq = nile4_to_irq(NILE4_INT_INTA);
-- break;
-- case 2: /* slot 1 */
-- dev->irq = nile4_to_irq(NILE4_INT_INTA);
-- break;
-- case 3: /* slot 2 */
-- dev->irq = nile4_to_irq(NILE4_INT_INTB);
-- break;
-- case 4: /* slot 3 */
-- dev->irq = nile4_to_irq(NILE4_INT_INTC);
-- break;
-- case 5:
-- /*
-- * Fixup so the serial driver can use the UART
-- */
-- dev->irq = nile4_to_irq(NILE4_INT_UART);
-- break;
-- case 13:
-- dev->irq = nile4_to_irq(NILE4_INT_INTE);
-- break;
-- default:
-- break;
-- }
-- }
--}
--
--void __init pcibios_init(void)
--{
-- printk("PCI: Probing PCI hardware\n");
-- ioport_resource.end = 0x1ffffff; /* 32 MB */
-- iomem_resource.end = 0x1fffffff; /* 512 MB */
-- /* `ram' and `nile4' are requested through the Nile4 pci_dev */
-- request_resource(&iomem_resource, &ddb5074_resources.flash);
-- request_resource(&iomem_resource, &ddb5074_resources.isa_io);
-- request_resource(&iomem_resource, &ddb5074_resources.pci_io);
-- request_resource(&iomem_resource, &ddb5074_resources.isa_mem);
-- request_resource(&iomem_resource, &ddb5074_resources.pci_mem);
-- request_resource(&iomem_resource, &ddb5074_resources.boot);
--
-- pci_scan_bus(0, &nile4_pci_ops, NULL);
-- ddb5074_pci_fixup();
-- pci_assign_unassigned_resources();
-- pcibios_fixup_irqs();
--}
--
--void __init pcibios_fixup_bus(struct pci_bus *bus)
--{
-- bus->resource[1] = &ddb5074_resources.pci_mem;
--}
--
--char *pcibios_setup(char *str)
--{
-- return str;
--}
--
--void __init pcibios_update_irq(struct pci_dev *dev, int irq)
--{
-- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
--}
--
--void __init pcibios_fixup_pbus_ranges(struct pci_bus *bus,
-- struct pbus_set_ranges_data *ranges)
--{
-- ranges->io_start -= bus->resource[0]->start;
-- ranges->io_end -= bus->resource[0]->start;
-- ranges->mem_start -= bus->resource[1]->start;
-- ranges->mem_end -= bus->resource[1]->start;
--}
--
--int pcibios_enable_resources(struct pci_dev *dev)
--{
-- u16 cmd, old_cmd;
-- int idx;
-- struct resource *r;
--
-- /*
-- * Don't touch the Nile 4
-- */
-- if (dev->vendor == PCI_VENDOR_ID_NEC &&
-- dev->device == PCI_DEVICE_ID_NEC_NILE4) return 0;
--
-- pci_read_config_word(dev, PCI_COMMAND, &cmd);
-- old_cmd = cmd;
-- for (idx = 0; idx < 6; idx++) {
-- r = &dev->resource[idx];
-- if (!r->start && r->end) {
-- printk(KERN_ERR "PCI: Device %s not available because "
-- "of resource collisions\n", dev->slot_name);
-- return -EINVAL;
-- }
-- if (r->flags & IORESOURCE_IO)
-- cmd |= PCI_COMMAND_IO;
-- if (r->flags & IORESOURCE_MEM)
-- cmd |= PCI_COMMAND_MEMORY;
-- }
-- if (cmd != old_cmd) {
-- printk("PCI: Enabling device %s (%04x -> %04x)\n",
-- dev->slot_name, old_cmd, cmd);
-- pci_write_config_word(dev, PCI_COMMAND, cmd);
-- }
-- return 0;
--}
--
--int pcibios_enable_device(struct pci_dev *dev)
--{
-- return pcibios_enable_resources(dev);
--}
--
--void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-- struct resource *res, int resource)
--{
-- u32 new, check;
-- int reg;
--
-- new = res->start | (res->flags & PCI_REGION_FLAG_MASK);
-- if (resource < 6) {
-- reg = PCI_BASE_ADDRESS_0 + 4 * resource;
-- } else if (resource == PCI_ROM_RESOURCE) {
-- res->flags |= PCI_ROM_ADDRESS_ENABLE;
-- reg = dev->rom_base_reg;
-- } else {
-- /*
-- * Somebody might have asked allocation of a non-standard
-- * resource
-- */
-- return;
-- }
--
-- pci_write_config_dword(dev, reg, new);
-- pci_read_config_dword(dev, reg, &check);
-- if ((new ^ check) &
-- ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK :
-- PCI_BASE_ADDRESS_MEM_MASK)) {
-- printk(KERN_ERR "PCI: Error while updating region "
-- "%s/%d (%08x != %08x)\n", dev->slot_name, resource,
-- new, check);
-- }
--}
--
--void pcibios_align_resource(void *data, struct resource *res,
-- unsigned long size, unsigned long align)
--{
-- struct pci_dev *dev = data;
--
-- if (res->flags & IORESOURCE_IO) {
-- unsigned long start = res->start;
--
-- /* We need to avoid collisions with `mirrored' VGA ports
-- and other strange ISA hardware, so we always want the
-- addresses kilobyte aligned. */
-- if (size > 0x100) {
-- printk(KERN_ERR "PCI: I/O Region %s/%d too large"
-- " (%ld bytes)\n", dev->slot_name,
-- dev->resource - res, size);
-- }
--
-- start = (start + 1024 - 1) & ~(1024 - 1);
-- res->start = start;
-- }
--}
--
--unsigned __init int pcibios_assign_all_busses(void)
--{
-- return 1;
--}
--
--struct pci_fixup pcibios_fixups[] = { };
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/prom.c
---- linux-2.4.20/arch/mips/ddb5074/prom.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/prom.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,41 +0,0 @@
--/*
-- * arch/mips/ddb5074/prom.c -- NEC DDB Vrc-5074 PROM routines
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <linux/init.h>
--#include <linux/mm.h>
--#include <linux/sched.h>
--#include <linux/bootmem.h>
--
--#include <asm/addrspace.h>
--#include <asm/bootinfo.h>
--
--
--char arcs_cmdline[CL_SIZE];
--
--const char *get_system_type(void)
--{
-- return "NEC DDB Vrc-5074";
--}
--
--void __init prom_init(const char *s)
--{
-- int i = 0;
--
-- if (s != (void *) -1)
-- while (*s && i < sizeof(arcs_cmdline) - 1)
-- arcs_cmdline[i++] = *s++;
-- arcs_cmdline[i] = '\0';
--
-- mips_machgroup = MACH_GROUP_NEC_DDB;
-- mips_machtype = MACH_NEC_DDB5074;
--
-- /* 64 MB non-upgradable */
-- add_memory_region(0, 64 << 20, BOOT_MEM_RAM);
--}
--
--void __init prom_free_prom_memory(void)
--{
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/setup.c
---- linux-2.4.20/arch/mips/ddb5074/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/setup.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,251 +0,0 @@
--/*
-- * arch/mips/ddb5074/setup.c -- NEC DDB Vrc-5074 setup routines
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <linux/config.h>
--#include <linux/init.h>
--#include <linux/kbd_ll.h>
--#include <linux/kernel.h>
--#include <linux/kdev_t.h>
--#include <linux/types.h>
--#include <linux/console.h>
--#include <linux/sched.h>
--#include <linux/mc146818rtc.h>
--#include <linux/pc_keyb.h>
--#include <linux/pci.h>
--#include <linux/ide.h>
--
--#include <asm/addrspace.h>
--#include <asm/bcache.h>
--#include <asm/keyboard.h>
--#include <asm/irq.h>
--#include <asm/reboot.h>
--#include <asm/gdb-stub.h>
--#include <asm/nile4.h>
--#include <asm/ddb5074.h>
--#include <asm/traps.h>
--
--
--#ifdef CONFIG_REMOTE_DEBUG
--extern void rs_kgdb_hook(int);
--extern void breakpoint(void);
--#endif
--
--#if defined(CONFIG_SERIAL_CONSOLE)
--extern void console_setup(char *);
--#endif
--
--extern struct ide_ops std_ide_ops;
--extern struct rtc_ops ddb_rtc_ops;
--
--static void (*back_to_prom) (void) = (void (*)(void)) 0xbfc00000;
--
--static void ddb_machine_restart(char *command)
--{
-- u32 t;
--
-- /* PCI cold reset */
-- t = nile4_in32(NILE4_PCICTRL + 4);
-- t |= 0x40000000;
-- nile4_out32(NILE4_PCICTRL + 4, t);
-- /* CPU cold reset */
-- t = nile4_in32(NILE4_CPUSTAT);
-- t |= 1;
-- nile4_out32(NILE4_CPUSTAT, t);
-- /* Call the PROM */
-- back_to_prom();
--}
--
--static void ddb_machine_halt(void)
--{
-- printk("DDB Vrc-5074 halted.\n");
-- do {
-- } while (1);
--}
--
--static void ddb_machine_power_off(void)
--{
-- printk("DDB Vrc-5074 halted. Please turn off the power.\n");
-- do {
-- } while (1);
--}
--
--extern void ddb_irq_setup(void);
--
--void (*board_time_init) (struct irqaction * irq);
--
--
--static void __init ddb_time_init(struct irqaction *irq)
--{
-- /* set the clock to 1 Hz */
-- nile4_out32(NILE4_T2CTRL, 1000000);
-- /* enable the General-Purpose Timer */
-- nile4_out32(NILE4_T2CTRL + 4, 0x00000001);
-- /* reset timer */
-- nile4_out32(NILE4_T2CNTR, 0);
-- /* enable interrupt */
-- nile4_enable_irq(NILE4_INT_GPT);
-- i8259_setup_irq(nile4_to_irq(NILE4_INT_GPT), irq);
-- change_cp0_status(ST0_IM,
-- IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4);
--}
--
--
--void __init bus_error_init(void) { /* nothing */ }
--
--
--void __init ddb_setup(void)
--{
-- extern int panic_timeout;
--
-- irq_setup = ddb_irq_setup;
-- set_io_port_base(NILE4_PCI_IO_BASE);
-- isa_slot_offset = NILE4_PCI_MEM_BASE;
-- request_region(0x00, 0x20, "dma1");
-- request_region(0x40, 0x20, "timer");
-- request_region(0x70, 0x10, "rtc");
-- request_region(0x80, 0x10, "dma page reg");
-- request_region(0xc0, 0x20, "dma2");
-- board_time_init = ddb_time_init;
--
-- _machine_restart = ddb_machine_restart;
-- _machine_halt = ddb_machine_halt;
-- _machine_power_off = ddb_machine_power_off;
--
--#ifdef CONFIG_BLK_DEV_IDE
-- ide_ops = &std_ide_ops;
--#endif
-- rtc_ops = &ddb_rtc_ops;
--
-- /* Reboot on panic */
-- panic_timeout = 180;
--}
--
--
--#define USE_NILE4_SERIAL 0
--
--#if USE_NILE4_SERIAL
--#define ns16550_in(reg) nile4_in8((reg)*8)
--#define ns16550_out(reg, val) nile4_out8((reg)*8, (val))
--#else
--#define NS16550_BASE (NILE4_PCI_IO_BASE+0x03f8)
--static inline u8 ns16550_in(u32 reg)
--{
-- return *(volatile u8 *) (NS16550_BASE + reg);
--}
--
--static inline void ns16550_out(u32 reg, u8 val)
--{
-- *(volatile u8 *) (NS16550_BASE + reg) = val;
--}
--#endif
--
--#define NS16550_RBR 0
--#define NS16550_THR 0
--#define NS16550_DLL 0
--#define NS16550_IER 1
--#define NS16550_DLM 1
--#define NS16550_FCR 2
--#define NS16550_IIR 2
--#define NS16550_LCR 3
--#define NS16550_MCR 4
--#define NS16550_LSR 5
--#define NS16550_MSR 6
--#define NS16550_SCR 7
--
--#define NS16550_LSR_DR 0x01 /* Data ready */
--#define NS16550_LSR_OE 0x02 /* Overrun */
--#define NS16550_LSR_PE 0x04 /* Parity error */
--#define NS16550_LSR_FE 0x08 /* Framing error */
--#define NS16550_LSR_BI 0x10 /* Break */
--#define NS16550_LSR_THRE 0x20 /* Xmit holding register empty */
--#define NS16550_LSR_TEMT 0x40 /* Xmitter empty */
--#define NS16550_LSR_ERR 0x80 /* Error */
--
--
--void _serinit(void)
--{
--#if USE_NILE4_SERIAL
-- ns16550_out(NS16550_LCR, 0x80);
-- ns16550_out(NS16550_DLM, 0x00);
-- ns16550_out(NS16550_DLL, 0x36); /* 9600 baud */
-- ns16550_out(NS16550_LCR, 0x00);
-- ns16550_out(NS16550_LCR, 0x03);
-- ns16550_out(NS16550_FCR, 0x47);
--#else
-- /* done by PMON */
--#endif
--}
--
--void _putc(char c)
--{
-- while (!(ns16550_in(NS16550_LSR) & NS16550_LSR_THRE));
-- ns16550_out(NS16550_THR, c);
-- if (c == '\n') {
-- while (!(ns16550_in(NS16550_LSR) & NS16550_LSR_THRE));
-- ns16550_out(NS16550_THR, '\r');
-- }
--}
--
--void _puts(const char *s)
--{
-- char c;
-- while ((c = *s++))
-- _putc(c);
--}
--
--char _getc(void)
--{
-- while (!(ns16550_in(NS16550_LSR) & NS16550_LSR_DR));
-- return ns16550_in(NS16550_RBR);
--}
--
--int _testc(void)
--{
-- return (ns16550_in(NS16550_LSR) & NS16550_LSR_DR) != 0;
--}
--
--
--/*
-- * Hexadecimal 7-segment LED
-- */
--void ddb5074_led_hex(int hex)
--{
-- outb(hex, 0x80);
--}
--
--
--/*
-- * LEDs D2 and D3, connected to the GPIO pins of the PMU in the ALi M1543
-- */
--struct pci_dev *pci_pmu = NULL;
--
--void ddb5074_led_d2(int on)
--{
-- u8 t;
--
-- if (pci_pmu) {
-- pci_read_config_byte(pci_pmu, 0x7e, &t);
-- if (on)
-- t &= 0x7f;
-- else
-- t |= 0x80;
-- pci_write_config_byte(pci_pmu, 0x7e, t);
-- }
--}
--
--void ddb5074_led_d3(int on)
--{
-- u8 t;
--
-- if (pci_pmu) {
-- pci_read_config_byte(pci_pmu, 0x7e, &t);
-- if (on)
-- t &= 0xbf;
-- else
-- t |= 0x40;
-- pci_write_config_byte(pci_pmu, 0x7e, t);
-- }
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5074/time.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/time.c
---- linux-2.4.20/arch/mips/ddb5074/time.c 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5074/time.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,32 +0,0 @@
--/*
-- * arch/mips/ddb5074/time.c -- Timer routines
-- *
-- * Copyright (C) 2000 Geert Uytterhoeven <geert@sonycom.com>
-- * Sony Software Development Center Europe (SDCE), Brussels
-- */
--#include <linux/init.h>
--#include <asm/mc146818rtc.h>
--
--static unsigned char ddb_rtc_read_data(unsigned long addr)
--{
-- outb_p(addr, RTC_PORT(0));
--
-- return inb_p(RTC_PORT(1));
--}
--
--static void ddb_rtc_write_data(unsigned char data, unsigned long addr)
--{
-- outb_p(addr, RTC_PORT(0));
-- outb_p(data, RTC_PORT(1));
--}
--
--static int ddb_rtc_bcd_mode(void)
--{
-- return 1;
--}
--
--struct rtc_ops ddb_rtc_ops = {
-- ddb_rtc_read_data,
-- ddb_rtc_write_data,
-- ddb_rtc_bcd_mode
--};
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Entries
---- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Entries 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.2.2.2/Mon Jul 15 00:02:55 2002/-ko/Tlinux_2_4_20
-+/nile4.c/1.3.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.2.2.5/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/rtc_ds1386.c/1.4.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Repository
---- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ddb5xxx/common
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Root
---- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Tag
---- linux-2.4.20/arch/mips/ddb5xxx/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/.cvsignore
---- linux-2.4.20/arch/mips/ddb5xxx/common/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/common/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Entries
---- linux-2.4.20/arch/mips/ddb5xxx/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Entries 2005-01-06 23:08:21.000000000 -0600
-@@ -0,0 +1,4 @@
-+D/common////
-+D/ddb5074////
-+D/ddb5476////
-+D/ddb5477////
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Repository
---- linux-2.4.20/arch/mips/ddb5xxx/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ddb5xxx
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Root
---- linux-2.4.20/arch/mips/ddb5xxx/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Tag
---- linux-2.4.20/arch/mips/ddb5xxx/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Entries
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Entries 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.1.2.1/Mon Jul 15 00:02:55 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/nile4_pic.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.3/Mon Dec 2 00:24:45 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Repository
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ddb5xxx/ddb5074
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Root
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Tag
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5074/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/setup.c
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5074/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5074/setup.c 2002-12-01 18:24:45.000000000 -0600
-@@ -96,7 +96,7 @@
- /* enable interrupt */
- setup_irq(nile4_to_irq(NILE4_INT_GPT), irq);
- nile4_enable_irq(nile4_to_irq(NILE4_INT_GPT));
-- change_cp0_status(ST0_IM,
-+ change_c0_status(ST0_IM,
- IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4);
-
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Entries
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Entries 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.1/Sun Oct 7 00:09:48 2001/-ko/Tlinux_2_4_20
-+/int-handler.S/1.1.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.2.2.3/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/nile4_pic.c/1.1.2.3/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.2.2.3/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.2.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.3.2.5/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/vrc5476_irq.c/1.3.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Repository
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ddb5xxx/ddb5476
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Root
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Tag
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/.cvsignore
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5476/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/setup.c
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5476/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5476/setup.c 2002-12-01 18:24:46.000000000 -0600
-@@ -103,8 +103,8 @@
- setup_irq(CPU_IRQ_BASE + 7, irq);
-
- /* to generate the first timer interrupt */
-- count = read_32bit_cp0_register(CP0_COUNT);
-- write_32bit_cp0_register(CP0_COMPARE, count + 1000);
-+ count = read_c0_count();
-+ write_c0_compare(count + 1000);
-
- #else
-
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Entries
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Entries 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/debug.c/1.3.2.3/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.3/Thu Dec 12 05:02:09 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.5.2.4/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/irq_5477.c/1.3.2.3/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/kgdb_io.c/1.1.2.1/Sat Feb 2 21:20:28 2002/-ko/Tlinux_2_4_20
-+/lcd44780.c/1.1.2.1/Wed Dec 26 23:17:29 2001/-ko/Tlinux_2_4_20
-+/lcd44780.h/1.1.2.1/Wed Dec 26 23:17:29 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.4.2.5/Thu Dec 12 21:48:11 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.3.2.2/Mon Aug 5 23:53:31 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.3.2.7/Thu Dec 12 05:02:09 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Repository
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ddb5xxx/ddb5477
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Root
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Tag
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/CVS/Tag 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/.cvsignore
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/debug.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/debug.c
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/debug.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/debug.c 2002-12-01 18:24:46.000000000 -0600
-@@ -56,8 +56,8 @@
- void vrc5477_show_int_regs()
- {
- jsun_show_regs("interrupt registers", int_regs);
-- printk("CPU CAUSE = %08x\n", read_32bit_cp0_register(CP0_CAUSE));
-- printk("CPU STATUS = %08x\n", read_32bit_cp0_register(CP0_STATUS));
-+ printk("CPU CAUSE = %08x\n", read_c0_cause());
-+ printk("CPU STATUS = %08x\n", read_c0_status());
- }
- static Register pdar_regs[] = {
- {"DDB_SDRAM0", DDB_BASE + DDB_SDRAM0},
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/int-handler.S
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/int-handler.S 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/int-handler.S 2002-12-11 23:02:09.000000000 -0600
-@@ -14,6 +14,7 @@
- #include <asm/addrspace.h>
- #include <asm/regdef.h>
- #include <asm/stackframe.h>
-+#include <asm/ddb5xxx/ddb5477.h>
-
- /*
- * first level interrupt dispatcher for ocelot board -
-@@ -55,20 +56,20 @@
- j ret_from_irq
-
- ll_cputimer_irq:
-- li a0, 7
-+ li a0, CPU_IRQ_BASE + 7
- move a1, sp
- jal do_IRQ
- j ret_from_irq
-
-
- ll_cpu_ip0:
-- li a0, 0
-+ li a0, CPU_IRQ_BASE + 0
- move a1, sp
- jal do_IRQ
- j ret_from_irq
-
- ll_cpu_ip1:
-- li a0, 1
-+ li a0, CPU_IRQ_BASE + 1
- move a1, sp
- jal do_IRQ
- j ret_from_irq
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/irq.c
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/irq.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/irq.c 2002-12-01 18:24:46.000000000 -0600
-@@ -90,8 +90,8 @@
- ddb_out32(DDB_INTCTRL2, 0);
- ddb_out32(DDB_INTCTRL3, 0);
-
-- clear_cp0_status(0xff00);
-- set_cp0_status(0x0400);
-+ clear_c0_status(0xff00);
-+ set_c0_status(0x0400);
-
- /* setup PCI interrupt attributes */
- set_pci_int_attr(PCI0, INTA, ACTIVE_LOW, LEVEL_SENSE);
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/pci.c
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/pci.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/pci.c 2002-12-12 15:48:11.000000000 -0600
-@@ -204,6 +204,33 @@
- {
- }
-
-+/*
-+ * fixup baseboard AMD chip so that tx does not underflow.
-+ * bcr_18 |= 0x0800
-+ * This sets NOUFLO bit which makes tx not start until whole pkt
-+ * is fetched to the chip.
-+ */
-+#define PCNET32_WIO_RDP 0x10
-+#define PCNET32_WIO_RAP 0x12
-+#define PCNET32_WIO_RESET 0x14
-+#define PCNET32_WIO_BDP 0x16
-+void __init fix_amd_lance(struct pci_dev *dev)
-+{
-+ unsigned long ioaddr;
-+ u16 temp;
-+
-+ ioaddr=pci_resource_start(dev, 0);
-+
-+ inw(ioaddr + PCNET32_WIO_RESET); /* reset chip */
-+
-+ /* bcr_18 |= 0x0800 */
-+ outw (18, ioaddr + PCNET32_WIO_RAP);
-+ temp = inw (ioaddr + PCNET32_WIO_BDP);
-+ temp |= 0x0800;
-+ outw (18, ioaddr + PCNET32_WIO_RAP);
-+ outw (temp, ioaddr + PCNET32_WIO_BDP);
-+}
-+
- void __init pcibios_fixup(void)
- {
- if (mips_machtype == MACH_NEC_ROCKHOPPERII) {
-@@ -241,6 +268,10 @@
- pci_read_config_byte(dev, 0x41, &old);
- pci_write_config_byte(dev, 0x41, old | 0xd0);
- }
-+
-+ if (dev->vendor == PCI_VENDOR_ID_AMD &&
-+ dev->device == PCI_DEVICE_ID_AMD_LANCE)
-+ fix_amd_lance(dev);
- }
-
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/ddb5xxx/ddb5477/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/setup.c
---- linux-2.4.20/arch/mips/ddb5xxx/ddb5477/setup.c 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ddb5xxx/ddb5477/setup.c 2002-12-11 23:02:09.000000000 -0600
-@@ -45,10 +45,8 @@
-
- // #define USE_CPU_COUNTER_TIMER /* whether we use cpu counter */
-
--#ifndef USE_CPU_COUNTER_TIMER
- #define SP_TIMER_BASE DDB_SPT1CTRL_L
- #define SP_TIMER_IRQ VRC5477_IRQ_SPT1
--#endif
-
- static int bus_frequency = CONFIG_DDB5477_BUS_FREQUENCY*1000;
-
-@@ -143,7 +141,7 @@
- }
-
- /* mips_counter_frequency is 1/2 of the cpu core freq */
-- i = (read_32bit_cp0_register(CP0_CONFIG) >> 28 ) & 7;
-+ i = (read_c0_config() >> 28 ) & 7;
- if ((mips_cpu.cputype == CPU_R5432) && (i == 3))
- i = 4;
- mips_counter_frequency = bus_frequency*(i+4)/4;
-@@ -159,8 +157,8 @@
- setup_irq(CPU_IRQ_BASE + 7, irq);
-
- /* to generate the first timer interrupt */
-- count = read_32bit_cp0_register(CP0_COUNT);
-- write_32bit_cp0_register(CP0_COMPARE, count + 1000);
-+ count = read_c0_count();
-+ write_c0_compare(count + 1000);
-
- #else
-
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Entries
---- linux-2.4.20/arch/mips/dec/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Entries 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/decstation.c/1.1/Sun Jan 17 03:49:43 1999/-ko/Tlinux_2_4_20
-+/ld.ecoff/1.2/Wed Aug 22 03:23:58 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Repository
---- linux-2.4.20/arch/mips/dec/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Repository 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/dec/boot
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Root
---- linux-2.4.20/arch/mips/dec/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Root 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Tag
---- linux-2.4.20/arch/mips/dec/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/CVS/Tag 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/boot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/.cvsignore
---- linux-2.4.20/arch/mips/dec/boot/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/boot/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Entries
---- linux-2.4.20/arch/mips/dec/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.4/Mon Dec 16 15:12:39 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.10.2.3/Mon Jan 20 20:21:42 2003/-ko/Tlinux_2_4_20
-+/ioasic-irq.c/1.1.2.2/Wed Jul 24 17:55:46 2002/-ko/Tlinux_2_4_20
-+/kn02-irq.c/1.1.2.2/Wed Jul 24 17:55:46 2002/-ko/Tlinux_2_4_20
-+/promcon.c/1.3.4.4/Thu Nov 7 01:47:45 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.6.2.2/Thu Jan 16 13:52:36 2003/-ko/Tlinux_2_4_20
-+/rtc-dec.c/1.3.2.2/Mon Dec 16 15:12:39 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.11.2.15/Thu Jan 30 14:25:13 2003/-ko/Tlinux_2_4_20
-+/time.c/1.16.2.2/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/wbflush.c/1.5.2.2/Thu Dec 12 19:08:47 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/prom////
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Repository
---- linux-2.4.20/arch/mips/dec/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Repository 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/dec
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Root
---- linux-2.4.20/arch/mips/dec/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Root 2005-01-06 23:00:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Tag
---- linux-2.4.20/arch/mips/dec/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/CVS/Tag 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/dec/.cvsignore
---- linux-2.4.20/arch/mips/dec/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/dec/int-handler.S
---- linux-2.4.20/arch/mips/dec/int-handler.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/int-handler.S 2003-01-20 14:21:42.000000000 -0600
-@@ -132,19 +132,23 @@
- */
- mfc0 t0,CP0_CAUSE # get pending interrupts
- mfc0 t1,CP0_STATUS
-+#ifdef CONFIG_MIPS32
- lw t2,cpu_fpu_mask
-+#endif
- andi t0,ST0_IM # CAUSE.CE may be non-zero!
- and t0,t1 # isolate allowed ones
-
- beqz t0,spurious
-
-+#ifdef CONFIG_MIPS32
- and t2,t0
- bnez t2,fpu # handle FPU immediately
-+#endif
-
- /*
- * Find irq with highest priority
- */
-- la t1,cpu_mask_nr_tbl
-+ PTR_LA t1,cpu_mask_nr_tbl
- 1: lw t2,(t1)
- nop
- and t2,t0
-@@ -161,14 +165,16 @@
- nop
- jr a0
- # a trick to save a branch:
-- lui t2,KN03_IOASIC_BASE>>16 # upper part of IOASIC Address
-+ lui t2,(KN03_IOASIC_BASE>>16)&0xffff
-+ # upper part of IOASIC Address
-
- /*
- * Handle "IRQ Controller" Interrupts
- * Masked Interrupts are still visible and have to be masked "by hand".
- */
- FEXPORT(kn02_io_int) # 3max
-- lui t0,KN02_CSR_ADDR>>16 # get interrupt status and mask
-+ lui t0,(KN02_CSR_ADDR>>16)&0xffff
-+ # get interrupt status and mask
- lw t0,(t0)
- nop
- andi t1,t0,KN02_IRQ_ALL
-@@ -176,7 +182,8 @@
- srl t0,16 # shift interrupt mask
-
- FEXPORT(kn02xa_io_int) # 3min/maxine
-- lui t2,KN02XA_IOASIC_BASE>>16 # upper part of IOASIC Address
-+ lui t2,(KN02XA_IOASIC_BASE>>16)&0xffff
-+ # upper part of IOASIC Address
-
- FEXPORT(kn03_io_int) # 3max+ (t2 loaded earlier)
- lw t0,SIR(t2) # get status: IOASIC isr
-@@ -190,7 +197,7 @@
- /*
- * Find irq with highest priority
- */
-- la t1,asic_mask_nr_tbl
-+ PTR_LA t1,asic_mask_nr_tbl
- 2: lw t2,(t1)
- nop
- and t2,t0
-@@ -263,9 +270,11 @@
- j ret_from_irq
- nop
-
-+#ifdef CONFIG_MIPS32
- fpu:
- j handle_fpe_int
- nop
-+#endif
-
- spurious:
- j spurious_interrupt
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/dec/Makefile
---- linux-2.4.20/arch/mips/dec/Makefile 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/Makefile 2002-12-16 09:12:39.000000000 -0600
-@@ -12,7 +12,7 @@
-
- all: dec.o
-
--export-objs := setup.o wbflush.o
-+export-objs := rtc-dec.o setup.o wbflush.o
- obj-y := int-handler.o ioasic-irq.o kn02-irq.o reset.o rtc-dec.o setup.o \
- time.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/call_o32.S linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/call_o32.S
---- linux-2.4.20/arch/mips/dec/prom/call_o32.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/call_o32.S 2002-10-01 10:01:55.000000000 -0500
-@@ -0,0 +1,91 @@
-+/*
-+ * arch/mips/dec/call_o32.S
-+ *
-+ * O32 interface for the 64 (or N32) ABI.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+
-+#include <asm/asm.h>
-+#include <asm/regdef.h>
-+
-+/* Maximum number of arguments supported. Must be even! */
-+#define O32_ARGC 32
-+/* Number of static registers we save. */
-+#define O32_STATC 11
-+/* Frame size for both of the above. */
-+#define O32_FRAMESZ (4 * O32_ARGC + SZREG * O32_STATC)
-+
-+ .text
-+
-+/*
-+ * O32 function call dispatcher, for interfacing 32-bit ROM routines.
-+ *
-+ * The standard 64 (N32) calling sequence is supported, with a0
-+ * holding a function pointer, a1-a7 -- its first seven arguments
-+ * and the stack -- remaining ones (up to O32_ARGC, including a1-a7).
-+ * Static registers, gp and fp are preserved, v0 holds a result.
-+ * This code relies on the called o32 function for sp and ra
-+ * restoration and thus both this dispatcher and the current stack
-+ * have to be placed in a KSEGx (or KUSEG) address space. Any
-+ * pointers passed have to point to addresses within one of these
-+ * spaces as well.
-+ */
-+NESTED(call_o32, O32_FRAMESZ, ra)
-+ REG_SUBU sp,O32_FRAMESZ
-+
-+ REG_S ra,O32_FRAMESZ-1*SZREG(sp)
-+ REG_S fp,O32_FRAMESZ-2*SZREG(sp)
-+ REG_S gp,O32_FRAMESZ-3*SZREG(sp)
-+ REG_S s7,O32_FRAMESZ-4*SZREG(sp)
-+ REG_S s6,O32_FRAMESZ-5*SZREG(sp)
-+ REG_S s5,O32_FRAMESZ-6*SZREG(sp)
-+ REG_S s4,O32_FRAMESZ-7*SZREG(sp)
-+ REG_S s3,O32_FRAMESZ-8*SZREG(sp)
-+ REG_S s2,O32_FRAMESZ-9*SZREG(sp)
-+ REG_S s1,O32_FRAMESZ-10*SZREG(sp)
-+ REG_S s0,O32_FRAMESZ-11*SZREG(sp)
-+
-+ move jp,a0
-+
-+ sll a0,a1,zero
-+ sll a1,a2,zero
-+ sll a2,a3,zero
-+ sll a3,a4,zero
-+ sw a5,0x10(sp)
-+ sw a6,0x14(sp)
-+ sw a7,0x18(sp)
-+
-+ PTR_LA t0,O32_FRAMESZ(sp)
-+ PTR_LA t1,0x1c(sp)
-+ li t2,O32_ARGC-7
-+1:
-+ lw t3,(t0)
-+ REG_ADDU t0,SZREG
-+ sw t3,(t1)
-+ REG_SUBU t2,1
-+ REG_ADDU t1,4
-+ bnez t2,1b
-+
-+ jalr jp
-+
-+ REG_L s0,O32_FRAMESZ-11*SZREG(sp)
-+ REG_L s1,O32_FRAMESZ-10*SZREG(sp)
-+ REG_L s2,O32_FRAMESZ-9*SZREG(sp)
-+ REG_L s3,O32_FRAMESZ-8*SZREG(sp)
-+ REG_L s4,O32_FRAMESZ-7*SZREG(sp)
-+ REG_L s5,O32_FRAMESZ-6*SZREG(sp)
-+ REG_L s6,O32_FRAMESZ-5*SZREG(sp)
-+ REG_L s7,O32_FRAMESZ-4*SZREG(sp)
-+ REG_L gp,O32_FRAMESZ-3*SZREG(sp)
-+ REG_L fp,O32_FRAMESZ-2*SZREG(sp)
-+ REG_L ra,O32_FRAMESZ-1*SZREG(sp)
-+
-+ REG_ADDU sp,O32_FRAMESZ
-+ jr ra
-+END(call_o32)
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/cmdline.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/cmdline.c
---- linux-2.4.20/arch/mips/dec/prom/cmdline.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/cmdline.c 2002-10-01 10:01:55.000000000 -0500
-@@ -6,32 +6,30 @@
- #include <linux/init.h>
- #include <linux/kernel.h>
- #include <linux/string.h>
-+#include <linux/types.h>
-
- #include <asm/bootinfo.h>
--
--#include "prom.h"
-+#include <asm/dec/prom.h>
-
- #undef PROM_DEBUG
-
--#ifdef PROM_DEBUG
--extern int (*prom_printf)(char *, ...);
--#endif
--
- char arcs_cmdline[CL_SIZE];
-
--void __init prom_init_cmdline(int argc, char **argv, unsigned long magic)
-+void __init prom_init_cmdline(s32 argc, s32 *argv, u32 magic)
- {
-+ char *arg;
- int start_arg, i;
-
- /*
- * collect args and prepare cmd_line
- */
-- if (magic != REX_PROM_MAGIC)
-+ if (!prom_is_rex(magic))
- start_arg = 1;
- else
- start_arg = 2;
- for (i = start_arg; i < argc; i++) {
-- strcat(arcs_cmdline, argv[i]);
-+ arg = (void *)(long)(argv[i]);
-+ strcat(arcs_cmdline, arg);
- if (i < (argc - 1))
- strcat(arcs_cmdline, " ");
- }
-@@ -39,6 +37,4 @@
- #ifdef PROM_DEBUG
- prom_printf("arcs_cmdline: %s\n", &(arcs_cmdline[0]));
- #endif
--
- }
--
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Entries
---- linux-2.4.20/arch/mips/dec/prom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Entries 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.2/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+/call_o32.S/1.1.2.1/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+/cmdline.c/1.4.4.2/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+/dectypes.h/1.1/Sun Jan 17 03:49:44 1999/-ko/Tlinux_2_4_20
-+/identify.c/1.4.2.6/Mon Dec 16 15:14:40 2002/-ko/Tlinux_2_4_20
-+/init.c/1.6.4.2/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+/locore.S/1.1.6.1/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+/memory.c/1.10.2.2/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Repository
---- linux-2.4.20/arch/mips/dec/prom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Repository 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/dec/prom
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Root
---- linux-2.4.20/arch/mips/dec/prom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Root 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Tag
---- linux-2.4.20/arch/mips/dec/prom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/CVS/Tag 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/.cvsignore
---- linux-2.4.20/arch/mips/dec/prom/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/identify.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/identify.c
---- linux-2.4.20/arch/mips/dec/prom/identify.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/identify.c 2002-12-16 09:14:40.000000000 -0600
-@@ -2,50 +2,111 @@
- * identify.c: machine identification code.
- *
- * Copyright (C) 1998 Harald Koerfgen and Paul M. Antoine
-+ * Copyright (C) 2002 Maciej W. Rozycki
- */
- #include <linux/init.h>
- #include <linux/kernel.h>
-+#include <linux/mc146818rtc.h>
- #include <linux/string.h>
-+#include <linux/types.h>
-
- #include <asm/bootinfo.h>
-+#include <asm/dec/ioasic.h>
-+#include <asm/dec/ioasic_addrs.h>
-+#include <asm/dec/kn01.h>
-+#include <asm/dec/kn02.h>
-+#include <asm/dec/kn02ba.h>
-+#include <asm/dec/kn02ca.h>
-+#include <asm/dec/kn03.h>
-+#include <asm/dec/kn230.h>
-+#include <asm/dec/prom.h>
-
- #include "dectypes.h"
--#include "prom.h"
--
--extern char *(*prom_getenv)(char *);
--extern int (*prom_printf)(char *, ...);
--extern int (*rex_getsysid)(void);
-
- extern unsigned long mips_machgroup;
- extern unsigned long mips_machtype;
-
--extern unsigned long mips_machtype;
-+static const char *dec_system_strings[] = {
-+ [MACH_DSUNKNOWN] "unknown DECstation",
-+ [MACH_DS23100] "DECstation 2100/3100",
-+ [MACH_DS5100] "DECsystem 5100",
-+ [MACH_DS5000_200] "DECstation 5000/200",
-+ [MACH_DS5000_1XX] "DECstation 5000/1xx",
-+ [MACH_DS5000_XX] "Personal DECstation 5000/xx",
-+ [MACH_DS5000_2X0] "DECstation 5000/2x0",
-+ [MACH_DS5400] "DECsystem 5400",
-+ [MACH_DS5500] "DECsystem 5500",
-+ [MACH_DS5800] "DECsystem 5800",
-+ [MACH_DS5900] "DECsystem 5900",
-+};
-+
- const char *get_system_type(void)
- {
-- static char system[32];
-- int called = 0;
-- const char *dec_system_strings[] = { "unknown", "DECstation 2100/3100",
-- "DECstation 5100", "DECstation 5000/200", "DECstation 5000/1xx",
-- "Personal DECstation 5000/xx", "DECstation 5000/2x0",
-- "DECstation 5400", "DECstation 5500", "DECstation 5800"
-- };
-+#define STR_BUF_LEN 64
-+ static char system[STR_BUF_LEN];
-+ static int called = 0;
-
- if (called == 0) {
- called = 1;
-- strcpy(system, "Digital ");
-- strcat(system, dec_system_strings[mips_machtype]);
-+ snprintf(system, STR_BUF_LEN, "Digital %s",
-+ dec_system_strings[mips_machtype]);
- }
-
- return system;
- }
-
--void __init prom_identify_arch (unsigned int magic)
-+
-+/*
-+ * Setup essential system-specific memory addresses. We need them
-+ * early. Semantically the functions belong to prom/init.c, but they
-+ * are compact enough we want them inlined. -- macro
-+ */
-+static inline void prom_init_kn01(void)
- {
-- unsigned char dec_cpunum, dec_firmrev, dec_etc;
-- int dec_systype;
-- unsigned long dec_sysid;
-+ dec_rtc_base = (void *)KN01_RTC_BASE;
-+ dec_kn_slot_size = KN01_SLOT_SIZE;
-+}
-
-- if (magic != REX_PROM_MAGIC) {
-+static inline void prom_init_kn230(void)
-+{
-+ dec_rtc_base = (void *)KN01_RTC_BASE;
-+ dec_kn_slot_size = KN01_SLOT_SIZE;
-+}
-+
-+static inline void prom_init_kn02(void)
-+{
-+ dec_rtc_base = (void *)KN02_RTC_BASE;
-+ dec_kn_slot_size = KN02_SLOT_SIZE;
-+}
-+
-+static inline void prom_init_kn02ba(void)
-+{
-+ ioasic_base = (void *)KN02BA_IOASIC_BASE;
-+ dec_rtc_base = (void *)KN02BA_RTC_BASE;
-+ dec_kn_slot_size = IOASIC_SLOT_SIZE;
-+}
-+
-+static inline void prom_init_kn02ca(void)
-+{
-+ ioasic_base = (void *)KN02CA_IOASIC_BASE;
-+ dec_rtc_base = (void *)KN02CA_RTC_BASE;
-+ dec_kn_slot_size = IOASIC_SLOT_SIZE;
-+}
-+
-+static inline void prom_init_kn03(void)
-+{
-+ ioasic_base = (void *)KN03_IOASIC_BASE;
-+ dec_rtc_base = (void *)KN03_RTC_BASE;
-+ dec_kn_slot_size = IOASIC_SLOT_SIZE;
-+}
-+
-+
-+void __init prom_identify_arch(u32 magic)
-+{
-+ unsigned char dec_cpunum, dec_firmrev, dec_etc, dec_systype;
-+ u32 dec_sysid;
-+
-+ if (!prom_is_rex(magic)) {
- dec_sysid = simple_strtoul(prom_getenv("systype"), (char **)0, 0);
- } else {
- dec_sysid = rex_getsysid();
-@@ -67,50 +128,52 @@
- * FIXME: This may not be an exhaustive list of DECStations/Servers!
- * Put all model-specific initialisation calls here.
- */
-- prom_printf("This DECstation is a ");
--
- switch (dec_systype) {
- case DS2100_3100:
-- prom_printf("DS2100/3100\n");
- mips_machtype = MACH_DS23100;
-+ prom_init_kn01();
- break;
- case DS5100: /* DS5100 MIPSMATE */
-- prom_printf("DS5100\n");
- mips_machtype = MACH_DS5100;
-+ prom_init_kn230();
- break;
- case DS5000_200: /* DS5000 3max */
-- prom_printf("DS5000/200\n");
- mips_machtype = MACH_DS5000_200;
-+ prom_init_kn02();
- break;
- case DS5000_1XX: /* DS5000/100 3min */
-- prom_printf("DS5000/1xx\n");
- mips_machtype = MACH_DS5000_1XX;
-+ prom_init_kn02ba();
- break;
-- case DS5000_2X0: /* DS5000/240 3max+ */
-- prom_printf("DS5000/2x0\n");
-+ case DS5000_2X0: /* DS5000/240 3max+ or DS5900 bigmax */
- mips_machtype = MACH_DS5000_2X0;
-+ prom_init_kn03();
-+ if (!(ioasic_read(SIR) & KN03_IO_INR_3MAXP))
-+ mips_machtype = MACH_DS5900;
- break;
- case DS5000_XX: /* Personal DS5000/2x */
-- prom_printf("Personal DS5000/xx\n");
- mips_machtype = MACH_DS5000_XX;
-+ prom_init_kn02ca();
- break;
- case DS5800: /* DS5800 Isis */
-- prom_printf("DS5800\n");
- mips_machtype = MACH_DS5800;
- break;
- case DS5400: /* DS5400 MIPSfair */
-- prom_printf("DS5400\n");
- mips_machtype = MACH_DS5400;
- break;
- case DS5500: /* DS5500 MIPSfair-2 */
-- prom_printf("DS5500\n");
- mips_machtype = MACH_DS5500;
- break;
- default:
-- prom_printf("unknown, id is %x", dec_systype);
- mips_machtype = MACH_DSUNKNOWN;
- break;
- }
--}
--
-
-+ if (mips_machtype == MACH_DSUNKNOWN)
-+ prom_printf("This is an %s, id is %x\n",
-+ dec_system_strings[mips_machtype],
-+ dec_systype);
-+ else
-+ prom_printf("This is a %s\n",
-+ dec_system_strings[mips_machtype]);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/init.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/init.c
---- linux-2.4.20/arch/mips/dec/prom/init.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/init.c 2002-10-01 10:01:55.000000000 -0500
-@@ -2,92 +2,94 @@
- * init.c: PROM library initialisation code.
- *
- * Copyright (C) 1998 Harald Koerfgen
-+ * Copyright (C) 2002 Maciej W. Rozycki
- */
--#include <linux/init.h>
- #include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/types.h>
-+
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
--#include "prom.h"
-+#include <asm/dec/prom.h>
-
--/*
-- * PROM Interface (whichprom.c)
-- */
--typedef struct {
-- int pagesize;
-- unsigned char bitmap[0];
--} memmap;
-
--int (*rex_bootinit)(void);
--int (*rex_bootread)(void);
--int (*rex_getbitmap)(memmap *);
--unsigned long *(*rex_slot_address)(int);
--void *(*rex_gettcinfo)(void);
--int (*rex_getsysid)(void);
--void (*rex_clear_cache)(void);
-+int (*__rex_bootinit)(void);
-+int (*__rex_bootread)(void);
-+int (*__rex_getbitmap)(memmap *);
-+unsigned long *(*__rex_slot_address)(int);
-+void *(*__rex_gettcinfo)(void);
-+int (*__rex_getsysid)(void);
-+void (*__rex_clear_cache)(void);
-
--int (*prom_getchar)(void);
--char *(*prom_getenv)(char *);
--int (*prom_printf)(char *, ...);
-+int (*__prom_getchar)(void);
-+char *(*__prom_getenv)(char *);
-+int (*__prom_printf)(char *, ...);
-
--int (*pmax_open)(char*, int);
--int (*pmax_lseek)(int, long, int);
--int (*pmax_read)(int, void *, int);
--int (*pmax_close)(int);
-+int (*__pmax_open)(char*, int);
-+int (*__pmax_lseek)(int, long, int);
-+int (*__pmax_read)(int, void *, int);
-+int (*__pmax_close)(int);
-
--extern void prom_meminit(unsigned int);
--extern void prom_identify_arch(unsigned int);
--extern void prom_init_cmdline(int, char **, unsigned long);
-
- /*
- * Detect which PROM's the DECSTATION has, and set the callback vectors
- * appropriately.
- */
--void __init which_prom(unsigned long magic, int *prom_vec)
-+void __init which_prom(s32 magic, s32 *prom_vec)
- {
- /*
- * No sign of the REX PROM's magic number means we assume a non-REX
- * machine (i.e. we're on a DS2100/3100, DS5100 or DS5000/2xx)
- */
-- if (magic == REX_PROM_MAGIC)
-- {
-+ if (prom_is_rex(magic)) {
- /*
- * Set up prom abstraction structure with REX entry points.
- */
-- rex_bootinit = (int (*)(void)) *(prom_vec + REX_PROM_BOOTINIT);
-- rex_bootread = (int (*)(void)) *(prom_vec + REX_PROM_BOOTREAD);
-- rex_getbitmap = (int (*)(memmap *)) *(prom_vec + REX_PROM_GETBITMAP);
-- prom_getchar = (int (*)(void)) *(prom_vec + REX_PROM_GETCHAR);
-- prom_getenv = (char *(*)(char *)) *(prom_vec + REX_PROM_GETENV);
-- rex_getsysid = (int (*)(void)) *(prom_vec + REX_PROM_GETSYSID);
-- rex_gettcinfo = (void *(*)(void)) *(prom_vec + REX_PROM_GETTCINFO);
-- prom_printf = (int (*)(char *, ...)) *(prom_vec + REX_PROM_PRINTF);
-- rex_slot_address = (unsigned long *(*)(int)) *(prom_vec + REX_PROM_SLOTADDR);
-- rex_clear_cache = (void (*)(void)) * (prom_vec + REX_PROM_CLEARCACHE);
-- }
-- else
-- {
-+ __rex_bootinit =
-+ (void *)(long)*(prom_vec + REX_PROM_BOOTINIT);
-+ __rex_bootread =
-+ (void *)(long)*(prom_vec + REX_PROM_BOOTREAD);
-+ __rex_getbitmap =
-+ (void *)(long)*(prom_vec + REX_PROM_GETBITMAP);
-+ __prom_getchar =
-+ (void *)(long)*(prom_vec + REX_PROM_GETCHAR);
-+ __prom_getenv =
-+ (void *)(long)*(prom_vec + REX_PROM_GETENV);
-+ __rex_getsysid =
-+ (void *)(long)*(prom_vec + REX_PROM_GETSYSID);
-+ __rex_gettcinfo =
-+ (void *)(long)*(prom_vec + REX_PROM_GETTCINFO);
-+ __prom_printf =
-+ (void *)(long)*(prom_vec + REX_PROM_PRINTF);
-+ __rex_slot_address =
-+ (void *)(long)*(prom_vec + REX_PROM_SLOTADDR);
-+ __rex_clear_cache =
-+ (void *)(long)*(prom_vec + REX_PROM_CLEARCACHE);
-+ } else {
- /*
- * Set up prom abstraction structure with non-REX entry points.
- */
-- prom_getchar = (int (*)(void)) PMAX_PROM_GETCHAR;
-- prom_getenv = (char *(*)(char *)) PMAX_PROM_GETENV;
-- prom_printf = (int (*)(char *, ...)) PMAX_PROM_PRINTF;
-- pmax_open = (int (*)(char *, int)) PMAX_PROM_OPEN;
-- pmax_lseek = (int (*)(int, long, int)) PMAX_PROM_LSEEK;
-- pmax_read = (int (*)(int, void *, int)) PMAX_PROM_READ;
-- pmax_close = (int (*)(int)) PMAX_PROM_CLOSE;
-+ __prom_getchar = (void *)PMAX_PROM_GETCHAR;
-+ __prom_getenv = (void *)PMAX_PROM_GETENV;
-+ __prom_printf = (void *)PMAX_PROM_PRINTF;
-+ __pmax_open = (void *)PMAX_PROM_OPEN;
-+ __pmax_lseek = (void *)PMAX_PROM_LSEEK;
-+ __pmax_read = (void *)PMAX_PROM_READ;
-+ __pmax_close = (void *)PMAX_PROM_CLOSE;
- }
- }
-
--int __init prom_init(int argc, char **argv,
-- unsigned long magic, int *prom_vec)
-+int __init prom_init(s32 argc, s32 *argv, u32 magic, s32 *prom_vec)
- {
- extern void dec_machine_halt(void);
-
-- /* Determine which PROM's we have (and therefore which machine we're on!) */
-+ /*
-+ * Determine which PROM's we have
-+ * (and therefore which machine we're on!)
-+ */
- which_prom(magic, prom_vec);
-
-- if (magic == REX_PROM_MAGIC)
-+ if (prom_is_rex(magic))
- rex_clear_cache();
-
- /* Were we compiled with the right CPU option? */
-@@ -115,4 +117,3 @@
-
- return 0;
- }
--
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/locore.S linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/locore.S
---- linux-2.4.20/arch/mips/dec/prom/locore.S 1999-06-25 19:40:12.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/locore.S 2002-10-01 10:01:55.000000000 -0500
-@@ -19,11 +19,11 @@
- mfc0 k0, CP0_STATUS
- la k1, mem_err
-
-- sw k0,0(k1)
-+ sw k0, 0(k1)
-
- mfc0 k0, CP0_EPC
- nop
-- addiu k0,4 # skip the causing instruction
-+ addiu k0, 4 # skip the causing instruction
- jr k0
- rfe
- END(genexcept_early)
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/Makefile
---- linux-2.4.20/arch/mips/dec/prom/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/Makefile 2002-10-01 10:01:55.000000000 -0500
-@@ -12,6 +12,9 @@
-
- L_TARGET = rexlib.a
-
--obj-y += init.o memory.o cmdline.o identify.o locore.o
-+obj-y += init.o memory.o cmdline.o identify.o
-+
-+obj-$(CONFIG_MIPS32) += locore.o
-+obj-$(CONFIG_MIPS64) += call_o32.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/memory.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/memory.c
---- linux-2.4.20/arch/mips/dec/prom/memory.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/memory.c 2002-10-01 10:01:55.000000000 -0500
-@@ -2,35 +2,21 @@
- * memory.c: memory initialisation code.
- *
- * Copyright (C) 1998 Harald Koerfgen, Frieder Streffer and Paul M. Antoine
-- * Copyright (C) 2000 Maciej W. Rozycki
-+ * Copyright (C) 2000, 2002 Maciej W. Rozycki
- */
--#include <linux/init.h>
- #include <linux/config.h>
-+#include <linux/init.h>
- #include <linux/kernel.h>
- #include <linux/mm.h>
- #include <linux/bootmem.h>
-+#include <linux/types.h>
-
- #include <asm/addrspace.h>
--#include <asm/page.h>
--
- #include <asm/bootinfo.h>
--
- #include <asm/dec/machtype.h>
-+#include <asm/dec/prom.h>
-+#include <asm/page.h>
-
--#include "prom.h"
--
--typedef struct {
-- int pagesize;
-- unsigned char bitmap[0];
--} memmap;
--
--extern int (*rex_getbitmap)(memmap *);
--
--#undef PROM_DEBUG
--
--#ifdef PROM_DEBUG
--extern int (*prom_printf)(char *, ...);
--#endif
-
- volatile unsigned long mem_err = 0; /* So we know an error occurred */
-
-@@ -41,10 +27,10 @@
-
- #define CHUNK_SIZE 0x400000
-
--static void __init pmax_setup_memory_region(void)
-+static inline void pmax_setup_memory_region(void)
- {
- volatile unsigned char *memory_page, dummy;
-- char old_handler[0x80];
-+ char old_handler[0x80];
- extern char genexcept_early;
-
- /* Install exception handler */
-@@ -71,14 +57,14 @@
- * Use the REX prom calls to get hold of the memory bitmap, and thence
- * determine memory size.
- */
--static void __init rex_setup_memory_region(void)
-+static inline void rex_setup_memory_region(void)
- {
- int i, bitmap_size;
- unsigned long mem_start = 0, mem_size = 0;
- memmap *bm;
-
- /* some free 64k */
-- bm = (memmap *) 0x80028000;
-+ bm = (memmap *)KSEG0ADDR(0x28000);
-
- bitmap_size = rex_getbitmap(bm);
-
-@@ -98,9 +84,9 @@
- add_memory_region(mem_start, mem_size, BOOT_MEM_RAM);
- }
-
--void __init prom_meminit(unsigned int magic)
-+void __init prom_meminit(u32 magic)
- {
-- if (magic != REX_PROM_MAGIC)
-+ if (!prom_is_rex(magic))
- pmax_setup_memory_region();
- else
- rex_setup_memory_region();
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/prom/prom.h linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/prom.h
---- linux-2.4.20/arch/mips/dec/prom/prom.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/prom/prom.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,51 +0,0 @@
--/*
-- * Miscellaneous definitions used to call the routines contained in the boot
-- * PROMs on various models of DECSTATION's.
-- * the rights to redistribute these changes.
-- */
--
--#ifndef __ASM_DEC_PROM_H
--#define __ASM_DEC_PROM_H
--
--/*
-- * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's. Many of
-- * these will work for MIPSen as well!
-- */
--#define VEC_RESET 0xBFC00000 /* Prom base address */
--#define PMAX_PROM_ENTRY(x) (VEC_RESET+((x)*8)) /* Prom jump table */
--
--#define PMAX_PROM_HALT PMAX_PROM_ENTRY(2) /* valid on MIPSen */
--#define PMAX_PROM_AUTOBOOT PMAX_PROM_ENTRY(5) /* valid on MIPSen */
--#define PMAX_PROM_OPEN PMAX_PROM_ENTRY(6)
--#define PMAX_PROM_READ PMAX_PROM_ENTRY(7)
--#define PMAX_PROM_CLOSE PMAX_PROM_ENTRY(10)
--#define PMAX_PROM_LSEEK PMAX_PROM_ENTRY(11)
--#define PMAX_PROM_GETCHAR PMAX_PROM_ENTRY(12)
--#define PMAX_PROM_PUTCHAR PMAX_PROM_ENTRY(13) /* 12 on MIPSen */
--#define PMAX_PROM_GETS PMAX_PROM_ENTRY(15)
--#define PMAX_PROM_PRINTF PMAX_PROM_ENTRY(17)
--#define PMAX_PROM_GETENV PMAX_PROM_ENTRY(33) /* valid on MIPSen */
--
--/*
-- * Magic number indicating REX PROM available on DECSTATION. Found in
-- * register a2 on transfer of control to program from PROM.
-- */
--#define REX_PROM_MAGIC 0x30464354
--
--/*
-- * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's, and
-- * DS5000/2x0.
-- */
--#define REX_PROM_GETBITMAP 0x84/4 /* get mem bitmap */
--#define REX_PROM_GETCHAR 0x24/4 /* getch() */
--#define REX_PROM_GETENV 0x64/4 /* get env. variable */
--#define REX_PROM_GETSYSID 0x80/4 /* get system id */
--#define REX_PROM_GETTCINFO 0xa4/4
--#define REX_PROM_PRINTF 0x30/4 /* printf() */
--#define REX_PROM_SLOTADDR 0x6c/4 /* slotaddr */
--#define REX_PROM_BOOTINIT 0x54/4 /* open() */
--#define REX_PROM_BOOTREAD 0x58/4 /* read() */
--#define REX_PROM_CLEARCACHE 0x7c/4
--
--#endif /* __ASM_DEC_PROM_H */
--
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/promcon.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/promcon.c
---- linux-2.4.20/arch/mips/dec/promcon.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/promcon.c 2002-11-06 19:47:45.000000000 -0600
-@@ -12,8 +12,7 @@
- #include <linux/console.h>
- #include <linux/fs.h>
-
--extern int (*prom_getchar) (void);
--extern int (*prom_printf) (char *,...);
-+#include <asm/dec/prom.h>
-
- static void prom_console_write(struct console *co, const char *s,
- unsigned count)
-@@ -42,12 +41,12 @@
-
- static struct console sercons =
- {
-- name: "ttyS",
-- write: prom_console_write,
-- device: prom_console_device,
-- setup: prom_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "ttyS",
-+ .write = prom_console_write,
-+ .device = prom_console_device,
-+ .setup = prom_console_setup,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/reset.c
---- linux-2.4.20/arch/mips/dec/reset.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/reset.c 2003-01-16 07:52:36.000000000 -0600
-@@ -1,8 +1,14 @@
- /*
- * Reset a DECstation machine.
-+ *
-+ * Copyright (C) 199x the Anonymous
-+ * Copyright (C) 2001, 2002, 2003 Maciej W. Rozycki
- */
-
--void (*back_to_prom)(void) = (void (*)(void))0xBFC00000;
-+#include <asm/addrspace.h>
-+#include <asm/ptrace.h>
-+
-+#define back_to_prom() (((void (*)(void))KSEG1ADDR(0x1fc00000))())
-
- void dec_machine_restart(char *command)
- {
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/rtc-dec.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/rtc-dec.c
---- linux-2.4.20/arch/mips/dec/rtc-dec.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/rtc-dec.c 2002-12-16 09:12:39.000000000 -0600
-@@ -11,6 +11,7 @@
- */
-
- #include <linux/mc146818rtc.h>
-+#include <linux/module.h>
- #include <linux/types.h>
-
- volatile u8 *dec_rtc_base;
-@@ -35,3 +36,5 @@
- &dec_rtc_write_data,
- &dec_rtc_bcd_mode
- };
-+
-+EXPORT_SYMBOL(dec_rtc_base);
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/setup.c
---- linux-2.4.20/arch/mips/dec/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/setup.c 2003-01-30 08:25:13.000000000 -0600
-@@ -16,6 +16,7 @@
- #include <linux/console.h>
- #include <linux/init.h>
- #include <linux/module.h>
-+#include <linux/spinlock.h>
- #include <linux/types.h>
-
- #include <asm/cpu.h>
-@@ -28,15 +29,15 @@
- #include <asm/wbflush.h>
-
- #include <asm/dec/interrupts.h>
-+#include <asm/dec/ioasic.h>
-+#include <asm/dec/ioasic_addrs.h>
-+#include <asm/dec/ioasic_ints.h>
- #include <asm/dec/kn01.h>
- #include <asm/dec/kn02.h>
- #include <asm/dec/kn02ba.h>
- #include <asm/dec/kn02ca.h>
- #include <asm/dec/kn03.h>
- #include <asm/dec/kn230.h>
--#include <asm/dec/ioasic.h>
--#include <asm/dec/ioasic_addrs.h>
--#include <asm/dec/ioasic_ints.h>
-
-
- extern void dec_machine_restart(char *command);
-@@ -46,6 +47,8 @@
-
- extern asmlinkage void decstation_handle_int(void);
-
-+spinlock_t ioasic_ssr_lock;
-+
- volatile u32 *ioasic_base;
- unsigned long dec_kn_slot_size;
-
-@@ -75,10 +78,10 @@
- [0 ... DEC_NR_INTS - 1] = -1
- };
- int_ptr cpu_mask_nr_tbl[DEC_MAX_CPU_INTS][2] = {
-- { { i: ~0 }, { p: dec_intr_unimplemented } },
-+ { { .i = ~0 }, { .p = dec_intr_unimplemented } },
- };
- int_ptr asic_mask_nr_tbl[DEC_MAX_ASIC_INTS][2] = {
-- { { i: ~0 }, { p: asic_intr_unimplemented } },
-+ { { .i = ~0 }, { .p = asic_intr_unimplemented } },
- };
- int cpu_fpu_mask = DEC_CPU_IRQ_MASK(DEC_CPU_INR_FPU);
-
-@@ -175,10 +178,10 @@
- [DEC_IRQ_SCC0A_RXDMA] = -1,
- [DEC_IRQ_SCC0A_TXERR] = -1,
- [DEC_IRQ_SCC0A_TXDMA] = -1,
-- [DEC_IRQ_SCC0B_RXERR] = -1,
-- [DEC_IRQ_SCC0B_RXDMA] = -1,
-- [DEC_IRQ_SCC0B_TXERR] = -1,
-- [DEC_IRQ_SCC0B_TXDMA] = -1,
-+ [DEC_IRQ_AB_RXERR] = -1,
-+ [DEC_IRQ_AB_RXDMA] = -1,
-+ [DEC_IRQ_AB_TXERR] = -1,
-+ [DEC_IRQ_AB_TXDMA] = -1,
- [DEC_IRQ_SCC1A_RXERR] = -1,
- [DEC_IRQ_SCC1A_RXDMA] = -1,
- [DEC_IRQ_SCC1A_TXERR] = -1,
-@@ -186,26 +189,22 @@
- };
-
- static int_ptr kn01_cpu_mask_nr_tbl[][2] __initdata = {
-- { { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_MEMORY) },
-- { i: DEC_CPU_IRQ_NR(KN01_CPU_INR_MEMORY) } },
-- { { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_RTC) },
-- { i: DEC_CPU_IRQ_NR(KN01_CPU_INR_RTC) } },
-- { { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_DZ11) },
-- { i: DEC_CPU_IRQ_NR(KN01_CPU_INR_DZ11) } },
-- { { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_SII) },
-- { i: DEC_CPU_IRQ_NR(KN01_CPU_INR_SII) } },
-- { { i: DEC_CPU_IRQ_MASK(KN01_CPU_INR_LANCE) },
-- { i: DEC_CPU_IRQ_NR(KN01_CPU_INR_LANCE) } },
-- { { i: DEC_CPU_IRQ_ALL },
-- { p: cpu_all_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_MEMORY) },
-+ { .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_MEMORY) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_RTC) },
-+ { .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_RTC) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_DZ11) },
-+ { .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_DZ11) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_SII) },
-+ { .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_SII) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN01_CPU_INR_LANCE) },
-+ { .i = DEC_CPU_IRQ_NR(KN01_CPU_INR_LANCE) } },
-+ { { .i = DEC_CPU_IRQ_ALL },
-+ { .p = cpu_all_int } },
- };
-
- void __init dec_init_kn01(void)
- {
-- /* Setup some memory addresses. */
-- dec_rtc_base = (void *)KN01_RTC_BASE;
-- dec_kn_slot_size = KN01_SLOT_SIZE;
--
- /* IRQ routing. */
- memcpy(&dec_interrupt, &kn01_interrupt,
- sizeof(kn01_interrupt));
-@@ -256,10 +255,10 @@
- [DEC_IRQ_SCC0A_RXDMA] = -1,
- [DEC_IRQ_SCC0A_TXERR] = -1,
- [DEC_IRQ_SCC0A_TXDMA] = -1,
-- [DEC_IRQ_SCC0B_RXERR] = -1,
-- [DEC_IRQ_SCC0B_RXDMA] = -1,
-- [DEC_IRQ_SCC0B_TXERR] = -1,
-- [DEC_IRQ_SCC0B_TXDMA] = -1,
-+ [DEC_IRQ_AB_RXERR] = -1,
-+ [DEC_IRQ_AB_RXDMA] = -1,
-+ [DEC_IRQ_AB_TXERR] = -1,
-+ [DEC_IRQ_AB_TXDMA] = -1,
- [DEC_IRQ_SCC1A_RXERR] = -1,
- [DEC_IRQ_SCC1A_RXDMA] = -1,
- [DEC_IRQ_SCC1A_TXERR] = -1,
-@@ -267,24 +266,20 @@
- };
-
- static int_ptr kn230_cpu_mask_nr_tbl[][2] __initdata = {
-- { { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_MEMORY) },
-- { i: DEC_CPU_IRQ_NR(KN230_CPU_INR_MEMORY) } },
-- { { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_RTC) },
-- { i: DEC_CPU_IRQ_NR(KN230_CPU_INR_RTC) } },
-- { { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_DZ11) },
-- { i: DEC_CPU_IRQ_NR(KN230_CPU_INR_DZ11) } },
-- { { i: DEC_CPU_IRQ_MASK(KN230_CPU_INR_SII) },
-- { i: DEC_CPU_IRQ_NR(KN230_CPU_INR_SII) } },
-- { { i: DEC_CPU_IRQ_ALL },
-- { p: cpu_all_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_MEMORY) },
-+ { .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_MEMORY) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_RTC) },
-+ { .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_RTC) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_DZ11) },
-+ { .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_DZ11) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN230_CPU_INR_SII) },
-+ { .i = DEC_CPU_IRQ_NR(KN230_CPU_INR_SII) } },
-+ { { .i = DEC_CPU_IRQ_ALL },
-+ { .p = cpu_all_int } },
- };
-
- void __init dec_init_kn230(void)
- {
-- /* Setup some memory addresses. */
-- dec_rtc_base = (void *)KN01_RTC_BASE;
-- dec_kn_slot_size = KN01_SLOT_SIZE;
--
- /* IRQ routing. */
- memcpy(&dec_interrupt, &kn230_interrupt,
- sizeof(kn230_interrupt));
-@@ -335,10 +330,10 @@
- [DEC_IRQ_SCC0A_RXDMA] = -1,
- [DEC_IRQ_SCC0A_TXERR] = -1,
- [DEC_IRQ_SCC0A_TXDMA] = -1,
-- [DEC_IRQ_SCC0B_RXERR] = -1,
-- [DEC_IRQ_SCC0B_RXDMA] = -1,
-- [DEC_IRQ_SCC0B_TXERR] = -1,
-- [DEC_IRQ_SCC0B_TXDMA] = -1,
-+ [DEC_IRQ_AB_RXERR] = -1,
-+ [DEC_IRQ_AB_RXDMA] = -1,
-+ [DEC_IRQ_AB_TXERR] = -1,
-+ [DEC_IRQ_AB_TXDMA] = -1,
- [DEC_IRQ_SCC1A_RXERR] = -1,
- [DEC_IRQ_SCC1A_RXDMA] = -1,
- [DEC_IRQ_SCC1A_TXERR] = -1,
-@@ -346,39 +341,35 @@
- };
-
- static int_ptr kn02_cpu_mask_nr_tbl[][2] __initdata = {
-- { { i: DEC_CPU_IRQ_MASK(KN02_CPU_INR_MEMORY) },
-- { i: DEC_CPU_IRQ_NR(KN02_CPU_INR_MEMORY) } },
-- { { i: DEC_CPU_IRQ_MASK(KN02_CPU_INR_RTC) },
-- { i: DEC_CPU_IRQ_NR(KN02_CPU_INR_RTC) } },
-- { { i: DEC_CPU_IRQ_MASK(KN02_CPU_INR_CASCADE) },
-- { p: kn02_io_int } },
-- { { i: DEC_CPU_IRQ_ALL },
-- { p: cpu_all_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02_CPU_INR_MEMORY) },
-+ { .i = DEC_CPU_IRQ_NR(KN02_CPU_INR_MEMORY) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02_CPU_INR_RTC) },
-+ { .i = DEC_CPU_IRQ_NR(KN02_CPU_INR_RTC) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02_CPU_INR_CASCADE) },
-+ { .p = kn02_io_int } },
-+ { { .i = DEC_CPU_IRQ_ALL },
-+ { .p = cpu_all_int } },
- };
-
- static int_ptr kn02_asic_mask_nr_tbl[][2] __initdata = {
-- { { i: KN02_IRQ_MASK(KN02_CSR_INR_DZ11) },
-- { i: KN02_IRQ_NR(KN02_CSR_INR_DZ11) } },
-- { { i: KN02_IRQ_MASK(KN02_CSR_INR_ASC) },
-- { i: KN02_IRQ_NR(KN02_CSR_INR_ASC) } },
-- { { i: KN02_IRQ_MASK(KN02_CSR_INR_LANCE) },
-- { i: KN02_IRQ_NR(KN02_CSR_INR_LANCE) } },
-- { { i: KN02_IRQ_MASK(KN02_CSR_INR_TC2) },
-- { i: KN02_IRQ_NR(KN02_CSR_INR_TC2) } },
-- { { i: KN02_IRQ_MASK(KN02_CSR_INR_TC1) },
-- { i: KN02_IRQ_NR(KN02_CSR_INR_TC1) } },
-- { { i: KN02_IRQ_MASK(KN02_CSR_INR_TC0) },
-- { i: KN02_IRQ_NR(KN02_CSR_INR_TC0) } },
-- { { i: KN02_IRQ_ALL },
-- { p: kn02_all_int } },
-+ { { .i = KN02_IRQ_MASK(KN02_CSR_INR_DZ11) },
-+ { .i = KN02_IRQ_NR(KN02_CSR_INR_DZ11) } },
-+ { { .i = KN02_IRQ_MASK(KN02_CSR_INR_ASC) },
-+ { .i = KN02_IRQ_NR(KN02_CSR_INR_ASC) } },
-+ { { .i = KN02_IRQ_MASK(KN02_CSR_INR_LANCE) },
-+ { .i = KN02_IRQ_NR(KN02_CSR_INR_LANCE) } },
-+ { { .i = KN02_IRQ_MASK(KN02_CSR_INR_TC2) },
-+ { .i = KN02_IRQ_NR(KN02_CSR_INR_TC2) } },
-+ { { .i = KN02_IRQ_MASK(KN02_CSR_INR_TC1) },
-+ { .i = KN02_IRQ_NR(KN02_CSR_INR_TC1) } },
-+ { { .i = KN02_IRQ_MASK(KN02_CSR_INR_TC0) },
-+ { .i = KN02_IRQ_NR(KN02_CSR_INR_TC0) } },
-+ { { .i = KN02_IRQ_ALL },
-+ { .p = kn02_all_int } },
- };
-
- void __init dec_init_kn02(void)
- {
-- /* Setup some memory addresses. */
-- dec_rtc_base = (void *)KN02_RTC_BASE;
-- dec_kn_slot_size = KN02_SLOT_SIZE;
--
- /* IRQ routing. */
- memcpy(&dec_interrupt, &kn02_interrupt,
- sizeof(kn02_interrupt));
-@@ -436,10 +427,10 @@
- [DEC_IRQ_SCC0A_RXDMA] = IO_IRQ_NR(IO_INR_SCC0A_RXDMA),
- [DEC_IRQ_SCC0A_TXERR] = IO_IRQ_NR(IO_INR_SCC0A_TXERR),
- [DEC_IRQ_SCC0A_TXDMA] = IO_IRQ_NR(IO_INR_SCC0A_TXDMA),
-- [DEC_IRQ_SCC0B_RXERR] = -1,
-- [DEC_IRQ_SCC0B_RXDMA] = -1,
-- [DEC_IRQ_SCC0B_TXERR] = -1,
-- [DEC_IRQ_SCC0B_TXDMA] = -1,
-+ [DEC_IRQ_AB_RXERR] = -1,
-+ [DEC_IRQ_AB_RXDMA] = -1,
-+ [DEC_IRQ_AB_TXERR] = -1,
-+ [DEC_IRQ_AB_TXDMA] = -1,
- [DEC_IRQ_SCC1A_RXERR] = IO_IRQ_NR(IO_INR_SCC1A_RXERR),
- [DEC_IRQ_SCC1A_RXDMA] = IO_IRQ_NR(IO_INR_SCC1A_RXDMA),
- [DEC_IRQ_SCC1A_TXERR] = IO_IRQ_NR(IO_INR_SCC1A_TXERR),
-@@ -447,44 +438,39 @@
- };
-
- static int_ptr kn02ba_cpu_mask_nr_tbl[][2] __initdata = {
-- { { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_CASCADE) },
-- { p: kn02xa_io_int } },
-- { { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC2) },
-- { i: DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC2) } },
-- { { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC1) },
-- { i: DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC1) } },
-- { { i: DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC0) },
-- { i: DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC0) } },
-- { { i: DEC_CPU_IRQ_ALL },
-- { p: cpu_all_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_CASCADE) },
-+ { .p = kn02xa_io_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC2) },
-+ { .i = DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC2) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC1) },
-+ { .i = DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC1) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02BA_CPU_INR_TC0) },
-+ { .i = DEC_CPU_IRQ_NR(KN02BA_CPU_INR_TC0) } },
-+ { { .i = DEC_CPU_IRQ_ALL },
-+ { .p = cpu_all_int } },
- };
-
- static int_ptr kn02ba_asic_mask_nr_tbl[][2] __initdata = {
-- { { i: IO_IRQ_MASK(KN02BA_IO_INR_MEMORY) },
-- { i: IO_IRQ_NR(KN02BA_IO_INR_MEMORY) } },
-- { { i: IO_IRQ_MASK(KN02BA_IO_INR_RTC) },
-- { i: IO_IRQ_NR(KN02BA_IO_INR_RTC) } },
-- { { i: IO_IRQ_DMA },
-- { p: asic_dma_int } },
-- { { i: IO_IRQ_MASK(KN02BA_IO_INR_SCC0) },
-- { i: IO_IRQ_NR(KN02BA_IO_INR_SCC0) } },
-- { { i: IO_IRQ_MASK(KN02BA_IO_INR_SCC1) },
-- { i: IO_IRQ_NR(KN02BA_IO_INR_SCC1) } },
-- { { i: IO_IRQ_MASK(KN02BA_IO_INR_ASC) },
-- { i: IO_IRQ_NR(KN02BA_IO_INR_ASC) } },
-- { { i: IO_IRQ_MASK(KN02BA_IO_INR_LANCE) },
-- { i: IO_IRQ_NR(KN02BA_IO_INR_LANCE) } },
-- { { i: IO_IRQ_ALL },
-- { p: asic_all_int } },
-+ { { .i = IO_IRQ_MASK(KN02BA_IO_INR_MEMORY) },
-+ { .i = IO_IRQ_NR(KN02BA_IO_INR_MEMORY) } },
-+ { { .i = IO_IRQ_MASK(KN02BA_IO_INR_RTC) },
-+ { .i = IO_IRQ_NR(KN02BA_IO_INR_RTC) } },
-+ { { .i = IO_IRQ_DMA },
-+ { .p = asic_dma_int } },
-+ { { .i = IO_IRQ_MASK(KN02BA_IO_INR_SCC0) },
-+ { .i = IO_IRQ_NR(KN02BA_IO_INR_SCC0) } },
-+ { { .i = IO_IRQ_MASK(KN02BA_IO_INR_SCC1) },
-+ { .i = IO_IRQ_NR(KN02BA_IO_INR_SCC1) } },
-+ { { .i = IO_IRQ_MASK(KN02BA_IO_INR_ASC) },
-+ { .i = IO_IRQ_NR(KN02BA_IO_INR_ASC) } },
-+ { { .i = IO_IRQ_MASK(KN02BA_IO_INR_LANCE) },
-+ { .i = IO_IRQ_NR(KN02BA_IO_INR_LANCE) } },
-+ { { .i = IO_IRQ_ALL },
-+ { .p = asic_all_int } },
- };
-
- void __init dec_init_kn02ba(void)
- {
-- /* Setup some memory addresses. */
-- ioasic_base = (void *)KN02BA_IOASIC_BASE;
-- dec_rtc_base = (void *)KN02BA_RTC_BASE;
-- dec_kn_slot_size = IOASIC_SLOT_SIZE;
--
- /* IRQ routing. */
- memcpy(&dec_interrupt, &kn02ba_interrupt,
- sizeof(kn02ba_interrupt));
-@@ -542,10 +528,10 @@
- [DEC_IRQ_SCC0A_RXDMA] = IO_IRQ_NR(IO_INR_SCC0A_RXDMA),
- [DEC_IRQ_SCC0A_TXERR] = IO_IRQ_NR(IO_INR_SCC0A_TXERR),
- [DEC_IRQ_SCC0A_TXDMA] = IO_IRQ_NR(IO_INR_SCC0A_TXDMA),
-- [DEC_IRQ_SCC0B_RXERR] = IO_IRQ_NR(IO_INR_SCC0B_RXERR),
-- [DEC_IRQ_SCC0B_RXDMA] = IO_IRQ_NR(IO_INR_SCC0B_RXDMA),
-- [DEC_IRQ_SCC0B_TXERR] = IO_IRQ_NR(IO_INR_SCC0B_TXERR),
-- [DEC_IRQ_SCC0B_TXDMA] = IO_IRQ_NR(IO_INR_SCC0B_TXDMA),
-+ [DEC_IRQ_AB_RXERR] = IO_IRQ_NR(IO_INR_AB_RXERR),
-+ [DEC_IRQ_AB_RXDMA] = IO_IRQ_NR(IO_INR_AB_RXDMA),
-+ [DEC_IRQ_AB_TXERR] = IO_IRQ_NR(IO_INR_AB_TXERR),
-+ [DEC_IRQ_AB_TXDMA] = IO_IRQ_NR(IO_INR_AB_TXDMA),
- [DEC_IRQ_SCC1A_RXERR] = -1,
- [DEC_IRQ_SCC1A_RXDMA] = -1,
- [DEC_IRQ_SCC1A_TXERR] = -1,
-@@ -553,40 +539,35 @@
- };
-
- static int_ptr kn02ca_cpu_mask_nr_tbl[][2] __initdata = {
-- { { i: DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_MEMORY) },
-- { i: DEC_CPU_IRQ_NR(KN02CA_CPU_INR_MEMORY) } },
-- { { i: DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_RTC) },
-- { i: DEC_CPU_IRQ_NR(KN02CA_CPU_INR_RTC) } },
-- { { i: DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_CASCADE) },
-- { p: kn02xa_io_int } },
-- { { i: DEC_CPU_IRQ_ALL },
-- { p: cpu_all_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_MEMORY) },
-+ { .i = DEC_CPU_IRQ_NR(KN02CA_CPU_INR_MEMORY) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_RTC) },
-+ { .i = DEC_CPU_IRQ_NR(KN02CA_CPU_INR_RTC) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN02CA_CPU_INR_CASCADE) },
-+ { .p = kn02xa_io_int } },
-+ { { .i = DEC_CPU_IRQ_ALL },
-+ { .p = cpu_all_int } },
- };
-
- static int_ptr kn02ca_asic_mask_nr_tbl[][2] __initdata = {
-- { { i: IO_IRQ_DMA },
-- { p: asic_dma_int } },
-- { { i: IO_IRQ_MASK(KN02CA_IO_INR_SCC0) },
-- { i: IO_IRQ_NR(KN02CA_IO_INR_SCC0) } },
-- { { i: IO_IRQ_MASK(KN02CA_IO_INR_ASC) },
-- { i: IO_IRQ_NR(KN02CA_IO_INR_ASC) } },
-- { { i: IO_IRQ_MASK(KN02CA_IO_INR_LANCE) },
-- { i: IO_IRQ_NR(KN02CA_IO_INR_LANCE) } },
-- { { i: IO_IRQ_MASK(KN02CA_IO_INR_TC1) },
-- { i: IO_IRQ_NR(KN02CA_IO_INR_TC1) } },
-- { { i: IO_IRQ_MASK(KN02CA_IO_INR_TC0) },
-- { i: IO_IRQ_NR(KN02CA_IO_INR_TC0) } },
-- { { i: IO_IRQ_ALL },
-- { p: asic_all_int } },
-+ { { .i = IO_IRQ_DMA },
-+ { .p = asic_dma_int } },
-+ { { .i = IO_IRQ_MASK(KN02CA_IO_INR_SCC0) },
-+ { .i = IO_IRQ_NR(KN02CA_IO_INR_SCC0) } },
-+ { { .i = IO_IRQ_MASK(KN02CA_IO_INR_ASC) },
-+ { .i = IO_IRQ_NR(KN02CA_IO_INR_ASC) } },
-+ { { .i = IO_IRQ_MASK(KN02CA_IO_INR_LANCE) },
-+ { .i = IO_IRQ_NR(KN02CA_IO_INR_LANCE) } },
-+ { { .i = IO_IRQ_MASK(KN02CA_IO_INR_TC1) },
-+ { .i = IO_IRQ_NR(KN02CA_IO_INR_TC1) } },
-+ { { .i = IO_IRQ_MASK(KN02CA_IO_INR_TC0) },
-+ { .i = IO_IRQ_NR(KN02CA_IO_INR_TC0) } },
-+ { { .i = IO_IRQ_ALL },
-+ { .p = asic_all_int } },
- };
-
- void __init dec_init_kn02ca(void)
- {
-- /* Setup some memory addresses. */
-- ioasic_base = (void *)KN02CA_IOASIC_BASE;
-- dec_rtc_base = (void *)KN02CA_RTC_BASE;
-- dec_kn_slot_size = IOASIC_SLOT_SIZE;
--
- /* IRQ routing. */
- memcpy(&dec_interrupt, &kn02ca_interrupt,
- sizeof(kn02ca_interrupt));
-@@ -644,10 +625,10 @@
- [DEC_IRQ_SCC0A_RXDMA] = IO_IRQ_NR(IO_INR_SCC0A_RXDMA),
- [DEC_IRQ_SCC0A_TXERR] = IO_IRQ_NR(IO_INR_SCC0A_TXERR),
- [DEC_IRQ_SCC0A_TXDMA] = IO_IRQ_NR(IO_INR_SCC0A_TXDMA),
-- [DEC_IRQ_SCC0B_RXERR] = -1,
-- [DEC_IRQ_SCC0B_RXDMA] = -1,
-- [DEC_IRQ_SCC0B_TXERR] = -1,
-- [DEC_IRQ_SCC0B_TXDMA] = -1,
-+ [DEC_IRQ_AB_RXERR] = -1,
-+ [DEC_IRQ_AB_RXDMA] = -1,
-+ [DEC_IRQ_AB_TXERR] = -1,
-+ [DEC_IRQ_AB_TXDMA] = -1,
- [DEC_IRQ_SCC1A_RXERR] = IO_IRQ_NR(IO_INR_SCC1A_RXERR),
- [DEC_IRQ_SCC1A_RXDMA] = IO_IRQ_NR(IO_INR_SCC1A_RXDMA),
- [DEC_IRQ_SCC1A_TXERR] = IO_IRQ_NR(IO_INR_SCC1A_TXERR),
-@@ -655,44 +636,39 @@
- };
-
- static int_ptr kn03_cpu_mask_nr_tbl[][2] __initdata = {
-- { { i: DEC_CPU_IRQ_MASK(KN03_CPU_INR_MEMORY) },
-- { i: DEC_CPU_IRQ_NR(KN03_CPU_INR_MEMORY) } },
-- { { i: DEC_CPU_IRQ_MASK(KN03_CPU_INR_RTC) },
-- { i: DEC_CPU_IRQ_NR(KN03_CPU_INR_RTC) } },
-- { { i: DEC_CPU_IRQ_MASK(KN03_CPU_INR_CASCADE) },
-- { p: kn03_io_int } },
-- { { i: DEC_CPU_IRQ_ALL },
-- { p: cpu_all_int } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN03_CPU_INR_MEMORY) },
-+ { .i = DEC_CPU_IRQ_NR(KN03_CPU_INR_MEMORY) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN03_CPU_INR_RTC) },
-+ { .i = DEC_CPU_IRQ_NR(KN03_CPU_INR_RTC) } },
-+ { { .i = DEC_CPU_IRQ_MASK(KN03_CPU_INR_CASCADE) },
-+ { .p = kn03_io_int } },
-+ { { .i = DEC_CPU_IRQ_ALL },
-+ { .p = cpu_all_int } },
- };
-
- static int_ptr kn03_asic_mask_nr_tbl[][2] __initdata = {
-- { { i: IO_IRQ_DMA },
-- { p: asic_dma_int } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_SCC0) },
-- { i: IO_IRQ_NR(KN03_IO_INR_SCC0) } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_SCC1) },
-- { i: IO_IRQ_NR(KN03_IO_INR_SCC1) } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_ASC) },
-- { i: IO_IRQ_NR(KN03_IO_INR_ASC) } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_LANCE) },
-- { i: IO_IRQ_NR(KN03_IO_INR_LANCE) } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_TC2) },
-- { i: IO_IRQ_NR(KN03_IO_INR_TC2) } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_TC1) },
-- { i: IO_IRQ_NR(KN03_IO_INR_TC1) } },
-- { { i: IO_IRQ_MASK(KN03_IO_INR_TC0) },
-- { i: IO_IRQ_NR(KN03_IO_INR_TC0) } },
-- { { i: IO_IRQ_ALL },
-- { p: asic_all_int } },
-+ { { .i = IO_IRQ_DMA },
-+ { .p = asic_dma_int } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_SCC0) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_SCC0) } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_SCC1) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_SCC1) } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_ASC) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_ASC) } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_LANCE) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_LANCE) } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_TC2) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_TC2) } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_TC1) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_TC1) } },
-+ { { .i = IO_IRQ_MASK(KN03_IO_INR_TC0) },
-+ { .i = IO_IRQ_NR(KN03_IO_INR_TC0) } },
-+ { { .i = IO_IRQ_ALL },
-+ { .p = asic_all_int } },
- };
-
- void __init dec_init_kn03(void)
- {
-- /* Setup some memory addresses. */
-- ioasic_base = (void *)KN03_IOASIC_BASE;
-- dec_rtc_base = (void *)KN03_RTC_BASE;
-- dec_kn_slot_size = IOASIC_SLOT_SIZE;
--
- /* IRQ routing. */
- memcpy(&dec_interrupt, &kn03_interrupt,
- sizeof(kn03_interrupt));
-@@ -727,6 +703,7 @@
- dec_init_kn02ba();
- break;
- case MACH_DS5000_2X0: /* DS5000/240 3max+ */
-+ case MACH_DS5900: /* DS5900 bigmax */
- dec_init_kn03();
- break;
- case MACH_DS5000_XX: /* Personal DS5000/xx */
-@@ -762,6 +739,5 @@
- }
-
- EXPORT_SYMBOL(ioasic_base);
--EXPORT_SYMBOL(dec_rtc_base);
- EXPORT_SYMBOL(dec_kn_slot_size);
- EXPORT_SYMBOL(dec_interrupt);
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/time.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/time.c
---- linux-2.4.20/arch/mips/dec/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/time.c 2002-12-01 18:24:46.000000000 -0600
-@@ -99,7 +99,7 @@
- }
- }
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -384,7 +384,7 @@
- * The cycle counter is only 32 bit which is good for about
- * a minute at current count rates of upto 150MHz or so.
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- timerhi += (count < timerlo); /* Wrap around */
- timerlo = count;
-
-@@ -394,7 +394,7 @@
- * update the timer[hi]/[lo] to make do_fast_gettimeoffset()
- * quotient calc still valid. -arca
- */
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
- timerhi = timerlo = 0;
- }
-
-@@ -476,7 +476,7 @@
- write_unlock_irq(&xtime_lock);
-
- if (mips_cpu.options & MIPS_CPU_COUNTER) {
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
- do_gettimeoffset = do_fast_gettimeoffset;
- irq0.handler = r4k_timer_interrupt;
- } else if (IOASIC) {
-diff -urNd -urNd linux-2.4.20/arch/mips/dec/wbflush.c linux-2.4.20-mipscvs-20050106/arch/mips/dec/wbflush.c
---- linux-2.4.20/arch/mips/dec/wbflush.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/dec/wbflush.c 2002-12-12 13:08:47.000000000 -0600
-@@ -39,6 +39,7 @@
- case MACH_DS5000_1XX: /* DS5000/100 3min */
- case MACH_DS5000_XX: /* Personal DS5000/2x */
- case MACH_DS5000_2X0: /* DS5000/240 3max+ */
-+ case MACH_DS5900: /* DS5900 bigmax */
- default:
- __wbflush = wbflush_mips;
- break;
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig linux-2.4.20-mipscvs-20050106/arch/mips/defconfig
---- linux-2.4.20/arch/mips/defconfig 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,21 +56,22 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_ARC32=y
--CONFIG_ARC_CONSOLE=y
- CONFIG_ARC_MEMORY=y
-+CONFIG_ARC_PROMLIB=y
- CONFIG_BOARD_SCACHE=y
- CONFIG_BOOT_ELF32=y
--CONFIG_SWAP_IO_SPACE=y
-+# CONFIG_SWAP_IO_SPACE_W is not set
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_IRQ_CPU=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NONCOHERENT_IO=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
-@@ -91,7 +97,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -125,6 +130,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -468,6 +475,7 @@
- # CONFIG_MACHZ_WDT is not set
- CONFIG_INDYDOG=y
- # CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -614,8 +622,8 @@
- #
- # SGI devices
- #
--CONFIG_SGI_SERIAL=y
--# CONFIG_SERIAL_CONSOLE is not set
-+CONFIG_IP22_SERIAL=y
-+# CONFIG_IP22_SERIAL_CONSOLE is not set
- CONFIG_SGI_DS1286=y
- # CONFIG_SGI_NEWPORT_GFX is not set
-
-@@ -634,6 +642,8 @@
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-atlas linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-atlas
---- linux-2.4.20/arch/mips/defconfig-atlas 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-atlas 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- CONFIG_MIPS_ATLAS=y
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,18 +54,20 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_BOOT_ELF32=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PCI=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- # CONFIG_MIPS_AU1000 is not set
-
- #
-@@ -115,6 +122,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -381,6 +390,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -489,6 +499,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -629,9 +640,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-capcella linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-capcella
---- linux-2.4.20/arch/mips/defconfig-capcella 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-capcella 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,14 +56,14 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- CONFIG_ZAO_CAPCELLA=y
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_CPU_VR41XX=y
--CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_NEW_IRQ=y
- CONFIG_IRQ_CPU=y
- CONFIG_NEW_TIME_C=y
- CONFIG_VR41XX_TIME_C=y
-@@ -118,6 +123,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -353,6 +360,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -482,6 +490,7 @@
- # CONFIG_MACHZ_WDT is not set
- # CONFIG_INDYDOG is not set
- # CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -632,9 +641,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-cobalt linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-cobalt
---- linux-2.4.20/arch/mips/defconfig-cobalt 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-cobalt 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- CONFIG_MIPS_COBALT=y
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,7 +54,9 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-@@ -57,7 +64,6 @@
- CONFIG_COBALT_LCD=y
- CONFIG_I8259=y
- CONFIG_PCI=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- # CONFIG_MIPS_AU1000 is not set
-@@ -81,7 +87,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
- CONFIG_CPU_HAS_LLDSCD=y
-@@ -110,6 +115,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -380,6 +387,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -488,6 +496,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -627,9 +636,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-db1000 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1000
---- linux-2.4.20/arch/mips/defconfig-db1000 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1000 2003-02-07 17:39:40.000000000 -0600
-@@ -0,0 +1,768 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+CONFIG_MIPS_DB1000=y
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CPU_AU1X00=y
-+CONFIG_CPU_AU1000=y
-+CONFIG_PCI=y
-+CONFIG_NEW_PCI=y
-+# CONFIG_PCI_AUTO is not set
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_PC_KEYB=y
-+CONFIG_SWAP_IO_SPACE=y
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+CONFIG_CPU_MIPS32=y
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+# CONFIG_CPU_VR41XX is not set
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+CONFIG_CPU_HAS_PREFETCH=y
-+# CONFIG_VTAG_ICACHE is not set
-+CONFIG_64BIT_PHYS_ADDR=y
-+CONFIG_CPU_ADVANCED=y
-+CONFIG_CPU_HAS_LLSC=y
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+CONFIG_CPU_HAS_WB=y
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+CONFIG_PCI_NAMES=y
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+CONFIG_HOTPLUG=y
-+
-+#
-+# PCMCIA/CardBus support
-+#
-+CONFIG_PCMCIA=m
-+# CONFIG_CARDBUS is not set
-+# CONFIG_TCIC is not set
-+# CONFIG_I82092 is not set
-+# CONFIG_I82365 is not set
-+CONFIG_PCMCIA_AU1X00=m
-+# CONFIG_PCMCIA_PB1X00 is not set
-+CONFIG_PCMCIA_DB1X00=y
-+
-+#
-+# PCI Hotplug Support
-+#
-+# CONFIG_HOTPLUG_PCI is not set
-+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-+# CONFIG_HOTPLUG_PCI_ACPI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+# CONFIG_NETLINK_DEV is not set
-+CONFIG_NETFILTER=y
-+# CONFIG_NETFILTER_DEBUG is not set
-+CONFIG_FILTER=y
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+# CONFIG_IP_NF_CONNTRACK is not set
-+# CONFIG_IP_NF_QUEUE is not set
-+# CONFIG_IP_NF_IPTABLES is not set
-+# CONFIG_IP_NF_ARPTABLES is not set
-+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
-+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+CONFIG_IDE=y
-+
-+#
-+# IDE, ATA and ATAPI Block devices
-+#
-+CONFIG_BLK_DEV_IDE=y
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+# CONFIG_BLK_DEV_HD_IDE is not set
-+# CONFIG_BLK_DEV_HD is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_IDEDISK_STROKE is not set
-+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
-+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
-+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
-+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
-+# CONFIG_BLK_DEV_IDEDISK_WD is not set
-+# CONFIG_BLK_DEV_COMMERIAL is not set
-+# CONFIG_BLK_DEV_TIVO is not set
-+CONFIG_BLK_DEV_IDECS=m
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+# CONFIG_BLK_DEV_IDESCSI is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+# CONFIG_BLK_DEV_CMD640 is not set
-+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-+# CONFIG_BLK_DEV_ISAPNP is not set
-+# CONFIG_BLK_DEV_RZ1000 is not set
-+# CONFIG_BLK_DEV_IDEPCI is not set
-+# CONFIG_IDE_CHIPSETS is not set
-+# CONFIG_IDEDMA_AUTO is not set
-+# CONFIG_DMA_NONPCI is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_ATARAID is not set
-+# CONFIG_BLK_DEV_ATARAID_PDC is not set
-+# CONFIG_BLK_DEV_ATARAID_HPT is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+# CONFIG_I2O_PCI is not set
-+# CONFIG_I2O_BLOCK is not set
-+# CONFIG_I2O_LAN is not set
-+# CONFIG_I2O_SCSI is not set
-+# CONFIG_I2O_PROC is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MIPS_AU1X00_ENET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+CONFIG_PPP=m
-+CONFIG_PPP_MULTILINK=y
-+# CONFIG_PPP_FILTER is not set
-+CONFIG_PPP_ASYNC=m
-+# CONFIG_PPP_SYNC_TTY is not set
-+CONFIG_PPP_DEFLATE=m
-+# CONFIG_PPP_BSDCOMP is not set
-+CONFIG_PPPOE=m
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# PCMCIA network device support
-+#
-+# CONFIG_NET_PCMCIA is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+CONFIG_IRDA=y
-+
-+#
-+# IrDA protocols
-+#
-+CONFIG_IRLAN=y
-+# CONFIG_IRNET is not set
-+CONFIG_IRCOMM=y
-+# CONFIG_IRDA_ULTRA is not set
-+
-+#
-+# IrDA options
-+#
-+CONFIG_IRDA_CACHE_LAST_LSAP=y
-+CONFIG_IRDA_FAST_RR=y
-+# CONFIG_IRDA_DEBUG is not set
-+
-+#
-+# Infrared-port device drivers
-+#
-+
-+#
-+# SIR device drivers
-+#
-+# CONFIG_IRTTY_SIR is not set
-+# CONFIG_IRPORT_SIR is not set
-+
-+#
-+# Dongle support
-+#
-+# CONFIG_DONGLE is not set
-+
-+#
-+# FIR device drivers
-+#
-+# CONFIG_USB_IRDA is not set
-+# CONFIG_NSC_FIR is not set
-+# CONFIG_WINBOND_FIR is not set
-+# CONFIG_TOSHIBA_FIR is not set
-+CONFIG_AU1000_FIR=y
-+# CONFIG_SMC_IRCC_FIR is not set
-+# CONFIG_ALI_FIR is not set
-+# CONFIG_VLSI_FIR is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_VT_CONSOLE=y
-+# CONFIG_SERIAL is not set
-+# CONFIG_SERIAL_EXTENDED is not set
-+CONFIG_SERIAL_NONSTANDARD=y
-+# CONFIG_COMPUTONE is not set
-+# CONFIG_ROCKETPORT is not set
-+# CONFIG_CYCLADES is not set
-+# CONFIG_DIGIEPCA is not set
-+# CONFIG_DIGI is not set
-+# CONFIG_ESPSERIAL is not set
-+# CONFIG_MOXA_INTELLIO is not set
-+# CONFIG_MOXA_SMARTIO is not set
-+# CONFIG_ISI is not set
-+# CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
-+# CONFIG_N_HDLC is not set
-+# CONFIG_RISCOM8 is not set
-+# CONFIG_SPECIALIX is not set
-+# CONFIG_SX is not set
-+# CONFIG_RIO is not set
-+# CONFIG_STALDRV is not set
-+# CONFIG_SERIAL_TX3912 is not set
-+# CONFIG_SERIAL_TX3912_CONSOLE is not set
-+CONFIG_AU1X00_UART=y
-+CONFIG_AU1X00_SERIAL_CONSOLE=y
-+# CONFIG_TXX927_SERIAL is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# PCMCIA character devices
-+#
-+# CONFIG_PCMCIA_SERIAL_CS is not set
-+# CONFIG_SYNCLINK_CS is not set
-+# CONFIG_AU1X00_GPIO is not set
-+# CONFIG_TS_AU1X00_ADS7846 is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+CONFIG_AUTOFS_FS=y
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+CONFIG_FAT_FS=y
-+CONFIG_MSDOS_FS=y
-+# CONFIG_UMSDOS_FS is not set
-+CONFIG_VFAT_FS=y
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+CONFIG_TMPFS=y
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+CONFIG_ROOT_NFS=y
-+# CONFIG_NFSD is not set
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_SMB_NLS is not set
-+CONFIG_NLS=y
-+
-+#
-+# Native Language Support
-+#
-+CONFIG_NLS_DEFAULT="iso8859-1"
-+# CONFIG_NLS_CODEPAGE_437 is not set
-+# CONFIG_NLS_CODEPAGE_737 is not set
-+# CONFIG_NLS_CODEPAGE_775 is not set
-+# CONFIG_NLS_CODEPAGE_850 is not set
-+# CONFIG_NLS_CODEPAGE_852 is not set
-+# CONFIG_NLS_CODEPAGE_855 is not set
-+# CONFIG_NLS_CODEPAGE_857 is not set
-+# CONFIG_NLS_CODEPAGE_860 is not set
-+# CONFIG_NLS_CODEPAGE_861 is not set
-+# CONFIG_NLS_CODEPAGE_862 is not set
-+# CONFIG_NLS_CODEPAGE_863 is not set
-+# CONFIG_NLS_CODEPAGE_864 is not set
-+# CONFIG_NLS_CODEPAGE_865 is not set
-+# CONFIG_NLS_CODEPAGE_866 is not set
-+# CONFIG_NLS_CODEPAGE_869 is not set
-+# CONFIG_NLS_CODEPAGE_936 is not set
-+# CONFIG_NLS_CODEPAGE_950 is not set
-+# CONFIG_NLS_CODEPAGE_932 is not set
-+# CONFIG_NLS_CODEPAGE_949 is not set
-+# CONFIG_NLS_CODEPAGE_874 is not set
-+# CONFIG_NLS_ISO8859_8 is not set
-+# CONFIG_NLS_CODEPAGE_1250 is not set
-+# CONFIG_NLS_CODEPAGE_1251 is not set
-+# CONFIG_NLS_ISO8859_1 is not set
-+# CONFIG_NLS_ISO8859_2 is not set
-+# CONFIG_NLS_ISO8859_3 is not set
-+# CONFIG_NLS_ISO8859_4 is not set
-+# CONFIG_NLS_ISO8859_5 is not set
-+# CONFIG_NLS_ISO8859_6 is not set
-+# CONFIG_NLS_ISO8859_7 is not set
-+# CONFIG_NLS_ISO8859_9 is not set
-+# CONFIG_NLS_ISO8859_13 is not set
-+# CONFIG_NLS_ISO8859_14 is not set
-+# CONFIG_NLS_ISO8859_15 is not set
-+# CONFIG_NLS_KOI8_R is not set
-+# CONFIG_NLS_KOI8_U is not set
-+# CONFIG_NLS_UTF8 is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Console drivers
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+# CONFIG_MDA_CONSOLE is not set
-+
-+#
-+# Frame-buffer support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+CONFIG_SOUND=y
-+# CONFIG_SOUND_ALI5455 is not set
-+# CONFIG_SOUND_BT878 is not set
-+# CONFIG_SOUND_CMPCI is not set
-+# CONFIG_SOUND_EMU10K1 is not set
-+# CONFIG_MIDI_EMU10K1 is not set
-+# CONFIG_SOUND_FUSION is not set
-+# CONFIG_SOUND_CS4281 is not set
-+# CONFIG_SOUND_ES1370 is not set
-+# CONFIG_SOUND_ES1371 is not set
-+# CONFIG_SOUND_ESSSOLO1 is not set
-+# CONFIG_SOUND_MAESTRO is not set
-+# CONFIG_SOUND_MAESTRO3 is not set
-+# CONFIG_SOUND_FORTE is not set
-+# CONFIG_SOUND_ICH is not set
-+# CONFIG_SOUND_RME96XX is not set
-+# CONFIG_SOUND_SONICVIBES is not set
-+CONFIG_SOUND_AU1X00=y
-+# CONFIG_SOUND_TRIDENT is not set
-+# CONFIG_SOUND_MSNDCLAS is not set
-+# CONFIG_SOUND_MSNDPIN is not set
-+# CONFIG_SOUND_VIA82CXXX is not set
-+# CONFIG_MIDI_VIA82CXXX is not set
-+# CONFIG_SOUND_OSS is not set
-+# CONFIG_SOUND_TVMIXER is not set
-+
-+#
-+# USB support
-+#
-+# CONFIG_USB is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_ZLIB_INFLATE=m
-+CONFIG_ZLIB_DEFLATE=m
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-db1500 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1500
---- linux-2.4.20/arch/mips/defconfig-db1500 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-db1500 2003-02-07 17:39:40.000000000 -0600
-@@ -0,0 +1,776 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+CONFIG_MIPS_DB1500=y
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CPU_AU1X00=y
-+CONFIG_CPU_AU1500=y
-+CONFIG_NEW_IRQ=y
-+CONFIG_PCI=y
-+CONFIG_NEW_PCI=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_PC_KEYB=y
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+CONFIG_CPU_MIPS32=y
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+# CONFIG_CPU_VR41XX is not set
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+CONFIG_CPU_HAS_PREFETCH=y
-+# CONFIG_VTAG_ICACHE is not set
-+CONFIG_64BIT_PHYS_ADDR=y
-+CONFIG_CPU_ADVANCED=y
-+CONFIG_CPU_HAS_LLSC=y
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+CONFIG_CPU_HAS_WB=y
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+CONFIG_HOTPLUG=y
-+
-+#
-+# PCMCIA/CardBus support
-+#
-+CONFIG_PCMCIA=y
-+# CONFIG_CARDBUS is not set
-+# CONFIG_TCIC is not set
-+# CONFIG_I82092 is not set
-+# CONFIG_I82365 is not set
-+CONFIG_PCMCIA_AU1X00=m
-+# CONFIG_PCMCIA_PB1X00 is not set
-+CONFIG_PCMCIA_DB1X00=y
-+
-+#
-+# PCI Hotplug Support
-+#
-+# CONFIG_HOTPLUG_PCI is not set
-+# CONFIG_HOTPLUG_PCI_COMPAQ is not set
-+# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
-+# CONFIG_HOTPLUG_PCI_ACPI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+CONFIG_BLK_DEV_LOOP=y
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+# CONFIG_NETLINK_DEV is not set
-+CONFIG_NETFILTER=y
-+# CONFIG_NETFILTER_DEBUG is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+
-+#
-+# IP: Netfilter Configuration
-+#
-+# CONFIG_IP_NF_CONNTRACK is not set
-+# CONFIG_IP_NF_QUEUE is not set
-+# CONFIG_IP_NF_IPTABLES is not set
-+# CONFIG_IP_NF_ARPTABLES is not set
-+# CONFIG_IP_NF_COMPAT_IPCHAINS is not set
-+# CONFIG_IP_NF_COMPAT_IPFWADM is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+# CONFIG_I2O_PCI is not set
-+# CONFIG_I2O_BLOCK is not set
-+# CONFIG_I2O_LAN is not set
-+# CONFIG_I2O_SCSI is not set
-+# CONFIG_I2O_PROC is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+CONFIG_MIPS_AU1X00_ENET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+CONFIG_PPP=m
-+CONFIG_PPP_MULTILINK=y
-+# CONFIG_PPP_FILTER is not set
-+CONFIG_PPP_ASYNC=m
-+# CONFIG_PPP_SYNC_TTY is not set
-+CONFIG_PPP_DEFLATE=m
-+# CONFIG_PPP_BSDCOMP is not set
-+CONFIG_PPPOE=m
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+CONFIG_NET_RADIO=y
-+# CONFIG_STRIP is not set
-+# CONFIG_WAVELAN is not set
-+# CONFIG_ARLAN is not set
-+# CONFIG_AIRONET4500 is not set
-+# CONFIG_AIRONET4500_NONCS is not set
-+# CONFIG_AIRONET4500_PROC is not set
-+# CONFIG_AIRO is not set
-+CONFIG_HERMES=m
-+# CONFIG_PLX_HERMES is not set
-+# CONFIG_PCI_HERMES is not set
-+
-+#
-+# Wireless Pcmcia cards support
-+#
-+# CONFIG_PCMCIA_HERMES is not set
-+# CONFIG_AIRO_CS is not set
-+CONFIG_NET_WIRELESS=y
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# PCMCIA network device support
-+#
-+# CONFIG_NET_PCMCIA is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+CONFIG_INPUT=y
-+CONFIG_INPUT_KEYBDEV=y
-+CONFIG_INPUT_MOUSEDEV=y
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+# CONFIG_INPUT_JOYDEV is not set
-+CONFIG_INPUT_EVDEV=y
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+CONFIG_VT_CONSOLE=y
-+# CONFIG_SERIAL is not set
-+# CONFIG_SERIAL_EXTENDED is not set
-+CONFIG_SERIAL_NONSTANDARD=y
-+# CONFIG_COMPUTONE is not set
-+# CONFIG_ROCKETPORT is not set
-+# CONFIG_CYCLADES is not set
-+# CONFIG_DIGIEPCA is not set
-+# CONFIG_DIGI is not set
-+# CONFIG_ESPSERIAL is not set
-+# CONFIG_MOXA_INTELLIO is not set
-+# CONFIG_MOXA_SMARTIO is not set
-+# CONFIG_ISI is not set
-+# CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
-+# CONFIG_N_HDLC is not set
-+# CONFIG_RISCOM8 is not set
-+# CONFIG_SPECIALIX is not set
-+# CONFIG_SX is not set
-+# CONFIG_RIO is not set
-+# CONFIG_STALDRV is not set
-+# CONFIG_SERIAL_TX3912 is not set
-+# CONFIG_SERIAL_TX3912_CONSOLE is not set
-+CONFIG_AU1X00_UART=y
-+CONFIG_AU1X00_SERIAL_CONSOLE=y
-+# CONFIG_TXX927_SERIAL is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+# CONFIG_INPUT_NS558 is not set
-+# CONFIG_INPUT_LIGHTNING is not set
-+# CONFIG_INPUT_PCIGAME is not set
-+# CONFIG_INPUT_CS461X is not set
-+# CONFIG_INPUT_EMU10K1 is not set
-+# CONFIG_INPUT_SERIO is not set
-+# CONFIG_INPUT_SERPORT is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_ANALOG is not set
-+# CONFIG_INPUT_A3D is not set
-+# CONFIG_INPUT_ADI is not set
-+# CONFIG_INPUT_COBRA is not set
-+# CONFIG_INPUT_GF2K is not set
-+# CONFIG_INPUT_GRIP is not set
-+# CONFIG_INPUT_INTERACT is not set
-+# CONFIG_INPUT_TMDC is not set
-+# CONFIG_INPUT_SIDEWINDER is not set
-+# CONFIG_INPUT_IFORCE_USB is not set
-+# CONFIG_INPUT_IFORCE_232 is not set
-+# CONFIG_INPUT_WARRIOR is not set
-+# CONFIG_INPUT_MAGELLAN is not set
-+# CONFIG_INPUT_SPACEORB is not set
-+# CONFIG_INPUT_SPACEBALL is not set
-+# CONFIG_INPUT_STINGER is not set
-+# CONFIG_INPUT_DB9 is not set
-+# CONFIG_INPUT_GAMECON is not set
-+# CONFIG_INPUT_TURBOGRAFX is not set
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+CONFIG_RTC=y
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# PCMCIA character devices
-+#
-+# CONFIG_PCMCIA_SERIAL_CS is not set
-+# CONFIG_SYNCLINK_CS is not set
-+# CONFIG_AU1X00_GPIO is not set
-+# CONFIG_TS_AU1X00_ADS7846 is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+CONFIG_AUTOFS_FS=y
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+CONFIG_TMPFS=y
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+# CONFIG_NFS_V3 is not set
-+CONFIG_ROOT_NFS=y
-+# CONFIG_NFSD is not set
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+# CONFIG_PARTITION_ADVANCED is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Console drivers
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+# CONFIG_MDA_CONSOLE is not set
-+
-+#
-+# Frame-buffer support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+CONFIG_SOUND=y
-+# CONFIG_SOUND_ALI5455 is not set
-+# CONFIG_SOUND_BT878 is not set
-+# CONFIG_SOUND_CMPCI is not set
-+# CONFIG_SOUND_EMU10K1 is not set
-+# CONFIG_MIDI_EMU10K1 is not set
-+# CONFIG_SOUND_FUSION is not set
-+# CONFIG_SOUND_CS4281 is not set
-+# CONFIG_SOUND_ES1370 is not set
-+# CONFIG_SOUND_ES1371 is not set
-+# CONFIG_SOUND_ESSSOLO1 is not set
-+# CONFIG_SOUND_MAESTRO is not set
-+# CONFIG_SOUND_MAESTRO3 is not set
-+# CONFIG_SOUND_FORTE is not set
-+# CONFIG_SOUND_ICH is not set
-+# CONFIG_SOUND_RME96XX is not set
-+# CONFIG_SOUND_SONICVIBES is not set
-+CONFIG_SOUND_AU1X00=y
-+# CONFIG_SOUND_TRIDENT is not set
-+# CONFIG_SOUND_MSNDCLAS is not set
-+# CONFIG_SOUND_MSNDPIN is not set
-+# CONFIG_SOUND_VIA82CXXX is not set
-+# CONFIG_MIDI_VIA82CXXX is not set
-+# CONFIG_SOUND_OSS is not set
-+# CONFIG_SOUND_TVMIXER is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+# CONFIG_USB_DEVICEFS is not set
-+# CONFIG_USB_BANDWIDTH is not set
-+# CONFIG_USB_LONG_TIMEOUT is not set
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_EHCI_HCD is not set
-+# CONFIG_USB_UHCI is not set
-+# CONFIG_USB_UHCI_ALT is not set
-+CONFIG_USB_OHCI=y
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_AUDIO is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_BLUETOOTH is not set
-+# CONFIG_USB_MIDI is not set
-+
-+#
-+# SCSI support is needed for USB Storage
-+#
-+# CONFIG_USB_STORAGE is not set
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_DPCM is not set
-+# CONFIG_USB_STORAGE_HP8200e is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+
-+#
-+# USB Human Interface Devices (HID)
-+#
-+CONFIG_USB_HID=y
-+# CONFIG_USB_HIDINPUT is not set
-+# CONFIG_USB_HIDDEV is not set
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_DC2XX is not set
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_SCANNER is not set
-+# CONFIG_USB_MICROTEK is not set
-+# CONFIG_USB_HPUSBSCSI is not set
-+
-+#
-+# USB Multimedia devices
-+#
-+
-+#
-+# Video4Linux support is needed for USB Multimedia device support
-+#
-+
-+#
-+# USB Network adaptors
-+#
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_CDCETHER is not set
-+# CONFIG_USB_USBNET is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_USS720 is not set
-+
-+#
-+# USB Serial Converter support
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_TIGL is not set
-+# CONFIG_USB_BRLVGER is not set
-+# CONFIG_USB_LCD is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_ZLIB_INFLATE=m
-+CONFIG_ZLIB_DEFLATE=m
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ddb5476 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5476
---- linux-2.4.20/arch/mips/defconfig-ddb5476 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5476 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,7 +54,9 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-@@ -57,7 +64,6 @@
- CONFIG_ISA=y
- CONFIG_PCI=y
- CONFIG_PC_KEYB=y
--CONFIG_NEW_IRQ=y
- CONFIG_IRQ_CPU=y
- CONFIG_I8259=y
- CONFIG_HAVE_STD_PC_SERIAL_PORT=y
-@@ -113,6 +119,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -388,6 +396,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -506,6 +515,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -667,9 +677,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+CONFIG_DEBUG=y
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--CONFIG_DEBUG=y
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ddb5477 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5477
---- linux-2.4.20/arch/mips/defconfig-ddb5477 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ddb5477 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -50,14 +55,15 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_PCI=y
- CONFIG_NEW_TIME_C=y
--CONFIG_NEW_IRQ=y
- CONFIG_IRQ_CPU=y
- CONFIG_NEW_PCI=y
- CONFIG_NONCOHERENT_IO=y
-@@ -113,6 +119,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -306,6 +314,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -414,6 +423,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -563,9 +573,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+CONFIG_DEBUG=y
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--CONFIG_DEBUG=y
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-decstation linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-decstation
---- linux-2.4.20/arch/mips/defconfig-decstation 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-decstation 2003-02-07 17:39:40.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- CONFIG_DECSTATION=y
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,13 +56,16 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_BOOT_ELF32=y
- CONFIG_IRQ_CPU=y
--CONFIG_NEW_IRQ=y
-+CONFIG_L1_CACHE_SHIFT=4
- CONFIG_NONCOHERENT_IO=y
- # CONFIG_MIPS_AU1000 is not set
-
-@@ -108,6 +116,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -389,10 +399,33 @@
- # Character devices
- #
- # CONFIG_VT is not set
--CONFIG_SERIAL=y
--CONFIG_SERIAL_CONSOLE=y
-+# CONFIG_SERIAL is not set
- # CONFIG_SERIAL_EXTENDED is not set
--# CONFIG_SERIAL_NONSTANDARD is not set
-+CONFIG_SERIAL_NONSTANDARD=y
-+# CONFIG_COMPUTONE is not set
-+# CONFIG_ROCKETPORT is not set
-+# CONFIG_CYCLADES is not set
-+# CONFIG_DIGIEPCA is not set
-+# CONFIG_DIGI is not set
-+# CONFIG_ESPSERIAL is not set
-+# CONFIG_MOXA_INTELLIO is not set
-+# CONFIG_MOXA_SMARTIO is not set
-+# CONFIG_ISI is not set
-+# CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
-+# CONFIG_N_HDLC is not set
-+# CONFIG_RISCOM8 is not set
-+# CONFIG_SPECIALIX is not set
-+# CONFIG_SX is not set
-+# CONFIG_RIO is not set
-+# CONFIG_STALDRV is not set
-+# CONFIG_SERIAL_TX3912 is not set
-+# CONFIG_SERIAL_TX3912_CONSOLE is not set
-+# CONFIG_TXX927_SERIAL is not set
-+CONFIG_SERIAL_DEC=y
-+CONFIG_SERIAL_DEC_CONSOLE=y
-+CONFIG_DZ=y
-+CONFIG_ZS=y
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-
-@@ -425,6 +458,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -439,15 +473,6 @@
- # CONFIG_DRM is not set
-
- #
--# DECStation Character devices
--#
--CONFIG_SERIAL=y
--# CONFIG_DZ is not set
--CONFIG_ZS=y
--CONFIG_SERIAL_CONSOLE=y
--# CONFIG_RTC is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -573,9 +598,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-e55 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-e55
---- linux-2.4.20/arch/mips/defconfig-e55 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-e55 2003-02-24 15:17:03.000000000 -0600
-@@ -0,0 +1,614 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+CONFIG_CASIO_E55=y
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CPU_VR41XX=y
-+CONFIG_IRQ_CPU=y
-+CONFIG_NEW_TIME_C=y
-+CONFIG_VR41XX_TIME_C=y
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_ISA=y
-+CONFIG_DUMMY_KEYB=y
-+# CONFIG_SCSI is not set
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+CONFIG_CPU_VR41XX=y
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+# CONFIG_CPU_ADVANCED is not set
-+# CONFIG_CPU_HAS_LLSC is not set
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI is not set
-+CONFIG_EISA=y
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
-+# CONFIG_HOTPLUG_PCI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_NETLINK_DEV=y
-+# CONFIG_NETFILTER is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+CONFIG_IDE=y
-+
-+#
-+# IDE, ATA and ATAPI Block devices
-+#
-+CONFIG_BLK_DEV_IDE=y
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+# CONFIG_BLK_DEV_HD_IDE is not set
-+# CONFIG_BLK_DEV_HD is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_IDEDISK_STROKE is not set
-+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
-+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
-+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
-+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
-+# CONFIG_BLK_DEV_IDEDISK_WD is not set
-+# CONFIG_BLK_DEV_COMMERIAL is not set
-+# CONFIG_BLK_DEV_TIVO is not set
-+# CONFIG_BLK_DEV_IDECS is not set
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+# CONFIG_BLK_DEV_IDESCSI is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+# CONFIG_BLK_DEV_CMD640 is not set
-+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-+# CONFIG_BLK_DEV_ISAPNP is not set
-+# CONFIG_IDE_CHIPSETS is not set
-+# CONFIG_IDEDMA_AUTO is not set
-+# CONFIG_DMA_NONPCI is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_ATARAID is not set
-+# CONFIG_BLK_DEV_ATARAID_PDC is not set
-+# CONFIG_BLK_DEV_ATARAID_HPT is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_AT1700 is not set
-+# CONFIG_DEPCA is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Old CD-ROM drivers (not SCSI, not IDE)
-+#
-+# CONFIG_CD_NO_IDESCSI is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+# CONFIG_VT_CONSOLE is not set
-+CONFIG_SERIAL=y
-+CONFIG_SERIAL_CONSOLE=y
-+CONFIG_SERIAL_EXTENDED=y
-+CONFIG_SERIAL_MANY_PORTS=y
-+# CONFIG_SERIAL_SHARE_IRQ is not set
-+# CONFIG_SERIAL_DETECT_IRQ is not set
-+# CONFIG_SERIAL_MULTIPORT is not set
-+# CONFIG_HUB6 is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+CONFIG_WATCHDOG=y
-+# CONFIG_WATCHDOG_NOWAYOUT is not set
-+# CONFIG_ACQUIRE_WDT is not set
-+# CONFIG_ADVANTECH_WDT is not set
-+# CONFIG_ALIM7101_WDT is not set
-+# CONFIG_SC520_WDT is not set
-+# CONFIG_PCWATCHDOG is not set
-+# CONFIG_EUROTECH_WDT is not set
-+# CONFIG_IB700_WDT is not set
-+# CONFIG_WAFER_WDT is not set
-+# CONFIG_I810_TCO is not set
-+# CONFIG_MIXCOMWD is not set
-+# CONFIG_60XX_WDT is not set
-+# CONFIG_SC1200_WDT is not set
-+# CONFIG_SOFT_WATCHDOG is not set
-+# CONFIG_W83877F_WDT is not set
-+# CONFIG_WDT is not set
-+# CONFIG_WDTPCI is not set
-+# CONFIG_MACHZ_WDT is not set
-+# CONFIG_INDYDOG is not set
-+# CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+CONFIG_AUTOFS_FS=y
-+CONFIG_AUTOFS4_FS=y
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+# CONFIG_NFS_V3 is not set
-+# CONFIG_ROOT_NFS is not set
-+CONFIG_NFSD=y
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+CONFIG_SGI_PARTITION=y
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Console drivers
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+# CONFIG_MDA_CONSOLE is not set
-+
-+#
-+# Frame-buffer support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+# CONFIG_USB is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-eagle linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-eagle
---- linux-2.4.20/arch/mips/defconfig-eagle 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-eagle 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -44,6 +49,7 @@
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
- CONFIG_NEC_EAGLE=y
-+CONFIG_VRC4173=y
- # CONFIG_OLIVETTI_M700 is not set
- # CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
-@@ -51,13 +57,14 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_CPU_VR41XX=y
--CONFIG_NEW_IRQ=y
- CONFIG_IRQ_CPU=y
- CONFIG_NEW_TIME_C=y
- CONFIG_VR41XX_TIME_C=y
-@@ -117,6 +124,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -169,15 +178,16 @@
- # CONFIG_MTD_PB1000 is not set
- # CONFIG_MTD_PB1500 is not set
- # CONFIG_MTD_PB1100 is not set
-+# CONFIG_MTD_DB1X00 is not set
- # CONFIG_MTD_CSTM_MIPS_IXX is not set
- # CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
- # CONFIG_MTD_PCI is not set
-
- #
- # Self-contained MTD device drivers
- #
- # CONFIG_MTD_PMC551 is not set
--# CONFIG_MTD_MS02NV is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_MTDRAM is not set
- # CONFIG_MTD_BLKMTD is not set
-@@ -378,6 +388,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -511,6 +522,7 @@
- # CONFIG_MACHZ_WDT is not set
- # CONFIG_INDYDOG is not set
- # CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -653,7 +665,108 @@
- #
- # USB support
- #
--# CONFIG_USB is not set
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+CONFIG_USB_BANDWIDTH=y
-+CONFIG_USB_LONG_TIMEOUT=y
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_EHCI_HCD is not set
-+# CONFIG_USB_UHCI is not set
-+# CONFIG_USB_UHCI_ALT is not set
-+CONFIG_USB_OHCI=y
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_AUDIO is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_BLUETOOTH is not set
-+# CONFIG_USB_MIDI is not set
-+
-+#
-+# SCSI support is needed for USB Storage
-+#
-+# CONFIG_USB_STORAGE is not set
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_DPCM is not set
-+# CONFIG_USB_STORAGE_HP8200e is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+
-+#
-+# USB Human Interface Devices (HID)
-+#
-+# CONFIG_USB_HID is not set
-+
-+#
-+# Input core support is needed for USB HID input layer or HIDBP support
-+#
-+# CONFIG_USB_HIDINPUT is not set
-+# CONFIG_USB_HIDDEV is not set
-+# CONFIG_USB_KBD is not set
-+# CONFIG_USB_MOUSE is not set
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_DC2XX is not set
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_SCANNER is not set
-+# CONFIG_USB_MICROTEK is not set
-+# CONFIG_USB_HPUSBSCSI is not set
-+
-+#
-+# USB Multimedia devices
-+#
-+
-+#
-+# Video4Linux support is needed for USB Multimedia device support
-+#
-+
-+#
-+# USB Network adaptors
-+#
-+CONFIG_USB_PEGASUS=y
-+CONFIG_USB_RTL8150=y
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_CDCETHER is not set
-+# CONFIG_USB_USBNET is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_USS720 is not set
-+
-+#
-+# USB Serial Converter support
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_TIGL is not set
-+# CONFIG_USB_BRLVGER is not set
-+# CONFIG_USB_LCD is not set
-
- #
- # Bluetooth support
-@@ -664,9 +777,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ev64120 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev64120
---- linux-2.4.20/arch/mips/defconfig-ev64120 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev64120 2003-02-24 15:17:03.000000000 -0600
-@@ -21,11 +21,14 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- CONFIG_MIPS_EV64120=y
-@@ -36,6 +39,8 @@
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -55,7 +60,9 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-@@ -86,7 +93,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -118,6 +124,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -308,6 +316,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -423,6 +432,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -548,9 +558,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ev96100 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev96100
---- linux-2.4.20/arch/mips/defconfig-ev96100 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ev96100 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- CONFIG_MIPS_EV96100=y
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,18 +56,20 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_PCI=y
- CONFIG_MIPS_GT96100=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_PCI=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PCI_AUTO=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- # CONFIG_MIPS_AU1000 is not set
-
- #
-@@ -116,6 +123,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -309,6 +318,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -417,6 +427,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -542,9 +553,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-hp-lj linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-hp-lj
---- linux-2.4.20/arch/mips/defconfig-hp-lj 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-hp-lj 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -10,101 +11,192 @@
- CONFIG_EXPERIMENTAL=y
-
- #
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
--# CONFIG_ALGOR_P4032 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
--# CONFIG_DDB5074 is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+CONFIG_HP_LASERJET=y
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
--CONFIG_MIPS_MALTA=y
--# CONFIG_NINO is not set
--# CONFIG_SIBYTE_SB1250 is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
--# CONFIG_MIPS_ITE8172 is not set
--# CONFIG_MIPS_IVR is not set
--# CONFIG_MIPS_PB1000 is not set
--# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
--# CONFIG_HP_LASERJET is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--# CONFIG_MCA is not set
--# CONFIG_SBUS is not set
--CONFIG_I8259=y
--CONFIG_PCI=y
--CONFIG_HAVE_STD_PC_SERIAL_PORT=y
--CONFIG_NEW_IRQ=y
-+CONFIG_IRQ_CPU=y
- CONFIG_NEW_TIME_C=y
-+CONFIG_NEW_PCI=y
- CONFIG_NONCOHERENT_IO=y
--CONFIG_SWAP_IO_SPACE=y
--# CONFIG_ISA is not set
--# CONFIG_EISA is not set
--
--#
--# Loadable module support
--#
--# CONFIG_MODULES is not set
-+CONFIG_PCI=y
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
--# CONFIG_CPU_R5000 is not set
-+CONFIG_CPU_R5000=y
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_CPU_MIPS32=y
--# CONFIG_CPU_MIPS64 is not set
--CONFIG_CPU_HAS_PREFETCH=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
--# CONFIG_CPU_HAS_LLDSCD is not set
-+CONFIG_CPU_HAS_LLDSCD=y
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
- #
- CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_KCORE_ELF=y
--CONFIG_ELF_KERNEL=y
--# CONFIG_BINFMT_AOUT is not set
--CONFIG_BINFMT_ELF=y
--# CONFIG_BINFMT_MISC is not set
- CONFIG_NET=y
- # CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
- # CONFIG_HOTPLUG is not set
- # CONFIG_PCMCIA is not set
- # CONFIG_HOTPLUG_PCI is not set
- CONFIG_SYSVIPC=y
- # CONFIG_BSD_PROCESS_ACCT is not set
--# CONFIG_SYSCTL is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-
- #
- # Memory Technology Devices (MTD)
- #
--# CONFIG_MTD is not set
-+CONFIG_MTD=y
-+CONFIG_MTD_DEBUG=y
-+CONFIG_MTD_DEBUG_VERBOSE=3
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_CONCAT is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+CONFIG_MTD_BLOCK=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+CONFIG_MTD_CFI=y
-+CONFIG_MTD_JEDECPROBE=y
-+CONFIG_MTD_GEN_PROBE=y
-+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-+CONFIG_MTD_CFI_INTELEXT=y
-+CONFIG_MTD_CFI_AMDSTD=y
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+# CONFIG_MTD_OBSOLETE_CHIPS is not set
-+# CONFIG_MTD_AMDSTD is not set
-+# CONFIG_MTD_SHARP is not set
-+# CONFIG_MTD_JEDEC is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+CONFIG_MTD_PHYSMAP=y
-+CONFIG_MTD_PHYSMAP_START=10040000
-+CONFIG_MTD_PHYSMAP_LEN=00fc0000
-+CONFIG_MTD_PHYSMAP_BUSWIDTH=4
-+# CONFIG_MTD_PB1000 is not set
-+# CONFIG_MTD_PB1500 is not set
-+# CONFIG_MTD_PB1100 is not set
-+# CONFIG_MTD_DB1X00 is not set
-+# CONFIG_MTD_CSTM_MIPS_IXX is not set
-+# CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
-+# CONFIG_MTD_PCI is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+# CONFIG_MTD_PMC551 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLKMTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC1000 is not set
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOCPROBE is not set
-+
-+#
-+# NAND Flash Device Drivers
-+#
-+CONFIG_MTD_NAND=y
-+# CONFIG_MTD_NAND_ECC is not set
-+# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-
- #
- # Parallel port support
-@@ -112,19 +204,27 @@
- # CONFIG_PARPORT is not set
-
- #
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
- # Block devices
- #
--CONFIG_BLK_DEV_FD=y
-+# CONFIG_BLK_DEV_FD is not set
- # CONFIG_BLK_DEV_XD is not set
- # CONFIG_PARIDE is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
--CONFIG_BLK_DEV_RAM=y
--CONFIG_BLK_DEV_RAM_SIZE=4096
-+# CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -141,7 +241,8 @@
- #
- # Networking options
- #
--# CONFIG_PACKET is not set
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
- # CONFIG_NETLINK_DEV is not set
- # CONFIG_NETFILTER is not set
- # CONFIG_FILTER is not set
-@@ -150,7 +251,7 @@
- # CONFIG_IP_MULTICAST is not set
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_DHCP=y
- # CONFIG_IP_PNP_BOOTP is not set
- # CONFIG_IP_PNP_RARP is not set
- # CONFIG_NET_IPIP is not set
-@@ -168,6 +269,11 @@
- #
- # CONFIG_IPX is not set
- # CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
- # CONFIG_DECNET is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_X25 is not set
-@@ -185,6 +291,11 @@
- # CONFIG_NET_SCHED is not set
-
- #
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
- # Telephony Support
- #
- # CONFIG_PHONE is not set
-@@ -194,81 +305,94 @@
- #
- # ATA/IDE/MFM/RLL support
- #
--# CONFIG_IDE is not set
--# CONFIG_BLK_DEV_IDE_MODES is not set
--# CONFIG_BLK_DEV_HD is not set
-+CONFIG_IDE=y
-
- #
--# SCSI support
-+# IDE, ATA and ATAPI Block devices
- #
--CONFIG_SCSI=y
-+CONFIG_BLK_DEV_IDE=y
-
- #
--# SCSI support type (disk, tape, CD-ROM)
-+# Please see Documentation/ide.txt for help/info on IDE drives
- #
--CONFIG_BLK_DEV_SD=y
--CONFIG_SD_EXTRA_DEVS=40
--# CONFIG_CHR_DEV_ST is not set
--# CONFIG_CHR_DEV_OSST is not set
--# CONFIG_BLK_DEV_SR is not set
--# CONFIG_CHR_DEV_SG is not set
-+# CONFIG_BLK_DEV_HD_IDE is not set
-+# CONFIG_BLK_DEV_HD is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_IDEDISK_STROKE is not set
-+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
-+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
-+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
-+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
-+# CONFIG_BLK_DEV_IDEDISK_WD is not set
-+# CONFIG_BLK_DEV_COMMERIAL is not set
-+# CONFIG_BLK_DEV_TIVO is not set
-+# CONFIG_BLK_DEV_IDECS is not set
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+# CONFIG_BLK_DEV_IDESCSI is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-
- #
--# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+# IDE chipset support/bugfixes
- #
--# CONFIG_SCSI_DEBUG_QUEUES is not set
--# CONFIG_SCSI_MULTI_LUN is not set
--# CONFIG_SCSI_CONSTANTS is not set
--# CONFIG_SCSI_LOGGING is not set
-+CONFIG_BLK_DEV_CMD640=y
-+CONFIG_BLK_DEV_CMD640_ENHANCED=y
-+# CONFIG_BLK_DEV_ISAPNP is not set
-+# CONFIG_BLK_DEV_RZ1000 is not set
-+CONFIG_BLK_DEV_IDEPCI=y
-+# CONFIG_IDEPCI_SHARE_IRQ is not set
-+CONFIG_BLK_DEV_IDEDMA_PCI=y
-+# CONFIG_BLK_DEV_OFFBOARD is not set
-+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-+CONFIG_IDEDMA_PCI_AUTO=y
-+# CONFIG_IDEDMA_ONLYDISK is not set
-+CONFIG_BLK_DEV_IDEDMA=y
-+# CONFIG_IDEDMA_PCI_WIP is not set
-+# CONFIG_BLK_DEV_IDEDMA_TIMEOUT is not set
-+# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
-+CONFIG_BLK_DEV_ADMA=y
-+# CONFIG_BLK_DEV_AEC62XX is not set
-+# CONFIG_AEC62XX_TUNING is not set
-+# CONFIG_BLK_DEV_ALI15X3 is not set
-+# CONFIG_WDC_ALI15X3 is not set
-+# CONFIG_BLK_DEV_AMD74XX is not set
-+# CONFIG_AMD74XX_OVERRIDE is not set
-+# CONFIG_BLK_DEV_CMD64X is not set
-+# CONFIG_BLK_DEV_CMD680 is not set
-+# CONFIG_BLK_DEV_CY82C693 is not set
-+# CONFIG_BLK_DEV_CS5530 is not set
-+# CONFIG_BLK_DEV_HPT34X is not set
-+# CONFIG_HPT34X_AUTODMA is not set
-+# CONFIG_BLK_DEV_HPT366 is not set
-+# CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_PIIX_TUNING is not set
-+# CONFIG_BLK_DEV_NS87415 is not set
-+# CONFIG_BLK_DEV_OPTI621 is not set
-+# CONFIG_BLK_DEV_PDC202XX is not set
-+# CONFIG_PDC202XX_BURST is not set
-+# CONFIG_PDC202XX_FORCE is not set
-+# CONFIG_BLK_DEV_SVWKS is not set
-+# CONFIG_BLK_DEV_SIS5513 is not set
-+# CONFIG_BLK_DEV_SLC90E66 is not set
-+# CONFIG_BLK_DEV_TRM290 is not set
-+# CONFIG_BLK_DEV_VIA82CXXX is not set
-+# CONFIG_IDE_CHIPSETS is not set
-+CONFIG_IDEDMA_AUTO=y
-+# CONFIG_IDEDMA_IVB is not set
-+# CONFIG_DMA_NONPCI is not set
-+CONFIG_BLK_DEV_IDE_MODES=y
-+# CONFIG_BLK_DEV_ATARAID is not set
-+# CONFIG_BLK_DEV_ATARAID_PDC is not set
-+# CONFIG_BLK_DEV_ATARAID_HPT is not set
-
- #
--# SCSI low-level drivers
-+# SCSI support
- #
--# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
--# CONFIG_SCSI_7000FASST is not set
--# CONFIG_SCSI_ACARD is not set
--# CONFIG_SCSI_AHA152X is not set
--# CONFIG_SCSI_AHA1542 is not set
--# CONFIG_SCSI_AHA1740 is not set
--# CONFIG_SCSI_AACRAID is not set
--# CONFIG_SCSI_AIC7XXX is not set
--# CONFIG_SCSI_AIC7XXX_OLD is not set
--# CONFIG_SCSI_DPT_I2O is not set
--# CONFIG_SCSI_ADVANSYS is not set
--# CONFIG_SCSI_IN2000 is not set
--# CONFIG_SCSI_AM53C974 is not set
--# CONFIG_SCSI_MEGARAID is not set
--# CONFIG_SCSI_BUSLOGIC is not set
--# CONFIG_SCSI_CPQFCTS is not set
--# CONFIG_SCSI_DMX3191D is not set
--# CONFIG_SCSI_DTC3280 is not set
--# CONFIG_SCSI_EATA is not set
--# CONFIG_SCSI_EATA_DMA is not set
--# CONFIG_SCSI_EATA_PIO is not set
--# CONFIG_SCSI_FUTURE_DOMAIN is not set
--# CONFIG_SCSI_GDTH is not set
--# CONFIG_SCSI_GENERIC_NCR5380 is not set
--# CONFIG_SCSI_INITIO is not set
--# CONFIG_SCSI_INIA100 is not set
--# CONFIG_SCSI_NCR53C406A is not set
--# CONFIG_SCSI_NCR53C7xx is not set
--# CONFIG_SCSI_SYM53C8XX_2 is not set
--# CONFIG_SCSI_NCR53C8XX is not set
--# CONFIG_SCSI_SYM53C8XX is not set
--# CONFIG_SCSI_PAS16 is not set
--# CONFIG_SCSI_PCI2000 is not set
--# CONFIG_SCSI_PCI2220I is not set
--# CONFIG_SCSI_PSI240I is not set
--# CONFIG_SCSI_QLOGIC_FAS is not set
--# CONFIG_SCSI_QLOGIC_ISP is not set
--# CONFIG_SCSI_QLOGIC_FC is not set
--# CONFIG_SCSI_QLOGIC_1280 is not set
--# CONFIG_SCSI_SIM710 is not set
--# CONFIG_SCSI_SYM53C416 is not set
--# CONFIG_SCSI_DC390T is not set
--# CONFIG_SCSI_T128 is not set
--# CONFIG_SCSI_U14_34F is not set
--# CONFIG_SCSI_DEBUG is not set
-+# CONFIG_SCSI is not set
-
- #
- # I2O device support
-@@ -311,16 +435,18 @@
- # CONFIG_HP100 is not set
- # CONFIG_NET_ISA is not set
- CONFIG_NET_PCI=y
--CONFIG_PCNET32=y
-+# CONFIG_PCNET32 is not set
- # CONFIG_ADAPTEC_STARFIRE is not set
- # CONFIG_APRICOT is not set
- # CONFIG_CS89x0 is not set
--# CONFIG_TULIP is not set
--# CONFIG_TC35815 is not set
-+CONFIG_TULIP=y
-+# CONFIG_TULIP_MWI is not set
-+# CONFIG_TULIP_MMIO is not set
- # CONFIG_DE4X5 is not set
- # CONFIG_DGRS is not set
- # CONFIG_DM9102 is not set
- # CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
- # CONFIG_LNE390 is not set
- # CONFIG_FEALNX is not set
- # CONFIG_NATSEMI is not set
-@@ -332,11 +458,13 @@
- # CONFIG_8139TOO_PIO is not set
- # CONFIG_8139TOO_TUNE_TWISTER is not set
- # CONFIG_8139TOO_8129 is not set
--# CONFIG_8139_NEW_RX_RESET is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
-+# CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
- # CONFIG_VIA_RHINE_MMIO is not set
- # CONFIG_WINBOND_840 is not set
-@@ -348,11 +476,13 @@
- #
- # CONFIG_ACENIC is not set
- # CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
- # CONFIG_MYRI_SBUS is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
- # CONFIG_FDDI is not set
- # CONFIG_HIPPI is not set
- # CONFIG_PLIP is not set
-@@ -362,7 +492,18 @@
- #
- # Wireless LAN (non-hamradio)
- #
--# CONFIG_NET_RADIO is not set
-+CONFIG_NET_RADIO=y
-+# CONFIG_STRIP is not set
-+# CONFIG_WAVELAN is not set
-+# CONFIG_ARLAN is not set
-+# CONFIG_AIRONET4500 is not set
-+# CONFIG_AIRONET4500_NONCS is not set
-+# CONFIG_AIRONET4500_PROC is not set
-+# CONFIG_AIRO is not set
-+# CONFIG_HERMES is not set
-+# CONFIG_PLX_HERMES is not set
-+# CONFIG_PCI_HERMES is not set
-+CONFIG_NET_WIRELESS=y
-
- #
- # Token Ring devices
-@@ -393,9 +534,13 @@
- # CONFIG_ISDN is not set
-
- #
--# Old CD-ROM drivers (not SCSI, not IDE)
-+# Input core support
- #
--# CONFIG_CD_NO_IDESCSI is not set
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-
- #
- # Character devices
-@@ -405,8 +550,7 @@
- CONFIG_SERIAL_CONSOLE=y
- # CONFIG_SERIAL_EXTENDED is not set
- # CONFIG_SERIAL_NONSTANDARD is not set
--CONFIG_UNIX98_PTYS=y
--CONFIG_UNIX98_PTY_COUNT=256
-+# CONFIG_UNIX98_PTYS is not set
-
- #
- # I2C support
-@@ -437,9 +581,9 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
--# CONFIG_INTEL_RNG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
--CONFIG_RTC=y
-+# CONFIG_RTC is not set
- # CONFIG_DTLK is not set
- # CONFIG_R3964 is not set
- # CONFIG_APPLICOM is not set
-@@ -452,15 +596,10 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
--CONFIG_AUTOFS_FS=y
-+# CONFIG_AUTOFS_FS is not set
- # CONFIG_AUTOFS4_FS is not set
- # CONFIG_REISERFS_FS is not set
- # CONFIG_REISERFS_CHECK is not set
-@@ -469,6 +608,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -477,15 +618,19 @@
- # CONFIG_MSDOS_FS is not set
- # CONFIG_UMSDOS_FS is not set
- # CONFIG_VFAT_FS is not set
--CONFIG_EFS_FS=y
-+# CONFIG_EFS_FS is not set
- # CONFIG_JFFS_FS is not set
--# CONFIG_JFFS2_FS is not set
-+CONFIG_JFFS2_FS=y
-+CONFIG_JFFS2_FS_DEBUG=3
- # CONFIG_CRAMFS is not set
- # CONFIG_TMPFS is not set
--# CONFIG_RAMFS is not set
-+CONFIG_RAMFS=y
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -495,7 +640,7 @@
- # CONFIG_DEVFS_FS is not set
- # CONFIG_DEVFS_MOUNT is not set
- # CONFIG_DEVFS_DEBUG is not set
--CONFIG_DEVPTS_FS=y
-+# CONFIG_DEVPTS_FS is not set
- # CONFIG_QNX4FS_FS is not set
- # CONFIG_QNX4FS_RW is not set
- # CONFIG_ROMFS_FS is not set
-@@ -512,12 +657,14 @@
- # CONFIG_CODA_FS is not set
- # CONFIG_INTERMEZZO_FS is not set
- CONFIG_NFS_FS=y
--# CONFIG_NFS_V3 is not set
-+CONFIG_NFS_V3=y
- CONFIG_ROOT_NFS=y
- # CONFIG_NFSD is not set
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
- # CONFIG_SMB_FS is not set
- # CONFIG_NCP_FS is not set
- # CONFIG_NCPFS_PACKET_SIGNING is not set
-@@ -529,7 +676,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -540,6 +686,11 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Sound
- #
- # CONFIG_SOUND is not set
-@@ -550,119 +701,22 @@
- # CONFIG_USB is not set
-
- #
--# USB Controllers
--#
--# CONFIG_USB_UHCI is not set
--# CONFIG_USB_UHCI_ALT is not set
--# CONFIG_USB_OHCI is not set
--
--#
--# USB Device Class drivers
--#
--# CONFIG_USB_AUDIO is not set
--# CONFIG_USB_BLUETOOTH is not set
--# CONFIG_USB_STORAGE is not set
--# CONFIG_USB_STORAGE_DEBUG is not set
--# CONFIG_USB_STORAGE_DATAFAB is not set
--# CONFIG_USB_STORAGE_FREECOM is not set
--# CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
--# CONFIG_USB_STORAGE_HP8200e is not set
--# CONFIG_USB_STORAGE_SDDR09 is not set
--# CONFIG_USB_STORAGE_JUMPSHOT is not set
--# CONFIG_USB_ACM is not set
--# CONFIG_USB_PRINTER is not set
--
--#
--# USB Human Interface Devices (HID)
--#
--
--#
--# Input core support is needed for USB HID
--#
--
--#
--# USB Imaging devices
--#
--# CONFIG_USB_DC2XX is not set
--# CONFIG_USB_MDC800 is not set
--# CONFIG_USB_SCANNER is not set
--# CONFIG_USB_MICROTEK is not set
--# CONFIG_USB_HPUSBSCSI is not set
--
--#
--# USB Multimedia devices
--#
--
--#
--# Video4Linux support is needed for USB Multimedia device support
--#
--
--#
--# USB Network adaptors
--#
--# CONFIG_USB_PEGASUS is not set
--# CONFIG_USB_KAWETH is not set
--# CONFIG_USB_CATC is not set
--# CONFIG_USB_CDCETHER is not set
--# CONFIG_USB_USBNET is not set
--
--#
--# USB port drivers
--#
--# CONFIG_USB_USS720 is not set
--
--#
--# USB Serial Converter support
--#
--# CONFIG_USB_SERIAL is not set
--# CONFIG_USB_SERIAL_GENERIC is not set
--# CONFIG_USB_SERIAL_BELKIN is not set
--# CONFIG_USB_SERIAL_WHITEHEAT is not set
--# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
--# CONFIG_USB_SERIAL_EMPEG is not set
--# CONFIG_USB_SERIAL_FTDI_SIO is not set
--# CONFIG_USB_SERIAL_VISOR is not set
--# CONFIG_USB_SERIAL_IPAQ is not set
--# CONFIG_USB_SERIAL_IR is not set
--# CONFIG_USB_SERIAL_EDGEPORT is not set
--# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
--# CONFIG_USB_SERIAL_KEYSPAN is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
--# CONFIG_USB_SERIAL_MCT_U232 is not set
--# CONFIG_USB_SERIAL_KLSI is not set
--# CONFIG_USB_SERIAL_PL2303 is not set
--# CONFIG_USB_SERIAL_CYBERJACK is not set
--# CONFIG_USB_SERIAL_XIRCOM is not set
--# CONFIG_USB_SERIAL_OMNINET is not set
--
--#
--# USB Miscellaneous drivers
--#
--# CONFIG_USB_RIO500 is not set
--
--#
--# Input core support
-+# Bluetooth support
- #
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_BLUEZ is not set
-
- #
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+CONFIG_ZLIB_INFLATE=y
-+CONFIG_ZLIB_DEFLATE=y
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ip22 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ip22
---- linux-2.4.20/arch/mips/defconfig-ip22 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ip22 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,21 +56,22 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_ARC32=y
--CONFIG_ARC_CONSOLE=y
- CONFIG_ARC_MEMORY=y
-+CONFIG_ARC_PROMLIB=y
- CONFIG_BOARD_SCACHE=y
- CONFIG_BOOT_ELF32=y
--CONFIG_SWAP_IO_SPACE=y
-+# CONFIG_SWAP_IO_SPACE_W is not set
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_IRQ_CPU=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NONCOHERENT_IO=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
-@@ -91,7 +97,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -125,6 +130,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -468,6 +475,7 @@
- # CONFIG_MACHZ_WDT is not set
- CONFIG_INDYDOG=y
- # CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -614,8 +622,8 @@
- #
- # SGI devices
- #
--CONFIG_SGI_SERIAL=y
--# CONFIG_SERIAL_CONSOLE is not set
-+CONFIG_IP22_SERIAL=y
-+# CONFIG_IP22_SERIAL_CONSOLE is not set
- CONFIG_SGI_DS1286=y
- # CONFIG_SGI_NEWPORT_GFX is not set
-
-@@ -634,6 +642,8 @@
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-it8172 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-it8172
---- linux-2.4.20/arch/mips/defconfig-it8172 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-it8172 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -10,40 +11,59 @@
- CONFIG_EXPERIMENTAL=y
-
- #
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
--# CONFIG_ALGOR_P4032 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
--# CONFIG_DDB5074 is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+CONFIG_MIPS_ITE8172=y
-+# CONFIG_IT8172_REVC is not set
- # CONFIG_MIPS_ATLAS is not set
--# CONFIG_MIPS_MALTA is not set
--# CONFIG_NINO is not set
--# CONFIG_SIBYTE_SB1250 is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
--CONFIG_MIPS_ITE8172=y
--# CONFIG_IT8172_REVC is not set
--# CONFIG_MIPS_IVR is not set
--# CONFIG_MIPS_PB1000 is not set
--# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
--# CONFIG_HP_LASERJET is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--# CONFIG_MCA is not set
--# CONFIG_SBUS is not set
- CONFIG_PCI=y
- CONFIG_IT8712=y
- CONFIG_PC_KEYB=y
-@@ -51,58 +71,61 @@
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PCI_AUTO=y
- CONFIG_IT8172_CIR=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
--# CONFIG_ISA is not set
--# CONFIG_EISA is not set
--
--#
--# Loadable module support
--#
--CONFIG_MODULES=y
--# CONFIG_MODVERSIONS is not set
--CONFIG_KMOD=y
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- CONFIG_CPU_NEVADA=y
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
- CONFIG_CPU_HAS_LLDSCD=y
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
- #
- CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_KCORE_ELF=y
--CONFIG_ELF_KERNEL=y
--# CONFIG_BINFMT_AOUT is not set
--CONFIG_BINFMT_ELF=y
--# CONFIG_BINFMT_MISC is not set
- CONFIG_NET=y
- CONFIG_PCI_NAMES=y
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
- # CONFIG_HOTPLUG is not set
- # CONFIG_PCMCIA is not set
- # CONFIG_HOTPLUG_PCI is not set
- CONFIG_SYSVIPC=y
- CONFIG_BSD_PROCESS_ACCT=y
- CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-
- #
- # Memory Technology Devices (MTD)
-@@ -110,6 +133,7 @@
- CONFIG_MTD=y
- # CONFIG_MTD_DEBUG is not set
- # CONFIG_MTD_PARTITIONS is not set
-+# CONFIG_MTD_CONCAT is not set
- # CONFIG_MTD_REDBOOT_PARTS is not set
-
- #
-@@ -147,8 +171,12 @@
- CONFIG_MTD_PHYSMAP_BUSWIDTH=4
- # CONFIG_MTD_PB1000 is not set
- # CONFIG_MTD_PB1500 is not set
-+# CONFIG_MTD_PB1100 is not set
-+# CONFIG_MTD_DB1X00 is not set
- # CONFIG_MTD_CSTM_MIPS_IXX is not set
- # CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
-+# CONFIG_MTD_PCI is not set
-
- #
- # Self-contained MTD device drivers
-@@ -177,6 +205,12 @@
- # CONFIG_PARPORT is not set
-
- #
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
- # Block devices
- #
- # CONFIG_BLK_DEV_FD is not set
-@@ -184,11 +218,14 @@
- # CONFIG_PARIDE is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
- CONFIG_BLK_DEV_LOOP=y
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -233,6 +270,11 @@
- #
- # CONFIG_IPX is not set
- # CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
- # CONFIG_DECNET is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_X25 is not set
-@@ -250,6 +292,11 @@
- # CONFIG_NET_SCHED is not set
-
- #
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
- # Telephony Support
- #
- # CONFIG_PHONE is not set
-@@ -273,6 +320,7 @@
- # CONFIG_BLK_DEV_HD is not set
- CONFIG_BLK_DEV_IDEDISK=y
- # CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_IDEDISK_STROKE is not set
- # CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
- # CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
- # CONFIG_BLK_DEV_IDEDISK_IBM is not set
-@@ -287,6 +335,7 @@
- # CONFIG_BLK_DEV_IDETAPE is not set
- # CONFIG_BLK_DEV_IDEFLOPPY is not set
- # CONFIG_BLK_DEV_IDESCSI is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-
- #
- # IDE chipset support/bugfixes
-@@ -298,12 +347,15 @@
- CONFIG_BLK_DEV_IDEPCI=y
- CONFIG_IDEPCI_SHARE_IRQ=y
- CONFIG_BLK_DEV_IDEDMA_PCI=y
--CONFIG_BLK_DEV_ADMA=y
- # CONFIG_BLK_DEV_OFFBOARD is not set
-+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
- CONFIG_IDEDMA_PCI_AUTO=y
-+# CONFIG_IDEDMA_ONLYDISK is not set
- CONFIG_BLK_DEV_IDEDMA=y
- # CONFIG_IDEDMA_PCI_WIP is not set
-+# CONFIG_BLK_DEV_IDEDMA_TIMEOUT is not set
- # CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
-+CONFIG_BLK_DEV_ADMA=y
- # CONFIG_BLK_DEV_AEC62XX is not set
- # CONFIG_AEC62XX_TUNING is not set
- # CONFIG_BLK_DEV_ALI15X3 is not set
-@@ -311,13 +363,14 @@
- # CONFIG_BLK_DEV_AMD74XX is not set
- # CONFIG_AMD74XX_OVERRIDE is not set
- # CONFIG_BLK_DEV_CMD64X is not set
-+# CONFIG_BLK_DEV_CMD680 is not set
- # CONFIG_BLK_DEV_CY82C693 is not set
- # CONFIG_BLK_DEV_CS5530 is not set
- # CONFIG_BLK_DEV_HPT34X is not set
- # CONFIG_HPT34X_AUTODMA is not set
- # CONFIG_BLK_DEV_HPT366 is not set
--CONFIG_BLK_DEV_IT8172=y
--CONFIG_IT8172_TUNING=y
-+# CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_PIIX_TUNING is not set
- CONFIG_BLK_DEV_IT8172=y
- CONFIG_IT8172_TUNING=y
- # CONFIG_BLK_DEV_NS87415 is not set
-@@ -330,18 +383,7 @@
- # CONFIG_BLK_DEV_SLC90E66 is not set
- # CONFIG_BLK_DEV_TRM290 is not set
- # CONFIG_BLK_DEV_VIA82CXXX is not set
--CONFIG_IDE_CHIPSETS=y
--
--#
--# Note: most of these also require special kernel boot parameters
--#
--# CONFIG_BLK_DEV_4DRIVES is not set
--# CONFIG_BLK_DEV_ALI14XX is not set
--# CONFIG_BLK_DEV_DTC2278 is not set
--# CONFIG_BLK_DEV_HT6560B is not set
--# CONFIG_BLK_DEV_PDC4030 is not set
--# CONFIG_BLK_DEV_QD65XX is not set
--# CONFIG_BLK_DEV_UMC8672 is not set
-+# CONFIG_IDE_CHIPSETS is not set
- CONFIG_IDEDMA_AUTO=y
- # CONFIG_IDEDMA_IVB is not set
- # CONFIG_DMA_NONPCI is not set
-@@ -401,13 +443,13 @@
- # CONFIG_APRICOT is not set
- # CONFIG_CS89x0 is not set
- CONFIG_TULIP=y
--# CONFIG_TC35815 is not set
- # CONFIG_TULIP_MWI is not set
- # CONFIG_TULIP_MMIO is not set
- # CONFIG_DE4X5 is not set
- # CONFIG_DGRS is not set
- # CONFIG_DM9102 is not set
- # CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
- # CONFIG_LNE390 is not set
- # CONFIG_FEALNX is not set
- # CONFIG_NATSEMI is not set
-@@ -419,11 +461,13 @@
- # CONFIG_8139TOO_PIO is not set
- # CONFIG_8139TOO_TUNE_TWISTER is not set
- # CONFIG_8139TOO_8129 is not set
--# CONFIG_8139_NEW_RX_RESET is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
-+# CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
- # CONFIG_VIA_RHINE_MMIO is not set
- # CONFIG_WINBOND_840 is not set
-@@ -435,11 +479,13 @@
- #
- # CONFIG_ACENIC is not set
- # CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
- # CONFIG_MYRI_SBUS is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
- # CONFIG_FDDI is not set
- # CONFIG_HIPPI is not set
- # CONFIG_PLIP is not set
-@@ -480,9 +526,13 @@
- # CONFIG_ISDN is not set
-
- #
--# Old CD-ROM drivers (not SCSI, not IDE)
-+# Input core support
- #
--# CONFIG_CD_NO_IDESCSI is not set
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-
- #
- # Character devices
-@@ -528,7 +578,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
--# CONFIG_INTEL_RNG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -544,11 +594,6 @@
- # CONFIG_ITE_GPIO is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -561,6 +606,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -574,10 +621,13 @@
- # CONFIG_JFFS2_FS is not set
- # CONFIG_CRAMFS is not set
- # CONFIG_TMPFS is not set
--# CONFIG_RAMFS is not set
-+CONFIG_RAMFS=y
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -608,6 +658,7 @@
- CONFIG_ROOT_NFS=y
- # CONFIG_NFSD is not set
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
- # CONFIG_SMB_FS is not set
-@@ -621,7 +672,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -632,9 +682,15 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Sound
- #
- CONFIG_SOUND=y
-+# CONFIG_SOUND_ALI5455 is not set
- # CONFIG_SOUND_BT878 is not set
- # CONFIG_SOUND_CMPCI is not set
- # CONFIG_SOUND_EMU10K1 is not set
-@@ -646,11 +702,11 @@
- # CONFIG_SOUND_ESSSOLO1 is not set
- # CONFIG_SOUND_MAESTRO is not set
- # CONFIG_SOUND_MAESTRO3 is not set
-+# CONFIG_SOUND_FORTE is not set
- # CONFIG_SOUND_ICH is not set
- CONFIG_SOUND_IT8172=y
- # CONFIG_SOUND_RME96XX is not set
- # CONFIG_SOUND_SONICVIBES is not set
--# CONFIG_SOUND_HAL2 is not set
- CONFIG_SOUND_IT8172=y
- # CONFIG_SOUND_TRIDENT is not set
- # CONFIG_SOUND_MSNDCLAS is not set
-@@ -666,123 +722,22 @@
- # CONFIG_USB is not set
-
- #
--# USB Controllers
--#
--# CONFIG_USB_UHCI is not set
--# CONFIG_USB_UHCI_ALT is not set
--# CONFIG_USB_OHCI is not set
--
--#
--# USB Device Class drivers
--#
--# CONFIG_USB_AUDIO is not set
--# CONFIG_USB_BLUETOOTH is not set
--
--#
--# SCSI support is needed for USB Storage
--#
--# CONFIG_USB_STORAGE is not set
--# CONFIG_USB_STORAGE_DEBUG is not set
--# CONFIG_USB_STORAGE_DATAFAB is not set
--# CONFIG_USB_STORAGE_FREECOM is not set
--# CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
--# CONFIG_USB_STORAGE_HP8200e is not set
--# CONFIG_USB_STORAGE_SDDR09 is not set
--# CONFIG_USB_STORAGE_JUMPSHOT is not set
--# CONFIG_USB_ACM is not set
--# CONFIG_USB_PRINTER is not set
--
--#
--# USB Human Interface Devices (HID)
--#
--
--#
--# Input core support is needed for USB HID
--#
--
--#
--# USB Imaging devices
--#
--# CONFIG_USB_DC2XX is not set
--# CONFIG_USB_MDC800 is not set
--# CONFIG_USB_SCANNER is not set
--# CONFIG_USB_MICROTEK is not set
--# CONFIG_USB_HPUSBSCSI is not set
--
--#
--# USB Multimedia devices
--#
--
--#
--# Video4Linux support is needed for USB Multimedia device support
--#
--
--#
--# USB Network adaptors
--#
--# CONFIG_USB_PEGASUS is not set
--# CONFIG_USB_KAWETH is not set
--# CONFIG_USB_CATC is not set
--# CONFIG_USB_CDCETHER is not set
--# CONFIG_USB_USBNET is not set
--
--#
--# USB port drivers
--#
--# CONFIG_USB_USS720 is not set
--
--#
--# USB Serial Converter support
--#
--# CONFIG_USB_SERIAL is not set
--# CONFIG_USB_SERIAL_GENERIC is not set
--# CONFIG_USB_SERIAL_BELKIN is not set
--# CONFIG_USB_SERIAL_WHITEHEAT is not set
--# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
--# CONFIG_USB_SERIAL_EMPEG is not set
--# CONFIG_USB_SERIAL_FTDI_SIO is not set
--# CONFIG_USB_SERIAL_VISOR is not set
--# CONFIG_USB_SERIAL_IPAQ is not set
--# CONFIG_USB_SERIAL_IR is not set
--# CONFIG_USB_SERIAL_EDGEPORT is not set
--# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
--# CONFIG_USB_SERIAL_KEYSPAN is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
--# CONFIG_USB_SERIAL_MCT_U232 is not set
--# CONFIG_USB_SERIAL_KLSI is not set
--# CONFIG_USB_SERIAL_PL2303 is not set
--# CONFIG_USB_SERIAL_CYBERJACK is not set
--# CONFIG_USB_SERIAL_XIRCOM is not set
--# CONFIG_USB_SERIAL_OMNINET is not set
--
--#
--# USB Miscellaneous drivers
--#
--# CONFIG_USB_RIO500 is not set
--
--#
--# Input core support
-+# Bluetooth support
- #
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_BLUEZ is not set
-
- #
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ivr linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ivr
---- linux-2.4.20/arch/mips/defconfig-ivr 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ivr 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -20,31 +21,45 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- CONFIG_MIPS_IVR=y
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
- # CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
- # CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
- # CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
--# CONFIG_SIBYTE_SB1250 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-@@ -54,32 +69,33 @@
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PCI_AUTO=y
- CONFIG_IT8172_CIR=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- # CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- CONFIG_CPU_NEVADA=y
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
- CONFIG_CPU_HAS_LLDSCD=y
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
-@@ -102,6 +118,10 @@
- # CONFIG_KCORE_AOUT is not set
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-
-@@ -136,6 +156,7 @@
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -279,8 +300,8 @@
- # CONFIG_BLK_DEV_HPT34X is not set
- # CONFIG_HPT34X_AUTODMA is not set
- # CONFIG_BLK_DEV_HPT366 is not set
--CONFIG_BLK_DEV_IT8172=y
--CONFIG_IT8172_TUNING=y
-+# CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_PIIX_TUNING is not set
- CONFIG_BLK_DEV_IT8172=y
- CONFIG_IT8172_TUNING=y
- # CONFIG_BLK_DEV_NS87415 is not set
-@@ -353,13 +374,13 @@
- # CONFIG_APRICOT is not set
- # CONFIG_CS89x0 is not set
- CONFIG_TULIP=y
--# CONFIG_TC35815 is not set
- # CONFIG_TULIP_MWI is not set
- # CONFIG_TULIP_MMIO is not set
- # CONFIG_DE4X5 is not set
- # CONFIG_DGRS is not set
- # CONFIG_DM9102 is not set
- # CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
- # CONFIG_LNE390 is not set
- # CONFIG_FEALNX is not set
- # CONFIG_NATSEMI is not set
-@@ -371,11 +392,13 @@
- # CONFIG_8139TOO_PIO is not set
- # CONFIG_8139TOO_TUNE_TWISTER is not set
- # CONFIG_8139TOO_8129 is not set
--# CONFIG_8139_NEW_RX_RESET is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
-+# CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
- # CONFIG_VIA_RHINE_MMIO is not set
- # CONFIG_WINBOND_840 is not set
-@@ -387,6 +410,7 @@
- #
- # CONFIG_ACENIC is not set
- # CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
- # CONFIG_MYRI_SBUS is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
-@@ -433,6 +457,17 @@
- # CONFIG_ISDN is not set
-
- #
-+# Input core support
-+#
-+CONFIG_INPUT=y
-+CONFIG_INPUT_KEYBDEV=y
-+CONFIG_INPUT_MOUSEDEV=y
-+CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-+CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -498,6 +533,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -512,11 +548,6 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -529,6 +560,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -546,6 +579,9 @@
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -576,6 +612,7 @@
- CONFIG_ROOT_NFS=y
- # CONFIG_NFSD is not set
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
- # CONFIG_SMB_FS is not set
-@@ -589,7 +626,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -600,6 +636,11 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Console drivers
- #
- # CONFIG_VGA_CONSOLE is not set
-@@ -642,6 +683,7 @@
- # CONFIG_USB_AUDIO is not set
- # CONFIG_USB_EMI26 is not set
- # CONFIG_USB_BLUETOOTH is not set
-+# CONFIG_USB_MIDI is not set
-
- #
- # SCSI support is needed for USB Storage
-@@ -654,6 +696,7 @@
- # CONFIG_USB_STORAGE_DPCM is not set
- # CONFIG_USB_STORAGE_HP8200e is not set
- # CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
- # CONFIG_USB_STORAGE_JUMPSHOT is not set
- # CONFIG_USB_ACM is not set
- # CONFIG_USB_PRINTER is not set
-@@ -664,6 +707,7 @@
- CONFIG_USB_HID=y
- # CONFIG_USB_HIDINPUT is not set
- # CONFIG_USB_HIDDEV is not set
-+# CONFIG_USB_AIPTEK is not set
- # CONFIG_USB_WACOM is not set
-
- #
-@@ -702,39 +746,15 @@
- # USB Serial Converter support
- #
- # CONFIG_USB_SERIAL is not set
--# CONFIG_USB_SERIAL_GENERIC is not set
--# CONFIG_USB_SERIAL_BELKIN is not set
--# CONFIG_USB_SERIAL_WHITEHEAT is not set
--# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
--# CONFIG_USB_SERIAL_EMPEG is not set
--# CONFIG_USB_SERIAL_FTDI_SIO is not set
--# CONFIG_USB_SERIAL_VISOR is not set
--# CONFIG_USB_SERIAL_IPAQ is not set
--# CONFIG_USB_SERIAL_IR is not set
--# CONFIG_USB_SERIAL_EDGEPORT is not set
--# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
--# CONFIG_USB_SERIAL_KEYSPAN is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
--# CONFIG_USB_SERIAL_MCT_U232 is not set
--# CONFIG_USB_SERIAL_KLSI is not set
--# CONFIG_USB_SERIAL_PL2303 is not set
--# CONFIG_USB_SERIAL_CYBERJACK is not set
--# CONFIG_USB_SERIAL_XIRCOM is not set
--# CONFIG_USB_SERIAL_OMNINET is not set
-
- #
- # USB Miscellaneous drivers
- #
- # CONFIG_USB_RIO500 is not set
- # CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_TIGL is not set
- # CONFIG_USB_BRLVGER is not set
-+# CONFIG_USB_LCD is not set
-
- #
- # Bluetooth support
-@@ -742,22 +762,17 @@
- # CONFIG_BLUEZ is not set
-
- #
--# Input core support
--#
--CONFIG_INPUT=y
--CONFIG_INPUT_KEYBDEV=y
--CONFIG_INPUT_MOUSEDEV=y
--CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
--CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
--
--#
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-jmr3927 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-jmr3927
---- linux-2.4.20/arch/mips/defconfig-jmr3927 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-jmr3927 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -10,99 +11,122 @@
- CONFIG_EXPERIMENTAL=y
-
- #
-+# Loadable module support
-+#
-+# CONFIG_MODULES is not set
-+
-+#
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
--# CONFIG_ALGOR_P4032 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
--# CONFIG_DDB5074 is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
--# CONFIG_MIPS_MALTA is not set
--# CONFIG_NINO is not set
--# CONFIG_SIBYTE_SB1250 is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
--# CONFIG_MIPS_ITE8172 is not set
--# CONFIG_MIPS_IVR is not set
--# CONFIG_MIPS_PB1000 is not set
--# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_TANBAC_TB0226 is not set
- CONFIG_TOSHIBA_JMR3927=y
--# CONFIG_HP_LASERJET is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--# CONFIG_MCA is not set
--# CONFIG_SBUS is not set
--CONFIG_NONCOHERENT_IO=y
- CONFIG_TOSHIBA_BOARDS=y
- CONFIG_PCI=y
- CONFIG_NEW_PCI=y
- CONFIG_PCI_AUTO=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_PC_KEYB=y
--# CONFIG_ISA is not set
--# CONFIG_EISA is not set
--
--#
--# Loadable module support
--#
--# CONFIG_MODULES is not set
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- CONFIG_CPU_TX39XX=y
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_ADVANCED is not set
- # CONFIG_CPU_HAS_LLSC is not set
- # CONFIG_CPU_HAS_LLDSCD is not set
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
- #
- # CONFIG_CPU_LITTLE_ENDIAN is not set
- CONFIG_RTC_DS1742=y
--CONFIG_KCORE_ELF=y
--CONFIG_ELF_KERNEL=y
- # CONFIG_BINFMT_IRIX is not set
- # CONFIG_FORWARD_KEYBOARD is not set
--# CONFIG_BINFMT_AOUT is not set
--CONFIG_BINFMT_ELF=y
--# CONFIG_BINFMT_MISC is not set
- CONFIG_NET=y
- # CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
- # CONFIG_HOTPLUG is not set
- # CONFIG_PCMCIA is not set
- # CONFIG_HOTPLUG_PCI is not set
- CONFIG_SYSVIPC=y
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-
- #
- # Memory Technology Devices (MTD)
-@@ -115,6 +139,12 @@
- # CONFIG_PARPORT is not set
-
- #
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
- # Block devices
- #
- # CONFIG_BLK_DEV_FD is not set
-@@ -122,11 +152,14 @@
- # CONFIG_PARIDE is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -171,6 +204,11 @@
- #
- # CONFIG_IPX is not set
- # CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
- # CONFIG_DECNET is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_X25 is not set
-@@ -188,6 +226,11 @@
- # CONFIG_NET_SCHED is not set
-
- #
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
- # Telephony Support
- #
- # CONFIG_PHONE is not set
-@@ -252,11 +295,11 @@
- # CONFIG_APRICOT is not set
- # CONFIG_CS89x0 is not set
- # CONFIG_TULIP is not set
--CONFIG_TC35815=y
- # CONFIG_DE4X5 is not set
- # CONFIG_DGRS is not set
- # CONFIG_DM9102 is not set
- # CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
- # CONFIG_LNE390 is not set
- # CONFIG_FEALNX is not set
- # CONFIG_NATSEMI is not set
-@@ -268,11 +311,13 @@
- # CONFIG_8139TOO_PIO is not set
- # CONFIG_8139TOO_TUNE_TWISTER is not set
- # CONFIG_8139TOO_8129 is not set
--# CONFIG_8139_NEW_RX_RESET is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
-+CONFIG_TC35815=y
- # CONFIG_VIA_RHINE is not set
- # CONFIG_VIA_RHINE_MMIO is not set
- # CONFIG_WINBOND_840 is not set
-@@ -284,11 +329,13 @@
- #
- # CONFIG_ACENIC is not set
- # CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
- # CONFIG_MYRI_SBUS is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
- # CONFIG_FDDI is not set
- # CONFIG_HIPPI is not set
- # CONFIG_PLIP is not set
-@@ -329,9 +376,13 @@
- # CONFIG_ISDN is not set
-
- #
--# Old CD-ROM drivers (not SCSI, not IDE)
-+# Input core support
- #
--# CONFIG_CD_NO_IDESCSI is not set
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-
- #
- # Character devices
-@@ -350,6 +401,7 @@
- # CONFIG_MOXA_INTELLIO is not set
- # CONFIG_MOXA_SMARTIO is not set
- # CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
- # CONFIG_N_HDLC is not set
- # CONFIG_RISCOM8 is not set
- # CONFIG_SPECIALIX is not set
-@@ -358,7 +410,6 @@
- # CONFIG_STALDRV is not set
- # CONFIG_SERIAL_TX3912 is not set
- # CONFIG_SERIAL_TX3912_CONSOLE is not set
--# CONFIG_AU1000_UART is not set
- CONFIG_TXX927_SERIAL=y
- CONFIG_TXX927_SERIAL_CONSOLE=y
- # CONFIG_UNIX98_PTYS is not set
-@@ -392,7 +443,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
--# CONFIG_INTEL_RNG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -407,11 +458,6 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -424,6 +470,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -437,10 +485,13 @@
- # CONFIG_JFFS2_FS is not set
- # CONFIG_CRAMFS is not set
- # CONFIG_TMPFS is not set
--# CONFIG_RAMFS is not set
-+CONFIG_RAMFS=y
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -471,6 +522,7 @@
- CONFIG_ROOT_NFS=y
- # CONFIG_NFSD is not set
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
- # CONFIG_SMB_FS is not set
-@@ -484,7 +536,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -495,6 +546,11 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Console drivers
- #
- # CONFIG_VGA_CONSOLE is not set
-@@ -508,15 +564,18 @@
- # CONFIG_FB_RIVA is not set
- # CONFIG_FB_CLGEN is not set
- # CONFIG_FB_PM2 is not set
-+# CONFIG_FB_PM3 is not set
- # CONFIG_FB_CYBER2000 is not set
- # CONFIG_FB_MATROX is not set
- # CONFIG_FB_ATY is not set
- # CONFIG_FB_RADEON is not set
- # CONFIG_FB_ATY128 is not set
- # CONFIG_FB_SIS is not set
-+# CONFIG_FB_NEOMAGIC is not set
- # CONFIG_FB_3DFX is not set
- # CONFIG_FB_VOODOO1 is not set
- # CONFIG_FB_TRIDENT is not set
-+# CONFIG_FB_E1356 is not set
- # CONFIG_FB_VIRTUAL is not set
- CONFIG_FBCON_ADVANCED=y
- CONFIG_FBCON_MFB=y
-@@ -551,121 +610,22 @@
- # CONFIG_USB is not set
-
- #
--# USB Controllers
--#
--# CONFIG_USB_UHCI is not set
--# CONFIG_USB_UHCI_ALT is not set
--# CONFIG_USB_OHCI is not set
--
--#
--# USB Device Class drivers
--#
--# CONFIG_USB_AUDIO is not set
--# CONFIG_USB_BLUETOOTH is not set
--
--#
--# SCSI support is needed for USB Storage
--#
--# CONFIG_USB_STORAGE is not set
--# CONFIG_USB_STORAGE_DEBUG is not set
--# CONFIG_USB_STORAGE_DATAFAB is not set
--# CONFIG_USB_STORAGE_FREECOM is not set
--# CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
--# CONFIG_USB_STORAGE_HP8200e is not set
--# CONFIG_USB_STORAGE_SDDR09 is not set
--# CONFIG_USB_STORAGE_JUMPSHOT is not set
--# CONFIG_USB_ACM is not set
--# CONFIG_USB_PRINTER is not set
--
--#
--# USB Human Interface Devices (HID)
--#
--
--#
--# Input core support is needed for USB HID
--#
--
--#
--# USB Imaging devices
--#
--# CONFIG_USB_DC2XX is not set
--# CONFIG_USB_MDC800 is not set
--# CONFIG_USB_SCANNER is not set
--# CONFIG_USB_MICROTEK is not set
--# CONFIG_USB_HPUSBSCSI is not set
--
--#
--# USB Multimedia devices
--#
--
--#
--# Video4Linux support is needed for USB Multimedia device support
--#
--
--#
--# USB Network adaptors
--#
--# CONFIG_USB_PEGASUS is not set
--# CONFIG_USB_KAWETH is not set
--# CONFIG_USB_CATC is not set
--# CONFIG_USB_CDCETHER is not set
--# CONFIG_USB_USBNET is not set
--
--#
--# USB port drivers
--#
--# CONFIG_USB_USS720 is not set
--
--#
--# USB Serial Converter support
--#
--# CONFIG_USB_SERIAL is not set
--# CONFIG_USB_SERIAL_GENERIC is not set
--# CONFIG_USB_SERIAL_BELKIN is not set
--# CONFIG_USB_SERIAL_WHITEHEAT is not set
--# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
--# CONFIG_USB_SERIAL_EMPEG is not set
--# CONFIG_USB_SERIAL_FTDI_SIO is not set
--# CONFIG_USB_SERIAL_VISOR is not set
--# CONFIG_USB_SERIAL_IPAQ is not set
--# CONFIG_USB_SERIAL_IR is not set
--# CONFIG_USB_SERIAL_EDGEPORT is not set
--# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
--# CONFIG_USB_SERIAL_KEYSPAN is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
--# CONFIG_USB_SERIAL_MCT_U232 is not set
--# CONFIG_USB_SERIAL_KLSI is not set
--# CONFIG_USB_SERIAL_PL2303 is not set
--# CONFIG_USB_SERIAL_CYBERJACK is not set
--# CONFIG_USB_SERIAL_XIRCOM is not set
--# CONFIG_USB_SERIAL_OMNINET is not set
--
--#
--# USB Miscellaneous drivers
--#
--# CONFIG_USB_RIO500 is not set
--
--#
--# Input core support
-+# Bluetooth support
- #
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_BLUEZ is not set
-
- #
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-lasat linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-lasat
---- linux-2.4.20/arch/mips/defconfig-lasat 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-lasat 2003-02-24 15:17:03.000000000 -0600
-@@ -0,0 +1,719 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+CONFIG_LASAT=y
-+CONFIG_PICVUE=y
-+CONFIG_PICVUE_PROC=y
-+CONFIG_DS1603=y
-+CONFIG_LASAT_SYSCTL=y
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_BOARD_SCACHE=y
-+CONFIG_R5000_CPU_SCACHE=y
-+CONFIG_PCI=y
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_NEW_TIME_C=y
-+CONFIG_NEW_IRQ=y
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+# CONFIG_CPU_VR41XX is not set
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+CONFIG_CPU_R5000=y
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+# CONFIG_64BIT_PHYS_ADDR is not set
-+# CONFIG_CPU_ADVANCED is not set
-+CONFIG_CPU_HAS_LLSC=y
-+CONFIG_CPU_HAS_LLDSCD=y
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
-+# CONFIG_HOTPLUG_PCI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+CONFIG_MTD=y
-+# CONFIG_MTD_DEBUG is not set
-+CONFIG_MTD_PARTITIONS=y
-+# CONFIG_MTD_CONCAT is not set
-+# CONFIG_MTD_REDBOOT_PARTS is not set
-+
-+#
-+# User Modules And Translation Layers
-+#
-+CONFIG_MTD_CHAR=y
-+# CONFIG_MTD_BLOCK is not set
-+CONFIG_MTD_BLOCK_RO=y
-+# CONFIG_FTL is not set
-+# CONFIG_NFTL is not set
-+
-+#
-+# RAM/ROM/Flash chip drivers
-+#
-+CONFIG_MTD_CFI=y
-+# CONFIG_MTD_JEDECPROBE is not set
-+CONFIG_MTD_GEN_PROBE=y
-+# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-+# CONFIG_MTD_CFI_INTELEXT is not set
-+CONFIG_MTD_CFI_AMDSTD=y
-+# CONFIG_MTD_RAM is not set
-+# CONFIG_MTD_ROM is not set
-+# CONFIG_MTD_ABSENT is not set
-+# CONFIG_MTD_OBSOLETE_CHIPS is not set
-+# CONFIG_MTD_AMDSTD is not set
-+# CONFIG_MTD_SHARP is not set
-+# CONFIG_MTD_JEDEC is not set
-+
-+#
-+# Mapping drivers for chip access
-+#
-+# CONFIG_MTD_PHYSMAP is not set
-+# CONFIG_MTD_PB1000 is not set
-+# CONFIG_MTD_PB1500 is not set
-+# CONFIG_MTD_PB1100 is not set
-+# CONFIG_MTD_DB1X00 is not set
-+# CONFIG_MTD_CSTM_MIPS_IXX is not set
-+# CONFIG_MTD_OCELOT is not set
-+CONFIG_MTD_LASAT=y
-+# CONFIG_MTD_PCI is not set
-+
-+#
-+# Self-contained MTD device drivers
-+#
-+# CONFIG_MTD_PMC551 is not set
-+# CONFIG_MTD_SLRAM is not set
-+# CONFIG_MTD_MTDRAM is not set
-+# CONFIG_MTD_BLKMTD is not set
-+
-+#
-+# Disk-On-Chip Device Drivers
-+#
-+# CONFIG_MTD_DOC1000 is not set
-+# CONFIG_MTD_DOC2000 is not set
-+# CONFIG_MTD_DOC2001 is not set
-+# CONFIG_MTD_DOCPROBE is not set
-+
-+#
-+# NAND Flash Device Drivers
-+#
-+# CONFIG_MTD_NAND is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+# CONFIG_PACKET is not set
-+# CONFIG_NETLINK_DEV is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+CONFIG_IDE=y
-+
-+#
-+# IDE, ATA and ATAPI Block devices
-+#
-+CONFIG_BLK_DEV_IDE=y
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+# CONFIG_BLK_DEV_HD_IDE is not set
-+# CONFIG_BLK_DEV_HD is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_IDEDISK_STROKE is not set
-+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
-+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
-+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
-+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
-+# CONFIG_BLK_DEV_IDEDISK_WD is not set
-+# CONFIG_BLK_DEV_COMMERIAL is not set
-+# CONFIG_BLK_DEV_TIVO is not set
-+# CONFIG_BLK_DEV_IDECS is not set
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+# CONFIG_BLK_DEV_IDESCSI is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+# CONFIG_BLK_DEV_CMD640 is not set
-+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-+# CONFIG_BLK_DEV_ISAPNP is not set
-+# CONFIG_BLK_DEV_RZ1000 is not set
-+CONFIG_BLK_DEV_IDEPCI=y
-+# CONFIG_IDEPCI_SHARE_IRQ is not set
-+CONFIG_BLK_DEV_IDEDMA_PCI=y
-+# CONFIG_BLK_DEV_OFFBOARD is not set
-+# CONFIG_BLK_DEV_IDEDMA_FORCED is not set
-+CONFIG_IDEDMA_PCI_AUTO=y
-+# CONFIG_IDEDMA_ONLYDISK is not set
-+CONFIG_BLK_DEV_IDEDMA=y
-+# CONFIG_IDEDMA_PCI_WIP is not set
-+# CONFIG_BLK_DEV_IDEDMA_TIMEOUT is not set
-+# CONFIG_IDEDMA_NEW_DRIVE_LISTINGS is not set
-+CONFIG_BLK_DEV_ADMA=y
-+# CONFIG_BLK_DEV_AEC62XX is not set
-+# CONFIG_AEC62XX_TUNING is not set
-+# CONFIG_BLK_DEV_ALI15X3 is not set
-+# CONFIG_WDC_ALI15X3 is not set
-+# CONFIG_BLK_DEV_AMD74XX is not set
-+# CONFIG_AMD74XX_OVERRIDE is not set
-+CONFIG_BLK_DEV_CMD64X=y
-+# CONFIG_BLK_DEV_CMD680 is not set
-+# CONFIG_BLK_DEV_CY82C693 is not set
-+# CONFIG_BLK_DEV_CS5530 is not set
-+# CONFIG_BLK_DEV_HPT34X is not set
-+# CONFIG_HPT34X_AUTODMA is not set
-+# CONFIG_BLK_DEV_HPT366 is not set
-+# CONFIG_BLK_DEV_PIIX is not set
-+# CONFIG_PIIX_TUNING is not set
-+# CONFIG_BLK_DEV_NS87415 is not set
-+# CONFIG_BLK_DEV_OPTI621 is not set
-+# CONFIG_BLK_DEV_PDC202XX is not set
-+# CONFIG_PDC202XX_BURST is not set
-+# CONFIG_PDC202XX_FORCE is not set
-+# CONFIG_BLK_DEV_SVWKS is not set
-+# CONFIG_BLK_DEV_SIS5513 is not set
-+# CONFIG_BLK_DEV_SLC90E66 is not set
-+# CONFIG_BLK_DEV_TRM290 is not set
-+# CONFIG_BLK_DEV_VIA82CXXX is not set
-+# CONFIG_IDE_CHIPSETS is not set
-+CONFIG_IDEDMA_AUTO=y
-+# CONFIG_IDEDMA_IVB is not set
-+# CONFIG_DMA_NONPCI is not set
-+CONFIG_BLK_DEV_IDE_MODES=y
-+# CONFIG_BLK_DEV_ATARAID is not set
-+# CONFIG_BLK_DEV_ATARAID_PDC is not set
-+# CONFIG_BLK_DEV_ATARAID_HPT is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+# CONFIG_I2O_PCI is not set
-+# CONFIG_I2O_BLOCK is not set
-+# CONFIG_I2O_LAN is not set
-+# CONFIG_I2O_SCSI is not set
-+# CONFIG_I2O_PROC is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+CONFIG_NET_PCI=y
-+CONFIG_PCNET32=y
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_APRICOT is not set
-+# CONFIG_CS89x0 is not set
-+# CONFIG_TULIP is not set
-+# CONFIG_DE4X5 is not set
-+# CONFIG_DGRS is not set
-+# CONFIG_DM9102 is not set
-+# CONFIG_EEPRO100 is not set
-+# CONFIG_E100 is not set
-+# CONFIG_LNE390 is not set
-+# CONFIG_FEALNX is not set
-+# CONFIG_NATSEMI is not set
-+# CONFIG_NE2K_PCI is not set
-+# CONFIG_NE3210 is not set
-+# CONFIG_ES3210 is not set
-+# CONFIG_8139CP is not set
-+# CONFIG_8139TOO is not set
-+# CONFIG_8139TOO_PIO is not set
-+# CONFIG_8139TOO_TUNE_TWISTER is not set
-+# CONFIG_8139TOO_8129 is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
-+# CONFIG_SIS900 is not set
-+# CONFIG_EPIC100 is not set
-+# CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
-+# CONFIG_TLAN is not set
-+# CONFIG_TC35815 is not set
-+# CONFIG_VIA_RHINE is not set
-+# CONFIG_VIA_RHINE_MMIO is not set
-+# CONFIG_WINBOND_840 is not set
-+# CONFIG_LAN_SAA9730 is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+# CONFIG_VT is not set
-+CONFIG_SERIAL=y
-+CONFIG_SERIAL_CONSOLE=y
-+# CONFIG_SERIAL_EXTENDED is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_JBD=y
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+CONFIG_DEVFS_FS=y
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+CONFIG_NFS_V3=y
-+# CONFIG_ROOT_NFS is not set
-+# CONFIG_NFSD is not set
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+CONFIG_SGI_PARTITION=y
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+# CONFIG_USB is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+CONFIG_MAGIC_SYSRQ=y
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-malta linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-malta
---- linux-2.4.20/arch/mips/defconfig-malta 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-malta 2003-02-24 15:17:03.000000000 -0600
-@@ -13,23 +13,30 @@
- #
- # Loadable module support
- #
--# CONFIG_MODULES is not set
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-
- #
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,7 +56,9 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-@@ -58,10 +67,10 @@
- CONFIG_HAVE_STD_PC_SERIAL_PORT=y
- CONFIG_I8259=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_PC_KEYB=y
- CONFIG_PCI=y
- # CONFIG_MIPS_AU1000 is not set
-@@ -116,6 +125,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -178,8 +189,8 @@
- # CONFIG_IP_MULTICAST is not set
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--# CONFIG_IP_PNP_BOOTP is not set
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
- # CONFIG_IP_PNP_RARP is not set
- # CONFIG_NET_IPIP is not set
- # CONFIG_NET_IPGRE is not set
-@@ -374,6 +385,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -482,6 +494,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -556,13 +569,14 @@
- # CONFIG_CODA_FS is not set
- # CONFIG_INTERMEZZO_FS is not set
- CONFIG_NFS_FS=y
--# CONFIG_NFS_V3 is not set
-+CONFIG_NFS_V3=y
- CONFIG_ROOT_NFS=y
--# CONFIG_NFSD is not set
--# CONFIG_NFSD_V3 is not set
-+CONFIG_NFSD=y
-+CONFIG_NFSD_V3=y
- # CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
- # CONFIG_SMB_FS is not set
- # CONFIG_NCP_FS is not set
- # CONFIG_NCPFS_PACKET_SIGNING is not set
-@@ -607,9 +621,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-mpc30x linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-mpc30x
---- linux-2.4.20/arch/mips/defconfig-mpc30x 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-mpc30x 2003-02-24 15:17:03.000000000 -0600
-@@ -0,0 +1,661 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+CONFIG_VICTOR_MPC30X=y
-+CONFIG_VRC4173=y
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CPU_VR41XX=y
-+CONFIG_IRQ_CPU=y
-+CONFIG_NEW_TIME_C=y
-+CONFIG_VR41XX_TIME_C=y
-+CONFIG_NONCOHERENT_IO=y
-+# CONFIG_ISA is not set
-+CONFIG_PCI=y
-+CONFIG_NEW_PCI=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_DUMMY_KEYB=y
-+# CONFIG_SCSI is not set
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+CONFIG_CPU_VR41XX=y
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+# CONFIG_CPU_ADVANCED is not set
-+# CONFIG_CPU_HAS_LLSC is not set
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
-+# CONFIG_HOTPLUG_PCI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_NETLINK_DEV=y
-+# CONFIG_NETFILTER is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+# CONFIG_I2O_PCI is not set
-+# CONFIG_I2O_BLOCK is not set
-+# CONFIG_I2O_LAN is not set
-+# CONFIG_I2O_SCSI is not set
-+# CONFIG_I2O_PROC is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+# CONFIG_VT_CONSOLE is not set
-+CONFIG_SERIAL=y
-+CONFIG_SERIAL_CONSOLE=y
-+# CONFIG_SERIAL_EXTENDED is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+CONFIG_AUTOFS_FS=y
-+CONFIG_AUTOFS4_FS=y
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+# CONFIG_NFS_V3 is not set
-+CONFIG_ROOT_NFS=y
-+# CONFIG_NFSD is not set
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+CONFIG_SGI_PARTITION=y
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Console drivers
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+# CONFIG_MDA_CONSOLE is not set
-+
-+#
-+# Frame-buffer support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+CONFIG_USB_BANDWIDTH=y
-+CONFIG_USB_LONG_TIMEOUT=y
-+
-+#
-+# USB Host Controller Drivers
-+#
-+# CONFIG_USB_EHCI_HCD is not set
-+# CONFIG_USB_UHCI is not set
-+# CONFIG_USB_UHCI_ALT is not set
-+CONFIG_USB_OHCI=y
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_AUDIO is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_BLUETOOTH is not set
-+# CONFIG_USB_MIDI is not set
-+
-+#
-+# SCSI support is needed for USB Storage
-+#
-+# CONFIG_USB_STORAGE is not set
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_DPCM is not set
-+# CONFIG_USB_STORAGE_HP8200e is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+
-+#
-+# USB Human Interface Devices (HID)
-+#
-+# CONFIG_USB_HID is not set
-+
-+#
-+# Input core support is needed for USB HID input layer or HIDBP support
-+#
-+# CONFIG_USB_HIDINPUT is not set
-+# CONFIG_USB_HIDDEV is not set
-+# CONFIG_USB_KBD is not set
-+# CONFIG_USB_MOUSE is not set
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_DC2XX is not set
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_SCANNER is not set
-+# CONFIG_USB_MICROTEK is not set
-+# CONFIG_USB_HPUSBSCSI is not set
-+
-+#
-+# USB Multimedia devices
-+#
-+
-+#
-+# Video4Linux support is needed for USB Multimedia device support
-+#
-+
-+#
-+# USB Network adaptors
-+#
-+CONFIG_USB_PEGASUS=y
-+CONFIG_USB_RTL8150=y
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_CDCETHER is not set
-+# CONFIG_USB_USBNET is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_USS720 is not set
-+
-+#
-+# USB Serial Converter support
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_TIGL is not set
-+# CONFIG_USB_BRLVGER is not set
-+# CONFIG_USB_LCD is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-nino linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-nino
---- linux-2.4.20/arch/mips/defconfig-nino 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-nino 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -10,95 +11,118 @@
- CONFIG_EXPERIMENTAL=y
-
- #
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
--# CONFIG_ALGOR_P4032 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
--# CONFIG_DDB5074 is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
--# CONFIG_MIPS_MALTA is not set
--CONFIG_NINO=y
--# CONFIG_NINO_4MB is not set
--CONFIG_NINO_8MB=y
--# CONFIG_NINO_16MB is not set
--# CONFIG_SIBYTE_SB1250 is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
-+CONFIG_NINO=y
-+# CONFIG_NINO_4MB is not set
-+CONFIG_NINO_8MB=y
-+# CONFIG_NINO_16MB is not set
- # CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
--# CONFIG_MIPS_ITE8172 is not set
--# CONFIG_MIPS_IVR is not set
--# CONFIG_MIPS_PB1000 is not set
--# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
--# CONFIG_HP_LASERJET is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--# CONFIG_MCA is not set
--# CONFIG_SBUS is not set
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
--# CONFIG_ISA is not set
--# CONFIG_EISA is not set
--
--#
--# Loadable module support
--#
--CONFIG_MODULES=y
--# CONFIG_MODVERSIONS is not set
--CONFIG_KMOD=y
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- CONFIG_CPU_R3000=y
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_ADVANCED is not set
- # CONFIG_CPU_HAS_LLSC is not set
- # CONFIG_CPU_HAS_LLDSCD is not set
- # CONFIG_CPU_HAS_WB is not set
-+# CONFIG_CPU_HAS_SYNC is not set
-
- #
- # General setup
- #
- CONFIG_CPU_LITTLE_ENDIAN=y
--CONFIG_KCORE_ELF=y
--CONFIG_ELF_KERNEL=y
--# CONFIG_BINFMT_AOUT is not set
--CONFIG_BINFMT_ELF=y
--# CONFIG_BINFMT_MISC is not set
- CONFIG_NET=y
-+# CONFIG_PCI is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
- # CONFIG_HOTPLUG is not set
- # CONFIG_PCMCIA is not set
- # CONFIG_HOTPLUG_PCI is not set
- CONFIG_SYSVIPC=y
- # CONFIG_BSD_PROCESS_ACCT is not set
--# CONFIG_SYSCTL is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-
- #
- # Memory Technology Devices (MTD)
-@@ -111,6 +135,12 @@
- # CONFIG_PARPORT is not set
-
- #
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
- # Block devices
- #
- # CONFIG_BLK_DEV_FD is not set
-@@ -118,12 +148,15 @@
- # CONFIG_PARIDE is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- CONFIG_BLK_DEV_RAM=y
- CONFIG_BLK_DEV_RAM_SIZE=512
- CONFIG_BLK_DEV_INITRD=y
-+# CONFIG_BLK_STATS is not set
-
- #
- # MIPS initrd options
-@@ -170,6 +203,11 @@
- #
- # CONFIG_IPX is not set
- # CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
- # CONFIG_DECNET is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_X25 is not set
-@@ -187,6 +225,11 @@
- # CONFIG_NET_SCHED is not set
-
- #
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
- # Telephony Support
- #
- # CONFIG_PHONE is not set
-@@ -206,15 +249,6 @@
- # CONFIG_SCSI is not set
-
- #
--# I2O device support
--#
--# CONFIG_I2O is not set
--# CONFIG_I2O_BLOCK is not set
--# CONFIG_I2O_LAN is not set
--# CONFIG_I2O_SCSI is not set
--# CONFIG_I2O_PROC is not set
--
--#
- # Network device support
- #
- # CONFIG_NETDEVICES is not set
-@@ -235,9 +269,13 @@
- # CONFIG_ISDN is not set
-
- #
--# Old CD-ROM drivers (not SCSI, not IDE)
-+# Input core support
- #
--# CONFIG_CD_NO_IDESCSI is not set
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-
- #
- # Character devices
-@@ -257,6 +295,7 @@
- # CONFIG_MOXA_SMARTIO is not set
- # CONFIG_ISI is not set
- # CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
- # CONFIG_N_HDLC is not set
- # CONFIG_RISCOM8 is not set
- # CONFIG_SPECIALIX is not set
-@@ -265,7 +304,6 @@
- # CONFIG_STALDRV is not set
- CONFIG_SERIAL_TX3912=y
- CONFIG_SERIAL_TX3912_CONSOLE=y
--# CONFIG_AU1000_UART is not set
- # CONFIG_TXX927_SERIAL is not set
- # CONFIG_UNIX98_PTYS is not set
-
-@@ -298,7 +336,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
--# CONFIG_INTEL_RNG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -313,11 +351,6 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -330,6 +363,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -343,10 +378,13 @@
- # CONFIG_JFFS2_FS is not set
- # CONFIG_CRAMFS is not set
- # CONFIG_TMPFS is not set
--# CONFIG_RAMFS is not set
-+CONFIG_RAMFS=y
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -377,6 +415,7 @@
- # CONFIG_ROOT_NFS is not set
- # CONFIG_NFSD is not set
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- # CONFIG_SUNRPC is not set
- # CONFIG_LOCKD is not set
- # CONFIG_SMB_FS is not set
-@@ -390,7 +429,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -401,6 +439,11 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Console drivers
- #
- # CONFIG_VGA_CONSOLE is not set
-@@ -412,14 +455,6 @@
- CONFIG_FB=y
- CONFIG_DUMMY_CONSOLE=y
- # CONFIG_FB_CYBER2000 is not set
--# CONFIG_FB_MATROX is not set
--# CONFIG_FB_ATY is not set
--# CONFIG_FB_RADEON is not set
--# CONFIG_FB_ATY128 is not set
--# CONFIG_FB_SIS is not set
--# CONFIG_FB_3DFX is not set
--# CONFIG_FB_VOODOO1 is not set
--# CONFIG_FB_TRIDENT is not set
- CONFIG_FB_TX3912=y
- # CONFIG_FB_VIRTUAL is not set
- CONFIG_FBCON_ADVANCED=y
-@@ -455,121 +490,22 @@
- # CONFIG_USB is not set
-
- #
--# USB Controllers
--#
--# CONFIG_USB_UHCI is not set
--# CONFIG_USB_UHCI_ALT is not set
--# CONFIG_USB_OHCI is not set
--
--#
--# USB Device Class drivers
--#
--# CONFIG_USB_AUDIO is not set
--# CONFIG_USB_BLUETOOTH is not set
--
--#
--# SCSI support is needed for USB Storage
--#
--# CONFIG_USB_STORAGE is not set
--# CONFIG_USB_STORAGE_DEBUG is not set
--# CONFIG_USB_STORAGE_DATAFAB is not set
--# CONFIG_USB_STORAGE_FREECOM is not set
--# CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
--# CONFIG_USB_STORAGE_HP8200e is not set
--# CONFIG_USB_STORAGE_SDDR09 is not set
--# CONFIG_USB_STORAGE_JUMPSHOT is not set
--# CONFIG_USB_ACM is not set
--# CONFIG_USB_PRINTER is not set
--
--#
--# USB Human Interface Devices (HID)
--#
--
--#
--# Input core support is needed for USB HID
--#
--
--#
--# USB Imaging devices
--#
--# CONFIG_USB_DC2XX is not set
--# CONFIG_USB_MDC800 is not set
--# CONFIG_USB_SCANNER is not set
--# CONFIG_USB_MICROTEK is not set
--# CONFIG_USB_HPUSBSCSI is not set
--
--#
--# USB Multimedia devices
--#
--
--#
--# Video4Linux support is needed for USB Multimedia device support
--#
--
--#
--# USB Network adaptors
--#
--# CONFIG_USB_PEGASUS is not set
--# CONFIG_USB_KAWETH is not set
--# CONFIG_USB_CATC is not set
--# CONFIG_USB_CDCETHER is not set
--# CONFIG_USB_USBNET is not set
--
--#
--# USB port drivers
--#
--# CONFIG_USB_USS720 is not set
--
--#
--# USB Serial Converter support
--#
--# CONFIG_USB_SERIAL is not set
--# CONFIG_USB_SERIAL_GENERIC is not set
--# CONFIG_USB_SERIAL_BELKIN is not set
--# CONFIG_USB_SERIAL_WHITEHEAT is not set
--# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
--# CONFIG_USB_SERIAL_EMPEG is not set
--# CONFIG_USB_SERIAL_FTDI_SIO is not set
--# CONFIG_USB_SERIAL_VISOR is not set
--# CONFIG_USB_SERIAL_IPAQ is not set
--# CONFIG_USB_SERIAL_IR is not set
--# CONFIG_USB_SERIAL_EDGEPORT is not set
--# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
--# CONFIG_USB_SERIAL_KEYSPAN is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
--# CONFIG_USB_SERIAL_MCT_U232 is not set
--# CONFIG_USB_SERIAL_KLSI is not set
--# CONFIG_USB_SERIAL_PL2303 is not set
--# CONFIG_USB_SERIAL_CYBERJACK is not set
--# CONFIG_USB_SERIAL_XIRCOM is not set
--# CONFIG_USB_SERIAL_OMNINET is not set
--
--#
--# USB Miscellaneous drivers
--#
--# CONFIG_USB_RIO500 is not set
--
--#
--# Input core support
-+# Bluetooth support
- #
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_BLUEZ is not set
-
- #
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-ocelot linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ocelot
---- linux-2.4.20/arch/mips/defconfig-ocelot 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-ocelot 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -10,97 +11,120 @@
- CONFIG_EXPERIMENTAL=y
-
- #
-+# Loadable module support
-+#
-+# CONFIG_MODULES is not set
-+
-+#
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
--# CONFIG_ALGOR_P4032 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
--# CONFIG_DDB5074 is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
--# CONFIG_MIPS_MALTA is not set
--# CONFIG_NINO is not set
--# CONFIG_SIBYTE_SB1250 is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- CONFIG_MOMENCO_OCELOT=y
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
--# CONFIG_MIPS_ITE8172 is not set
--# CONFIG_MIPS_IVR is not set
--# CONFIG_MIPS_PB1000 is not set
--# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
--# CONFIG_HP_LASERJET is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--# CONFIG_MCA is not set
--# CONFIG_SBUS is not set
- CONFIG_PCI=y
- CONFIG_SYSCLK_100=y
--CONFIG_SWAP_IO_SPACE=y
--CONFIG_NEW_IRQ=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_OLD_TIME_C=y
--# CONFIG_ISA is not set
--# CONFIG_EISA is not set
--
--#
--# Loadable module support
--#
--# CONFIG_MODULES is not set
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--CONFIG_CPU_RM7000=y
-+# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+CONFIG_CPU_RM7000=y
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- CONFIG_CPU_HAS_PREFETCH=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
- CONFIG_CPU_HAS_LLDSCD=y
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
- #
- # CONFIG_CPU_LITTLE_ENDIAN is not set
--CONFIG_KCORE_ELF=y
--CONFIG_ELF_KERNEL=y
- # CONFIG_BINFMT_IRIX is not set
- # CONFIG_FORWARD_KEYBOARD is not set
--# CONFIG_BINFMT_AOUT is not set
--CONFIG_BINFMT_ELF=y
--# CONFIG_BINFMT_MISC is not set
- CONFIG_NET=y
- CONFIG_PCI_NAMES=y
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
- # CONFIG_HOTPLUG is not set
- # CONFIG_PCMCIA is not set
- # CONFIG_HOTPLUG_PCI is not set
- CONFIG_SYSVIPC=y
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-
- #
- # Memory Technology Devices (MTD)
-@@ -113,6 +137,12 @@
- # CONFIG_PARPORT is not set
-
- #
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
- # Block devices
- #
- # CONFIG_BLK_DEV_FD is not set
-@@ -120,11 +150,14 @@
- # CONFIG_PARIDE is not set
- # CONFIG_BLK_CPQ_DA is not set
- # CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
- # CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
- # CONFIG_BLK_DEV_LOOP is not set
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -168,6 +201,11 @@
- #
- # CONFIG_IPX is not set
- # CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
- # CONFIG_DECNET is not set
- # CONFIG_BRIDGE is not set
- # CONFIG_X25 is not set
-@@ -185,6 +223,11 @@
- # CONFIG_NET_SCHED is not set
-
- #
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
- # Telephony Support
- #
- # CONFIG_PHONE is not set
-@@ -249,11 +292,11 @@
- # CONFIG_APRICOT is not set
- # CONFIG_CS89x0 is not set
- # CONFIG_TULIP is not set
--# CONFIG_TC35815 is not set
- # CONFIG_DE4X5 is not set
- # CONFIG_DGRS is not set
- # CONFIG_DM9102 is not set
- CONFIG_EEPRO100=y
-+# CONFIG_E100 is not set
- # CONFIG_LNE390 is not set
- # CONFIG_FEALNX is not set
- # CONFIG_NATSEMI is not set
-@@ -265,11 +308,13 @@
- # CONFIG_8139TOO_PIO is not set
- # CONFIG_8139TOO_TUNE_TWISTER is not set
- # CONFIG_8139TOO_8129 is not set
--# CONFIG_8139_NEW_RX_RESET is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
-+# CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
- # CONFIG_VIA_RHINE_MMIO is not set
- # CONFIG_WINBOND_840 is not set
-@@ -281,11 +326,13 @@
- #
- # CONFIG_ACENIC is not set
- # CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
- # CONFIG_MYRI_SBUS is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
- # CONFIG_YELLOWFIN is not set
- # CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
- # CONFIG_FDDI is not set
- # CONFIG_HIPPI is not set
- # CONFIG_PLIP is not set
-@@ -326,9 +373,13 @@
- # CONFIG_ISDN is not set
-
- #
--# Old CD-ROM drivers (not SCSI, not IDE)
-+# Input core support
- #
--# CONFIG_CD_NO_IDESCSI is not set
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-
- #
- # Character devices
-@@ -370,7 +421,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
--# CONFIG_INTEL_RNG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -385,11 +436,6 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -402,6 +448,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -415,10 +463,13 @@
- # CONFIG_JFFS2_FS is not set
- # CONFIG_CRAMFS is not set
- # CONFIG_TMPFS is not set
--# CONFIG_RAMFS is not set
-+CONFIG_RAMFS=y
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -449,6 +500,7 @@
- CONFIG_ROOT_NFS=y
- CONFIG_NFSD=y
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
- # CONFIG_SMB_FS is not set
-@@ -462,7 +514,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -473,6 +524,11 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Sound
- #
- # CONFIG_SOUND is not set
-@@ -483,123 +539,22 @@
- # CONFIG_USB is not set
-
- #
--# USB Controllers
--#
--# CONFIG_USB_UHCI is not set
--# CONFIG_USB_UHCI_ALT is not set
--# CONFIG_USB_OHCI is not set
--
--#
--# USB Device Class drivers
--#
--# CONFIG_USB_AUDIO is not set
--# CONFIG_USB_BLUETOOTH is not set
--
--#
--# SCSI support is needed for USB Storage
--#
--# CONFIG_USB_STORAGE is not set
--# CONFIG_USB_STORAGE_DEBUG is not set
--# CONFIG_USB_STORAGE_DATAFAB is not set
--# CONFIG_USB_STORAGE_FREECOM is not set
--# CONFIG_USB_STORAGE_ISD200 is not set
--# CONFIG_USB_STORAGE_DPCM is not set
--# CONFIG_USB_STORAGE_HP8200e is not set
--# CONFIG_USB_STORAGE_SDDR09 is not set
--# CONFIG_USB_STORAGE_JUMPSHOT is not set
--# CONFIG_USB_ACM is not set
--# CONFIG_USB_PRINTER is not set
--
--#
--# USB Human Interface Devices (HID)
--#
--
--#
--# Input core support is needed for USB HID
--#
--
--#
--# USB Imaging devices
--#
--# CONFIG_USB_DC2XX is not set
--# CONFIG_USB_MDC800 is not set
--# CONFIG_USB_SCANNER is not set
--# CONFIG_USB_MICROTEK is not set
--# CONFIG_USB_HPUSBSCSI is not set
--
--#
--# USB Multimedia devices
--#
--
--#
--# Video4Linux support is needed for USB Multimedia device support
--#
--
--#
--# USB Network adaptors
--#
--# CONFIG_USB_PEGASUS is not set
--# CONFIG_USB_KAWETH is not set
--# CONFIG_USB_CATC is not set
--# CONFIG_USB_CDCETHER is not set
--# CONFIG_USB_USBNET is not set
--
--#
--# USB port drivers
--#
--# CONFIG_USB_USS720 is not set
--
--#
--# USB Serial Converter support
--#
--# CONFIG_USB_SERIAL is not set
--# CONFIG_USB_SERIAL_GENERIC is not set
--# CONFIG_USB_SERIAL_BELKIN is not set
--# CONFIG_USB_SERIAL_WHITEHEAT is not set
--# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set
--# CONFIG_USB_SERIAL_EMPEG is not set
--# CONFIG_USB_SERIAL_FTDI_SIO is not set
--# CONFIG_USB_SERIAL_VISOR is not set
--# CONFIG_USB_SERIAL_IPAQ is not set
--# CONFIG_USB_SERIAL_IR is not set
--# CONFIG_USB_SERIAL_EDGEPORT is not set
--# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set
--# CONFIG_USB_SERIAL_KEYSPAN is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
--# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
--# CONFIG_USB_SERIAL_MCT_U232 is not set
--# CONFIG_USB_SERIAL_KLSI is not set
--# CONFIG_USB_SERIAL_PL2303 is not set
--# CONFIG_USB_SERIAL_CYBERJACK is not set
--# CONFIG_USB_SERIAL_XIRCOM is not set
--# CONFIG_USB_SERIAL_OMNINET is not set
--
--#
--# USB Miscellaneous drivers
--#
--# CONFIG_USB_RIO500 is not set
--
--#
--# Input core support
-+# Bluetooth support
- #
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
-+# CONFIG_BLUEZ is not set
-
- #
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-osprey linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-osprey
---- linux-2.4.20/arch/mips/defconfig-osprey 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-osprey 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -20,38 +21,49 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
- # CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
- # CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- CONFIG_NEC_OSPREY=y
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
- # CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
--# CONFIG_SIBYTE_SB1250 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_VR4181=y
--CONFIG_SERIAL=y
--CONFIG_SERIAL_MANY_PORTS=y
--CONFIG_NEW_IRQ=y
- CONFIG_IRQ_CPU=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
-@@ -62,25 +74,27 @@
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- CONFIG_CPU_VR41XX=y
- # CONFIG_CPU_R4300 is not set
- # CONFIG_CPU_R4X00 is not set
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_ADVANCED is not set
- # CONFIG_CPU_HAS_LLSC is not set
- # CONFIG_CPU_HAS_LLDSCD is not set
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
-@@ -103,6 +117,10 @@
- # CONFIG_KCORE_AOUT is not set
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-
-@@ -137,6 +155,7 @@
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -215,6 +234,13 @@
- # CONFIG_PHONE_IXJ_PCMCIA is not set
-
- #
-+# ATA/IDE/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
- # SCSI support
- #
- # CONFIG_SCSI is not set
-@@ -256,6 +282,7 @@
- #
- # CONFIG_ACENIC is not set
- # CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
- # CONFIG_MYRI_SBUS is not set
- # CONFIG_NS83820 is not set
- # CONFIG_HAMACHI is not set
-@@ -302,13 +329,27 @@
- # CONFIG_ISDN is not set
-
- #
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
- # CONFIG_VT_CONSOLE is not set
- CONFIG_SERIAL=y
- CONFIG_SERIAL_CONSOLE=y
--# CONFIG_SERIAL_EXTENDED is not set
-+CONFIG_SERIAL_EXTENDED=y
-+CONFIG_SERIAL_MANY_PORTS=y
-+# CONFIG_SERIAL_SHARE_IRQ is not set
-+# CONFIG_SERIAL_DETECT_IRQ is not set
-+# CONFIG_SERIAL_MULTIPORT is not set
-+# CONFIG_HUB6 is not set
- # CONFIG_SERIAL_NONSTANDARD is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-@@ -342,6 +383,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -356,11 +398,6 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -373,6 +410,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -390,6 +429,9 @@
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -420,6 +462,7 @@
- CONFIG_ROOT_NFS=y
- CONFIG_NFSD=y
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
- # CONFIG_SMB_FS is not set
-@@ -433,7 +476,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -444,6 +486,11 @@
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Console drivers
- #
- # CONFIG_VGA_CONSOLE is not set
-@@ -470,20 +517,17 @@
- # CONFIG_BLUEZ is not set
-
- #
--# Input core support
--#
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
--
--#
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-pb1000 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1000
---- linux-2.4.20/arch/mips/defconfig-pb1000 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1000 2003-02-24 15:17:03.000000000 -0600
-@@ -21,18 +21,23 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- CONFIG_MIPS_PB1000=y
- CONFIG_PCI_AUTO=y
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -52,19 +57,23 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--CONFIG_MIPS_AU1000=y
--CONFIG_NEW_IRQ=y
-+CONFIG_CPU_AU1X00=y
-+CONFIG_CPU_AU1000=y
- CONFIG_PCI=y
- CONFIG_NEW_PCI=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
--CONFIG_SWAP_IO_SPACE=y
--CONFIG_AU1000_USB_DEVICE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
-+CONFIG_AU1X00_USB_DEVICE=y
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
-@@ -115,8 +124,9 @@
- # CONFIG_TCIC is not set
- # CONFIG_I82092 is not set
- # CONFIG_I82365 is not set
--CONFIG_PCMCIA_AU1000=m
-+CONFIG_PCMCIA_AU1X00=m
- CONFIG_PCMCIA_PB1X00=y
-+# CONFIG_PCMCIA_DB1X00 is not set
-
- #
- # PCI Hotplug Support
-@@ -133,6 +143,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -178,15 +190,16 @@
- CONFIG_MTD_PB1000=y
- # CONFIG_MTD_PB1500 is not set
- # CONFIG_MTD_PB1100 is not set
-+# CONFIG_MTD_DB1X00 is not set
- # CONFIG_MTD_CSTM_MIPS_IXX is not set
- # CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
- # CONFIG_MTD_PCI is not set
-
- #
- # Self-contained MTD device drivers
- #
- # CONFIG_MTD_PMC551 is not set
--# CONFIG_MTD_MS02NV is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_MTDRAM is not set
- # CONFIG_MTD_BLKMTD is not set
-@@ -392,7 +405,7 @@
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
--CONFIG_MIPS_AU1000_ENET=y
-+CONFIG_MIPS_AU1X00_ENET=y
- # CONFIG_SUNLANCE is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNBMAC is not set
-@@ -552,10 +565,8 @@
- # CONFIG_STALDRV is not set
- # CONFIG_SERIAL_TX3912 is not set
- # CONFIG_SERIAL_TX3912_CONSOLE is not set
--CONFIG_AU1000_UART=y
--CONFIG_AU1000_SERIAL_CONSOLE=y
--# CONFIG_AU1000_USB_TTY is not set
--# CONFIG_AU1000_USB_RAW is not set
-+CONFIG_AU1X00_UART=y
-+CONFIG_AU1X00_SERIAL_CONSOLE=y
- # CONFIG_TXX927_SERIAL is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-@@ -589,6 +600,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -607,8 +619,8 @@
- #
- # CONFIG_PCMCIA_SERIAL_CS is not set
- # CONFIG_SYNCLINK_CS is not set
--CONFIG_AU1000_GPIO=y
--# CONFIG_TS_AU1000_ADS7846 is not set
-+# CONFIG_AU1X00_GPIO is not set
-+# CONFIG_TS_AU1X00_ADS7846 is not set
-
- #
- # File systems
-@@ -776,7 +788,7 @@
- # CONFIG_SOUND_ICH is not set
- # CONFIG_SOUND_RME96XX is not set
- # CONFIG_SOUND_SONICVIBES is not set
--CONFIG_SOUND_AU1000=y
-+CONFIG_SOUND_AU1X00=y
- # CONFIG_SOUND_TRIDENT is not set
- # CONFIG_SOUND_MSNDCLAS is not set
- # CONFIG_SOUND_MSNDPIN is not set
-@@ -799,9 +811,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-pb1100 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1100
---- linux-2.4.20/arch/mips/defconfig-pb1100 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1100 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- CONFIG_MIPS_PB1100=y
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,20 +56,24 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--CONFIG_MIPS_AU1000=y
--CONFIG_NEW_IRQ=y
-+CONFIG_CPU_AU1X00=y
-+CONFIG_CPU_AU1100=y
- CONFIG_PCI=y
- # CONFIG_PCI_AUTO is not set
- CONFIG_NEW_PCI=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
--CONFIG_SWAP_IO_SPACE=y
--CONFIG_AU1000_USB_DEVICE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
-+CONFIG_AU1X00_USB_DEVICE=y
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
-@@ -105,26 +114,9 @@
- # CONFIG_TC is not set
- # CONFIG_MCA is not set
- # CONFIG_SBUS is not set
--CONFIG_HOTPLUG=y
--
--#
--# PCMCIA/CardBus support
--#
--CONFIG_PCMCIA=m
--# CONFIG_CARDBUS is not set
--# CONFIG_TCIC is not set
--# CONFIG_I82092 is not set
--# CONFIG_I82365 is not set
--CONFIG_PCMCIA_AU1000=m
--CONFIG_PCMCIA_PB1X00=y
--
--#
--# PCI Hotplug Support
--#
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
- # CONFIG_HOTPLUG_PCI is not set
--# CONFIG_HOTPLUG_PCI_COMPAQ is not set
--# CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM is not set
--# CONFIG_HOTPLUG_PCI_ACPI is not set
- CONFIG_SYSVIPC=y
- # CONFIG_BSD_PROCESS_ACCT is not set
- CONFIG_SYSCTL=y
-@@ -133,6 +125,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -177,16 +171,19 @@
- # CONFIG_MTD_PHYSMAP is not set
- # CONFIG_MTD_PB1000 is not set
- # CONFIG_MTD_PB1500 is not set
--# CONFIG_MTD_PB1100 is not set
-+CONFIG_MTD_PB1100=y
-+CONFIG_MTD_PB1500_BOOT=y
-+CONFIG_MTD_PB1500_USER=y
-+# CONFIG_MTD_DB1X00 is not set
- # CONFIG_MTD_CSTM_MIPS_IXX is not set
- # CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
- # CONFIG_MTD_PCI is not set
-
- #
- # Self-contained MTD device drivers
- #
- # CONFIG_MTD_PMC551 is not set
--# CONFIG_MTD_MS02NV is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_MTDRAM is not set
- # CONFIG_MTD_BLKMTD is not set
-@@ -252,7 +249,7 @@
- # CONFIG_NETLINK_DEV is not set
- CONFIG_NETFILTER=y
- # CONFIG_NETFILTER_DEBUG is not set
--# CONFIG_FILTER is not set
-+CONFIG_FILTER=y
- CONFIG_UNIX=y
- CONFIG_INET=y
- CONFIG_IP_MULTICAST=y
-@@ -347,7 +344,7 @@
- # CONFIG_BLK_DEV_IDEDISK_WD is not set
- # CONFIG_BLK_DEV_COMMERIAL is not set
- # CONFIG_BLK_DEV_TIVO is not set
--CONFIG_BLK_DEV_IDECS=m
-+# CONFIG_BLK_DEV_IDECS is not set
- # CONFIG_BLK_DEV_IDECD is not set
- # CONFIG_BLK_DEV_IDETAPE is not set
- # CONFIG_BLK_DEV_IDEFLOPPY is not set
-@@ -404,7 +401,7 @@
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
--CONFIG_MIPS_AU1000_ENET=y
-+CONFIG_MIPS_AU1X00_ENET=y
- # CONFIG_SUNLANCE is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNBMAC is not set
-@@ -463,22 +460,6 @@
- # CONFIG_WAN is not set
-
- #
--# PCMCIA network device support
--#
--CONFIG_NET_PCMCIA=y
--CONFIG_PCMCIA_3C589=m
--# CONFIG_PCMCIA_3C574 is not set
--# CONFIG_PCMCIA_FMVJ18X is not set
--# CONFIG_PCMCIA_PCNET is not set
--# CONFIG_PCMCIA_AXNET is not set
--# CONFIG_PCMCIA_NMCLAN is not set
--# CONFIG_PCMCIA_SMC91C92 is not set
--# CONFIG_PCMCIA_XIRC2PS is not set
--# CONFIG_ARCNET_COM20020_CS is not set
--# CONFIG_PCMCIA_IBMTR is not set
--# CONFIG_NET_PCMCIA_RADIO is not set
--
--#
- # Amateur Radio support
- #
- # CONFIG_HAMRADIO is not set
-@@ -571,10 +552,8 @@
- # CONFIG_STALDRV is not set
- # CONFIG_SERIAL_TX3912 is not set
- # CONFIG_SERIAL_TX3912_CONSOLE is not set
--CONFIG_AU1000_UART=y
--CONFIG_AU1000_SERIAL_CONSOLE=y
--# CONFIG_AU1000_USB_TTY is not set
--# CONFIG_AU1000_USB_RAW is not set
-+CONFIG_AU1X00_UART=y
-+CONFIG_AU1X00_SERIAL_CONSOLE=y
- # CONFIG_TXX927_SERIAL is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-@@ -608,6 +587,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -620,14 +600,8 @@
- # CONFIG_FTAPE is not set
- # CONFIG_AGP is not set
- # CONFIG_DRM is not set
--
--#
--# PCMCIA character devices
--#
--# CONFIG_PCMCIA_SERIAL_CS is not set
--# CONFIG_SYNCLINK_CS is not set
--# CONFIG_AU1000_GPIO is not set
--# CONFIG_TS_AU1000_ADS7846 is not set
-+# CONFIG_AU1X00_GPIO is not set
-+# CONFIG_TS_AU1X00_ADS7846 is not set
-
- #
- # File systems
-@@ -794,7 +768,7 @@
- # CONFIG_FB_VOODOO1 is not set
- # CONFIG_FB_TRIDENT is not set
- # CONFIG_FB_E1356 is not set
--# CONFIG_FB_AU1100 is not set
-+CONFIG_FB_AU1100=y
- # CONFIG_FB_VIRTUAL is not set
- CONFIG_FBCON_ADVANCED=y
- # CONFIG_FBCON_MFB is not set
-@@ -838,7 +812,7 @@
- # CONFIG_SOUND_ICH is not set
- # CONFIG_SOUND_RME96XX is not set
- # CONFIG_SOUND_SONICVIBES is not set
--CONFIG_SOUND_AU1000=y
-+CONFIG_SOUND_AU1X00=y
- # CONFIG_SOUND_TRIDENT is not set
- # CONFIG_SOUND_MSNDCLAS is not set
- # CONFIG_SOUND_MSNDPIN is not set
-@@ -861,9 +835,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-pb1500 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1500
---- linux-2.4.20/arch/mips/defconfig-pb1500 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-pb1500 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- CONFIG_MIPS_PB1500=y
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,19 +56,22 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--CONFIG_MIPS_AU1000=y
--CONFIG_NEW_IRQ=y
-+CONFIG_CPU_AU1X00=y
-+CONFIG_CPU_AU1500=y
- CONFIG_PCI=y
- CONFIG_NEW_PCI=y
- CONFIG_PCI_AUTO=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
--CONFIG_AU1000_USB_DEVICE=y
-+CONFIG_AU1X00_USB_DEVICE=y
-+# CONFIG_MIPS_AU1000 is not set
-
- #
- # CPU selection
-@@ -86,7 +94,7 @@
- # CONFIG_CPU_SB1 is not set
- CONFIG_CPU_HAS_PREFETCH=y
- # CONFIG_VTAG_ICACHE is not set
--# CONFIG_64BIT_PHYS_ADDR is not set
-+CONFIG_64BIT_PHYS_ADDR=y
- CONFIG_CPU_ADVANCED=y
- CONFIG_CPU_HAS_LLSC=y
- # CONFIG_CPU_HAS_LLDSCD is not set
-@@ -114,7 +122,9 @@
- # CONFIG_TCIC is not set
- # CONFIG_I82092 is not set
- # CONFIG_I82365 is not set
--# CONFIG_PCMCIA_AU1000 is not set
-+CONFIG_PCMCIA_AU1X00=m
-+CONFIG_PCMCIA_PB1X00=y
-+# CONFIG_PCMCIA_DB1X00 is not set
-
- #
- # PCI Hotplug Support
-@@ -131,6 +141,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -178,15 +190,16 @@
- # CONFIG_MTD_PB1100 is not set
- CONFIG_MTD_PB1500_BOOT=y
- # CONFIG_MTD_PB1500_USER is not set
-+# CONFIG_MTD_DB1X00 is not set
- # CONFIG_MTD_CSTM_MIPS_IXX is not set
- # CONFIG_MTD_OCELOT is not set
-+# CONFIG_MTD_LASAT is not set
- # CONFIG_MTD_PCI is not set
-
- #
- # Self-contained MTD device drivers
- #
- # CONFIG_MTD_PMC551 is not set
--# CONFIG_MTD_MS02NV is not set
- # CONFIG_MTD_SLRAM is not set
- # CONFIG_MTD_MTDRAM is not set
- # CONFIG_MTD_BLKMTD is not set
-@@ -441,7 +454,7 @@
- # Ethernet (10 or 100Mbit)
- #
- CONFIG_NET_ETHERNET=y
--CONFIG_MIPS_AU1000_ENET=y
-+CONFIG_MIPS_AU1X00_ENET=y
- # CONFIG_SUNLANCE is not set
- # CONFIG_HAPPYMEAL is not set
- # CONFIG_SUNBMAC is not set
-@@ -479,6 +492,7 @@
- # CONFIG_SIS900 is not set
- # CONFIG_EPIC100 is not set
- # CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
- # CONFIG_TLAN is not set
- # CONFIG_TC35815 is not set
- # CONFIG_VIA_RHINE is not set
-@@ -599,10 +613,8 @@
- # CONFIG_STALDRV is not set
- # CONFIG_SERIAL_TX3912 is not set
- # CONFIG_SERIAL_TX3912_CONSOLE is not set
--CONFIG_AU1000_UART=y
--CONFIG_AU1000_SERIAL_CONSOLE=y
--# CONFIG_AU1000_USB_TTY is not set
--# CONFIG_AU1000_USB_RAW is not set
-+CONFIG_AU1X00_UART=y
-+CONFIG_AU1X00_SERIAL_CONSOLE=y
- # CONFIG_TXX927_SERIAL is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-@@ -658,6 +670,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -676,8 +689,8 @@
- #
- # CONFIG_PCMCIA_SERIAL_CS is not set
- # CONFIG_SYNCLINK_CS is not set
--# CONFIG_AU1000_GPIO is not set
--# CONFIG_TS_AU1000_ADS7846 is not set
-+# CONFIG_AU1X00_GPIO is not set
-+# CONFIG_TS_AU1X00_ADS7846 is not set
-
- #
- # File systems
-@@ -843,7 +856,9 @@
- # CONFIG_FB_3DFX is not set
- # CONFIG_FB_VOODOO1 is not set
- # CONFIG_FB_TRIDENT is not set
--# CONFIG_FB_E1356 is not set
-+CONFIG_FB_E1356=y
-+CONFIG_PB1500_CRT=y
-+# CONFIG_PB1500_TFT is not set
- # CONFIG_FB_VIRTUAL is not set
- CONFIG_FBCON_ADVANCED=y
- # CONFIG_FBCON_MFB is not set
-@@ -887,7 +902,7 @@
- # CONFIG_SOUND_ICH is not set
- # CONFIG_SOUND_RME96XX is not set
- # CONFIG_SOUND_SONICVIBES is not set
--CONFIG_SOUND_AU1000=y
-+CONFIG_SOUND_AU1X00=y
- # CONFIG_SOUND_TRIDENT is not set
- # CONFIG_SOUND_MSNDCLAS is not set
- # CONFIG_SOUND_MSNDPIN is not set
-@@ -945,7 +960,7 @@
- # USB Human Interface Devices (HID)
- #
- CONFIG_USB_HID=y
--# CONFIG_USB_HIDINPUT is not set
-+CONFIG_USB_HIDINPUT=y
- # CONFIG_USB_HIDDEV is not set
- # CONFIG_USB_AIPTEK is not set
- # CONFIG_USB_WACOM is not set
-@@ -1005,9 +1020,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-rm200 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-rm200
---- linux-2.4.20/arch/mips/defconfig-rm200 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-rm200 2003-02-24 15:17:03.000000000 -0600
-@@ -3,6 +3,7 @@
- #
- CONFIG_MIPS=y
- CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-
- #
- # Code maturity level options
-@@ -20,38 +21,53 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
- # CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
- # CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
- # CONFIG_DDB5074 is not set
- # CONFIG_DDB5476 is not set
- # CONFIG_DDB5477 is not set
- # CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
- # CONFIG_OLIVETTI_M700 is not set
- # CONFIG_NINO is not set
- # CONFIG_SGI_IP22 is not set
--# CONFIG_SIBYTE_SB1250 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
- CONFIG_SNI_RM200_PCI=y
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_ARC32=y
-+CONFIG_ARC_MEMORY=y
-+CONFIG_ARC_PROMLIB=y
- CONFIG_I8259=y
- CONFIG_ISA=y
--CONFIG_NEW_IRQ=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_OLD_TIME_C=y
- CONFIG_PC_KEYB=y
-@@ -61,26 +77,28 @@
- #
- # CPU selection
- #
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
- # CONFIG_CPU_R3000 is not set
- # CONFIG_CPU_TX39XX is not set
--# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_VR41XX is not set
- # CONFIG_CPU_R4300 is not set
- CONFIG_CPU_R4X00=y
- # CONFIG_CPU_TX49XX is not set
- # CONFIG_CPU_R5000 is not set
- # CONFIG_CPU_R5432 is not set
--# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_R6000 is not set
- # CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
- # CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--# CONFIG_CPU_MIPS32 is not set
--# CONFIG_CPU_MIPS64 is not set
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
- CONFIG_CPU_HAS_LLDSCD=y
- # CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-
- #
- # General setup
-@@ -103,6 +121,10 @@
- # CONFIG_KCORE_AOUT is not set
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-
-@@ -137,6 +159,7 @@
- # CONFIG_BLK_DEV_NBD is not set
- # CONFIG_BLK_DEV_RAM is not set
- # CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -259,6 +282,15 @@
- # CONFIG_CD_NO_IDESCSI is not set
-
- #
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
- # Character devices
- #
- CONFIG_VT=y
-@@ -298,6 +330,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -312,11 +345,6 @@
- # CONFIG_DRM is not set
-
- #
--# Multimedia devices
--#
--# CONFIG_VIDEO_DEV is not set
--
--#
- # File systems
- #
- # CONFIG_QUOTA is not set
-@@ -329,6 +357,8 @@
- # CONFIG_ADFS_FS_RW is not set
- # CONFIG_AFFS_FS is not set
- # CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
- # CONFIG_EXT3_FS is not set
- # CONFIG_JBD is not set
-@@ -346,6 +376,9 @@
- # CONFIG_ISO9660_FS is not set
- # CONFIG_JOLIET is not set
- # CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
- # CONFIG_MINIX_FS is not set
- # CONFIG_VXFS_FS is not set
- # CONFIG_NTFS_FS is not set
-@@ -376,6 +409,7 @@
- # CONFIG_ROOT_NFS is not set
- # CONFIG_NFSD is not set
- # CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
- # CONFIG_SUNRPC is not set
- # CONFIG_LOCKD is not set
- # CONFIG_SMB_FS is not set
-@@ -389,7 +423,6 @@
- # CONFIG_NCPFS_NLS is not set
- # CONFIG_NCPFS_EXTRAS is not set
- # CONFIG_ZISOFS_FS is not set
--# CONFIG_ZLIB_FS_INFLATE is not set
-
- #
- # Partition Types
-@@ -409,10 +442,16 @@
- CONFIG_SGI_PARTITION=y
- # CONFIG_ULTRIX_PARTITION is not set
- # CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
- # CONFIG_SMB_NLS is not set
- # CONFIG_NLS is not set
-
- #
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
- # Console drivers
- #
- CONFIG_VGA_CONSOLE=y
-@@ -439,18 +478,17 @@
- # CONFIG_BLUEZ is not set
-
- #
--# Input core support
--#
--# CONFIG_INPUT is not set
--# CONFIG_INPUT_KEYBDEV is not set
--# CONFIG_INPUT_MOUSEDEV is not set
--# CONFIG_INPUT_JOYDEV is not set
--# CONFIG_INPUT_EVDEV is not set
--
--#
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-sb1250-swarm linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sb1250-swarm
---- linux-2.4.20/arch/mips/defconfig-sb1250-swarm 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sb1250-swarm 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -50,25 +55,38 @@
- # CONFIG_SGI_IP27 is not set
- # CONFIG_SGI_IP32 is not set
- CONFIG_SIBYTE_SB1xxx_SOC=y
-+CONFIG_SIBYTE_SWARM=y
-+# CONFIG_SIBYTE_SENTOSA is not set
-+# CONFIG_SIBYTE_CRHINE is not set
-+# CONFIG_SIBYTE_CARMEL is not set
-+# CONFIG_SIBYTE_CRHONE is not set
-+# CONFIG_SIBYTE_RHONE is not set
-+# CONFIG_SIBYTE_UNKNOWN is not set
-+CONFIG_SIBYTE_BOARD=y
- CONFIG_SIBYTE_SB1250=y
--# CONFIG_SIMULATION is not set
-+CONFIG_CPU_SB1_PASS_1=y
-+# CONFIG_CPU_SB1_PASS_2 is not set
-+# CONFIG_CPU_SB1_PASS_2_2 is not set
- CONFIG_SIBYTE_CFE=y
- # CONFIG_SIBYTE_CFE_CONSOLE is not set
-+# CONFIG_SIBYTE_BUS_WATCHER is not set
- # CONFIG_SIBYTE_SB1250_PROF is not set
--# CONFIG_BCM1250_TBPROF is not set
--CONFIG_SMP=y
-+# CONFIG_SIBYTE_TBPROF is not set
- # CONFIG_PCI is not set
--CONFIG_SIBYTE_SWARM=y
-+CONFIG_SIBYTE_GENBUS_IDE=y
-+CONFIG_SMP_CAPABLE=y
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_DUMMY_KEYB=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_BOOT_ELF32=y
- # CONFIG_MIPS_AU1000 is not set
-
-@@ -91,14 +109,9 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- CONFIG_CPU_SB1=y
--CONFIG_CPU_SB1_PASS_1=y
--# CONFIG_CPU_SB1_PASS_2 is not set
--# CONFIG_CPU_SB1_PASS_2_2 is not set
-+CONFIG_SMP=y
- CONFIG_SB1_PASS_1_WORKAROUNDS=y
- CONFIG_CPU_HAS_PREFETCH=y
--CONFIG_SB1_CACHE_ERROR=y
--CONFIG_SB1_CERR_IGNORE_RECOVERABLE=y
--# CONFIG_SB1_CERR_SPIN is not set
- CONFIG_VTAG_ICACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
-@@ -131,6 +144,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -183,8 +198,9 @@
- #
- # Networking options
- #
--# CONFIG_PACKET is not set
--# CONFIG_NETLINK_DEV is not set
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_NETLINK_DEV=y
- # CONFIG_NETFILTER is not set
- # CONFIG_FILTER is not set
- CONFIG_UNIX=y
-@@ -374,8 +390,6 @@
- CONFIG_SIBYTE_SB1250_DUART=y
- CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
- CONFIG_SERIAL_CONSOLE=y
--CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE=1024
--# CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-
-@@ -408,6 +422,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -535,6 +550,9 @@
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_SB1XXX_CORELIS is not set
- # CONFIG_MAGIC_SYSRQ is not set
-
- #
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-sead linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sead
---- linux-2.4.20/arch/mips/defconfig-sead 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-sead 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,13 +54,14 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- # CONFIG_PCI is not set
-@@ -111,6 +117,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- # CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
- # CONFIG_BINFMT_ELF32 is not set
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -152,7 +160,7 @@
- #
- # MIPS initrd options
- #
--CONFIG_EMBEDDED_RAMDISK=y
-+# CONFIG_EMBEDDED_RAMDISK is not set
-
- #
- # Multi-device support (RAID and LVM)
-@@ -238,6 +246,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -350,9 +359,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-tb0226 linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-tb0226
---- linux-2.4.20/arch/mips/defconfig-tb0226 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-tb0226 2003-02-24 15:17:03.000000000 -0600
-@@ -0,0 +1,777 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+CONFIG_TANBAC_TB0226=y
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CPU_VR41XX=y
-+CONFIG_IRQ_CPU=y
-+CONFIG_NEW_TIME_C=y
-+CONFIG_VR41XX_TIME_C=y
-+CONFIG_NONCOHERENT_IO=y
-+# CONFIG_ISA is not set
-+CONFIG_PCI=y
-+CONFIG_NEW_PCI=y
-+CONFIG_PCI_AUTO=y
-+CONFIG_DUMMY_KEYB=y
-+CONFIG_SERIAL_MANY_PORTS=y
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+CONFIG_CPU_VR41XX=y
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+# CONFIG_CPU_ADVANCED is not set
-+# CONFIG_CPU_HAS_LLSC is not set
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI_NAMES is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
-+# CONFIG_HOTPLUG_PCI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_NETLINK_DEV=y
-+# CONFIG_NETFILTER is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI support
-+#
-+CONFIG_SCSI=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+CONFIG_SD_EXTRA_DEVS=40
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+CONFIG_BLK_DEV_SR=y
-+# CONFIG_BLK_DEV_SR_VENDOR is not set
-+CONFIG_SR_EXTRA_DEVS=2
-+# CONFIG_CHR_DEV_SG is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+# CONFIG_SCSI_DEBUG_QUEUES is not set
-+# CONFIG_SCSI_MULTI_LUN is not set
-+CONFIG_SCSI_CONSTANTS=y
-+# CONFIG_SCSI_LOGGING is not set
-+
-+#
-+# SCSI low-level drivers
-+#
-+# CONFIG_BLK_DEV_3W_XXXX_RAID is not set
-+# CONFIG_SCSI_7000FASST is not set
-+# CONFIG_SCSI_ACARD is not set
-+# CONFIG_SCSI_AHA152X is not set
-+# CONFIG_SCSI_AHA1542 is not set
-+# CONFIG_SCSI_AHA1740 is not set
-+# CONFIG_SCSI_AACRAID is not set
-+# CONFIG_SCSI_AIC7XXX is not set
-+# CONFIG_SCSI_AIC7XXX_OLD is not set
-+# CONFIG_SCSI_DPT_I2O is not set
-+# CONFIG_SCSI_ADVANSYS is not set
-+# CONFIG_SCSI_IN2000 is not set
-+# CONFIG_SCSI_AM53C974 is not set
-+# CONFIG_SCSI_MEGARAID is not set
-+# CONFIG_SCSI_BUSLOGIC is not set
-+# CONFIG_SCSI_CPQFCTS is not set
-+# CONFIG_SCSI_DMX3191D is not set
-+# CONFIG_SCSI_DTC3280 is not set
-+# CONFIG_SCSI_EATA is not set
-+# CONFIG_SCSI_EATA_DMA is not set
-+# CONFIG_SCSI_EATA_PIO is not set
-+# CONFIG_SCSI_FUTURE_DOMAIN is not set
-+# CONFIG_SCSI_GDTH is not set
-+# CONFIG_SCSI_GENERIC_NCR5380 is not set
-+# CONFIG_SCSI_INITIO is not set
-+# CONFIG_SCSI_INIA100 is not set
-+# CONFIG_SCSI_NCR53C406A is not set
-+# CONFIG_SCSI_NCR53C7xx is not set
-+# CONFIG_SCSI_SYM53C8XX_2 is not set
-+# CONFIG_SCSI_NCR53C8XX is not set
-+# CONFIG_SCSI_SYM53C8XX is not set
-+# CONFIG_SCSI_PAS16 is not set
-+# CONFIG_SCSI_PCI2000 is not set
-+# CONFIG_SCSI_PCI2220I is not set
-+# CONFIG_SCSI_PSI240I is not set
-+# CONFIG_SCSI_QLOGIC_FAS is not set
-+# CONFIG_SCSI_QLOGIC_ISP is not set
-+# CONFIG_SCSI_QLOGIC_FC is not set
-+# CONFIG_SCSI_QLOGIC_1280 is not set
-+# CONFIG_SCSI_SIM710 is not set
-+# CONFIG_SCSI_SYM53C416 is not set
-+# CONFIG_SCSI_DC390T is not set
-+# CONFIG_SCSI_T128 is not set
-+# CONFIG_SCSI_U14_34F is not set
-+# CONFIG_SCSI_DEBUG is not set
-+
-+#
-+# I2O device support
-+#
-+# CONFIG_I2O is not set
-+# CONFIG_I2O_PCI is not set
-+# CONFIG_I2O_BLOCK is not set
-+# CONFIG_I2O_LAN is not set
-+# CONFIG_I2O_SCSI is not set
-+# CONFIG_I2O_PROC is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_HAPPYMEAL is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+CONFIG_NET_PCI=y
-+# CONFIG_PCNET32 is not set
-+# CONFIG_ADAPTEC_STARFIRE is not set
-+# CONFIG_APRICOT is not set
-+# CONFIG_CS89x0 is not set
-+# CONFIG_TULIP is not set
-+# CONFIG_DE4X5 is not set
-+# CONFIG_DGRS is not set
-+# CONFIG_DM9102 is not set
-+CONFIG_EEPRO100=y
-+# CONFIG_E100 is not set
-+# CONFIG_LNE390 is not set
-+# CONFIG_FEALNX is not set
-+# CONFIG_NATSEMI is not set
-+# CONFIG_NE2K_PCI is not set
-+# CONFIG_NE3210 is not set
-+# CONFIG_ES3210 is not set
-+# CONFIG_8139CP is not set
-+# CONFIG_8139TOO is not set
-+# CONFIG_8139TOO_PIO is not set
-+# CONFIG_8139TOO_TUNE_TWISTER is not set
-+# CONFIG_8139TOO_8129 is not set
-+# CONFIG_8139_OLD_RX_RESET is not set
-+# CONFIG_SIS900 is not set
-+# CONFIG_EPIC100 is not set
-+# CONFIG_SUNDANCE is not set
-+# CONFIG_SUNDANCE_MMIO is not set
-+# CONFIG_TLAN is not set
-+# CONFIG_TC35815 is not set
-+# CONFIG_VIA_RHINE is not set
-+# CONFIG_VIA_RHINE_MMIO is not set
-+# CONFIG_WINBOND_840 is not set
-+# CONFIG_LAN_SAA9730 is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+# CONFIG_VT_CONSOLE is not set
-+CONFIG_SERIAL=y
-+CONFIG_SERIAL_CONSOLE=y
-+# CONFIG_SERIAL_EXTENDED is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+CONFIG_WATCHDOG=y
-+# CONFIG_WATCHDOG_NOWAYOUT is not set
-+# CONFIG_ACQUIRE_WDT is not set
-+# CONFIG_ADVANTECH_WDT is not set
-+# CONFIG_ALIM7101_WDT is not set
-+# CONFIG_SC520_WDT is not set
-+# CONFIG_PCWATCHDOG is not set
-+# CONFIG_EUROTECH_WDT is not set
-+# CONFIG_IB700_WDT is not set
-+# CONFIG_WAFER_WDT is not set
-+# CONFIG_I810_TCO is not set
-+# CONFIG_MIXCOMWD is not set
-+# CONFIG_60XX_WDT is not set
-+# CONFIG_SC1200_WDT is not set
-+# CONFIG_SOFT_WATCHDOG is not set
-+# CONFIG_W83877F_WDT is not set
-+# CONFIG_WDT is not set
-+# CONFIG_WDTPCI is not set
-+# CONFIG_MACHZ_WDT is not set
-+# CONFIG_INDYDOG is not set
-+# CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+CONFIG_AUTOFS_FS=y
-+CONFIG_AUTOFS4_FS=y
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+# CONFIG_NFS_V3 is not set
-+CONFIG_ROOT_NFS=y
-+CONFIG_NFSD=y
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+CONFIG_SGI_PARTITION=y
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Console drivers
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+# CONFIG_MDA_CONSOLE is not set
-+
-+#
-+# Frame-buffer support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+CONFIG_USB=y
-+# CONFIG_USB_DEBUG is not set
-+
-+#
-+# Miscellaneous USB options
-+#
-+CONFIG_USB_DEVICEFS=y
-+CONFIG_USB_BANDWIDTH=y
-+CONFIG_USB_LONG_TIMEOUT=y
-+
-+#
-+# USB Host Controller Drivers
-+#
-+CONFIG_USB_EHCI_HCD=y
-+# CONFIG_USB_UHCI is not set
-+# CONFIG_USB_UHCI_ALT is not set
-+CONFIG_USB_OHCI=y
-+
-+#
-+# USB Device Class drivers
-+#
-+# CONFIG_USB_AUDIO is not set
-+# CONFIG_USB_EMI26 is not set
-+# CONFIG_USB_BLUETOOTH is not set
-+# CONFIG_USB_MIDI is not set
-+CONFIG_USB_STORAGE=y
-+# CONFIG_USB_STORAGE_DEBUG is not set
-+# CONFIG_USB_STORAGE_DATAFAB is not set
-+# CONFIG_USB_STORAGE_FREECOM is not set
-+# CONFIG_USB_STORAGE_ISD200 is not set
-+# CONFIG_USB_STORAGE_DPCM is not set
-+# CONFIG_USB_STORAGE_HP8200e is not set
-+# CONFIG_USB_STORAGE_SDDR09 is not set
-+# CONFIG_USB_STORAGE_SDDR55 is not set
-+# CONFIG_USB_STORAGE_JUMPSHOT is not set
-+# CONFIG_USB_ACM is not set
-+# CONFIG_USB_PRINTER is not set
-+
-+#
-+# USB Human Interface Devices (HID)
-+#
-+# CONFIG_USB_HID is not set
-+
-+#
-+# Input core support is needed for USB HID input layer or HIDBP support
-+#
-+# CONFIG_USB_HIDINPUT is not set
-+# CONFIG_USB_HIDDEV is not set
-+# CONFIG_USB_KBD is not set
-+# CONFIG_USB_MOUSE is not set
-+# CONFIG_USB_AIPTEK is not set
-+# CONFIG_USB_WACOM is not set
-+
-+#
-+# USB Imaging devices
-+#
-+# CONFIG_USB_DC2XX is not set
-+# CONFIG_USB_MDC800 is not set
-+# CONFIG_USB_SCANNER is not set
-+# CONFIG_USB_MICROTEK is not set
-+# CONFIG_USB_HPUSBSCSI is not set
-+
-+#
-+# USB Multimedia devices
-+#
-+
-+#
-+# Video4Linux support is needed for USB Multimedia device support
-+#
-+
-+#
-+# USB Network adaptors
-+#
-+# CONFIG_USB_PEGASUS is not set
-+# CONFIG_USB_RTL8150 is not set
-+# CONFIG_USB_KAWETH is not set
-+# CONFIG_USB_CATC is not set
-+# CONFIG_USB_CDCETHER is not set
-+# CONFIG_USB_USBNET is not set
-+
-+#
-+# USB port drivers
-+#
-+# CONFIG_USB_USS720 is not set
-+
-+#
-+# USB Serial Converter support
-+#
-+# CONFIG_USB_SERIAL is not set
-+
-+#
-+# USB Miscellaneous drivers
-+#
-+# CONFIG_USB_RIO500 is not set
-+# CONFIG_USB_AUERSWALD is not set
-+# CONFIG_USB_TIGL is not set
-+# CONFIG_USB_BRLVGER is not set
-+# CONFIG_USB_LCD is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/defconfig-workpad linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-workpad
---- linux-2.4.20/arch/mips/defconfig-workpad 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/defconfig-workpad 2003-02-24 15:17:03.000000000 -0600
-@@ -0,0 +1,614 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+CONFIG_MIPS32=y
-+# CONFIG_MIPS64 is not set
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+CONFIG_MODULES=y
-+CONFIG_MODVERSIONS=y
-+CONFIG_KMOD=y
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+# CONFIG_DECSTATION is not set
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+CONFIG_IBM_WORKPAD=y
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_CPU_VR41XX=y
-+CONFIG_IRQ_CPU=y
-+CONFIG_NEW_TIME_C=y
-+CONFIG_VR41XX_TIME_C=y
-+CONFIG_NONCOHERENT_IO=y
-+CONFIG_ISA=y
-+CONFIG_DUMMY_KEYB=y
-+# CONFIG_SCSI is not set
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+CONFIG_CPU_VR41XX=y
-+# CONFIG_CPU_R4300 is not set
-+# CONFIG_CPU_R4X00 is not set
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+# CONFIG_CPU_ADVANCED is not set
-+# CONFIG_CPU_HAS_LLSC is not set
-+# CONFIG_CPU_HAS_LLDSCD is not set
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI is not set
-+CONFIG_EISA=y
-+# CONFIG_TC is not set
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
-+# CONFIG_HOTPLUG_PCI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+# CONFIG_MIPS32_COMPAT is not set
-+# CONFIG_MIPS32_O32 is not set
-+# CONFIG_MIPS32_N32 is not set
-+# CONFIG_BINFMT_ELF32 is not set
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_NETLINK_DEV=y
-+# CONFIG_NETFILTER is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+CONFIG_IP_MULTICAST=y
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+# CONFIG_IP_PNP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_IP_MROUTE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+CONFIG_IDE=y
-+
-+#
-+# IDE, ATA and ATAPI Block devices
-+#
-+CONFIG_BLK_DEV_IDE=y
-+
-+#
-+# Please see Documentation/ide.txt for help/info on IDE drives
-+#
-+# CONFIG_BLK_DEV_HD_IDE is not set
-+# CONFIG_BLK_DEV_HD is not set
-+CONFIG_BLK_DEV_IDEDISK=y
-+# CONFIG_IDEDISK_MULTI_MODE is not set
-+# CONFIG_IDEDISK_STROKE is not set
-+# CONFIG_BLK_DEV_IDEDISK_VENDOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_FUJITSU is not set
-+# CONFIG_BLK_DEV_IDEDISK_IBM is not set
-+# CONFIG_BLK_DEV_IDEDISK_MAXTOR is not set
-+# CONFIG_BLK_DEV_IDEDISK_QUANTUM is not set
-+# CONFIG_BLK_DEV_IDEDISK_SEAGATE is not set
-+# CONFIG_BLK_DEV_IDEDISK_WD is not set
-+# CONFIG_BLK_DEV_COMMERIAL is not set
-+# CONFIG_BLK_DEV_TIVO is not set
-+# CONFIG_BLK_DEV_IDECS is not set
-+# CONFIG_BLK_DEV_IDECD is not set
-+# CONFIG_BLK_DEV_IDETAPE is not set
-+# CONFIG_BLK_DEV_IDEFLOPPY is not set
-+# CONFIG_BLK_DEV_IDESCSI is not set
-+# CONFIG_IDE_TASK_IOCTL is not set
-+
-+#
-+# IDE chipset support/bugfixes
-+#
-+# CONFIG_BLK_DEV_CMD640 is not set
-+# CONFIG_BLK_DEV_CMD640_ENHANCED is not set
-+# CONFIG_BLK_DEV_ISAPNP is not set
-+# CONFIG_IDE_CHIPSETS is not set
-+# CONFIG_IDEDMA_AUTO is not set
-+# CONFIG_DMA_NONPCI is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_ATARAID is not set
-+# CONFIG_BLK_DEV_ATARAID_PDC is not set
-+# CONFIG_BLK_DEV_ATARAID_HPT is not set
-+
-+#
-+# SCSI support
-+#
-+# CONFIG_SCSI is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_AT1700 is not set
-+# CONFIG_DEPCA is not set
-+# CONFIG_HP100 is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Old CD-ROM drivers (not SCSI, not IDE)
-+#
-+# CONFIG_CD_NO_IDESCSI is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+CONFIG_VT=y
-+# CONFIG_VT_CONSOLE is not set
-+CONFIG_SERIAL=y
-+CONFIG_SERIAL_CONSOLE=y
-+CONFIG_SERIAL_EXTENDED=y
-+CONFIG_SERIAL_MANY_PORTS=y
-+# CONFIG_SERIAL_SHARE_IRQ is not set
-+# CONFIG_SERIAL_DETECT_IRQ is not set
-+# CONFIG_SERIAL_MULTIPORT is not set
-+# CONFIG_HUB6 is not set
-+# CONFIG_SERIAL_NONSTANDARD is not set
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+CONFIG_WATCHDOG=y
-+# CONFIG_WATCHDOG_NOWAYOUT is not set
-+# CONFIG_ACQUIRE_WDT is not set
-+# CONFIG_ADVANTECH_WDT is not set
-+# CONFIG_ALIM7101_WDT is not set
-+# CONFIG_SC520_WDT is not set
-+# CONFIG_PCWATCHDOG is not set
-+# CONFIG_EUROTECH_WDT is not set
-+# CONFIG_IB700_WDT is not set
-+# CONFIG_WAFER_WDT is not set
-+# CONFIG_I810_TCO is not set
-+# CONFIG_MIXCOMWD is not set
-+# CONFIG_60XX_WDT is not set
-+# CONFIG_SC1200_WDT is not set
-+# CONFIG_SOFT_WATCHDOG is not set
-+# CONFIG_W83877F_WDT is not set
-+# CONFIG_WDT is not set
-+# CONFIG_WDTPCI is not set
-+# CONFIG_MACHZ_WDT is not set
-+# CONFIG_INDYDOG is not set
-+# CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+CONFIG_AUTOFS_FS=y
-+CONFIG_AUTOFS4_FS=y
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+CONFIG_NFS_FS=y
-+# CONFIG_NFS_V3 is not set
-+# CONFIG_ROOT_NFS is not set
-+CONFIG_NFSD=y
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+CONFIG_SUNRPC=y
-+CONFIG_LOCKD=y
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+# CONFIG_OSF_PARTITION is not set
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+CONFIG_SGI_PARTITION=y
-+# CONFIG_ULTRIX_PARTITION is not set
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Console drivers
-+#
-+# CONFIG_VGA_CONSOLE is not set
-+# CONFIG_MDA_CONSOLE is not set
-+
-+#
-+# Frame-buffer support
-+#
-+# CONFIG_FB is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+# CONFIG_USB is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Entries
---- linux-2.4.20/arch/mips/galileo-boards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,3 @@
-+D/ev64120////
-+D/ev96100////
-+D/generic////
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Repository
---- linux-2.4.20/arch/mips/galileo-boards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Repository 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/galileo-boards
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Root
---- linux-2.4.20/arch/mips/galileo-boards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Root 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Tag
---- linux-2.4.20/arch/mips/galileo-boards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/CVS/Tag 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,28 @@
-+/Makefile/1.1.4.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/README/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/burner.c/1.1.4.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/doit.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/etherboot.h/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/evb64120A_Setup.c/1.1.4.1/Wed May 29 03:03:16 2002/-ko/Tlinux_2_4_20
-+/fixit/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/flashdrv.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/galileo_port.h/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/gt64011.h/1.1.4.1/Thu Jun 27 14:21:14 2002/-ko/Tlinux_2_4_20
-+/head.S/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/ld.script.gal/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/ld.sys.big.Flash/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/ld.sys.big.Flash2/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/ld.sys.big.burner/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/load.c/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/meminit.S/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/memory.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/ns16550.h/1.1.4.1/Thu Jun 27 14:21:14 2002/-ko/Tlinux_2_4_20
-+/osdep.h/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/pci.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci_etherboot.c/1.1.4.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci_etherboot.h/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/sbd.h/1.1.4.1/Thu Jun 27 14:21:14 2002/-ko/Tlinux_2_4_20
-+/sbdreset_evb64120A.S/1.2.2.3/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/xfer.c/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Repository 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/galileo-boards/ev64120/compressed
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Root
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Root 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/compressed/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Entries
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Sat Dec 9 22:28:56 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/cntmr.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/dma.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/i2o.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/irq-handler.c/1.2.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.7.2.6/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/pci_bios.c/1.5.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/promcon.c/1.1.4.3/Thu Nov 7 01:47:45 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.3.2.1/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/serialGT.c/1.1.4.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.8.2.4/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+D/compressed////
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Repository
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Repository 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/galileo-boards/ev64120
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Root
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Root 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Tag
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/CVS/Tag 2005-01-06 23:00:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/.cvsignore
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/.cvsignore 2000-12-09 16:28:56.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/irq.c
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/irq.c 2002-12-01 18:24:46.000000000 -0600
-@@ -95,14 +95,14 @@
- /* Function for careful CP0 interrupt mask access */
- static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
- {
-- unsigned long status = read_32bit_cp0_register(CP0_STATUS);
-+ unsigned long status = read_c0_status();
- DBG(KERN_INFO "modify_cp0_intmask clr %x, set %x\n", clr_mask,
- set_mask);
- DBG(KERN_INFO "modify_cp0_intmask status %x\n", status);
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
- DBG(KERN_INFO "modify_cp0_intmask status %x\n", status);
-- write_32bit_cp0_register(CP0_STATUS, status);
-+ write_c0_status(status);
- }
-
- static inline void mask_irq(unsigned int irq_nr)
-@@ -166,13 +166,13 @@
- #endif
-
- struct hw_interrupt_type no_irq_type = {
-- typename:"none",
-- startup:no_irq_startup,
-- shutdown:no_irq_enable_disable,
-- enable:no_irq_enable_disable,
-- disable:no_irq_enable_disable,
-- ack:NULL,
-- end:no_irq_enable_disable,
-+ .typename= "none",
-+ .startup= no_irq_startup,
-+ .shutdown= no_irq_enable_disable,
-+ .enable= no_irq_enable_disable,
-+ .disable= no_irq_enable_disable,
-+ .ack= NULL,
-+ .end= no_irq_enable_disable,
- };
-
- // ack: no_irq_ack, re-enable later -- SKJ
-@@ -227,10 +227,10 @@
- DBG(KERN_INFO __FUNCTION__ " irq = %d\n", irq);
- if (irq != TIMER)
- DBG(KERN_INFO "cause register = %x\n",
-- read_32bit_cp0_register(CP0_CAUSE));
-+ read_c0_cause());
- if (irq != TIMER)
- DBG(KERN_INFO "status register = %x\n",
-- read_32bit_cp0_register(CP0_STATUS));
-+ read_c0_status());
- #endif
-
- cpu = smp_processor_id();
-@@ -407,7 +407,7 @@
- /*
- * Clear all of the interrupts while we change the able around a bit.
- */
-- clear_cp0_status(ST0_IM);
-+ clear_c0_status(ST0_IM);
-
- /* Sets the exception_handler array. */
- set_except_vector(0, galileo_handle_int);
-@@ -418,7 +418,7 @@
- * Enable timer. Other interrupts will be enabled as they are
- * registered.
- */
-- set_cp0_status(IE_IRQ2);
-+ set_c0_status(IE_IRQ2);
-
-
- #ifdef CONFIG_REMOTE_DEBUG
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/pci_bios.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/pci_bios.c
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/pci_bios.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/pci_bios.c 2003-01-11 11:53:10.000000000 -0600
-@@ -868,7 +868,7 @@
- return 0;
- }
-
--int pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- DBG(KERN_INFO "rr: pcibios_enable_device\n");
- return pcibios_enable_resources(dev);
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/promcon.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/promcon.c
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/promcon.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/promcon.c 2002-11-06 19:47:45.000000000 -0600
-@@ -38,11 +38,11 @@
- }
-
- static struct console sercons = {
-- name: "ttyS",
-- write: prom_console_write,
-- device: prom_console_device,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "ttyS",
-+ .write = prom_console_write,
-+ .device = prom_console_device,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/reset.c
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/reset.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/reset.c 2002-12-01 18:24:46.000000000 -0600
-@@ -22,10 +22,10 @@
- * kernel in the flush locks up somewhen during of after the PCI
- * detection stuff.
- */
-- set_cp0_status(ST0_BEV | ST0_ERL);
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ set_c0_status(ST0_BEV | ST0_ERL);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
- __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev64120/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/setup.c
---- linux-2.4.20/arch/mips/galileo-boards/ev64120/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev64120/setup.c 2002-12-01 18:24:46.000000000 -0600
-@@ -140,14 +140,14 @@
-
- #ifdef CONFIG_L2_L3_CACHE
- #error "external cache not implemented yet"
-- config_register = read_32bit_cp0_register(CP0_CONFIG);
-+ config_register = read_c0_config();
- printk("\n\n\nchecking second level cache cp0_config = %08lx\n",
- config_register);
- if (config_register & CONF_SC) { // second/third level cache available
- config_register = config_register & (1 << 12);
-- write_32bit_cp0_register(CP0_CONFIG, config_register);
-+ write_c0_config(config_register);
- printk
-- ("\n\n\nchecking second level cache cp0_config = %08lx\n",
-+ ("\n\n\nchecking second level cache c0_config = %08lx\n",
- config_register);
- }
- #endif
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Entries
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.8.2.2/Tue Jun 25 15:46:59 2002/-ko/Tlinux_2_4_20
-+/init.c/1.3.2.3/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.1/Wed Dec 19 04:51:34 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.12.2.4/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+/pci_fixups.c/1.2.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.2.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/puts.c/1.2/Fri Mar 16 12:59:31 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.8.2.3/Sun Dec 1 20:59:10 2002/-ko/Tlinux_2_4_20
-+/time.c/1.6.2.4/Mon Dec 2 00:24:46 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Repository
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/galileo-boards/ev96100
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Root
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Tag
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/irq.c
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/irq.c 2002-12-01 18:24:46.000000000 -0600
-@@ -60,7 +60,7 @@
- unsigned long flags;
-
- save_and_cli(flags);
-- clear_cp0_status(0x100 << irq_nr);
-+ clear_c0_status(0x100 << irq_nr);
- restore_flags(flags);
- }
-
-@@ -69,7 +69,7 @@
- unsigned long flags;
-
- save_and_cli(flags);
-- set_cp0_status(0x100 << irq_nr);
-+ set_c0_status(0x100 << irq_nr);
- restore_flags(flags);
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/setup.c
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/setup.c 2002-12-01 14:59:10.000000000 -0600
-@@ -65,17 +65,20 @@
-
- unsigned char mac_0_1[12];
-
-+void __init bus_error_init(void)
-+{
-+}
-
- void __init ev96100_setup(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-- unsigned long status = read_32bit_cp0_register(CP0_STATUS);
-- unsigned long info = read_32bit_cp0_register(CP0_INFO);
-+ unsigned int config = read_c0_config();
-+ unsigned int status = read_c0_status();
-+ unsigned int info = read_c0_info();
- u32 tmp;
-
- char *argptr;
-
-- clear_cp0_status(ST0_FR);
-+ clear_c0_status(ST0_FR);
-
- if (config & 0x8) {
- printk("Secondary cache is enabled\n");
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/ev96100/time.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/time.c
---- linux-2.4.20/arch/mips/galileo-boards/ev96100/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/ev96100/time.c 2002-12-01 18:24:46.000000000 -0600
-@@ -54,7 +54,7 @@
-
- static inline void ack_r4ktimer(unsigned long newval)
- {
-- write_32bit_cp0_register(CP0_COMPARE, newval);
-+ write_c0_compare(newval);
- }
-
- static int set_rtc_mmss(unsigned long nowtime)
-@@ -109,12 +109,11 @@
- est_freq -= est_freq%10000;
- printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
- (est_freq%1000000)*100/1000000);
-- r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-+ r4k_cur = (read_c0_count() + r4k_offset);
-
-- write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-+ write_c0_compare(r4k_cur);
-
-- /* FIX ME */
-- change_cp0_status(ST0_IM, IE_IRQ5);
-+ change_c0_status(ST0_IM, IE_IRQ5); /* FIX ME */
- }
-
- /* This is for machines which generate the exact clock. */
-@@ -172,7 +171,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -221,7 +220,7 @@
- write_lock_irq (&xtime_lock);
-
- /* This is revolting. We need to set the xtime.tv_usec correctly.
-- * However, the value in this location is is value at the last tick.
-+ * However, the value in this location is value at the last tick.
- * Discover what correction gettimeofday would have done, and then
- * undo it!
- */
-@@ -260,7 +259,7 @@
- r4k_cur += r4k_offset;
- ack_r4ktimer(r4k_cur);
-
-- } while (((unsigned long)read_32bit_cp0_register(CP0_COUNT)
-+ } while (((unsigned long)read_c0_count()
- - r4k_cur) < 0x7fffffff);
- return;
-
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Entries
---- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.4.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.3.2.4/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Repository
---- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/galileo-boards/generic
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Root
---- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Tag
---- linux-2.4.20/arch/mips/galileo-boards/generic/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/galileo-boards/generic/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/reset.c
---- linux-2.4.20/arch/mips/galileo-boards/generic/reset.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/galileo-boards/generic/reset.c 2002-12-01 18:24:47.000000000 -0600
-@@ -48,10 +48,10 @@
-
- static void mips_machine_restart(char *command)
- {
-- set_cp0_status(ST0_BEV | ST0_ERL);
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ set_c0_status(ST0_BEV | ST0_ERL);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
- __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
- while (1);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Entries
---- linux-2.4.20/arch/mips/gt64120/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Mon Feb 5 01:33:01 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/gt_irq.c/1.2.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.4.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Repository
---- linux-2.4.20/arch/mips/gt64120/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/gt64120/common
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Root
---- linux-2.4.20/arch/mips/gt64120/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Tag
---- linux-2.4.20/arch/mips/gt64120/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/.cvsignore
---- linux-2.4.20/arch/mips/gt64120/common/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/.cvsignore 2001-02-04 19:33:01.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/gt_irq.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/gt_irq.c
---- linux-2.4.20/arch/mips/gt64120/common/gt_irq.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/gt_irq.c 2002-08-05 18:53:32.000000000 -0500
-@@ -37,8 +37,8 @@
- * the interrupt service routine is called.
- *
- * Inputs :
-- * int_cause - The interrupt cause number. In EVB64120 two parameters
-- * are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
-+ * int_cause - The interrupt cause number. In EVB64120 two parameters
-+ * are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
- * bit_num - Indicates which bit number in the cause register
- * isr_ptr - Pointer to the interrupt service routine
- */
-@@ -52,7 +52,7 @@
- * Enables the IRQ on Galileo Chip
- *
- * Inputs :
-- * int_cause - The interrupt cause number. In EVB64120 two parameters
-+ * int_cause - The interrupt cause number. In EVB64120 two parameters
- * are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
- * bit_num - Indicates which bit number in the cause register
- *
-@@ -76,7 +76,7 @@
- * Disables the IRQ on Galileo Chip
- *
- * Inputs :
-- * int_cause - The interrupt cause number. In EVB64120 two parameters
-+ * int_cause - The interrupt cause number. In EVB64120 two parameters
- * are declared, INT_CAUSE_MAIN and INT_CAUSE_HIGH.
- * bit_num - Indicates which bit number in the cause register
- *
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/Makefile
---- linux-2.4.20/arch/mips/gt64120/common/Makefile 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET:= gt64120.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/common/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/pci.c
---- linux-2.4.20/arch/mips/gt64120/common/pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/common/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -440,7 +440,7 @@
- * pci_range_ck -
- *
- * Check if the pci device that are trying to access does really exists
-- * on the evaluation board.
-+ * on the evaluation board.
- *
- * Inputs :
- * bus - bus number (0 for PCI 0 ; 1 for PCI 1)
-@@ -462,13 +462,13 @@
-
- /*
- * pciXReadConfigReg - Read from a PCI configuration register
-- * - Make sure the GT is configured as a master before
-+ * - Make sure the GT is configured as a master before
- * reading from another device on the PCI.
- * - The function takes care of Big/Little endian conversion.
- * INPUTS: regOffset: The register offset as it apears in the GT spec (or PCI
- * spec)
-- * pciDevNum: The device number needs to be addressed.
-- * RETURNS: data , if the data == 0xffffffff check the master abort bit in the
-+ * pciDevNum: The device number needs to be addressed.
-+ * RETURNS: data , if the data == 0xffffffff check the master abort bit in the
- * cause register to make sure the data is valid
- *
- * Configuration Address 0xCF8:
-@@ -522,7 +522,7 @@
- * to stabilize, so the READ can work.
- */
- if (PCI_SLOT(device->devfn) == SELF) { /* This board */
-- /* when configurating our own PCI 1 L-unit the access is through
-+ /* when configurating our own PCI 1 L-unit the access is through
- the PCI 0 interface with reg number = reg number + 0x80 */
- DataForRegCf8 |= 0x80;
- GT_WRITE(GT_PCI0_CFGADDR_OFS, DataForRegCf8);
-@@ -542,13 +542,13 @@
-
- /*
- * pciXWriteConfigReg - Write to a PCI configuration register
-- * - Make sure the GT is configured as a master before
-+ * - Make sure the GT is configured as a master before
- * writingto another device on the PCI.
- * - The function takes care of Big/Little endian conversion.
- * Inputs: unsigned int regOffset: The register offset as it apears in the
-- * GT spec
-+ * GT spec
- * (or any other PCI device spec)
-- * pciDevNum: The device number needs to be addressed.
-+ * pciDevNum: The device number needs to be addressed.
- *
- * Configuration Address 0xCF8:
- *
-@@ -847,7 +847,7 @@
- return 0;
- }
-
--int pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- return pcibios_enable_resources(dev);
- }
-@@ -1062,7 +1062,7 @@
- * We've found the largest BAR. Allocate it into IO or
- * mem space. We don't idiot check the bases to make
- * sure they haven't overflowed the current size for that
-- * aperture.
-+ * aperture.
- * Don't bother to enable the device's IO or MEM space here.
- * That will be done in pci_enable_resources if the device is
- * activated by a driver.
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Entries
---- linux-2.4.20/arch/mips/gt64120/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+D/common////
-+D/momenco_ocelot////
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Repository
---- linux-2.4.20/arch/mips/gt64120/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/gt64120
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Root
---- linux-2.4.20/arch/mips/gt64120/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Tag
---- linux-2.4.20/arch/mips/gt64120/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Entries
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Mon Feb 5 01:33:01 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.2/Thu Nov 29 15:09:48 2001/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.5.2.4/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+/ocelot_pld.h/1.2/Thu Sep 6 13:12:01 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.3.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.3.2.2/Tue Aug 27 19:43:10 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.4/Thu Aug 30 11:52:18 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.5.2.5/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Repository
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/gt64120/momenco_ocelot
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Root
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Tag
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/.cvsignore
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/.cvsignore 2001-02-04 19:33:01.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/int-handler.S
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/int-handler.S 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/int-handler.S 2002-08-05 18:53:32.000000000 -0500
-@@ -9,7 +9,6 @@
- * Free Software Foundation; either version 2 of the License, or (at your
- * option) any later version.
- */
--#include <linux/config.h>
- #include <asm/asm.h>
- #include <asm/mipsregs.h>
- #include <asm/addrspace.h>
-@@ -26,11 +25,11 @@
- SAVE_ALL
- CLI
- .set at
-- mfc0 t0, CP0_CAUSE
-+ mfc0 t0, CP0_CAUSE
- mfc0 t2, CP0_STATUS
-
- and t0, t2
--
-+
- andi t1, t0, STATUSF_IP2 /* int0 hardware line */
- bnez t1, ll_pri_enet_irq
- andi t1, t0, STATUSF_IP3 /* int1 hardware line */
-@@ -45,7 +44,7 @@
- bnez t1, ll_cputimer_irq
-
- /* now look at the extended interrupts */
-- mfc0 t0, CP0_CAUSE
-+ mfc0 t0, CP0_CAUSE
- cfc0 t1, CP0_S1_INTCONTROL
-
- /* shift the mask 8 bits left to line up the bits */
-@@ -88,7 +87,7 @@
- move a1, sp
- jal do_IRQ
- j ret_from_irq
--
-+
- ll_cpci_irq:
- li a0, 5
- move a1, sp
-@@ -106,7 +105,7 @@
- move a1, sp
- jal do_IRQ
- j ret_from_irq
--
-+
- ll_pmc1_irq:
- li a0, 8
- move a1, sp
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/irq.c
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/irq.c 2002-12-01 18:24:47.000000000 -0600
-@@ -28,6 +28,7 @@
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- */
-+#include <linux/config.h>
- #include <linux/errno.h>
- #include <linux/init.h>
- #include <linux/kernel_stat.h>
-@@ -60,18 +61,18 @@
- /* do the low 8 bits first */
- clr_mask = 0xff & clr_mask_in;
- set_mask = 0xff & set_mask_in;
-- status = read_32bit_cp0_register(CP0_STATUS);
-+ status = read_c0_status();
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
-- write_32bit_cp0_register(CP0_STATUS, status);
-+ write_c0_status(status);
-
- /* do the high 8 bits */
- clr_mask = 0xff & (clr_mask_in >> 8);
- set_mask = 0xff & (set_mask_in >> 8);
-- status = read_32bit_cp0_set1_register(CP0_S1_INTCONTROL);
-+ status = read_c0_intcontrol();
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
-- write_32bit_cp0_set1_register(CP0_S1_INTCONTROL, status);
-+ write_c0_intcontrol(status);
- }
-
- static inline void mask_irq(unsigned int irq)
-@@ -144,7 +145,7 @@
- /*
- * Clear all of the interrupts while we change the able around a bit.
- */
-- clear_cp0_status(ST0_IM);
-+ clear_c0_status(ST0_IM);
- __cli();
-
- /* Sets the first-level interrupt dispatcher. */
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/Makefile
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/Makefile 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET:= momenco_ocelot.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/pci.c
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/pci.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/pci.c 2002-08-05 18:53:32.000000000 -0500
-@@ -44,7 +44,7 @@
- devices->irq = 2; /* irq_nr is 2 for INT0 */
- } else if (PCI_SLOT(devices->devfn) == 2) {
- /*
-- * Slot 2 is secondary ether port, i21143
-+ * Slot 2 is secondary ether port, i21143
- * we double-check against that assumption
- */
- if ((devices->vendor != 0x1011) ||
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/prom.c
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/prom.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/prom.c 2002-08-27 14:43:10.000000000 -0500
-@@ -15,34 +15,35 @@
- #include <asm/addrspace.h>
- #include <asm/bootinfo.h>
-
--#define PLD_BASE 0xbc000000
--
--#define REV 0x0 /* Board Assembly Revision */
--#define PLD1ID 0x1 /* PLD 1 ID */
--#define PLD2ID 0x2 /* PLD 2 ID */
--#define RESET_STAT 0x3 /* Reset Status Register */
--#define BOARD_STAT 0x4 /* Board Status Register */
--#define CPCI_ID 0x5 /* Compact PCI ID Register */
--#define CONTROL 0x8 /* Control Register */
--#define CPU_EEPROM 0x9 /* CPU Configuration EEPROM Register */
--#define INTMASK 0xA /* Interrupt Mask Register */
--#define INTSTAT 0xB /* Interrupt Status Register */
--#define INTSET 0xC /* Interrupt Set Register */
--#define INTCLR 0xD /* Interrupt Clear Register */
--
--#define PLD_REG(x) ((uint8_t*)(PLD_BASE+(x)))
-+struct callvectors {
-+ int (*open) (char*, int, int);
-+ int (*close) (int);
-+ int (*read) (int, void*, int);
-+ int (*write) (int, void*, int);
-+ off_t (*lseek) (int, off_t, int);
-+ int (*printf) (const char*, ...);
-+ void (*cacheflush) (void);
-+ char* (*gets) (char*);
-+};
-
-+struct callvectors* debug_vectors;
- char arcs_cmdline[CL_SIZE];
-
-+extern unsigned long gt64120_base;
-+
- const char *get_system_type(void)
- {
- return "Momentum Ocelot";
- }
-
- /* [jsun@junsun.net] PMON passes arguments in C main() style */
--void __init prom_init(int argc, const char **arg)
-+void __init prom_init(int argc, char **arg, char** env, struct callvectors *cv)
- {
- int i;
-+ uint32_t tmp;
-+
-+ /* save the PROM vectors for debugging use */
-+ debug_vectors = cv;
-
- /* arg[0] is "g", the rest is boot parameters */
- arcs_cmdline[0] = '\0';
-@@ -57,9 +58,16 @@
- mips_machgroup = MACH_GROUP_MOMENCO;
- mips_machtype = MACH_MOMENCO_OCELOT;
-
-- /* turn off the Bit Error LED, which comes on automatically
-- * at power-up reset */
-- *PLD_REG(INTCLR) = 0x80;
-+ while (*env) {
-+ if (strncmp("gtbase", *env, 6) == 0) {
-+ gt64120_base = simple_strtol(*env + strlen("gtbase="),
-+ NULL, 16);
-+ break;
-+ }
-+ *env++;
-+ }
-+
-+ debug_vectors->printf("Booting Linux kernel...\n");
-
- /* All the boards have at least 64MiB. If there's more, we
- detect and register it later */
-diff -urNd -urNd linux-2.4.20/arch/mips/gt64120/momenco_ocelot/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/setup.c
---- linux-2.4.20/arch/mips/gt64120/momenco_ocelot/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/gt64120/momenco_ocelot/setup.c 2002-12-01 18:24:47.000000000 -0600
-@@ -59,6 +59,7 @@
- #include <asm/ptrace.h>
- #include <asm/reboot.h>
- #include <asm/mc146818rtc.h>
-+#include <asm/traps.h>
- #include <linux/version.h>
- #include <linux/bootmem.h>
- #include <linux/blk.h>
-@@ -82,26 +83,11 @@
- #define ENTRYLO(x) ((pte_val(mk_pte_phys((x), PAGE_KERNEL_UNCACHED)) >> 6)|1)
-
- static void __init setup_l3cache(unsigned long size);
-+void __init bus_error_init(void) { /* nothing */ }
-
--void __init momenco_ocelot_setup(void)
-+/* setup code for a handoff from a version 1 PMON 2000 PROM */
-+void PMON_v1_setup()
- {
-- void (*l3func)(unsigned long)=KSEG1ADDR(&setup_l3cache);
-- unsigned int tmpword;
--
-- board_time_init = gt64120_time_init;
--
-- _machine_restart = momenco_ocelot_restart;
-- _machine_halt = momenco_ocelot_halt;
-- _machine_power_off = momenco_ocelot_power_off;
--
-- /*
-- * initrd_start = (ulong)ocelot_initrd_start;
-- * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size;
-- * initrd_below_start_ok = 1;
-- */
-- rtc_ops = &no_rtc_ops;
--
--
- /* A wired TLB entry for the GT64120A and the serial port. The
- GT64120A is going to be hit on every IRQ anyway - there's
- absolutely no point in letting it be a random TLB entry, as
-@@ -122,12 +108,11 @@
- Ocelot PLD (CS0) 0x2c000000 0xe0020000
- NVRAM 0x2c800000 0xe0030000
- */
--
-- add_temporary_entry(ENTRYLO(0x2C000000), ENTRYLO(0x2d000000), 0xe0020000, PM_64K);
-
-+ add_temporary_entry(ENTRYLO(0x2C000000), ENTRYLO(0x2d000000), 0xe0020000, PM_64K);
-
- /* Relocate the CS3/BootCS region */
-- GT_WRITE( GT_CS3BOOTLD_OFS, 0x2f000000 >> 21);
-+ GT_WRITE(GT_CS3BOOTLD_OFS, 0x2f000000 >> 21);
-
- /* Relocate CS[012] */
- GT_WRITE(GT_CS20LD_OFS, 0x2c000000 >> 21);
-@@ -142,19 +127,75 @@
- GT_WRITE(GT_PCI0_CFGDATA_OFS, 0x24000000);
- GT_WRITE(GT_PCI0_CFGADDR_OFS, 0x80000024);
- GT_WRITE(GT_PCI0_CFGDATA_OFS, 0x24000001);
-+}
-
-- /* Relocate PCI0 I/O and Mem0 */
-- GT_WRITE(GT_PCI0IOLD_OFS, 0x20000000 >> 21);
-- GT_WRITE(GT_PCI0M0LD_OFS, 0x22000000 >> 21);
-+/* setup code for a handoff from a version 2 PMON 2000 PROM */
-+void PMON_v2_setup()
-+{
-+ /* A wired TLB entry for the GT64120A and the serial port. The
-+ GT64120A is going to be hit on every IRQ anyway - there's
-+ absolutely no point in letting it be a random TLB entry, as
-+ it'll just cause needless churning of the TLB. And we use
-+ the other half for the serial port, which is just a PITA
-+ otherwise :)
-
-- /* Relocate PCI0 Mem1 */
-- GT_WRITE(GT_PCI0M1LD_OFS, 0x36000000 >> 21);
-+ Device Physical Virtual
-+ GT64120 Internal Regs 0xf4000000 0xe0000000
-+ UARTs (CS2) 0xfd000000 0xe0001000
-+ */
-+ add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xfD000000), 0xe0000000, PM_4K);
-+
-+ /* Also a temporary entry to let us talk to the Ocelot PLD and NVRAM
-+ in the CS[012] region. We can't use ioremap() yet. The NVRAM
-+ is a ST M48T37Y, which includes NVRAM, RTC, and Watchdog functions.
-+
-+ Ocelot PLD (CS0) 0xfc000000 0xe0020000
-+ NVRAM 0xfc800000 0xe0030000
-+ */
-+ add_temporary_entry(ENTRYLO(0xfC000000), ENTRYLO(0xfd000000), 0xe0020000, PM_64K);
-+
-+ gt64120_base = 0xe0000000;
-+}
-+
-+void __init momenco_ocelot_setup(void)
-+{
-+ void (*l3func)(unsigned long)=KSEG1ADDR(&setup_l3cache);
-+ unsigned int tmpword;
-+
-+ board_time_init = gt64120_time_init;
-+
-+ _machine_restart = momenco_ocelot_restart;
-+ _machine_halt = momenco_ocelot_halt;
-+ _machine_power_off = momenco_ocelot_power_off;
-+
-+ /*
-+ * initrd_start = (ulong)ocelot_initrd_start;
-+ * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size;
-+ * initrd_below_start_ok = 1;
-+ */
-+ rtc_ops = &no_rtc_ops;
-+
-+ /* do handoff reconfiguration */
-+ if (gt64120_base == KSEG1ADDR(GT_DEF_BASE))
-+ PMON_v1_setup();
-+ else
-+ PMON_v2_setup();
-+
-+ /* Turn off the Bit-Error LED */
-+ OCELOT_PLD_WRITE(0x80, INTCLR);
-
- /* Relocate all the PCI1 stuff, not that we use it */
- GT_WRITE(GT_PCI1IOLD_OFS, 0x30000000 >> 21);
- GT_WRITE(GT_PCI1M0LD_OFS, 0x32000000 >> 21);
- GT_WRITE(GT_PCI1M1LD_OFS, 0x34000000 >> 21);
-
-+ /* Relocate PCI0 I/O and Mem0 */
-+ GT_WRITE(GT_PCI0IOLD_OFS, 0x20000000 >> 21);
-+ GT_WRITE(GT_PCI0M0LD_OFS, 0x22000000 >> 21);
-+
-+ /* Relocate PCI0 Mem1 */
-+ GT_WRITE(GT_PCI0M1LD_OFS, 0x36000000 >> 21);
-+
- /* For the initial programming, we assume 512MB configuration */
- /* Relocate the CPU's view of the RAM... */
- GT_WRITE(GT_SCS10LD_OFS, 0);
-@@ -283,7 +324,7 @@
- {
- int register i;
- unsigned long tmp;
--
-+
- printk("Enabling L3 cache...");
-
- /* Enable the L3 cache in the GT64120A's CPU Configuration register */
-@@ -291,11 +332,11 @@
- GT_WRITE(0, tmp | (1<<14));
-
- /* Enable the L3 cache in the CPU */
-- set_cp0_config(1<<12 /* CONF_TE */);
-+ set_c0_config(1<<12 /* CONF_TE */);
-
- /* Clear the cache */
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
-
- for (i=0; i < size; i+= 4096) {
- __asm__ __volatile__ (
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/asic.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/asic.c
---- linux-2.4.20/arch/mips/hp-lj/asic.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/asic.c 2002-08-05 18:53:32.000000000 -0500
-@@ -20,7 +20,7 @@
-
- const char* const GetAsicName(void)
- {
-- static const char* const Names[] =
-+ static const char* const Names[] =
- { "Illegal", "Unknown", "Andros", "Harmony" };
-
- return Names[(int)GetAsicId()];
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Entries
---- linux-2.4.20/arch/mips/hp-lj/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Sun Nov 18 03:24:36 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/asic.c/1.1.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/gdb_hook.c/1.1.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/init.c/1.3.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.1.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.2.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.2.2.3/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/utils.c/1.1.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/utils.h/1.1/Sun Nov 18 03:24:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Repository
---- linux-2.4.20/arch/mips/hp-lj/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/hp-lj
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Root
---- linux-2.4.20/arch/mips/hp-lj/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Tag
---- linux-2.4.20/arch/mips/hp-lj/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/.cvsignore
---- linux-2.4.20/arch/mips/hp-lj/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/.cvsignore 2001-11-17 21:24:36.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/gdb_hook.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/gdb_hook.c
---- linux-2.4.20/arch/mips/hp-lj/gdb_hook.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/gdb_hook.c 2002-08-05 18:53:32.000000000 -0500
-@@ -77,7 +77,7 @@
- while (((SERIAL_REG(HPSR_TX_STAT_OFFSET) & HPSR_TX_STAT_READY) == 0))
- ;
- SERIAL_REG(HPSR_DATA_OFFSET) = (unsigned int) c;
-- }
-+ }
- return 1;
- }
-
-@@ -87,7 +87,7 @@
- while (!(((H_HPSR_STAT) & H_SER_STAT_RX_EMPTY) == 0));
-
- return H_HPSR_DATA_RX;
--
-+
- } else if (GetAsicId() == AndrosAsic) {
- while ((SERIAL_REG(HPSR_RX_STAT_OFFSET) & HPSR_RX_DATA_AVAIL) == 0)
- ;
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/init.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/init.c
---- linux-2.4.20/arch/mips/hp-lj/init.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/init.c 2002-08-05 18:53:32.000000000 -0500
-@@ -1,7 +1,7 @@
- /*
- * init.c: PROM library initialisation code.
- *
-- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
-+ * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
- */
-
- #include <linux/mm.h>
-@@ -35,7 +35,7 @@
- add_memory_region(mem_size,reserve_size, BOOT_MEM_RESERVED);
-
- printk("Main Memory: %ld bytes\n", mem_size);
-- printk("Reserved Memory: %ld bytes at 0x%08x\n",
-+ printk("Reserved Memory: %ld bytes at 0x%08x\n",
- get_reserved_buffer_size(), (ulong)get_reserved_buffer());
-
- printk("Detected %s ASIC\n", GetAsicName());
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/int-handler.S
---- linux-2.4.20/arch/mips/hp-lj/int-handler.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/int-handler.S 2002-08-05 18:53:32.000000000 -0500
-@@ -64,7 +64,7 @@
-
- la a1, ret_from_irq
- jr a1
--*/
-+*/
- 3: j spurious_interrupt
- END(hpIRQ)
-
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/irq.c
---- linux-2.4.20/arch/mips/hp-lj/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/irq.c 2002-08-05 18:53:32.000000000 -0500
-@@ -26,7 +26,7 @@
- set_except_vector(0, hpIRQ);
-
- #ifdef CONFIG_REMOTE_DEBUG
-- {
-+ {
- extern void breakpoint(void);
- extern int remote_debug;
-
-@@ -36,6 +36,6 @@
- }
- }
- #endif
--
-+
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci.c
---- linux-2.4.20/arch/mips/hp-lj/pci.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci.c 2002-08-05 18:53:32.000000000 -0500
-@@ -77,7 +77,7 @@
- if (where & 1)
- return PCIBIOS_BAD_REGISTER_NUMBER;
- *pci_config_address_reg = cfgaddr(dev, where);
-- *(volatile u16 *)(((int)pci_config_data_reg) + (where & 2)) =
-+ *(volatile u16 *)(((int)pci_config_data_reg) + (where & 2)) =
- le16_to_cpu(val);
- //printk("pci_write_word 0x%x = 0x%x\n", where, val);
- return PCIBIOS_SUCCESSFUL;
-@@ -158,9 +158,9 @@
- case AndrosAsic: pci_regs_base_offset = 0xbff80000; break;
- case HarmonyAsic: pci_regs_base_offset = 0xbff70000; break;
- default:
-- printk("ERROR: PCI does not support %s Asic\n", GetAsicName());
-+ printk("ERROR: PCI does not support %s Asic\n", GetAsicName());
- while(1);
-- break;
-+ break;
- }
-
- // set bus stat/command reg
-@@ -176,7 +176,7 @@
-
- // KLUDGE (mips_io_port_base is screwed up, we've got to work around it here)
- // by letting both low (illegal) and high (legal) addresses appear in pci io space
-- ioport_resource.start = 0x0;
-+ ioport_resource.start = 0x0;
-
- set_io_port_base(IO_PORT_LOGICAL_START + IO_PORT_VIRTUAL_OFFSET);
-
-@@ -185,7 +185,7 @@
- // except that the range is outside user space
- // parameters: lo0, lo1, hi, pagemask
- // lo indicates physical page, hi indicates virtual address
-- add_wired_entry((IO_MEM_LOGICAL_START >> 6) | 0x17,
-+ add_wired_entry((IO_MEM_LOGICAL_START >> 6) | 0x17,
- ((IO_MEM_LOGICAL_START + (16 * ONE_MEG)) >> 6) | 0x17,
- 0xee000000, PM_16M);
-
-@@ -203,7 +203,7 @@
- int bases;
-
- printk("adjusting pci device: %s\n", dev->name);
--
-+
- switch (dev->hdr_type) {
- case PCI_HEADER_TYPE_NORMAL: bases = 6; break;
- case PCI_HEADER_TYPE_BRIDGE: bases = 2; break;
-@@ -212,12 +212,12 @@
- }
- for (pos=0; pos < bases; pos++) {
- struct resource* res = &dev->resource[pos];
-- if (res->start >= IO_MEM_LOGICAL_START &&
-+ if (res->start >= IO_MEM_LOGICAL_START &&
- res->end <= IO_MEM_LOGICAL_END) {
- res->start += IO_MEM_VIRTUAL_OFFSET;
- res->end += IO_MEM_VIRTUAL_OFFSET;
- }
-- if (res->start >= IO_PORT_LOGICAL_START &&
-+ if (res->start >= IO_PORT_LOGICAL_START &&
- res->end <= IO_PORT_LOGICAL_END) {
- res->start += IO_PORT_VIRTUAL_OFFSET;
- res->end += IO_PORT_VIRTUAL_OFFSET;
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/pci-dma.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci-dma.c
---- linux-2.4.20/arch/mips/hp-lj/pci-dma.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/pci-dma.c 2002-08-05 18:53:32.000000000 -0500
-@@ -35,10 +35,10 @@
- //flush the cache to eliminate coherency problems
- // and assure dirty lines won't later get written over any dma, etc.
- flush_cache_all();
-- ret = (void*)((unsigned int)ret | 0x20000000);
-+ ret = (void*)((unsigned int)ret | 0x20000000);
- }
-
--
-+
- }
- return ret;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/setup.c
---- linux-2.4.20/arch/mips/hp-lj/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/setup.c 2002-08-05 18:53:32.000000000 -0500
-@@ -80,8 +80,8 @@
- irq->handler = andros_timer_interrupt;
- irq->flags |= SA_INTERRUPT | SA_SHIRQ;
- printk("setting up timer in hp_time_init\n");
-- setup_irq(ASIC_IRQ_NUMBER, irq);
--
-+ setup_irq(ASIC_IRQ_NUMBER, irq);
-+
- // enable timer interrupt
- *((volatile unsigned int*)0xbfea0000) = 0x20;
-
-@@ -98,7 +98,7 @@
-
- *((volatile unsigned int*)0xbff610a0) |= 1; // turn on timer0
-
-- } else if (GetAsicId() == UnknownAsic)
-+ } else if (GetAsicId() == UnknownAsic)
- printk("Unknown asic in hp_time_init()\n");
- else
- printk("Unsupported asic in hp_time_init()\n");
-@@ -107,7 +107,7 @@
-
- static void hplj_restart(void)
- {
-- if (GetAsicId() == AndrosAsic)
-+ if (GetAsicId() == AndrosAsic)
- *((volatile unsigned int *) 0xbfe900c0) = 0;
-
-
-diff -urNd -urNd linux-2.4.20/arch/mips/hp-lj/utils.c linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/utils.c
---- linux-2.4.20/arch/mips/hp-lj/utils.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/hp-lj/utils.c 2002-08-05 18:53:32.000000000 -0500
-@@ -20,11 +20,11 @@
-
- unsigned long cfg[10],i,total_mem=0;
-
-- for(i=0;i<10;i++)
-- cfg[i] = *miu_chan_cfg(i);
-+ for(i=0;i<10;i++)
-+ cfg[i] = *miu_chan_cfg(i);
-
- for(i=0;i<10;i++){
-- if(cfg[i]==0x1fc160c2) continue; // skip empties
-+ if(cfg[i]==0x1fc160c2) continue; // skip empties
- if( ( (cfg[i]>>12) & 0xf ) <= 0xb ) continue; // skip roms
- total_mem += mbsize[(cfg[i]>>16)&0x7] *1024*1024;
- }
-@@ -43,19 +43,19 @@
-
- #define MIN_GEN_MEM (4 << 20)
-
--
--void reserve_buffer(const char* cl, ulong base_mem)
-+
-+void reserve_buffer(const char* cl, ulong base_mem)
- {
- char* pos = strstr(cl, "reserved_buffer=");
- if (pos) {
-- buffer_size = simple_strtol(pos+strlen("reserved_buffer="),
-+ buffer_size = simple_strtol(pos+strlen("reserved_buffer="),
- 0, 10);
- buffer_size <<= 20;
- if (buffer_size + MIN_GEN_MEM > base_mem)
- buffer_size = base_mem - MIN_GEN_MEM;
-- if (buffer_size > 0)
-+ if (buffer_size > 0)
- buffer_ptr = (ulong*)(base_mem - buffer_size);
-- else
-+ else
- buffer_size = 0;
- }
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Entries
---- linux-2.4.20/arch/mips/ite-boards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,3 @@
-+D/generic////
-+D/ivr////
-+D/qed-4n-s01b////
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Repository
---- linux-2.4.20/arch/mips/ite-boards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ite-boards
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Root
---- linux-2.4.20/arch/mips/ite-boards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Tag
---- linux-2.4.20/arch/mips/ite-boards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Entries
---- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.2/Sun Mar 18 13:52:36 2001/-ko/Tlinux_2_4_20
-+/int-handler.S/1.2.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.7.2.4/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+/it8172_cir.c/1.2/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
-+/it8172_pci.c/1.5.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/it8172_rtc.c/1.3/Sun Mar 18 04:30:27 2001/-ko/Tlinux_2_4_20
-+/it8172_setup.c/1.7.2.3/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+/lpc.c/1.2.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pmon_prom.c/1.3.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/puts.c/1.3/Sun Mar 18 13:52:36 2001/-ko/Tlinux_2_4_20
-+/reset.c/1.4.2.1/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+/time.c/1.3.2.6/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Repository
---- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ite-boards/generic
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Root
---- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Tag
---- linux-2.4.20/arch/mips/ite-boards/generic/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/.cvsignore
---- linux-2.4.20/arch/mips/ite-boards/generic/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/.cvsignore 2001-02-21 07:30:36.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/int-handler.S
---- linux-2.4.20/arch/mips/ite-boards/generic/int-handler.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/int-handler.S 2002-08-05 18:53:32.000000000 -0500
-@@ -30,11 +30,11 @@
- jal local_timer_interrupt
- j ret_from_irq
- nop
--
-+
- 1:
- andi a0, t0, CAUSEF_IP2 # the only int we expect at this time
-- beq a0, zero, 3f
-- move a0,sp
-+ beq a0, zero, 3f
-+ move a0,sp
- jal it8172_hw0_irqdispatch
-
- mfc0 t0,CP0_STATUS # disable interrupts
-@@ -44,12 +44,12 @@
- nop
- nop
- nop
--
-+
- la a1, ret_from_irq
- jr a1
- nop
--
--3:
-+
-+3:
- move a0, sp
- jal mips_spurious_interrupt
- nop
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/irq.c
---- linux-2.4.20/arch/mips/ite-boards/generic/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/irq.c 2002-12-01 18:24:47.000000000 -0600
-@@ -7,7 +7,7 @@
- * Author: MontaVista Software, Inc.
- * ppopov@mvista.com or source@mvista.com
- *
-- * Part of this file was derived from Carsten Langgaard's
-+ * Part of this file was derived from Carsten Langgaard's
- * arch/mips/mips-boards/atlas/atlas_int.c.
- *
- * Carsten Langgaard, carstenl@mips.com
-@@ -33,6 +33,7 @@
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-+#include <linux/config.h>
- #include <linux/errno.h>
- #include <linux/init.h>
- #include <linux/kernel_stat.h>
-@@ -89,10 +90,10 @@
- /* Function for careful CP0 interrupt mask access */
- static inline void modify_cp0_intmask(unsigned clr_mask, unsigned set_mask)
- {
-- unsigned long status = read_32bit_cp0_register(CP0_STATUS);
-+ unsigned long status = read_c0_status();
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
-- write_32bit_cp0_register(CP0_STATUS, status);
-+ write_c0_status(status);
- }
-
- static inline void mask_irq(unsigned int irq_nr)
-@@ -131,28 +132,28 @@
- if ( (irq_nr >= IT8172_LPC_IRQ_BASE) && (irq_nr <= IT8172_SERIRQ_15)) {
- /* LPC interrupt */
- DPRINTK("DB lpc_mask %x\n", it8172_hw0_icregs->lpc_mask);
-- it8172_hw0_icregs->lpc_mask |=
-+ it8172_hw0_icregs->lpc_mask |=
- (1 << (irq_nr - IT8172_LPC_IRQ_BASE));
- DPRINTK("DA lpc_mask %x\n", it8172_hw0_icregs->lpc_mask);
- }
- else if ( (irq_nr >= IT8172_LB_IRQ_BASE) && (irq_nr <= IT8172_IOCHK_IRQ)) {
- /* Local Bus interrupt */
- DPRINTK("DB lb_mask %x\n", it8172_hw0_icregs->lb_mask);
-- it8172_hw0_icregs->lb_mask |=
-+ it8172_hw0_icregs->lb_mask |=
- (1 << (irq_nr - IT8172_LB_IRQ_BASE));
- DPRINTK("DA lb_mask %x\n", it8172_hw0_icregs->lb_mask);
- }
- else if ( (irq_nr >= IT8172_PCI_DEV_IRQ_BASE) && (irq_nr <= IT8172_DMA_IRQ)) {
- /* PCI and other interrupts */
- DPRINTK("DB pci_mask %x\n", it8172_hw0_icregs->pci_mask);
-- it8172_hw0_icregs->pci_mask |=
-+ it8172_hw0_icregs->pci_mask |=
- (1 << (irq_nr - IT8172_PCI_DEV_IRQ_BASE));
- DPRINTK("DA pci_mask %x\n", it8172_hw0_icregs->pci_mask);
- }
- else if ( (irq_nr >= IT8172_NMI_IRQ_BASE) && (irq_nr <= IT8172_POWER_NMI_IRQ)) {
- /* NMI interrupts */
- DPRINTK("DB nmi_mask %x\n", it8172_hw0_icregs->nmi_mask);
-- it8172_hw0_icregs->nmi_mask |=
-+ it8172_hw0_icregs->nmi_mask |=
- (1 << (irq_nr - IT8172_NMI_IRQ_BASE));
- DPRINTK("DA nmi_mask %x\n", it8172_hw0_icregs->nmi_mask);
- }
-@@ -167,28 +168,28 @@
- if ( (irq_nr >= IT8172_LPC_IRQ_BASE) && (irq_nr <= IT8172_SERIRQ_15)) {
- /* LPC interrupt */
- DPRINTK("EB before lpc_mask %x\n", it8172_hw0_icregs->lpc_mask);
-- it8172_hw0_icregs->lpc_mask &=
-+ it8172_hw0_icregs->lpc_mask &=
- ~(1 << (irq_nr - IT8172_LPC_IRQ_BASE));
- DPRINTK("EA after lpc_mask %x\n", it8172_hw0_icregs->lpc_mask);
- }
- else if ( (irq_nr >= IT8172_LB_IRQ_BASE) && (irq_nr <= IT8172_IOCHK_IRQ)) {
- /* Local Bus interrupt */
- DPRINTK("EB lb_mask %x\n", it8172_hw0_icregs->lb_mask);
-- it8172_hw0_icregs->lb_mask &=
-+ it8172_hw0_icregs->lb_mask &=
- ~(1 << (irq_nr - IT8172_LB_IRQ_BASE));
- DPRINTK("EA lb_mask %x\n", it8172_hw0_icregs->lb_mask);
- }
- else if ( (irq_nr >= IT8172_PCI_DEV_IRQ_BASE) && (irq_nr <= IT8172_DMA_IRQ)) {
- /* PCI and other interrupts */
- DPRINTK("EB pci_mask %x\n", it8172_hw0_icregs->pci_mask);
-- it8172_hw0_icregs->pci_mask &=
-+ it8172_hw0_icregs->pci_mask &=
- ~(1 << (irq_nr - IT8172_PCI_DEV_IRQ_BASE));
- DPRINTK("EA pci_mask %x\n", it8172_hw0_icregs->pci_mask);
- }
- else if ( (irq_nr >= IT8172_NMI_IRQ_BASE) && (irq_nr <= IT8172_POWER_NMI_IRQ)) {
- /* NMI interrupts */
- DPRINTK("EB nmi_mask %x\n", it8172_hw0_icregs->nmi_mask);
-- it8172_hw0_icregs->nmi_mask &=
-+ it8172_hw0_icregs->nmi_mask &=
- ~(1 << (irq_nr - IT8172_NMI_IRQ_BASE));
- DPRINTK("EA nmi_mask %x\n", it8172_hw0_icregs->nmi_mask);
- }
-@@ -200,7 +201,7 @@
- static unsigned int startup_ite_irq(unsigned int irq)
- {
- enable_it8172_irq(irq);
-- return 0;
-+ return 0;
- }
-
- #define shutdown_ite_irq disable_it8172_irq
-@@ -282,15 +283,15 @@
- it8172_hw0_icregs->lb_level |= 0x20;
-
- /* keyboard and mouse are edge triggered */
-- it8172_hw0_icregs->lpc_trigger |= (0x2 | 0x1000);
-+ it8172_hw0_icregs->lpc_trigger |= (0x2 | 0x1000);
-
-
- #if 0
- // Enable this piece of code to make internal USB interrupt
- // edge triggered.
-- it8172_hw0_icregs->pci_trigger |=
-+ it8172_hw0_icregs->pci_trigger |=
- (1 << (IT8172_USB_IRQ - IT8172_PCI_DEV_IRQ_BASE));
-- it8172_hw0_icregs->pci_level &=
-+ it8172_hw0_icregs->pci_level &=
- ~(1 << (IT8172_USB_IRQ - IT8172_PCI_DEV_IRQ_BASE));
- #endif
-
-@@ -298,13 +299,13 @@
- irq_desc[i].handler = &it8172_irq_type;
- }
- irq_desc[MIPS_CPU_TIMER_IRQ].handler = &cp0_irq_type;
-- set_cp0_status(ALLINTS_NOTIMER);
-+ set_c0_status(ALLINTS_NOTIMER);
-
- #ifdef CONFIG_REMOTE_DEBUG
- /* If local serial I/O used for debug port, enter kgdb at once */
- puts("Waiting for kgdb to connect...");
- set_debug_traps();
-- breakpoint();
-+ breakpoint();
- #endif
- }
-
-@@ -316,8 +317,8 @@
- unsigned long status, cause;
-
- printk("got spurious interrupt\n");
-- status = read_32bit_cp0_register(CP0_STATUS);
-- cause = read_32bit_cp0_register(CP0_CAUSE);
-+ status = read_c0_status();
-+ cause = read_c0_cause();
- printk("status %x cause %x\n", status, cause);
- printk("epc %x badvaddr %x \n", regs->cp0_epc, regs->cp0_badvaddr);
- // while(1);
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/it8172_pci.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_pci.c
---- linux-2.4.20/arch/mips/ite-boards/generic/it8172_pci.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_pci.c 2002-08-05 18:53:32.000000000 -0500
-@@ -53,14 +53,14 @@
- static struct resource pci_mem_resource_1;
-
- static struct resource pci_io_resource = {
-- "io pci IO space",
-+ "io pci IO space",
- 0x14000000,
- 0x17FFFFFF,
- IORESOURCE_IO
- };
-
- static struct resource pci_mem_resource_0 = {
-- "ext pci memory space 0/1",
-+ "ext pci memory space 0/1",
- 0x0C000000,
- 0x13FFFFFF,
- IORESOURCE_MEM,
-@@ -70,7 +70,7 @@
- };
-
- static struct resource pci_mem_resource_1 = {
-- "ext pci memory space 2/3",
-+ "ext pci memory space 2/3",
- 0x1A000000,
- 0x1FBFFFFF,
- IORESOURCE_MEM,
-@@ -90,7 +90,7 @@
- it8172_pcibios_config_access(unsigned char access_type, struct pci_dev *dev,
- unsigned char where, u32 *data)
- {
-- /*
-+ /*
- * config cycles are on 4 byte boundary only
- */
- unsigned char bus = dev->bus->number;
-@@ -100,13 +100,13 @@
- access_type, dev, bus, dev_fn, *data);
-
- /* Setup address */
-- IT_WRITE(IT_CONFADDR, (bus << IT_BUSNUM_SHF) |
-+ IT_WRITE(IT_CONFADDR, (bus << IT_BUSNUM_SHF) |
- (dev_fn << IT_FUNCNUM_SHF) | (where & ~0x3));
-
-
- if (access_type == PCI_ACCESS_WRITE) {
- IT_WRITE(IT_CONFDATA, *data);
-- }
-+ }
- else {
- IT_READ(IT_CONFDATA, *data);
- }
-@@ -133,7 +133,7 @@
- return -1;
-
- *val = (data >> ((where & 3) << 3)) & 0xff;
-- DBG("cfg read byte: bus %d dev_fn %x where %x: val %x\n",
-+ DBG("cfg read byte: bus %d dev_fn %x where %x: val %x\n",
- dev->bus->number, dev->devfn, where, *val);
-
- return PCIBIOS_SUCCESSFUL;
-@@ -152,7 +152,7 @@
- return -1;
-
- *val = (data >> ((where & 3) << 3)) & 0xffff;
-- DBG("cfg read word: bus %d dev_fn %x where %x: val %x\n",
-+ DBG("cfg read word: bus %d dev_fn %x where %x: val %x\n",
- dev->bus->number, dev->devfn, where, *val);
-
- return PCIBIOS_SUCCESSFUL;
-@@ -165,12 +165,12 @@
-
- if (where & 3)
- return PCIBIOS_BAD_REGISTER_NUMBER;
--
-+
- if (it8172_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
- return -1;
-
- *val = data;
-- DBG("cfg read dword: bus %d dev_fn %x where %x: val %x\n",
-+ DBG("cfg read dword: bus %d dev_fn %x where %x: val %x\n",
- dev->bus->number, dev->devfn, where, *val);
-
- return PCIBIOS_SUCCESSFUL;
-@@ -181,7 +181,7 @@
- write_config_byte (struct pci_dev *dev, int where, u8 val)
- {
- u32 data = 0;
--
-+
- if (it8172_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
- return -1;
-
-@@ -201,11 +201,11 @@
-
- if (where & 1)
- return PCIBIOS_BAD_REGISTER_NUMBER;
--
-+
- if (it8172_pcibios_config_access(PCI_ACCESS_READ, dev, where, &data))
- return -1;
-
-- data = (data & ~(0xffff << ((where & 3) << 3))) |
-+ data = (data & ~(0xffff << ((where & 3) << 3))) |
- (val << ((where & 3) << 3));
-
- if (it8172_pcibios_config_access(PCI_ACCESS_WRITE, dev, where, &data))
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/it8172_setup.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_setup.c
---- linux-2.4.20/arch/mips/ite-boards/generic/it8172_setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/it8172_setup.c 2002-12-01 18:24:47.000000000 -0600
-@@ -40,6 +40,7 @@
- #include <asm/irq.h>
- #include <asm/mipsregs.h>
- #include <asm/reboot.h>
-+#include <asm/traps.h>
- #include <asm/it8172/it8172.h>
- #include <asm/it8712.h>
- #ifdef CONFIG_PC_KEYB
-@@ -114,6 +115,9 @@
- #endif
-
-
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+
- void __init it8172_init_ram_resource(unsigned long memsize)
- {
- it8172_resources.ram.end = memsize;
-@@ -131,9 +135,9 @@
- argptr = prom_getcmdline();
- strcat(argptr, " console=ttyS0,115200");
- }
--#endif
-+#endif
-
-- clear_cp0_status(ST0_FR);
-+ clear_c0_status(ST0_FR);
- rtc_ops = &it8172_rtc_ops;
-
- board_time_init = it8172_time_init;
-@@ -146,7 +150,7 @@
- _machine_power_off = it8172_power_off;
-
- /*
-- * IO/MEM resources.
-+ * IO/MEM resources.
- *
- * revisit this area.
- */
-@@ -173,7 +177,7 @@
- dsr &= ~IT_PM_DSR_ACSB;
- #else
- dsr |= IT_PM_DSR_ACSB;
--#endif
-+#endif
- #ifdef CONFIG_BLK_DEV_IT8172
- dsr &= ~IT_PM_DSR_IDESB;
- ide_ops = &std_ide_ops;
-@@ -209,8 +213,8 @@
- LPCSetConfig(0x4, 0x30, 0x1);
- LPCSetConfig(0x4, 0xf4, LPCGetConfig(0x4, 0xf4) | 0x80);
-
-- if ((LPCGetConfig(LDN_KEYBOARD, 0x30) == 0) ||
-- (LPCGetConfig(LDN_MOUSE, 0x30) == 0))
-+ if ((LPCGetConfig(LDN_KEYBOARD, 0x30) == 0) ||
-+ (LPCGetConfig(LDN_MOUSE, 0x30) == 0))
- printk("Error: keyboard or mouse not enabled\n");
-
- kbd_ops = &std_kbd_ops;
-@@ -234,7 +238,7 @@
- #endif
- #ifdef CONFIG_IT8172_SCR0
- {
-- unsigned i;
-+ unsigned i;
- /* Enable Smart Card Reader 0 */
- /* First power it up */
- IT_IO_READ16(IT_PM_DSR, i);
-@@ -253,7 +257,7 @@
- #endif /* CONFIG_IT8172_SCR0 */
- #ifdef CONFIG_IT8172_SCR1
- {
-- unsigned i;
-+ unsigned i;
- /* Enable Smart Card Reader 1 */
- /* First power it up */
- IT_IO_READ16(IT_PM_DSR, i);
-@@ -275,7 +279,7 @@
-
- #ifdef CONFIG_PC_KEYB
- /*
-- * According to the ITE Special BIOS Note for waking up the
-+ * According to the ITE Special BIOS Note for waking up the
- * keyboard controller...
- */
- int init_8712_keyboard()
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/lpc.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/lpc.c
---- linux-2.4.20/arch/mips/ite-boards/generic/lpc.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/lpc.c 2002-08-05 18:53:32.000000000 -0500
-@@ -62,7 +62,7 @@
- LPCEnterMBPnP(); // Enter IT8712 MB PnP mode
- outb(0x07, LPC_KEY_ADDR);
- outb(LdnNumber, LPC_DATA_ADDR);
-- outb(Index, LPC_KEY_ADDR);
-+ outb(Index, LPC_KEY_ADDR);
- outb(data, LPC_DATA_ADDR);
- LPCExitMBPnP();
- }
-@@ -74,7 +74,7 @@
- LPCEnterMBPnP(); // Enter IT8712 MB PnP mode
- outb(0x07, LPC_KEY_ADDR);
- outb(LdnNumber, LPC_DATA_ADDR);
-- outb(Index, LPC_KEY_ADDR);
-+ outb(Index, LPC_KEY_ADDR);
- rtn = inb(LPC_DATA_ADDR);
- LPCExitMBPnP();
- return rtn;
-@@ -92,7 +92,7 @@
- Id2 = inb(LPC_DATA_ADDR);
- Id = (Id1 << 8) | Id2;
- LPCExitMBPnP();
-- if (Id == 0x8712)
-+ if (Id == 0x8712)
- return TRUE;
- else
- return FALSE;
-@@ -104,30 +104,30 @@
- unsigned long data;
-
- bus = 0;
-- dev_fn = 1<<3 | 4;
-+ dev_fn = 1<<3 | 4;
-
-
- /* pci cmd, SERR# Enable */
-- IT_WRITE(IT_CONFADDR,
-+ IT_WRITE(IT_CONFADDR,
- (bus << IT_BUSNUM_SHF) |
- (dev_fn << IT_FUNCNUM_SHF) |
- ((0x4 / 4) << IT_REGNUM_SHF));
- IT_READ(IT_CONFDATA, data);
- data |= 0x0100;
-- IT_WRITE(IT_CONFADDR,
-+ IT_WRITE(IT_CONFADDR,
- (bus << IT_BUSNUM_SHF) |
- (dev_fn << IT_FUNCNUM_SHF) |
- ((0x4 / 4) << IT_REGNUM_SHF));
- IT_WRITE(IT_CONFDATA, data);
-
- /* setup serial irq control register */
-- IT_WRITE(IT_CONFADDR,
-+ IT_WRITE(IT_CONFADDR,
- (bus << IT_BUSNUM_SHF) |
- (dev_fn << IT_FUNCNUM_SHF) |
- ((0x48 / 4) << IT_REGNUM_SHF));
- IT_READ(IT_CONFDATA, data);
- data = (data & 0xffff00ff) | 0xc400;
-- IT_WRITE(IT_CONFADDR,
-+ IT_WRITE(IT_CONFADDR,
- (bus << IT_BUSNUM_SHF) |
- (dev_fn << IT_FUNCNUM_SHF) |
- ((0x48 / 4) << IT_REGNUM_SHF));
-@@ -136,7 +136,7 @@
-
- /* Enable I/O Space Subtractive Decode */
- /* default 0x4C is 0x3f220000 */
-- IT_WRITE(IT_CONFADDR,
-+ IT_WRITE(IT_CONFADDR,
- (bus << IT_BUSNUM_SHF) |
- (dev_fn << IT_FUNCNUM_SHF) |
- ((0x4C / 4) << IT_REGNUM_SHF));
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/Makefile
---- linux-2.4.20/arch/mips/ite-boards/generic/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/Makefile 2002-08-05 18:53:32.000000000 -0500
-@@ -10,10 +10,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- all: it8172.o
-
-@@ -22,7 +19,7 @@
- obj-y := it8172_rtc.o it8172_setup.o irq.o int-handler.o pmon_prom.o time.o lpc.o puts.o reset.o
-
- obj-$(CONFIG_PCI) += it8172_pci.o
--obj-$(CONFIG_IT8172_CIR) += it8172_cir.o
--obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
-+obj-$(CONFIG_IT8172_CIR) += it8172_cir.o
-+obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/pmon_prom.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/pmon_prom.c
---- linux-2.4.20/arch/mips/ite-boards/generic/pmon_prom.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/pmon_prom.c 2002-08-05 18:53:32.000000000 -0500
-@@ -8,7 +8,7 @@
- * Author: MontaVista Software, Inc.
- * ppopov@mvista.com or source@mvista.com
- *
-- * This file was derived from Carsten Langgaard's
-+ * This file was derived from Carsten Langgaard's
- * arch/mips/mips-boards/xx files.
- *
- * Carsten Langgaard, carstenl@mips.com
-@@ -128,11 +128,11 @@
- memsize_str = prom_getenv("memsize");
- if (!memsize_str) {
- #ifdef CONFIG_MIPS_ITE8172
-- memsize = 32;
-+ memsize = 32;
- #elif defined(CONFIG_MIPS_IVR)
-- memsize = 64;
-+ memsize = 64;
- #else
-- memsize = 8;
-+ memsize = 8;
- #endif
- printk("memsize unknown: setting to %dMB\n", memsize);
- } else {
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/reset.c
---- linux-2.4.20/arch/mips/ite-boards/generic/reset.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/reset.c 2002-12-01 18:24:47.000000000 -0600
-@@ -38,10 +38,10 @@
-
- void it8172_restart()
- {
-- set_cp0_status(ST0_BEV | ST0_ERL);
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ set_c0_status(ST0_BEV | ST0_ERL);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
- __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/generic/time.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/time.c
---- linux-2.4.20/arch/mips/ite-boards/generic/time.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/generic/time.c 2002-12-01 18:24:47.000000000 -0600
-@@ -22,8 +22,6 @@
- * Setting up the clock on the MIPS boards.
- *
- */
--
--#include <linux/config.h>
- #include <linux/init.h>
- #include <linux/kernel_stat.h>
- #include <linux/sched.h>
-@@ -41,9 +39,9 @@
- extern unsigned int mips_counter_frequency;
- extern asmlinkage unsigned int do_IRQ(int irq, struct pt_regs *regs);
-
--/*
-+/*
- * Figure out the r4k offset, the amount to increment the compare
-- * register for each time tick.
-+ * register for each time tick.
- * Use the RTC to calculate offset.
- */
- static unsigned long __init cal_r4koff(void)
-@@ -57,17 +55,17 @@
- while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
-
- /* Start r4k counter. */
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
-
- /* Read counter exactly on falling edge of update flag */
- while (CMOS_READ(RTC_REG_A) & RTC_UIP);
- while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
-
-- mips_counter_frequency = read_32bit_cp0_register(CP0_COUNT);
-+ mips_counter_frequency = read_c0_count();
-
- /* restore interrupts */
- __restore_flags(flags);
--
-+
- return (mips_counter_frequency / HZ);
- }
-
-@@ -91,7 +89,7 @@
- if ((hour & 0xf) == 0xc)
- hour &= 0x80;
- if (hour & 0x80)
-- hour = (hour & 0xf) + 12;
-+ hour = (hour & 0xf) + 12;
- }
- day = CMOS_READ(RTC_DAY_OF_MONTH);
- mon = CMOS_READ(RTC_MONTH);
-@@ -111,17 +109,17 @@
- unsigned int est_freq, flags;
-
- __save_and_cli(flags);
-- /* Set Data mode - binary. */
-+ /* Set Data mode - binary. */
- CMOS_WRITE(CMOS_READ(RTC_CONTROL) | RTC_DM_BINARY, RTC_CONTROL);
-
- printk("calculating r4koff... ");
- r4k_offset = cal_r4koff();
- printk("%08lx(%d)\n", r4k_offset, (int) r4k_offset);
-
-- est_freq = 2*r4k_offset*HZ;
-+ est_freq = 2*r4k_offset*HZ;
- est_freq += 5000; /* round */
- est_freq -= est_freq%10000;
-- printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
-+ printk("CPU frequency %d.%02d MHz\n", est_freq/1000000,
- (est_freq%1000000)*100/1000000);
- __restore_flags(flags);
- }
-@@ -136,12 +134,7 @@
- setup_irq(MIPS_CPU_TIMER_IRQ, irq);
-
- /* to generate the first timer interrupt */
-- r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-- write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-- set_cp0_status(ALLINTS);
--}
--
--void local_timer_interrupt(struct pt_regs *regs)
--{
-- do_IRQ(MIPS_CPU_TIMER_IRQ, regs);
-+ r4k_cur = (read_c0_count() + r4k_offset);
-+ write_c0_compare(r4k_cur);
-+ set_c0_status(ALLINTS);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Entries
---- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.2.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/README/1.1.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.3/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.3.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Repository
---- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ite-boards/ivr
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Root
---- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Tag
---- linux-2.4.20/arch/mips/ite-boards/ivr/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/init.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/init.c
---- linux-2.4.20/arch/mips/ite-boards/ivr/init.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/init.c 2002-08-05 18:53:32.000000000 -0500
-@@ -27,14 +27,12 @@
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--
- #include <linux/init.h>
- #include <linux/mm.h>
- #include <linux/sched.h>
- #include <linux/bootmem.h>
- #include <asm/addrspace.h>
- #include <asm/bootinfo.h>
--#include <linux/config.h>
- #include <linux/string.h>
- #include <linux/kernel.h>
- #include <linux/sched.h>
-@@ -81,7 +79,7 @@
- * make the entire physical memory visible to pci bus masters
- */
- IT_READ(IT_MC_PCICR, pcicr);
-- pcicr &= ~0x1f;
-+ pcicr &= ~0x1f;
- pcicr |= (mem_size - 1) >> 22;
- IT_WRITE(IT_MC_PCICR, pcicr);
-
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/Makefile
---- linux-2.4.20/arch/mips/ite-boards/ivr/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/Makefile 2002-08-05 18:53:32.000000000 -0500
-@@ -11,17 +11,14 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- all: ivr.o
-
- O_TARGET := ivr.o
-
--obj-y := init.o
-+obj-y := init.o
-
--obj-$(CONFIG_PCI) += pci_fixup.o
-+obj-$(CONFIG_PCI) += pci_fixup.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/pci_fixup.c
---- linux-2.4.20/arch/mips/ite-boards/ivr/pci_fixup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/pci_fixup.c 2002-08-05 18:53:32.000000000 -0500
-@@ -74,8 +74,8 @@
- switch (slot) {
- case 0x01:
- /*
-- * Internal device 1 is actually 7 different
-- * internal devices on the IT8172G (multi-function
-+ * Internal device 1 is actually 7 different
-+ * internal devices on the IT8172G (multi-function
- * device).
- */
- if (func < 7)
-@@ -97,7 +97,7 @@
- dev->irq = IT8172_PCI_INTB_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-@@ -118,7 +118,7 @@
- dev->irq = IT8172_PCI_INTD_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-@@ -139,7 +139,7 @@
- dev->irq = IT8172_PCI_INTD_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/ivr/README linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/README
---- linux-2.4.20/arch/mips/ite-boards/ivr/README 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/ivr/README 2002-08-05 18:53:32.000000000 -0500
-@@ -1,3 +1,3 @@
--This is not really a board made by ITE Semi, but it's very
-+This is not really a board made by ITE Semi, but it's very
- similar to the ITE QED-4N-S01B board. The IVR board is made
- by Globespan and it's a reference board for the PVR chip.
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Entries 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.2/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/README/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
-+/init.c/1.2.2.3/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.3.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ite-boards/qed-4n-s01b
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Root
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/CVS/Tag 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/.cvsignore
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/.cvsignore 2001-02-21 07:30:36.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/init.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/init.c
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/init.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/init.c 2002-08-05 18:53:32.000000000 -0500
-@@ -27,14 +27,12 @@
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--
- #include <linux/init.h>
- #include <linux/mm.h>
- #include <linux/sched.h>
- #include <linux/bootmem.h>
- #include <asm/addrspace.h>
- #include <asm/bootinfo.h>
--#include <linux/config.h>
- #include <linux/string.h>
- #include <linux/kernel.h>
- #include <linux/sched.h>
-@@ -82,7 +80,7 @@
- * make the entire physical memory visible to pci bus masters
- */
- IT_READ(IT_MC_PCICR, pcicr);
-- pcicr &= ~0x1f;
-+ pcicr &= ~0x1f;
- pcicr |= (mem_size - 1) >> 22;
- IT_WRITE(IT_MC_PCICR, pcicr);
-
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/Makefile
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/Makefile 2002-08-05 18:53:32.000000000 -0500
-@@ -11,14 +11,11 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET := ite.o
-
--obj-y := init.o
-+obj-y := init.o
-
- obj-$(CONFIG_PCI) += pci_fixup.o
- obj-$(CONFIG_BLK_DEV_INITRD) += le_ramdisk.o
-diff -urNd -urNd linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c
---- linux-2.4.20/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ite-boards/qed-4n-s01b/pci_fixup.c 2002-08-05 18:53:32.000000000 -0500
-@@ -75,7 +75,7 @@
- switch (slot) {
- case 0x01:
- /*
-- * Internal device 1 is actually 7 different
-+ * Internal device 1 is actually 7 different
- * internal devices on the IT8172G (a multi-
- * function device).
- */
-@@ -97,7 +97,7 @@
- dev->irq = IT8172_PCI_INTD_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-@@ -117,7 +117,7 @@
- dev->irq = IT8172_PCI_INTD_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-@@ -137,7 +137,7 @@
- dev->irq = IT8172_PCI_INTA_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-@@ -157,7 +157,7 @@
- dev->irq = IT8172_PCI_INTB_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-@@ -177,7 +177,7 @@
- dev->irq = IT8172_PCI_INTC_IRQ;
- break;
- default:
-- dev->irq = 0xff;
-+ dev->irq = 0xff;
- break;
-
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Entries
---- linux-2.4.20/arch/mips/jazz/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Entries 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:30 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.9.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/floppy-jazz.c/1.4.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.16.2.1/Mon Aug 5 23:53:32 2002/-ko/Tlinux_2_4_20
-+/io.c/1.3/Sat Oct 9 00:00:58 1999/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.1/Mon Dec 17 20:14:47 2001/-ko/Tlinux_2_4_20
-+/jazzdma.c/1.9/Mon Feb 26 00:44:39 2001/-ko/Tlinux_2_4_20
-+/kbd-jazz.c/1.2.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.4.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/rtc-jazz.c/1.4/Sun Mar 18 04:30:27 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.29.2.3/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Repository
---- linux-2.4.20/arch/mips/jazz/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Repository 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/jazz
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Root
---- linux-2.4.20/arch/mips/jazz/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Root 2005-01-06 23:00:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Tag
---- linux-2.4.20/arch/mips/jazz/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/CVS/Tag 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/jazz/.cvsignore
---- linux-2.4.20/arch/mips/jazz/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/.cvsignore 1998-03-17 16:07:30.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/floppy-jazz.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/floppy-jazz.c
---- linux-2.4.20/arch/mips/jazz/floppy-jazz.c 2000-05-13 10:29:14.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/floppy-jazz.c 2002-08-05 18:53:32.000000000 -0500
-@@ -1,5 +1,4 @@
--/* $Id: floppy-jazz.c,v 1.2 1998/10/18 13:18:25 tsbogend Exp $
-- *
-+/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
-@@ -108,9 +107,9 @@
-
- static void jazz_fd_dma_mem_free(unsigned long addr,
- unsigned long size)
--{
-+{
- vdma_free(vdma_phys2log(PHYSADDR(addr)));
-- free_pages(addr, get_order(size));
-+ free_pages(addr, get_order(size));
- }
-
- static unsigned long jazz_fd_drive_type(unsigned long n)
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/jazz/int-handler.S
---- linux-2.4.20/arch/mips/jazz/int-handler.S 2000-05-13 10:29:14.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/int-handler.S 2002-08-05 18:53:32.000000000 -0500
-@@ -1,5 +1,4 @@
--/* $Id: int-handler.S,v 1.14 1999/05/01 22:40:34 ralf Exp $
-- *
-+/*
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
-@@ -251,14 +250,14 @@
-
- nor s1,zero,s1
- jal do_IRQ
--
-+
- /*
- * Reenable interrupt
- */
- lhu t2,JAZZ_IO_IRQ_ENABLE
- or t2,s1
- sh t2,JAZZ_IO_IRQ_ENABLE
--
-+
- j ret_from_irq
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/irq.c
---- linux-2.4.20/arch/mips/jazz/irq.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/irq.c 2001-12-17 14:14:47.000000000 -0600
-@@ -8,7 +8,6 @@
- */
- #include <linux/delay.h>
- #include <linux/init.h>
--#include <linux/irq.h>
- #include <linux/interrupt.h>
- #include <linux/kernel.h>
- #include <linux/spinlock.h>
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/kbd-jazz.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/kbd-jazz.c
---- linux-2.4.20/arch/mips/jazz/kbd-jazz.c 2000-05-13 10:29:14.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/kbd-jazz.c 2002-08-05 18:53:33.000000000 -0500
-@@ -1,5 +1,4 @@
--/* $Id: kbd-jazz.c,v 1.1 1998/10/28 12:38:10 ralf Exp $
-- *
-+/*
- * Low-level hardware access stuff for Jazz family machines.
- *
- * This file is subject to the terms and conditions of the GNU General Public
-@@ -39,20 +38,20 @@
- static int jazz_aux_request_irq(void (*handler)(int, void *, struct pt_regs *))
- {
- int ret;
--
-+
- ret = request_irq(JAZZ_MOUSE_IRQ, handler, 0, "PS/2 Mouse", NULL);
- if (ret != 0)
- return ret;
-
-- r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
-- r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) |
-+ r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
-+ r4030_read_reg16(JAZZ_IO_IRQ_ENABLE) |
- JAZZ_IE_MOUSE);
- return 0;
- }
-
- static void jazz_aux_free_irq(void)
- {
-- r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
-+ r4030_write_reg16(JAZZ_IO_IRQ_ENABLE,
- r4030_read_reg16(JAZZ_IO_IRQ_ENABLE)
- | JAZZ_IE_MOUSE);
- free_irq(JAZZ_MOUSE_IRQ, NULL);
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/jazz/Makefile
---- linux-2.4.20/arch/mips/jazz/Makefile 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $@
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $@
-+USE_STANDARD_AS_RULE := true
-
- all: jazz.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/reset.c
---- linux-2.4.20/arch/mips/jazz/reset.c 2000-05-13 10:29:14.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/reset.c 2002-08-05 18:53:33.000000000 -0500
-@@ -1,11 +1,6 @@
- /*
-- * linux/arch/mips/jazz/process.c
-- *
-- * Reset a Jazz machine.
-- *
-- * $Id:$
-+ * Reset a Jazz machine.
- */
--
- #include <linux/sched.h>
- #include <asm/jazz.h>
- #include <asm/io.h>
-@@ -27,7 +22,7 @@
- void jazz_machine_restart(char *command)
- {
- while (1) {
-- kb_wait ();
-+ kb_wait ();
- kbd_write_command (0xd1);
- kb_wait ();
- kbd_write_output (0x00);
-diff -urNd -urNd linux-2.4.20/arch/mips/jazz/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/jazz/setup.c
---- linux-2.4.20/arch/mips/jazz/setup.c 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jazz/setup.c 2002-12-01 18:24:47.000000000 -0600
-@@ -28,6 +28,7 @@
- #include <asm/reboot.h>
- #include <asm/io.h>
- #include <asm/pgtable.h>
-+#include <asm/traps.h>
-
- /*
- * Initial irq handlers.
-@@ -72,7 +73,7 @@
- JAZZ_IE_FLOPPY);
- r4030_read_reg16(JAZZ_IO_IRQ_SOURCE); /* clear pending IRQs */
- r4030_read_reg32(JAZZ_R4030_INVAL_ADDR); /* clear error bits */
-- change_cp0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1);
-+ change_c0_status(ST0_IM, IE_IRQ4 | IE_IRQ3 | IE_IRQ2 | IE_IRQ1);
- /* set the clock to 100 Hz */
- r4030_write_reg32(JAZZ_TIMER_INTERVAL, 9);
- request_region(0x20, 0x20, "pic1");
-@@ -80,14 +81,23 @@
- i8259_setup_irq(2, &irq2);
- }
-
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+
- void __init jazz_setup(void)
- {
-+ /* Map 0xe0000000 -> 0x0:800005C0, 0xe0010000 -> 0x1:30000580 */
- add_wired_entry (0x02000017, 0x03c00017, 0xe0000000, PM_64K);
-+
-+ /* Map 0xe2000000 -> 0x0:900005C0, 0xe3010000 -> 0x0:910005C0 */
- add_wired_entry (0x02400017, 0x02440017, 0xe2000000, PM_16M);
-+
-+ /* Map 0xe4000000 -> 0x0:600005C0, 0xe4100000 -> 400005C0 */
- add_wired_entry (0x01800017, 0x01000017, 0xe4000000, PM_4M);
-
- irq_setup = jazz_irq_setup;
-- mips_io_port_base = JAZZ_PORT_BASE;
-+ set_io_port_base(JAZZ_PORT_BASE);
- if (mips_machtype == MACH_MIPS_MAGNUM_4000)
- EISA_bus = 1;
- isa_slot_offset = 0xe3000000;
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Entries
---- linux-2.4.20/arch/mips/jmr3927/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Entries 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.3/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/puts.c/1.1.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/rtc_ds1742.c/1.1.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Repository
---- linux-2.4.20/arch/mips/jmr3927/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Repository 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/jmr3927/common
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Root
---- linux-2.4.20/arch/mips/jmr3927/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Root 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Tag
---- linux-2.4.20/arch/mips/jmr3927/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/CVS/Tag 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/Makefile
---- linux-2.4.20/arch/mips/jmr3927/common/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET:= tx3927.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/prom.c
---- linux-2.4.20/arch/mips/jmr3927/common/prom.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/prom.c 2002-08-05 18:53:33.000000000 -0500
-@@ -6,11 +6,11 @@
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * Based on arch/mips/au1000/common/prom.c
- *
-- * This file was derived from Carsten Langgaard's
-+ * This file was derived from Carsten Langgaard's
- * arch/mips/mips-boards/xx files.
- *
- * Carsten Langgaard, carstenl@mips.com
-@@ -36,8 +36,6 @@
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--
--#include <linux/config.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
- #include <linux/string.h>
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/puts.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/puts.c
---- linux-2.4.20/arch/mips/jmr3927/common/puts.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/puts.c 2002-08-05 18:53:33.000000000 -0500
-@@ -7,7 +7,7 @@
- * Author: MontaVista Software, Inc.
- * ahennessy@mvista.com or source@mvista.com
- *
-- * Copyright (C) 2000-2001 Toshiba Corporation
-+ * Copyright (C) 2000-2001 Toshiba Corporation
- *
- * Based on arch/mips/au1000/common/puts.c
- *
-@@ -52,7 +52,7 @@
- putch(const unsigned char c)
- {
- int i = 0;
--
-+
- do {
- slow_down();
- i++;
-@@ -69,7 +69,7 @@
- int i = 0;
- int dicr;
- char c;
--
-+
- /* diable RX int. */
- dicr = tx3927_sioptr(1)->dicr;
- tx3927_sioptr(1)->dicr = 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/common/rtc_ds1742.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/rtc_ds1742.c
---- linux-2.4.20/arch/mips/jmr3927/common/rtc_ds1742.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/common/rtc_ds1742.c 2002-08-05 18:53:33.000000000 -0500
-@@ -2,13 +2,13 @@
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * arch/mips/jmr3927/common/rtc_ds1742.c
- * Based on arch/mips/ddb5xxx/common/rtc_ds1386.c
- * low-level RTC hookups for s for Dallas 1742 chip.
- *
-- * Copyright (C) 2000-2001 Toshiba Corporation
-+ * Copyright (C) 2000-2001 Toshiba Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
-@@ -82,7 +82,7 @@
- }
- extern void to_tm(unsigned long tim, struct rtc_time * tm);
-
--static int
-+static int
- rtc_ds1742_set_time(unsigned long t)
- {
- struct rtc_time tm;
-@@ -117,7 +117,7 @@
-
- day = BIN_TO_BCD(tm.tm_mday);
- if (day != cmos_day) {
--
-+
- CMOS_WRITE(day, RTC_DATE);
- }
-
-@@ -144,7 +144,7 @@
- if (second != cmos_second) {
- CMOS_WRITE(second & RTC_SECONDS_MASK,RTC_SECONDS);
- }
--
-+
- /* RTC_CENTURY and RTC_CONTROL share same address... */
- CMOS_WRITE(cmos_century, RTC_CONTROL);
-
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Entries
---- linux-2.4.20/arch/mips/jmr3927/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+D/common////
-+D/rbhma3100////
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Repository
---- linux-2.4.20/arch/mips/jmr3927/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Repository 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/jmr3927
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Root
---- linux-2.4.20/arch/mips/jmr3927/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Root 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Tag
---- linux-2.4.20/arch/mips/jmr3927/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/CVS/Tag 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Entries
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Entries 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.1.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.2/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.1.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.2.2.4/Mon Dec 2 00:24:47 2002/-ko/Tlinux_2_4_20
-+/kgdb_io.c/1.1.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/pci_ops.c/1.1.2.2/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/rtc.c/1.1.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.4/Mon Dec 2 00:24:48 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Repository
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Repository 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/jmr3927/rbhma3100
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Root
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Root 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Tag
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/CVS/Tag 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/init.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/init.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/init.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/init.c 2002-08-05 18:53:33.000000000 -0500
-@@ -2,11 +2,11 @@
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * arch/mips/jmr3927/common/init.c
- *
-- * Copyright (C) 2000-2001 Toshiba Corporation
-+ * Copyright (C) 2000-2001 Toshiba Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
-@@ -66,7 +66,7 @@
- #endif
- prom_argc = argc;
- prom_argv = argv;
-- prom_envp = envp;
-+ prom_envp = envp;
-
- mips_machgroup = MACH_GROUP_TOSHIBA;
-
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/int-handler.S
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/int-handler.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/int-handler.S 2002-08-05 18:53:33.000000000 -0500
-@@ -1,7 +1,7 @@
- /*
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * Based on arch/mips/tsdb/kernel/int-handler.S
- *
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/irq.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/irq.c 2002-12-01 18:24:47.000000000 -0600
-@@ -1,7 +1,7 @@
- /*
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
-@@ -137,7 +137,7 @@
- db_assert(irq < jmr3927_irq_base + JMR3927_NR_IRQ_IRC + JMR3927_NR_IRQ_IOC);
-
- if (irq == JMR3927_IRQ_IRC_TMR0) {
-- jmr3927_tmrptr->tisr = 0; /* ack interrupt */
-+ jmr3927_tmrptr->tisr = 0; /* ack interrupt */
- }
-
- jmr3927_irq_disable(irq);
-@@ -248,33 +248,33 @@
- }
-
- struct tb_irq_space jmr3927_isac_irqspace = {
-- next: NULL,
-- start_irqno: JMR3927_IRQ_ISAC,
-+ .next = NULL,
-+ .start_irqno = JMR3927_IRQ_ISAC,
- nr_irqs : JMR3927_NR_IRQ_ISAC,
-- mask_func: mask_irq_isac,
-- unmask_func: unmask_irq_isac,
-- name: "ISAC",
-- space_id: 0,
-+ .mask_func = mask_irq_isac,
-+ .unmask_func = unmask_irq_isac,
-+ .name = "ISAC",
-+ .space_id = 0,
- can_share : 0
- };
- struct tb_irq_space jmr3927_ioc_irqspace = {
-- next: NULL,
-- start_irqno: JMR3927_IRQ_IOC,
-+ .next = NULL,
-+ .start_irqno = JMR3927_IRQ_IOC,
- nr_irqs : JMR3927_NR_IRQ_IOC,
-- mask_func: mask_irq_ioc,
-- unmask_func: unmask_irq_ioc,
-- name: "IOC",
-- space_id: 0,
-+ .mask_func = mask_irq_ioc,
-+ .unmask_func = unmask_irq_ioc,
-+ .name = "IOC",
-+ .space_id = 0,
- can_share : 1
- };
- struct tb_irq_space jmr3927_irc_irqspace = {
-- next: NULL,
-- start_irqno: JMR3927_IRQ_IRC,
-+ .next = NULL,
-+ .start_irqno = JMR3927_IRQ_IRC,
- nr_irqs : JMR3927_NR_IRQ_IRC,
-- mask_func: mask_irq_irc,
-- unmask_func: unmask_irq_irc,
-- name: "on-chip",
-- space_id: 0,
-+ .mask_func = mask_irq_irc,
-+ .unmask_func = unmask_irq_irc,
-+ .name = "on-chip",
-+ .space_id = 0,
- can_share : 0
- };
-
-@@ -291,7 +291,7 @@
- void jmr3927_irc_irqdispatch(struct pt_regs *regs)
- {
- int irq;
--
-+
- #ifdef CONFIG_TX_BRANCH_LIKELY_BUG_WORKAROUND
- tx_branch_likely_bug_fixup(regs);
- #endif
-@@ -437,7 +437,7 @@
- #endif
-
- /* enable all CPU interrupt bits. */
-- set_cp0_status(ST0_IM); /* IE bit is still 0. */
-+ set_c0_status(ST0_IM); /* IE bit is still 0. */
- }
-
- void (*irq_setup)(void);
-@@ -468,7 +468,7 @@
- NULL /* no affinity stuff for UP */
- };
-
--void
-+void
- jmr3927_irq_init(u32 irq_base)
- {
- extern irq_desc_t irq_desc[];
-@@ -480,7 +480,7 @@
- irq_desc[i].depth = 1;
- irq_desc[i].handler = &jmr3927_irq_controller;
- }
--
-+
- jmr3927_irq_base = irq_base;
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/kgdb_io.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/kgdb_io.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/kgdb_io.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/kgdb_io.c 2002-08-05 18:53:33.000000000 -0500
-@@ -8,7 +8,7 @@
- *
- * Based on arch/mips/ddb5xxx/ddb5477/kgdb_io.c
- *
-- * Copyright (C) 2000-2001 Toshiba Corporation
-+ * Copyright (C) 2000-2001 Toshiba Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
-@@ -52,7 +52,7 @@
- int putDebugChar(unsigned char c)
- {
- int i = 0;
--
-+
- if (!remoteDebugInitialized) {
- remoteDebugInitialized = 1;
- debugInit(38400);
-@@ -75,7 +75,7 @@
- int i = 0;
- int dicr;
- char c;
--
-+
- if (!remoteDebugInitialized) {
- remoteDebugInitialized = 1;
- debugInit(38400);
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/Makefile
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET:= jmr3927.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_fixup.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_fixup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_fixup.c 2002-08-05 18:53:33.000000000 -0500
-@@ -42,7 +42,7 @@
- #ifdef DEBUG
- #define DBG(x...) printk(x)
- #else
--#define DBG(x...)
-+#define DBG(x...)
- #endif
-
- void __init pcibios_fixup_resources(struct pci_dev *dev)
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_ops.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_ops.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/pci_ops.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/pci_ops.c 2002-08-05 18:53:33.000000000 -0500
-@@ -1,15 +1,15 @@
- /***********************************************************************
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
-- * Copyright (C) 2000-2001 Toshiba Corporation
-+ * Copyright (C) 2000-2001 Toshiba Corporation
- *
- * Based on arch/mips/ddb5xxx/ddb5477/pci_ops.c
- *
- * Define the pci_ops for JMR3927.
- *
-- * Much of the code is derived from the original DDB5074 port by
-+ * Much of the code is derived from the original DDB5074 port by
- * Geert Uytterhoeven <geert@sonycom.com>
- *
- * This program is free software; you can redistribute it and/or modify it
-@@ -37,7 +37,6 @@
- #include <linux/pci.h>
- #include <linux/kernel.h>
- #include <linux/init.h>
--#include <linux/config.h>
-
- #include <asm/addrspace.h>
- #include <asm/pci_channel.h>
-@@ -45,13 +44,13 @@
- #include <asm/debug.h>
-
- struct resource pci_io_resource = {
-- "pci IO space",
-+ "pci IO space",
- 0x1000, /* reserve regacy I/O space */
- 0x1000 + JMR3927_PCIIO_SIZE -1,
- IORESOURCE_IO};
-
- struct resource pci_mem_resource = {
-- "pci memory space",
-+ "pci memory space",
- JMR3927_PCIMEM,
- JMR3927_PCIMEM + JMR3927_PCIMEM_SIZE -1,
- IORESOURCE_MEM};
-@@ -66,7 +65,7 @@
- unsigned int pcibios_assign_all_busses(void)
- {
- return 1;
--}
-+}
-
- static int
- mkaddr(unsigned char bus, unsigned char dev_fn, unsigned char where, int *flagsp)
-@@ -107,7 +106,7 @@
- unsigned char bus, func_num;
-
- db_assert((where & 3) == 0);
-- db_assert(where < (1 << 8));
-+ db_assert(where < (1 << 8));
-
- /* check if the bus is top-level */
- if (dev->bus->parent != NULL) {
-@@ -115,7 +114,7 @@
- db_assert(bus != 0);
- } else {
- bus = 0;
-- }
-+ }
-
- func_num = PCI_FUNC(dev->devfn);
- if (mkaddr(bus, dev->devfn, where, &flags))
-@@ -135,7 +134,7 @@
- return PCIBIOS_BAD_REGISTER_NUMBER;
-
- db_assert((where & 3) == 0);
-- db_assert(where < (1 << 8));
-+ db_assert(where < (1 << 8));
-
- /* check if the bus is top-level */
- if (dev->bus->parent != NULL) {
-@@ -143,7 +142,7 @@
- db_assert(bus != 0);
- } else {
- bus = 0;
-- }
-+ }
-
- func_num = PCI_FUNC(dev->devfn);
- if (mkaddr(bus, dev->devfn, where, &flags))
-@@ -163,7 +162,7 @@
- return PCIBIOS_BAD_REGISTER_NUMBER;
-
- db_assert((where & 3) == 0);
-- db_assert(where < (1 << 8));
-+ db_assert(where < (1 << 8));
-
- /* check if the bus is top-level */
- if (dev->bus->parent != NULL) {
-@@ -171,7 +170,7 @@
- db_assert(bus != 0);
- } else {
- bus = 0;
-- }
-+ }
-
- func_num = PCI_FUNC(dev->devfn);
- if (mkaddr(bus, dev->devfn, where, &flags))
-@@ -193,7 +192,7 @@
- db_assert(bus != 0);
- } else {
- bus = 0;
-- }
-+ }
-
- func_num = PCI_FUNC(dev->devfn);
- if (mkaddr(bus, dev->devfn, where, &flags))
-@@ -218,7 +217,7 @@
- db_assert(bus != 0);
- } else {
- bus = 0;
-- }
-+ }
-
- func_num = PCI_FUNC(dev->devfn);
- if (mkaddr(bus, dev->devfn, where, &flags))
-@@ -243,7 +242,7 @@
- db_assert(bus != 0);
- } else {
- bus = 0;
-- }
-+ }
-
- func_num = PCI_FUNC(dev->devfn);
- if (mkaddr(bus, dev->devfn, where, &flags))
-@@ -276,7 +275,7 @@
-
- addr = PHYSADDR(addr);
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)addr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_MEMREAD << PCI_IPCIBE_ICMD_SHIFT) | PCI_IPCIBE_IBE_LONG;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
-@@ -289,7 +288,7 @@
- addr = PHYSADDR(addr);
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = cpu_to_le32(data);
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)addr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_MEMWRITE << PCI_IPCIBE_ICMD_SHIFT) | PCI_IPCIBE_IBE_LONG;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- /* clear by setting */
-@@ -313,7 +312,7 @@
- else if (offset == 3)
- byte = 0xe;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)ioaddr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
-@@ -341,7 +340,7 @@
- byte = 0xe;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = data;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)ioaddr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | byte;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- /* clear by setting */
-@@ -361,7 +360,7 @@
- else if (offset == 2)
- byte = 0xc;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)ioaddr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | byte;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
-@@ -386,7 +385,7 @@
- byte = 0xc;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = data;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)ioaddr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | byte;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- /* clear by setting */
-@@ -399,7 +398,7 @@
-
- ioaddr = (unsigned long)addr;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)ioaddr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_IOREAD << PCI_IPCIBE_ICMD_SHIFT) | PCI_IPCIBE_IBE_LONG;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- val = le32_to_cpu(*(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata);
-@@ -414,7 +413,7 @@
- ioaddr = (unsigned long)addr;
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcidata = cpu_to_le32(data);
- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipciaddr = (unsigned long)ioaddr;
-- *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
-+ *(volatile u32 *)(ulong)&tx3927_pcicptr->ipcibe =
- (PCI_IPCIBE_ICMD_IOWRITE << PCI_IPCIBE_ICMD_SHIFT) | PCI_IPCIBE_IBE_LONG;
- while (!(tx3927_pcicptr->istat & PCI_ISTAT_IDICC)) ;
- /* clear by setting */
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/rtc.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/rtc.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/rtc.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/rtc.c 2002-08-05 18:53:33.000000000 -0500
-@@ -1,7 +1,7 @@
- /*
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * RTC routines for Dallas chip.
- *
-diff -urNd -urNd linux-2.4.20/arch/mips/jmr3927/rbhma3100/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/setup.c
---- linux-2.4.20/arch/mips/jmr3927/rbhma3100/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/jmr3927/rbhma3100/setup.c 2002-12-01 18:24:48.000000000 -0600
-@@ -2,13 +2,13 @@
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * Based on arch/mips/ddb5xxx/ddb5477/setup.c
- *
- * Setup file for JMR3927.
- *
-- * Copyright (C) 2000-2001 Toshiba Corporation
-+ * Copyright (C) 2000-2001 Toshiba Corporation
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
-@@ -55,6 +55,7 @@
- #include <asm/gdb-stub.h>
- #include <asm/jmr3927/jmr3927.h>
- #include <asm/mipsregs.h>
-+#include <asm/traps.h>
-
- /* Tick Timer divider */
- #define JMR3927_TIMER_CCD 0 /* 1/2 */
-@@ -180,11 +181,15 @@
- }
-
- return res;
--}
-+}
-+
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-
- #if defined(CONFIG_BLK_DEV_INITRD)
- extern unsigned long __rd_start, __rd_end, initrd_start, initrd_end;
--#endif
-+#endif
-
- //#undef DO_WRITE_THROUGH
- #define DO_WRITE_THROUGH
-@@ -211,19 +216,19 @@
- _machine_power_off = jmr3927_machine_power_off;
-
- /*
-- * IO/MEM resources.
-+ * IO/MEM resources.
- */
- ioport_resource.start = pci_io_resource.start;
- ioport_resource.end = pci_io_resource.end;
- iomem_resource.start = pci_mem_resource.start;
- iomem_resource.end = pci_mem_resource.end;
--
-+
- /* Reboot on panic */
- panic_timeout = 180;
-
- {
- unsigned int conf;
-- conf = read_32bit_cp0_register(CP0_CONF);
-+ conf = read_c0_conf();
- }
-
- #if 1
-@@ -243,15 +248,15 @@
- int mips_config_wbon = 1;
- #endif
-
-- conf = read_32bit_cp0_register(CP0_CONF);
-+ conf = read_c0_conf();
- conf &= ~(TX39_CONF_ICE | TX39_CONF_DCE | TX39_CONF_WBON | TX39_CONF_CWFON);
- conf |= mips_ic_disable ? 0 : TX39_CONF_ICE;
- conf |= mips_dc_disable ? 0 : TX39_CONF_DCE;
- conf |= mips_config_wbon ? TX39_CONF_WBON : 0;
- conf |= mips_config_cwfon ? TX39_CONF_CWFON : 0;
-
-- write_32bit_cp0_register(CP0_CONF, conf);
-- write_32bit_cp0_register(CP0_TX39_CACHE, 0);
-+ write_c0_conf(conf);
-+ write_c0_cache(0);
- }
- #endif
-
-@@ -275,9 +280,9 @@
- argptr = prom_getcmdline();
- strcat(argptr, " console=ttyS1,115200");
- }
--#endif
-+#endif
- }
--
-+
-
- static void tx3927_setup(void);
-
-@@ -338,7 +343,7 @@
- jmr3927_led_set(0);
-
-
-- if (jmr3927_have_isac())
-+ if (jmr3927_have_isac())
- jmr3927_io_led_set(0);
- printk("JMR-TX3927 (Rev %d) --- IOC(Rev %d) DIPSW:%d,%d,%d,%d\n",
- jmr3927_ioc_reg_in(JMR3927_IOC_BREV_ADDR) & JMR3927_REV_MASK,
-@@ -510,7 +515,7 @@
- {
- unsigned int conf;
-
-- conf = read_32bit_cp0_register(CP0_CONF);
-+ conf = read_c0_conf();
- if (!(conf & TX39_CONF_ICE))
- printk("TX3927 I-Cache disabled.\n");
- if (!(conf & TX39_CONF_DCE))
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/branch.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/branch.c
---- linux-2.4.20/arch/mips/kernel/branch.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/branch.c 2003-01-10 06:17:56.000000000 -0600
-@@ -166,7 +166,7 @@
- if (!(mips_cpu.options & MIPS_CPU_FPU))
- fcr31 = current->thread.fpu.soft.sr;
- else
-- asm("cfc1\t%0,$31":"=r" (fcr31));
-+ asm volatile("cfc1\t%0,$31" : "=r" (fcr31));
- bit = (insn.i_format.rt >> 2);
- bit += (bit != 0);
- bit += 23;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/cpu-probe.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/cpu-probe.c
---- linux-2.4.20/arch/mips/kernel/cpu-probe.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/cpu-probe.c 2003-02-03 11:11:41.000000000 -0600
-@@ -3,6 +3,7 @@
- #include <linux/stddef.h>
- #include <asm/bugs.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/mipsregs.h>
-
- /*
-@@ -16,14 +17,14 @@
-
- static void r3081_wait(void)
- {
-- unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, cfg|CONF_HALT);
-+ unsigned long cfg = read_c0_conf();
-+ write_c0_conf(cfg | CONF_HALT);
- }
-
- static void r39xx_wait(void)
- {
-- unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, cfg|TX39_CONF_HALT);
-+ unsigned long cfg = read_c0_conf();
-+ write_c0_conf(cfg | TX39_CONF_HALT);
- }
-
- static void r4k_wait(void)
-@@ -104,12 +105,12 @@
- #ifdef CONFIG_CPU_R3000
- extern unsigned long r3k_cache_size(unsigned long);
- unsigned long size1, size2;
-- unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-+ unsigned long cfg = read_c0_conf();
-
- size1 = r3k_cache_size(ST0_ISC);
-- write_32bit_cp0_register(CP0_CONF, cfg^CONF_AC);
-+ write_c0_conf(cfg ^ CONF_AC);
- size2 = r3k_cache_size(ST0_ISC);
-- write_32bit_cp0_register(CP0_CONF, cfg);
-+ write_c0_conf(cfg);
- return size1 != size2;
- #else
- return 0;
-@@ -123,10 +124,10 @@
- {
- unsigned long tmp, fpu_id;
-
-- tmp = read_32bit_cp0_register(CP0_STATUS);
-+ tmp = read_c0_status();
- __enable_fpu();
- fpu_id = read_32bit_cp1_register(CP1_REVISION);
-- write_32bit_cp0_register(CP0_STATUS, tmp);
-+ write_c0_status(tmp);
- return fpu_id;
- }
-
-@@ -140,9 +141,9 @@
-
- /* declaration of the global struct */
- struct mips_cpu mips_cpu = {
-- processor_id: PRID_IMP_UNKNOWN,
-- fpu_id: FPIR_IMP_NONE,
-- cputype: CPU_UNKNOWN
-+ .processor_id = PRID_IMP_UNKNOWN,
-+ .fpu_id = FPIR_IMP_NONE,
-+ .cputype = CPU_UNKNOWN
- };
-
- /* Shortcut for assembler access to mips_cpu.options */
-@@ -154,14 +155,14 @@
- __init void cpu_probe(void)
- {
- #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
-- unsigned long config0 = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config0 = read_c0_config();
- unsigned long config1;
-
- if (config0 & (1 << 31)) {
- /* MIPS32 or MIPS64 compliant CPU. Read Config 1 register. */
- mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
- MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | MIPS_CPU_DIVEC;
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
- if (config1 & (1 << 3))
- mips_cpu.options |= MIPS_CPU_WATCH;
- if (config1 & (1 << 2))
-@@ -177,7 +178,7 @@
- mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT;
- }
- #endif
-- mips_cpu.processor_id = read_32bit_cp0_register(CP0_PRID);
-+ mips_cpu.processor_id = read_c0_prid();
- switch (mips_cpu.processor_id & 0xff0000) {
- case PRID_COMP_LEGACY:
- switch (mips_cpu.processor_id & 0xff00) {
-@@ -204,7 +205,7 @@
- mips_cpu.tlbsize = 64;
- break;
- case PRID_IMP_R4000:
-- if ((mips_cpu.processor_id & 0xff) == PRID_REV_R4400)
-+ if ((mips_cpu.processor_id & 0xff) >= PRID_REV_R4400)
- mips_cpu.cputype = CPU_R4400SC;
- else
- mips_cpu.cputype = CPU_R4000SC;
-@@ -372,7 +373,7 @@
- * 29 1 => 64 entry JTLB
- * 0 => 48 entry JTLB
- */
-- mips_cpu.tlbsize = (get_info() & (1 << 29)) ? 64 : 48;
-+ mips_cpu.tlbsize = (read_c0_info() & (1 << 29)) ? 64 : 48;
- break;
- case PRID_IMP_R8000:
- mips_cpu.cputype = CPU_R8000;
-@@ -463,7 +464,7 @@
- mips_cpu.isa_level = MIPS_CPU_ISA_M64;
- mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
- MIPS_CPU_COUNTER | MIPS_CPU_DIVEC |
-- MIPS_CPU_MCHECK;
-+ MIPS_CPU_MCHECK | MIPS_CPU_EJTAG;
- #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
- /* FPU in pass1 is known to have issues. */
- mips_cpu.options |= MIPS_CPU_FPU;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Entries
---- linux-2.4.20/arch/mips/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Entries 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1,45 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:31 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.51.2.11/Mon Dec 16 15:05:45 2002/-ko/Tlinux_2_4_20
-+/branch.c/1.8.2.2/Fri Jan 10 12:17:56 2003/-ko/Tlinux_2_4_20
-+/cpu-probe.c/1.1.2.10/Mon Feb 3 17:11:41 2003/-ko/Tlinux_2_4_20
-+/entry.S/1.34.2.9/Thu Jan 9 19:25:46 2003/-ko/Tlinux_2_4_20
-+/gdb-low.S/1.11.2.3/Thu Feb 20 18:19:01 2003/-ko/Tlinux_2_4_20
-+/gdb-stub.c/1.15.2.5/Thu Feb 20 18:19:01 2003/-ko/Tlinux_2_4_20
-+/head.S/1.29.2.16/Fri Feb 14 12:58:52 2003/-ko/Tlinux_2_4_20
-+/i8259.c/1.4.2.4/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/init_task.c/1.7.2.1/Wed Jan 16 09:26:23 2002/-ko/Tlinux_2_4_20
-+/ipc.c/1.4.4.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/irix5sys.h/1.3/Thu Sep 6 13:12:01 2001/-ko/Tlinux_2_4_20
-+/irixelf.c/1.40.2.3/Mon Dec 2 00:24:48 2002/-ko/Tlinux_2_4_20
-+/irixinv.c/1.6.2.2/Thu Oct 31 20:37:38 2002/-ko/Tlinux_2_4_20
-+/irixioctl.c/1.8/Sat Jul 8 02:59:01 2000/-ko/Tlinux_2_4_20
-+/irixsig.c/1.20.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.38.2.9/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
-+/irq_cpu.c/1.2.2.5/Tue Feb 4 13:17:51 2003/-ko/Tlinux_2_4_20
-+/mips_ksyms.c/1.42.2.3/Tue Jul 23 16:39:10 2002/-ko/Tlinux_2_4_20
-+/old-time.c/1.5.2.3/Mon Dec 2 00:24:48 2002/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.7.2.4/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.10.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/pci_auto.c/1.3.2.1/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/proc.c/1.27.2.11/Thu Nov 7 01:47:45 2002/-ko/Tlinux_2_4_20
-+/process.c/1.32.2.10/Thu Jan 9 19:17:22 2003/-ko/Tlinux_2_4_20
-+/ptrace.c/1.35.2.4/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/r2300_fpu.S/1.10/Wed Apr 11 05:19:46 2001/-ko/Tlinux_2_4_20
-+/r2300_switch.S/1.14.2.6/Thu Jan 9 19:52:38 2003/-ko/Tlinux_2_4_20
-+/r4k_fpu.S/1.12/Wed Apr 11 05:19:46 2001/-ko/Tlinux_2_4_20
-+/r4k_switch.S/1.16.2.6/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/r6000_fpu.S/1.7/Sun Dec 10 07:56:02 2000/-ko/Tlinux_2_4_20
-+/reset.c/1.2/Thu Aug 23 22:24:24 2001/-ko/Tlinux_2_4_20
-+/scall_o32.S/1.18.2.11/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.96.2.36/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/signal.c/1.39.2.10/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.10.2.21/Thu Nov 28 23:29:36 2002/-ko/Tlinux_2_4_20
-+/syscall.c/1.22.2.4/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/syscalls.h/1.28.2.8/Thu Jan 23 02:12:59 2003/-ko/Tlinux_2_4_20
-+/sysirix.c/1.39.2.3/Thu Oct 31 19:36:28 2002/-ko/Tlinux_2_4_20
-+/sysmips.c/1.20.2.3/Mon Aug 5 23:53:33 2002/-ko/Tlinux_2_4_20
-+/time.c/1.37.2.7/Mon Dec 2 00:24:48 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.99.2.41/Mon Feb 10 22:50:48 2003/-ko/Tlinux_2_4_20
-+/unaligned.c/1.15.2.17/Fri Feb 21 01:09:19 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Repository
---- linux-2.4.20/arch/mips/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Repository 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/kernel
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Root
---- linux-2.4.20/arch/mips/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Root 2005-01-06 23:00:04.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Tag
---- linux-2.4.20/arch/mips/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/CVS/Tag 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/kernel/.cvsignore
---- linux-2.4.20/arch/mips/kernel/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/.cvsignore 1998-03-17 16:07:31.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/entry.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/entry.S
---- linux-2.4.20/arch/mips/kernel/entry.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/entry.S 2003-01-09 13:25:46.000000000 -0600
-@@ -28,7 +28,7 @@
-
-
- .text
-- .align 4
-+ .align 5
- .set push
- .set reorder
- FEXPORT(ret_from_irq)
-@@ -232,6 +232,7 @@
- BUILD_HANDLER(ov,ov,sti,silent) /* #12 */
- BUILD_HANDLER(tr,tr,sti,silent) /* #13 */
- BUILD_HANDLER(fpe,fpe,fpe,silent) /* #15 */
-+ BUILD_HANDLER(mdmx,mdmx,sti,silent) /* #22 */
- BUILD_HANDLER(watch,watch,sti,silent) /* #23 */
- BUILD_HANDLER(mcheck,mcheck,cli,silent) /* #24 */
- BUILD_HANDLER(reserved,reserved,sti,silent) /* others */
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/gdb-low.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-low.S
---- linux-2.4.20/arch/mips/kernel/gdb-low.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-low.S 2003-02-20 12:19:01.000000000 -0600
-@@ -14,6 +14,16 @@
- #include <asm/gdb-stub.h>
-
- /*
-+ * [jsun] We reserves about 2x GDB_FR_SIZE in stack. The lower (addressed)
-+ * part is used to store registers and passed to exception handler.
-+ * The upper part is reserved for "call func" feature where gdb client
-+ * saves some of the regs, setups call frame and passes args.
-+ *
-+ * A trace shows about 200 bytes are used to store about half of all regs.
-+ * The rest should be big enough for frame setup and passing args.
-+ */
-+
-+/*
- * The low level trap handler
- */
- .align 5
-@@ -38,7 +48,7 @@
- nop
- 1:
- move k0,sp
-- subu sp,k1,GDB_FR_SIZE
-+ subu sp,k1,GDB_FR_SIZE*2 # see comment above
- sw k0,GDB_FR_REG29(sp)
- sw v0,GDB_FR_REG2(sp)
-
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/gdb-stub.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-stub.c
---- linux-2.4.20/arch/mips/kernel/gdb-stub.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/gdb-stub.c 2003-02-20 12:19:01.000000000 -0600
-@@ -127,6 +127,8 @@
- #include <linux/mm.h>
- #include <linux/console.h>
- #include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/reboot.h>
-
- #include <asm/asm.h>
- #include <asm/mipsregs.h>
-@@ -175,8 +177,8 @@
-
- /* Used to prevent crashes in memory access. Note that they'll crash anyway if
- we haven't set up fault handlers yet... */
--int kgdb_read_byte(unsigned *address, unsigned *dest);
--int kgdb_write_byte(unsigned val, unsigned *dest);
-+int kgdb_read_byte(unsigned char *address, unsigned char *dest);
-+int kgdb_write_byte(unsigned char val, unsigned char *dest);
-
- /*
- * Convert ch from a hex digit to an int
-@@ -595,30 +597,10 @@
- char *ptr;
- unsigned long *stack;
-
--#if 0
-- printk("in handle_exception()\n");
-- show_gdbregs(regs);
--#endif
--
-- /*
-- * First check trap type. If this is CPU_UNUSABLE and CPU_ID is 1,
-- * the simply switch the FPU on and return since this is no error
-- * condition. kernel/traps.c does the same.
-- * FIXME: This doesn't work yet, so we don't catch CPU_UNUSABLE
-- * traps for now.
-- */
-- trap = (regs->cp0_cause & 0x7c) >> 2;
--/* printk("trap=%d\n",trap); */
-- if (trap == 11) {
-- if (((regs->cp0_cause >> CAUSEB_CE) & 3) == 1) {
-- regs->cp0_status |= ST0_CU1;
-- return;
-- }
-- }
--
- /*
- * If we're in breakpoint() increment the PC
- */
-+ trap = (regs->cp0_cause & 0x7c) >> 2;
- if (trap == 9 && regs->cp0_epc == (unsigned long)breakinst)
- regs->cp0_epc += 4;
-
-@@ -707,6 +689,11 @@
- output_buffer[3] = 0;
- break;
-
-+ case 'D':
-+ /* detach; let CPU run */
-+ putpacket(output_buffer);
-+ return;
-+
- case 'd':
- /* toggle debug flag */
- break;
-@@ -726,26 +713,21 @@
-
- /*
- * set the value of the CPU registers - return OK
-- * FIXME: Needs to be written
- */
- case 'G':
- {
--#if 0
-- unsigned long *newsp, psr;
--
- ptr = &input_buffer[1];
-- hex2mem(ptr, (char *)registers, 16 * 4, 0); /* G & O regs */
--
-- /*
-- * See if the stack pointer has moved. If so, then copy the
-- * saved locals and ins to the new location.
-- */
--
-- newsp = (unsigned long *)registers[SP];
-- if (sp != newsp)
-- sp = memcpy(newsp, sp, 16 * 4);
--
--#endif
-+ hex2mem(ptr, (char *)&regs->reg0, 32*4, 0);
-+ ptr += 32*8;
-+ hex2mem(ptr, (char *)&regs->cp0_status, 6*4, 0);
-+ ptr += 6*8;
-+ hex2mem(ptr, (char *)&regs->fpr0, 32*4, 0);
-+ ptr += 32*8;
-+ hex2mem(ptr, (char *)&regs->cp1_fsr, 2*4, 0);
-+ ptr += 2*8;
-+ hex2mem(ptr, (char *)&regs->frame_ptr, 2*4, 0);
-+ ptr += 2*8;
-+ hex2mem(ptr, (char *)&regs->cp0_index, 16*4, 0);
- strcpy(output_buffer,"OK");
- }
- break;
-@@ -811,19 +793,14 @@
-
-
- /*
-- * kill the program
-- */
-- case 'k' :
-- break; /* do nothing */
--
--
-- /*
-- * Reset the whole machine (FIXME: system dependent)
-+ * kill the program; let us try to restart the machine
-+ * Reset the whole machine.
- */
-+ case 'k':
- case 'r':
-+ machine_restart("kgdb restarts machine");
- break;
-
--
- /*
- * Step to next instruction
- */
-@@ -903,23 +880,37 @@
- if (!initialized)
- return;
-
-- __asm__ __volatile__("
-- .globl breakinst
-- .set noreorder
-- nop
--breakinst: break
-- nop
-- .set reorder
-- ");
-+ __asm__ __volatile__(
-+ ".globl breakinst\n\t"
-+ ".set\tnoreorder\n\t"
-+ "nop\n\t"
-+ "breakinst:\tbreak\n\t"
-+ "nop\n\t"
-+ ".set\treorder"
-+ );
- }
-
- void adel(void)
- {
-- __asm__ __volatile__("
-- .globl adel
-- la $8,0x80000001
-- lw $9,0($8)
-- ");
-+ __asm__ __volatile__(
-+ ".globl\tadel\n\t"
-+ "la\t$8,0x80000001\n\t"
-+ "lw\t$9,0($8)\n\t"
-+ );
-+}
-+
-+/*
-+ * malloc is needed by gdb client in "call func()", even a private one
-+ * will make gdb happy
-+ */
-+static void *malloc(size_t size)
-+{
-+ return kmalloc(size, GFP_ATOMIC);
-+}
-+
-+static void free(void *where)
-+{
-+ kfree(where);
- }
-
- #ifdef CONFIG_GDB_CONSOLE
-@@ -951,11 +942,11 @@
- }
-
- static struct console gdb_console = {
-- name: "gdb",
-- write: gdb_console_write,
-- device: gdb_console_dev,
-- flags: CON_PRINTBUFFER,
-- index: -1
-+ .name = "gdb",
-+ .write = gdb_console_write,
-+ .device = gdb_console_dev,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1
- };
-
- __init void register_gdb_console(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/head.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/head.S
---- linux-2.4.20/arch/mips/kernel/head.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/head.S 2003-02-14 06:58:52.000000000 -0600
-@@ -91,6 +91,8 @@
- nop
- END(except_vec_ejtag_debug)
-
-+ __FINIT
-+
- /*
- * EJTAG debug exception handler.
- */
-@@ -114,11 +116,15 @@
-
- ejtag_return:
- mfc0 k0, CP0_DESAVE
-- .word 0x4200001f # DERET, return from EJTAG debug exception.
-+ .set mips32
-+ deret
-+ .set mips0
- nop
- .set at
- END(ejtag_debug_handler)
-
-+ __INIT
-+
- /*
- * NMI debug exception handler for MIPS reference boards.
- * The NMI debug exception entry point is 0xbfc00000, which
-@@ -130,6 +136,8 @@
- nop
- END(except_vec_nmi)
-
-+ __FINIT
-+
- NESTED(nmi_handler, PT_SIZE, sp)
- .set noat
- .set noreorder
-@@ -143,6 +151,8 @@
- .set mips0
- END(nmi_handler)
-
-+ __INIT
-+
- /*
- * Kernel entry point
- */
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/ioport.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ioport.c
---- linux-2.4.20/arch/mips/kernel/ioport.c 1997-06-26 14:33:37.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ioport.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,34 +0,0 @@
--/*
-- * linux/arch/mips/kernel/ioport.c
-- */
--#include <linux/sched.h>
--#include <linux/kernel.h>
--#include <linux/errno.h>
--#include <linux/types.h>
--#include <linux/ioport.h>
--
--/*
-- * This changes the io permissions bitmap in the current task.
-- */
--asmlinkage int sys_ioperm(unsigned long from, unsigned long num, int turn_on)
--{
-- return -ENOSYS;
--}
--
--/*
-- * sys_iopl has to be used when you want to access the IO ports
-- * beyond the 0x3ff range: to get the full 65536 ports bitmapped
-- * you'd need 8kB of bitmaps/process, which is a bit excessive.
-- *
-- * Here we just change the eflags value on the stack: we allow
-- * only the super-user to do it. This depends on the stack-layout
-- * on system-call entry - see also fork() and the signal handling
-- * code.
-- */
--asmlinkage int sys_iopl(long ebx,long ecx,long edx,
-- long esi, long edi, long ebp, long eax, long ds,
-- long es, long fs, long gs, long orig_eax,
-- long eip,long cs,long eflags,long esp,long ss)
--{
-- return -ENOSYS;
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/irixelf.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixelf.c
---- linux-2.4.20/arch/mips/kernel/irixelf.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixelf.c 2002-12-01 18:24:48.000000000 -0600
-@@ -574,7 +574,7 @@
-
- pp = (struct prda *) v;
- pp->prda_sys.t_pid = current->pid;
-- pp->prda_sys.t_prid = read_32bit_cp0_register (CP0_PRID);
-+ pp->prda_sys.t_prid = read_c0_prid();
- pp->prda_sys.t_rpid = current->pid;
-
- /* We leave the rest set to zero */
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/irixinv.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixinv.c
---- linux-2.4.20/arch/mips/kernel/irixinv.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irixinv.c 2002-10-31 14:37:38.000000000 -0600
-@@ -16,8 +16,7 @@
-
- static inventory_t inventory [MAX_INVENTORY];
-
--void
--add_to_inventory (int class, int type, int controller, int unit, int state)
-+void add_to_inventory (int class, int type, int controller, int unit, int state)
- {
- inventory_t *ni = &inventory [inventory_items];
-
-@@ -33,8 +32,7 @@
- inventory_items++;
- }
-
--int
--dump_inventory_to_user (void *userbuf, int size)
-+int dump_inventory_to_user (void *userbuf, int size)
- {
- inventory_t *inv = &inventory [0];
- inventory_t *user = userbuf;
-@@ -51,13 +49,13 @@
- return inventory_items * sizeof (inventory_t);
- }
-
--void __init init_inventory (void)
-+static int __init init_inventory(void)
- {
-- /* gross hack while we put the right bits all over the kernel
-+ /*
-+ * gross hack while we put the right bits all over the kernel
- * most likely this will not let just anyone run the X server
- * until we put the right values all over the place
- */
--
- add_to_inventory (10, 3, 0, 0, 16400);
- add_to_inventory (1, 1, 150, -1, 12);
- add_to_inventory (1, 3, 0, 0, 8976);
-@@ -76,6 +74,8 @@
- add_to_inventory (2, 2, 0, 2, 0);
- add_to_inventory (2, 2, 0, 1, 0);
- add_to_inventory (7, 14, 0, 0, 6);
-+
-+ return 0;
- }
-
- module_init(init_inventory);
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/irq_cpu.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irq_cpu.c
---- linux-2.4.20/arch/mips/kernel/irq_cpu.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/irq_cpu.c 2003-02-04 07:17:51.000000000 -0600
-@@ -31,13 +31,13 @@
-
- static void mips_cpu_irq_enable(unsigned int irq)
- {
-- clear_cp0_cause( 1 << (irq - mips_cpu_irq_base + 8));
-- set_cp0_status(1 << (irq - mips_cpu_irq_base + 8));
-+ clear_c0_cause( 1 << (irq - mips_cpu_irq_base + 8));
-+ set_c0_status(1 << (irq - mips_cpu_irq_base + 8));
- }
-
- static void mips_cpu_irq_disable(unsigned int irq)
- {
-- clear_cp0_status(1 << (irq - mips_cpu_irq_base + 8));
-+ clear_c0_status(1 << (irq - mips_cpu_irq_base + 8));
- }
-
- static unsigned int mips_cpu_irq_startup(unsigned int irq)
-@@ -51,10 +51,10 @@
-
- static void mips_cpu_irq_ack(unsigned int irq)
- {
-- /* although we attemp to clear the IP bit in cause reigster, I think
-+ /* although we attempt to clear the IP bit in cause register, I think
- * usually it is cleared by device (irq source)
- */
-- clear_cp0_cause(1 << (irq - mips_cpu_irq_base + 8));
-+ clear_c0_cause(1 << (irq - mips_cpu_irq_base + 8));
-
- /* disable this interrupt - so that we safe proceed to the handler */
- mips_cpu_irq_disable(irq);
-@@ -62,7 +62,7 @@
-
- static void mips_cpu_irq_end(unsigned int irq)
- {
-- if(!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
- mips_cpu_irq_enable(irq);
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/kernel/Makefile
---- linux-2.4.20/arch/mips/kernel/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/Makefile 2002-12-16 09:05:45.000000000 -0600
-@@ -12,11 +12,11 @@
-
- O_TARGET := kernel.o
-
--export-objs = irq.o pci-dma.o setup.o smp.o mips_ksyms.o old-irq.o
-+export-objs = irq.o pci-dma.o setup.o smp.o mips_ksyms.o
-
--obj-y += branch.o cpu-probe.o process.o signal.o entry.o traps.o \
-- ptrace.o vm86.o ioport.o reset.o semaphore.o setup.o \
-- syscall.o sysmips.o ipc.o scall_o32.o unaligned.o
-+obj-y += branch.o cpu-probe.o irq.o process.o signal.o entry.o \
-+ traps.o ptrace.o reset.o semaphore.o setup.o syscall.o \
-+ sysmips.o ipc.o scall_o32.o unaligned.o
-
- obj-$(CONFIG_MODULES) += mips_ksyms.o
-
-@@ -39,9 +39,6 @@
-
- obj-$(CONFIG_SMP) += smp.o
-
--# Old style irq support, going to die in 2.5.
--obj-$(CONFIG_NEW_IRQ) += irq.o
--obj-$(CONFIG_ROTTEN_IRQ) += old-irq.o
- obj-$(CONFIG_I8259) += i8259.o
- obj-$(CONFIG_IRQ_CPU) += irq_cpu.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/old-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-irq.c
---- linux-2.4.20/arch/mips/kernel/old-irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-irq.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,408 +0,0 @@
--/*
-- * This file is subject to the terms and conditions of the GNU General Public
-- * License. See the file "COPYING" in the main directory of this archive
-- * for more details.
-- *
-- * Code to handle x86 style IRQs plus some generic interrupt stuff.
-- *
-- * Copyright (C) 1992 Linus Torvalds
-- * Copyright (C) 1994 - 2001 Ralf Baechle
-- *
-- * Old rotten IRQ code. To be killed as soon as everybody had converted or
-- * in 2.5.0, whatever comes first.
-- */
--#include <linux/config.h>
--#include <linux/errno.h>
--#include <linux/init.h>
--#include <linux/kernel_stat.h>
--#include <linux/module.h>
--#include <linux/signal.h>
--#include <linux/sched.h>
--#include <linux/types.h>
--#include <linux/interrupt.h>
--#include <linux/ioport.h>
--#include <linux/timex.h>
--#include <linux/slab.h>
--#include <linux/random.h>
--
--#include <asm/bitops.h>
--#include <asm/bootinfo.h>
--#include <asm/io.h>
--#include <asm/irq.h>
--#include <asm/mipsregs.h>
--#include <asm/system.h>
--#include <asm/nile4.h>
--
--/*
-- * The board specific setup routine sets irq_setup to point to a board
-- * specific setup routine.
-- */
--void (*irq_setup)(void);
--
--/*
-- * Linux has a controller-independent x86 interrupt architecture.
-- * every controller has a 'controller-template', that is used
-- * by the main code to do the right thing. Each driver-visible
-- * interrupt source is transparently wired to the apropriate
-- * controller. Thus drivers need not be aware of the
-- * interrupt-controller.
-- *
-- * Various interrupt controllers we handle: 8259 PIC, SMP IO-APIC,
-- * PIIX4's internal 8259 PIC and SGI's Visual Workstation Cobalt (IO-)APIC.
-- * (IO-APICs assumed to be messaging to Pentium local-APICs)
-- *
-- * the code is designed to be easily extended with new/different
-- * interrupt controllers, without having to do assembly magic.
-- */
--
--/*
-- * This contains the irq mask for both 8259A irq controllers, it's an
-- * int so we can deal with the third PIC in some systems like the RM300.
-- * (XXX This is broken for big endian.)
-- */
--static unsigned int cached_irq_mask = 0xffff;
--
--#define __byte(x,y) (((unsigned char *)&(y))[x])
--#define __word(x,y) (((unsigned short *)&(y))[x])
--#define __long(x,y) (((unsigned int *)&(y))[x])
--
--#define cached_21 (__byte(0,cached_irq_mask))
--#define cached_A1 (__byte(1,cached_irq_mask))
--
--volatile unsigned long irq_err_count;
--
--/*
-- * (un)mask_irq, disable_irq() and enable_irq() only handle (E)ISA and
-- * PCI devices. Other onboard hardware needs specific routines.
-- */
--static inline void mask_irq(unsigned int irq)
--{
-- cached_irq_mask |= 1 << irq;
-- if (irq & 8) {
-- outb(cached_A1, 0xa1);
-- } else {
-- outb(cached_21, 0x21);
-- }
--}
--
--static inline void unmask_irq(unsigned int irq)
--{
-- cached_irq_mask &= ~(1 << irq);
-- if (irq & 8) {
-- outb(cached_A1, 0xa1);
-- } else {
-- outb(cached_21, 0x21);
-- }
--}
--
--void i8259_disable_irq(unsigned int irq_nr)
--{
-- unsigned long flags;
--
-- save_and_cli(flags);
-- mask_irq(irq_nr);
-- restore_flags(flags);
--}
--
--void i8259_enable_irq(unsigned int irq_nr)
--{
-- unsigned long flags;
-- save_and_cli(flags);
-- unmask_irq(irq_nr);
-- restore_flags(flags);
--}
--
--static struct irqaction *irq_action[NR_IRQS] = {
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
-- NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL
--};
--
--int get_irq_list(char *buf)
--{
-- int i, len = 0;
-- struct irqaction * action;
--
-- for (i = 0 ; i < 32 ; i++) {
-- action = irq_action[i];
-- if (!action)
-- continue;
-- len += sprintf(buf+len, "%2d: %8d %c %s",
-- i, kstat.irqs[0][i],
-- (action->flags & SA_INTERRUPT) ? '+' : ' ',
-- action->name);
-- for (action=action->next; action; action = action->next) {
-- len += sprintf(buf+len, ",%s %s",
-- (action->flags & SA_INTERRUPT) ? " +" : "",
-- action->name);
-- }
-- len += sprintf(buf+len, "\n");
-- }
-- return len;
--}
--
--static inline void i8259_mask_and_ack_irq(int irq)
--{
-- cached_irq_mask |= 1 << irq;
--
-- if (irq & 8) {
-- inb(0xa1);
-- outb(cached_A1, 0xa1);
-- outb(0x62, 0x20); /* Specific EOI to cascade */
-- outb(0x20, 0xa0);
-- } else {
-- inb(0x21);
-- outb(cached_21, 0x21);
-- outb(0x20, 0x20);
-- }
--}
--
--asmlinkage void i8259_do_irq(int irq, struct pt_regs *regs)
--{
-- struct irqaction *action;
-- int do_random, cpu;
--
-- cpu = smp_processor_id();
-- irq_enter(cpu, irq);
--
-- if (irq >= 16)
-- goto out;
--
-- i8259_mask_and_ack_irq(irq);
--
-- kstat.irqs[cpu][irq]++;
--
-- action = *(irq + irq_action);
-- if (!action)
-- goto out;
--
-- if (!(action->flags & SA_INTERRUPT))
-- __sti();
-- action = *(irq + irq_action);
-- do_random = 0;
-- do {
-- do_random |= action->flags;
-- action->handler(irq, action->dev_id, regs);
-- action = action->next;
-- } while (action);
-- if (do_random & SA_SAMPLE_RANDOM)
-- add_interrupt_randomness(irq);
-- __cli();
-- unmask_irq (irq);
--
--out:
-- irq_exit(cpu, irq);
--}
--
--/*
-- * do_IRQ handles IRQ's that have been installed without the
-- * SA_INTERRUPT flag: it uses the full signal-handling return
-- * and runs with other interrupts enabled. All relatively slow
-- * IRQ's should use this format: notably the keyboard/timer
-- * routines.
-- */
--asmlinkage void do_IRQ(int irq, struct pt_regs * regs)
--{
-- struct irqaction *action;
-- int do_random, cpu;
--
-- cpu = smp_processor_id();
-- irq_enter(cpu, irq);
-- kstat.irqs[cpu][irq]++;
--
-- action = *(irq + irq_action);
-- if (action) {
-- if (!(action->flags & SA_INTERRUPT))
-- __sti();
-- action = *(irq + irq_action);
-- do_random = 0;
-- do {
-- do_random |= action->flags;
-- action->handler(irq, action->dev_id, regs);
-- action = action->next;
-- } while (action);
-- if (do_random & SA_SAMPLE_RANDOM)
-- add_interrupt_randomness(irq);
-- __cli();
-- }
-- irq_exit(cpu, irq);
--
-- if (softirq_pending(cpu))
-- do_softirq();
--
-- /* unmasking and bottom half handling is done magically for us. */
--}
--
--int i8259_setup_irq(int irq, struct irqaction * new)
--{
-- int shared = 0;
-- struct irqaction *old, **p;
-- unsigned long flags;
--
-- p = irq_action + irq;
-- if ((old = *p) != NULL) {
-- /* Can't share interrupts unless both agree to */
-- if (!(old->flags & new->flags & SA_SHIRQ))
-- return -EBUSY;
--
-- /* Can't share interrupts unless both are same type */
-- if ((old->flags ^ new->flags) & SA_INTERRUPT)
-- return -EBUSY;
--
-- /* add new interrupt at end of irq queue */
-- do {
-- p = &old->next;
-- old = *p;
-- } while (old);
-- shared = 1;
-- }
--
-- if (new->flags & SA_SAMPLE_RANDOM)
-- rand_initialize_irq(irq);
--
-- save_and_cli(flags);
-- *p = new;
--
-- if (!shared) {
-- if (is_i8259_irq(irq))
-- unmask_irq(irq);
--#if (defined(CONFIG_DDB5074) || defined(CONFIG_DDB5476))
-- else
-- nile4_enable_irq(irq_to_nile4(irq));
--#endif
-- }
-- restore_flags(flags);
-- return 0;
--}
--
--/*
-- * Request_interrupt and free_interrupt ``sort of'' handle interrupts of
-- * non i8259 devices. They will have to be replaced by architecture
-- * specific variants. For now we still use this as broken as it is because
-- * it used to work ...
-- */
--int request_irq(unsigned int irq,
-- void (*handler)(int, void *, struct pt_regs *),
-- unsigned long irqflags, const char * devname, void *dev_id)
--{
-- int retval;
-- struct irqaction * action;
--
-- if (irq >= 32)
-- return -EINVAL;
-- if (!handler)
-- return -EINVAL;
--
-- action = (struct irqaction *)kmalloc(sizeof(struct irqaction), GFP_KERNEL);
-- if (!action)
-- return -ENOMEM;
--
-- action->handler = handler;
-- action->flags = irqflags;
-- action->mask = 0;
-- action->name = devname;
-- action->next = NULL;
-- action->dev_id = dev_id;
--
-- retval = i8259_setup_irq(irq, action);
--
-- if (retval)
-- kfree(action);
-- return retval;
--}
--
--void free_irq(unsigned int irq, void *dev_id)
--{
-- struct irqaction * action, **p;
-- unsigned long flags;
--
-- if (irq > 31) {
-- printk("Trying to free IRQ%d\n",irq);
-- return;
-- }
-- for (p = irq + irq_action; (action = *p) != NULL; p = &action->next) {
-- if (action->dev_id != dev_id)
-- continue;
--
-- /* Found it - now free it */
-- save_and_cli(flags);
-- *p = action->next;
-- if (!irq[irq_action])
-- mask_irq(irq);
-- restore_flags(flags);
-- kfree(action);
-- return;
-- }
-- printk("Trying to free free IRQ%d\n",irq);
--}
--
--unsigned long probe_irq_on (void)
--{
-- unsigned int i, irqs = 0;
-- unsigned long delay;
--
-- /* first, enable any unassigned (E)ISA irqs */
-- for (i = 15; i > 0; i--) {
-- if (!irq_action[i]) {
-- i8259_enable_irq(i);
-- irqs |= (1 << i);
-- }
-- }
--
-- /* wait for spurious interrupts to mask themselves out again */
-- for (delay = jiffies + HZ/10; time_before(jiffies, delay); )
-- /* about 100ms delay */;
--
-- /* now filter out any obviously spurious interrupts */
-- return irqs & ~cached_irq_mask;
--}
--
--int probe_irq_off (unsigned long irqs)
--{
-- unsigned int i;
--
--#ifdef DEBUG
-- printk("probe_irq_off: irqs=0x%04x irqmask=0x%04x\n", irqs, irqmask);
--#endif
-- irqs &= cached_irq_mask;
-- if (!irqs)
-- return 0;
-- i = ffz(~irqs);
-- if (irqs != (irqs & (1 << i)))
-- i = -i;
-- return i;
--}
--
--void __init i8259_init(void)
--{
-- /* Init master interrupt controller */
-- outb(0x11, 0x20); /* Start init sequence */
-- outb(0x00, 0x21); /* Vector base */
-- outb(0x04, 0x21); /* edge tiggered, Cascade (slave) on IRQ2 */
-- outb(0x01, 0x21); /* Select 8086 mode */
-- outb(0xff, 0x21); /* Mask all */
--
-- /* Init slave interrupt controller */
-- outb(0x11, 0xa0); /* Start init sequence */
-- outb(0x08, 0xa1); /* Vector base */
-- outb(0x02, 0xa1); /* edge triggered, Cascade (slave) on IRQ2 */
-- outb(0x01, 0xa1); /* Select 8086 mode */
-- outb(0xff, 0xa1); /* Mask all */
--
-- outb(cached_A1, 0xa1);
-- outb(cached_21, 0x21);
--}
--
--void __init init_IRQ(void)
--{
-- /* i8259_init(); */
-- irq_setup();
--}
--
--EXPORT_SYMBOL(free_irq);
--EXPORT_SYMBOL(request_irq);
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/old-time.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-time.c
---- linux-2.4.20/arch/mips/kernel/old-time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/old-time.c 2002-12-01 18:24:48.000000000 -0600
-@@ -94,7 +94,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -414,7 +414,7 @@
- * The cycle counter is only 32 bit which is good for about
- * a minute at current count rates of upto 150MHz or so.
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- timerhi += (count < timerlo); /* Wrap around */
- timerlo = count;
-
-@@ -425,7 +425,7 @@
- * we need only ask for the next in r4k_interval counts. On other
- * archs we have a real timer, so we don't want this.
- */
-- write_32bit_cp0_register (CP0_COMPARE,
-+ write_c0_compare(
- (unsigned long) (count + r4k_interval));
- kstat.irqs[0][irq]++;
- #endif
-@@ -513,7 +513,7 @@
- write_unlock_irq (&xtime_lock);
-
- if (mips_cpu.options & MIPS_CPU_COUNTER) {
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
- do_gettimeoffset = do_fast_gettimeoffset;
- irq0.handler = r4k_timer_interrupt;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci.c
---- linux-2.4.20/arch/mips/kernel/pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -100,7 +100,7 @@
- pcibios_fixup_irqs();
- }
-
--int pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- /* pciauto_assign_resources() will enable all devices found */
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/pci-dma.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci-dma.c
---- linux-2.4.20/arch/mips/kernel/pci-dma.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/pci-dma.c 2002-09-28 17:28:38.000000000 -0500
-@@ -30,7 +30,7 @@
-
- if (ret != NULL) {
- memset(ret, 0, size);
-- *dma_handle = bus_to_baddr(hwdev->bus->number, __pa(ret));
-+ *dma_handle = bus_to_baddr(hwdev->bus, __pa(ret));
- #ifdef CONFIG_NONCOHERENT_IO
- dma_cache_wback_inv((unsigned long) ret, size);
- ret = UNCAC_ADDR(ret);
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/proc.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/proc.c
---- linux-2.4.20/arch/mips/kernel/proc.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/proc.c 2002-11-06 19:47:45.000000000 -0600
-@@ -145,8 +145,8 @@
- }
-
- struct seq_operations cpuinfo_op = {
-- start: c_start,
-- next: c_next,
-- stop: c_stop,
-- show: show_cpuinfo,
-+ .start = c_start,
-+ .next = c_next,
-+ .stop = c_stop,
-+ .show = show_cpuinfo,
- };
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/process.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/process.c
---- linux-2.4.20/arch/mips/kernel/process.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/process.c 2003-01-09 13:17:22.000000000 -0600
-@@ -21,6 +21,7 @@
-
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/pgtable.h>
- #include <asm/system.h>
- #include <asm/mipsregs.h>
-@@ -47,28 +48,25 @@
- }
- }
-
--struct task_struct *last_task_used_math = NULL;
--
- asmlinkage void ret_from_fork(void);
-
-+void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
-+{
-+ regs->cp0_status &= ~(ST0_CU0|ST0_KSU|ST0_CU1);
-+ regs->cp0_status |= KU_USER;
-+ current->used_math = 0;
-+ loose_fpu();
-+ regs->cp0_epc = pc;
-+ regs->regs[29] = sp;
-+ current->thread.current_ds = USER_DS;
-+}
-+
- void exit_thread(void)
- {
-- /* Forget lazy fpu state */
-- if (last_task_used_math == current && mips_cpu.options & MIPS_CPU_FPU) {
-- __enable_fpu();
-- __asm__ __volatile__("cfc1\t$0,$31");
-- last_task_used_math = NULL;
-- }
- }
-
- void flush_thread(void)
- {
-- /* Forget lazy fpu state */
-- if (last_task_used_math == current && mips_cpu.options & MIPS_CPU_FPU) {
-- __enable_fpu();
-- __asm__ __volatile__("cfc1\t$0,$31");
-- last_task_used_math = NULL;
-- }
- }
-
- int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
-@@ -80,11 +78,10 @@
-
- childksp = (unsigned long)p + KERNEL_STACK_SIZE - 32;
-
-- if (last_task_used_math == current)
-- if (mips_cpu.options & MIPS_CPU_FPU) {
-- __enable_fpu();
-- save_fp(p);
-- }
-+ if (is_fpu_owner()) {
-+ save_fp(p);
-+ }
-+
- /* set up new TSS. */
- childregs = (struct pt_regs *) childksp - 1;
- *childregs = *regs;
-@@ -114,7 +111,7 @@
- * New tasks loose permission to use the fpu. This accelerates context
- * switching for most programs since they don't use the fpu.
- */
-- p->thread.cp0_status = read_32bit_cp0_register(CP0_STATUS) &
-+ p->thread.cp0_status = read_c0_status() &
- ~(ST0_CU2|ST0_CU1|KU_MASK);
- childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
-
-@@ -124,29 +121,8 @@
- /* Fill in the fpu structure for a core dump.. */
- int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
- {
-- /* We actually store the FPU info in the task->thread
-- * area.
-- */
-- if(regs->cp0_status & ST0_CU1) {
-- memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
-- return 1;
-- }
-- return 0; /* Task didn't use the fpu at all. */
--}
--
--/* Fill in the user structure for a core dump.. */
--void dump_thread(struct pt_regs *regs, struct user *dump)
--{
-- dump->magic = CMAGIC;
-- dump->start_code = current->mm->start_code;
-- dump->start_data = current->mm->start_data;
-- dump->start_stack = regs->regs[29] & ~(PAGE_SIZE - 1);
-- dump->u_tsize = (current->mm->end_code - dump->start_code) >> PAGE_SHIFT;
-- dump->u_dsize = (current->mm->brk + (PAGE_SIZE - 1) - dump->start_data) >> PAGE_SHIFT;
-- dump->u_ssize =
-- (current->mm->start_stack - dump->start_stack + PAGE_SIZE - 1) >> PAGE_SHIFT;
-- memcpy(&dump->regs[0], regs, sizeof(struct pt_regs));
-- memcpy(&dump->regs[EF_SIZE/4], &current->thread.fpu, sizeof(current->thread.fpu));
-+ memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
-+ return 1;
- }
-
- /*
-@@ -157,21 +133,21 @@
- long retval;
-
- __asm__ __volatile__(
-- ".set noreorder \n"
-- " move $6,$sp \n"
-- " move $4,%5 \n"
-- " li $2,%1 \n"
-- " syscall \n"
-- " beq $6,$sp,1f \n"
-- " subu $sp,32 \n" /* delay slot */
-- " jalr %4 \n"
-- " move $4,%3 \n" /* delay slot */
-- " move $4,$2 \n"
-- " li $2,%2 \n"
-- " syscall \n"
-- "1: addiu $sp,32 \n"
-- " move %0,$2 \n"
-- ".set reorder"
-+ " .set noreorder \n"
-+ " move $6, $sp \n"
-+ " move $4, %5 \n"
-+ " li $2, %1 \n"
-+ " syscall \n"
-+ " beq $6, $sp, 1f \n"
-+ " subu $sp, 32 \n"
-+ " jalr %4 \n"
-+ " move $4, %3 \n"
-+ " move $4, $2 \n"
-+ " li $2, %2 \n"
-+ " syscall \n"
-+ "1: addiu $sp, 32 \n"
-+ " move %0, $2 \n"
-+ " .set reorder"
- : "=r" (retval)
- : "i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
- "r" (flags | CLONE_VM)
-@@ -180,7 +156,7 @@
- * at, result, argument or temporary registers ...
- */
- : "$2", "$3", "$4", "$5", "$6", "$7", "$8",
-- "$9","$10","$11","$12","$13","$14","$15","$24","$25");
-+ "$9","$10","$11","$12","$13","$14","$15","$24","$25", "$31");
-
- return retval;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/ptrace.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ptrace.c
---- linux-2.4.20/arch/mips/kernel/ptrace.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/ptrace.c 2002-11-04 13:39:56.000000000 -0600
-@@ -27,6 +27,7 @@
- #include <asm/uaccess.h>
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
-
- /*
- * Called by kernel/ptrace.c when detaching..
-@@ -42,7 +43,6 @@
- {
- struct task_struct *child;
- int ret;
-- extern void save_fp(struct task_struct *);
-
- lock_kernel();
- #if 0
-@@ -113,20 +113,7 @@
- break;
- case FPR_BASE ... FPR_BASE + 31:
- if (child->used_math) {
-- unsigned long long *fregs
-- = (unsigned long long *)
-- &child->thread.fpu.hard.fp_regs[0];
-- if(!(mips_cpu.options & MIPS_CPU_FPU)) {
-- fregs = (unsigned long long *)
-- child->thread.fpu.soft.regs;
-- } else
-- if (last_task_used_math == child) {
-- __enable_fpu();
-- save_fp(child);
-- __disable_fpu();
-- last_task_used_math = NULL;
-- regs->cp0_status &= ~ST0_CU1;
-- }
-+ unsigned long long *fregs = get_fpu_regs(child);
- /*
- * The odd registers are actually the high
- * order bits of the values stored in the even
-@@ -204,21 +191,8 @@
- break;
- case FPR_BASE ... FPR_BASE + 31: {
- unsigned long long *fregs;
-- fregs = (unsigned long long *)&child->thread.fpu.hard.fp_regs[0];
-- if (child->used_math) {
-- if (last_task_used_math == child) {
-- if(!(mips_cpu.options & MIPS_CPU_FPU)) {
-- fregs = (unsigned long long *)
-- child->thread.fpu.soft.regs;
-- } else {
-- __enable_fpu();
-- save_fp(child);
-- __disable_fpu();
-- last_task_used_math = NULL;
-- regs->cp0_status &= ~ST0_CU1;
-- }
-- }
-- } else {
-+ fregs = (unsigned long long *)get_fpu_regs(child);
-+ if (!child->used_math) {
- /* FP not yet used */
- memset(&child->thread.fpu.hard, ~0,
- sizeof(child->thread.fpu.hard));
-@@ -229,11 +203,6 @@
- * of the values stored in the even registers - unless
- * we're using r2k_switch.S.
- */
--#ifdef CONFIG_CPU_R3000
-- if (mips_cpu.options & MIPS_CPU_FPU)
-- *(unsigned long *)(fregs + addr) = data;
-- else
--#endif
- if (addr & 1) {
- fregs[(addr & ~1) - FPR_BASE] &= 0xffffffff;
- fregs[(addr & ~1) - FPR_BASE] |= ((unsigned long long) data) << 32;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/r2300_switch.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r2300_switch.S
---- linux-2.4.20/arch/mips/kernel/r2300_switch.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r2300_switch.S 2003-01-09 13:52:38.000000000 -0600
-@@ -28,6 +28,19 @@
- .set mips1
- .align 5
-
-+#define PF_USEDFPU 0x00100000 /* task used FPU this quantum (SMP) */
-+#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
-+
-+/*
-+ * [jsun] FPU context is saved if and only if the process has used FPU in
-+ * the current run (PF_USEDFPU). In any case, the CU1 bit for user space
-+ * STATUS register should be 0, so that a process *always* starts its
-+ * userland with FPU disabled after each context switch.
-+ *
-+ * FPU will be enabled as soon as the process accesses FPU again, through
-+ * do_cpu() trap.
-+ */
-+
- /*
- * task_struct *resume(task_struct *prev,
- * task_struct *next)
-@@ -41,6 +54,32 @@
- CPU_SAVE_NONSCRATCH(a0)
- sw ra, THREAD_REG31(a0)
-
-+ /*
-+ * check if we need to save FPU registers
-+ */
-+ lw t0, TASK_FLAGS(a0)
-+ li t1, PF_USEDFPU
-+ and t2, t0, t1
-+ beqz t2, 1f
-+ nor t1, zero, t1
-+
-+ /*
-+ * clear PF_USEDFPU bit in task flags
-+ */
-+ and t0, t0, t1
-+ sw t0, TASK_FLAGS(a0)
-+
-+ /*
-+ * clear user-saved stack CU1 bit
-+ */
-+ lw t0, ST_OFF(a0)
-+ li t1, ~ST0_CU1
-+ and t0, t0, t1
-+ sw t0, ST_OFF(a0)
-+
-+ FPU_SAVE_SINGLE(a0, t0) # clobbers t0
-+
-+1:
- /*
- * The order of restoring the registers takes care of the race
- * updating $28, $29 and kernelsp without disabling ints.
-@@ -64,59 +103,32 @@
- END(resume)
-
- /*
-- * Do lazy fpu context switch. Saves FPU context to the process in a0
-- * and loads the new context of the current process.
-- */
--
--#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
--
--LEAF(lazy_fpu_switch)
-- mfc0 t0, CP0_STATUS # enable cp1
-- li t3, ST0_CU1
-- or t0, t3
-- mtc0 t0, CP0_STATUS
--
-- .set noreorder
-- beqz a0, 2f # Save floating point state
-- nor t3, zero, t3
-- .set reorder
-- lw t1, ST_OFF(a0) # last thread looses fpu
-- and t1, t3
-- sw t1, ST_OFF(a0)
-- FPU_SAVE_SINGLE(a0, t1) # clobbers t1
--
--2:
-- FPU_RESTORE_SINGLE($28, t0) # clobbers t0
-- jr ra
-- END(lazy_fpu_switch)
--
--/*
- * Save a thread's fp context.
- */
--LEAF(save_fp)
-+LEAF(_save_fp)
- FPU_SAVE_SINGLE(a0, t1) # clobbers t1
- jr ra
-- END(save_fp)
-+ END(_save_fp)
-
- /*
- * Restore a thread's fp context.
- */
--LEAF(restore_fp)
-+LEAF(_restore_fp)
- FPU_RESTORE_SINGLE(a0, t1) # clobbers t1
- jr ra
-- END(restore_fp)
-+ END(_restore_fp)
-
- /*
- * Load the FPU with signalling NANS. This bit pattern we're using has
- * the property that no matter wether considered as single or as double
-- * precission represents signaling NANS.
-+ * precision represents signaling NANS.
- *
- * We initialize fcr31 to rounding to nearest, no exceptions.
- */
-
- #define FPU_DEFAULT 0x00000000
-
--LEAF(init_fpu)
-+LEAF(_init_fpu)
- mfc0 t0, CP0_STATUS
- li t1, ST0_CU1
- or t0, t1
-@@ -162,4 +174,4 @@
- jr ra
- mtc1 t0, $f31
- .set reorder
-- END(init_fpu)
-+ END(_init_fpu)
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/r4k_switch.S linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r4k_switch.S
---- linux-2.4.20/arch/mips/kernel/r4k_switch.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/r4k_switch.S 2002-11-04 13:39:56.000000000 -0600
-@@ -25,6 +25,19 @@
-
- #include <asm/asmmacro.h>
-
-+#define PF_USEDFPU 0x00100000 /* task used FPU this quantum (SMP) */
-+#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
-+
-+/*
-+ * [jsun] FPU context is saved if and only if the process has used FPU in
-+ * the current run (PF_USEDFPU). In any case, the CU1 bit for user space
-+ * STATUS register should be 0, so that a process *always* starts its
-+ * userland with FPU disabled after each context switch.
-+ *
-+ * FPU will be enabled as soon as the process accesses FPU again, through
-+ * do_cpu() trap.
-+ */
-+
- /*
- * task_struct *r4xx0_resume(task_struct *prev, task_struct *next)
- */
-@@ -39,6 +52,32 @@
- CPU_SAVE_NONSCRATCH(a0)
- sw ra, THREAD_REG31(a0)
-
-+ /*
-+ * check if we need to save FPU registers
-+ */
-+ lw t0, TASK_FLAGS(a0)
-+ li t1, PF_USEDFPU
-+ and t2, t0, t1
-+ beqz t2, 1f
-+ nor t1, zero, t1
-+
-+ /*
-+ * clear PF_USEDFPU bit in task flags
-+ */
-+ and t0, t0, t1
-+ sw t0, TASK_FLAGS(a0)
-+
-+ /*
-+ * clear saved user stack CU1 bit
-+ */
-+ lw t0, ST_OFF(a0)
-+ li t1, ~ST0_CU1
-+ and t0, t0, t1
-+ sw t0, ST_OFF(a0)
-+
-+ FPU_SAVE_DOUBLE(a0, t0) # clobbers t0
-+
-+1:
- /*
- * The order of restoring the registers takes care of the race
- * updating $28, $29 and kernelsp without disabling ints.
-@@ -69,50 +108,20 @@
- END(resume)
-
- /*
-- * Do lazy fpu context switch. Saves FPU context to the process in a0
-- * and loads the new context of the current process.
-- */
--
--#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
--
--LEAF(lazy_fpu_switch)
-- mfc0 t0, CP0_STATUS # enable cp1
-- li t3, ST0_CU1
-- or t0, t3
-- mtc0 t0, CP0_STATUS
-- FPU_ENABLE_HAZARD
--
-- beqz a0, 2f # Save floating point state
-- nor t3, zero, t3
--
-- lw t1, ST_OFF(a0) # last thread looses fpu
-- and t1, t3
-- sw t1, ST_OFF(a0)
--
--
-- FPU_SAVE_DOUBLE(a0, t1) # clobbers t1
--2:
--
-- .set reorder
-- FPU_RESTORE_DOUBLE($28, t0) # clobbers t0
-- jr ra
-- END(lazy_fpu_switch)
--
--/*
- * Save a thread's fp context.
- */
--LEAF(save_fp)
-+LEAF(_save_fp)
- FPU_SAVE_DOUBLE(a0, t1) # clobbers t1
- jr ra
-- END(save_fp)
-+ END(_save_fp)
-
- /*
- * Restore a thread's fp context.
- */
--LEAF(restore_fp)
-+LEAF(_restore_fp)
- FPU_RESTORE_DOUBLE(a0, t1) # clobbers t1
- jr ra
-- END(restore_fp)
-+ END(_restore_fp)
-
- /*
- * Load the FPU with signalling NANS. This bit pattern we're using has
-@@ -124,7 +133,7 @@
-
- #define FPU_DEFAULT 0x00000000
-
--LEAF(init_fpu)
-+LEAF(_init_fpu)
- .set mips3
- mfc0 t0, CP0_STATUS
- li t1, ST0_CU1
-@@ -156,5 +165,5 @@
- jr ra
- dmtc1 t0, $f30
- .set reorder
-- END(init_fpu)
-+ END(_init_fpu)
-
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/setup.c
---- linux-2.4.20/arch/mips/kernel/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/setup.c 2003-02-04 06:43:06.000000000 -0600
-@@ -7,7 +7,7 @@
- * Copyright (C) 1995 Waldorf Electronics
- * Copyright (C) 1995, 1996, 1997, 1998, 1999, 2000, 2001 Ralf Baechle
- * Copyright (C) 1996 Stoned Elipot
-- * Copyright (C) 2000, 2001 Maciej W. Rozycki
-+ * Copyright (C) 2000, 2001, 2002 Maciej W. Rozycki
- */
- #include <linux/config.h>
- #include <linux/errno.h>
-@@ -100,7 +100,7 @@
-
-
- /*
-- * isa_slot_offset is the address where E(ISA) busaddress 0 is is mapped
-+ * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
- * for the processor.
- */
- unsigned long isa_slot_offset;
-@@ -137,8 +137,8 @@
- loadmmu();
-
- /* Disable coprocessors and set FPU for 16/32 FPR register model */
-- clear_cp0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR);
-- set_cp0_status(ST0_CU0);
-+ clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_KX|ST0_SX|ST0_FR);
-+ set_c0_status(ST0_CU0);
-
- start_kernel();
- }
-@@ -236,210 +236,6 @@
- }
- }
-
--void __init setup_arch(char **cmdline_p)
--{
-- void atlas_setup(void);
-- void baget_setup(void);
-- void cobalt_setup(void);
-- void ddb_setup(void);
-- void decstation_setup(void);
-- void deskstation_setup(void);
-- void jazz_setup(void);
-- void sni_rm200_pci_setup(void);
-- void ip22_setup(void);
-- void ev96100_setup(void);
-- void malta_setup(void);
-- void sead_setup(void);
-- void ikos_setup(void);
-- void momenco_ocelot_setup(void);
-- void momenco_ocelot_g_setup(void);
-- void nino_setup(void);
-- void nec_osprey_setup(void);
-- void nec_eagle_setup(void);
-- void zao_capcella_setup(void);
-- void jmr3927_setup(void);
-- void it8172_setup(void);
-- void swarm_setup(void);
-- void hp_setup(void);
--
-- unsigned long bootmap_size;
-- unsigned long start_pfn, max_pfn, max_low_pfn, first_usable_pfn;
--#ifdef CONFIG_BLK_DEV_INITRD
-- unsigned long tmp;
-- unsigned long* initrd_header;
--#endif
--
-- int i;
--
--#ifdef CONFIG_BLK_DEV_FD
-- fd_ops = &no_fd_ops;
--#endif
--
--#ifdef CONFIG_BLK_DEV_IDE
-- ide_ops = &no_ide_ops;
--#endif
--
--#ifdef CONFIG_PC_KEYB
-- kbd_ops = &no_kbd_ops;
--#endif
--
-- rtc_ops = &no_rtc_ops;
--
-- switch(mips_machgroup)
-- {
--#ifdef CONFIG_BAGET_MIPS
-- case MACH_GROUP_BAGET:
-- baget_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_COBALT
-- case MACH_GROUP_COBALT:
-- cobalt_setup();
-- break;
--#endif
--#ifdef CONFIG_DECSTATION
-- case MACH_GROUP_DEC:
-- decstation_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_ATLAS
-- case MACH_GROUP_UNKNOWN:
-- atlas_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_JAZZ
-- case MACH_GROUP_JAZZ:
-- jazz_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_MALTA
-- case MACH_GROUP_UNKNOWN:
-- malta_setup();
-- break;
--#endif
--#ifdef CONFIG_MOMENCO_OCELOT
-- case MACH_GROUP_MOMENCO:
-- momenco_ocelot_setup();
-- break;
--#endif
--#ifdef CONFIG_MOMENCO_OCELOT_G
-- case MACH_GROUP_MOMENCO:
-- momenco_ocelot_g_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_SEAD
-- case MACH_GROUP_UNKNOWN:
-- sead_setup();
-- break;
--#endif
--#ifdef CONFIG_SGI_IP22
-- /* As of now this is only IP22. */
-- case MACH_GROUP_SGI:
-- ip22_setup();
-- break;
--#endif
--#ifdef CONFIG_SNI_RM200_PCI
-- case MACH_GROUP_SNI_RM:
-- sni_rm200_pci_setup();
-- break;
--#endif
--#ifdef CONFIG_DDB5074
-- case MACH_GROUP_NEC_DDB:
-- ddb_setup();
-- break;
--#endif
--#ifdef CONFIG_DDB5476
-- case MACH_GROUP_NEC_DDB:
-- ddb_setup();
-- break;
--#endif
--#ifdef CONFIG_DDB5477
-- case MACH_GROUP_NEC_DDB:
-- ddb_setup();
-- break;
--#endif
--#ifdef CONFIG_CPU_VR41XX
-- case MACH_GROUP_NEC_VR41XX:
-- switch (mips_machtype) {
--#ifdef CONFIG_NEC_OSPREY
-- case MACH_NEC_OSPREY:
-- nec_osprey_setup();
-- break;
--#endif
--#ifdef CONFIG_NEC_EAGLE
-- case MACH_NEC_EAGLE:
-- nec_eagle_setup();
-- break;
--#endif
--#ifdef CONFIG_ZAO_CAPCELLA
-- case MACH_ZAO_CAPCELLA:
-- zao_capcella_setup();
-- break;
--#endif
-- }
-- break;
--#endif
--#ifdef CONFIG_MIPS_EV96100
-- case MACH_GROUP_GALILEO:
-- ev96100_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_EV64120
-- case MACH_GROUP_GALILEO:
-- ev64120_setup();
-- break;
--#endif
--#if defined(CONFIG_MIPS_IVR) || defined(CONFIG_MIPS_ITE8172)
-- case MACH_GROUP_ITE:
-- case MACH_GROUP_GLOBESPAN:
-- it8172_setup();
-- break;
--#endif
--#ifdef CONFIG_NINO
-- case MACH_GROUP_PHILIPS:
-- nino_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_PB1000
-- case MACH_GROUP_ALCHEMY:
-- au1000_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_PB1100
-- case MACH_GROUP_ALCHEMY:
-- au1100_setup();
-- break;
--#endif
--#ifdef CONFIG_MIPS_PB1500
-- case MACH_GROUP_ALCHEMY:
-- au1500_setup();
-- break;
--#endif
--#ifdef CONFIG_TOSHIBA_JMR3927
-- case MACH_GROUP_TOSHIBA:
-- jmr3927_setup();
-- break;
--#endif
--#ifdef CONFIG_SIBYTE_SWARM
-- case MACH_GROUP_SIBYTE:
-- swarm_setup();
-- break;
--#endif
--#ifdef CONFIG_HP_LASERJET
-- case MACH_GROUP_HP_LJ:
-- hp_setup();
-- break;
--#endif
-- default:
-- panic("Unsupported architecture");
-- }
--
-- strncpy(command_line, arcs_cmdline, sizeof command_line);
-- command_line[sizeof command_line - 1] = 0;
-- strcpy(saved_command_line, command_line);
-- *cmdline_p = command_line;
--
-- parse_mem_cmdline();
-
- #define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
- #define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
-@@ -448,6 +244,16 @@
- #define MAXMEM HIGHMEM_START
- #define MAXMEM_PFN PFN_DOWN(MAXMEM)
-
-+static inline void bootmem_init(void)
-+{
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ unsigned long tmp;
-+ unsigned long *initrd_header;
-+#endif
-+ unsigned long bootmap_size;
-+ unsigned long start_pfn, max_pfn, max_low_pfn, first_usable_pfn;
-+ int i;
-+
- #ifdef CONFIG_BLK_DEV_INITRD
- tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
- if (tmp < (unsigned long)&_end)
-@@ -592,15 +398,18 @@
- initrd_size);
- if (PHYSADDR(initrd_end) > PFN_PHYS(max_low_pfn)) {
- printk("initrd extends beyond end of memory "
-- "(0x%lx > 0x%p)\ndisabling initrd\n",
-+ "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
- PHYSADDR(initrd_end),
- PFN_PHYS(max_low_pfn));
- initrd_start = initrd_end = 0;
- }
- }
- #endif /* CONFIG_BLK_DEV_INITRD */
-+}
-
-- paging_init();
-+static inline void resource_init(void)
-+{
-+ int i;
-
- code_resource.start = virt_to_bus(&_ftext);
- code_resource.end = virt_to_bus(&_etext) - 1;
-@@ -612,7 +421,14 @@
- */
- for (i = 0; i < boot_mem_map.nr_map; i++) {
- struct resource *res;
-- unsigned long addr_pfn, end_pfn;
-+ unsigned long start, end;
-+
-+ start = boot_mem_map.map[i].addr;
-+ end = boot_mem_map.map[i].addr + boot_mem_map.map[i].size - 1;
-+ if (start >= MAXMEM)
-+ continue;
-+ if (end >= MAXMEM)
-+ end = MAXMEM - 1;
-
- res = alloc_bootmem(sizeof(struct resource));
- switch (boot_mem_map.map[i].type) {
-@@ -624,16 +440,10 @@
- default:
- res->name = "reserved";
- }
-- addr_pfn = PFN_UP(boot_mem_map.map[i].addr);
-- end_pfn = PFN_UP(boot_mem_map.map[i].addr+boot_mem_map.map[i].size);
-- if (addr_pfn > max_low_pfn)
-- continue;
-- res->start = boot_mem_map.map[i].addr;
-- if (end_pfn < max_low_pfn) {
-- res->end = res->start + boot_mem_map.map[i].size - 1;
-- } else {
-- res->end = max_low_pfn - 1;
-- }
-+
-+ res->start = start;
-+ res->end = end;
-+
- res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
- request_resource(&iomem_resource, res);
-
-@@ -647,6 +457,238 @@
- }
- }
-
-+#undef PFN_UP
-+#undef PFN_DOWN
-+#undef PFN_PHYS
-+
-+#undef MAXMEM
-+#undef MAXMEM_PFN
-+
-+
-+void __init setup_arch(char **cmdline_p)
-+{
-+ void atlas_setup(void);
-+ void baget_setup(void);
-+ void cobalt_setup(void);
-+ void lasat_setup(void);
-+ void ddb_setup(void);
-+ void decstation_setup(void);
-+ void deskstation_setup(void);
-+ void jazz_setup(void);
-+ void sni_rm200_pci_setup(void);
-+ void ip22_setup(void);
-+ void ev96100_setup(void);
-+ void malta_setup(void);
-+ void sead_setup(void);
-+ void ikos_setup(void);
-+ void momenco_ocelot_setup(void);
-+ void momenco_ocelot_g_setup(void);
-+ void nino_setup(void);
-+ void nec_osprey_setup(void);
-+ void nec_eagle_setup(void);
-+ void zao_capcella_setup(void);
-+ void victor_mpc30x_setup(void);
-+ void ibm_workpad_setup(void);
-+ void casio_e55_setup(void);
-+ void tanbac_tb0226_setup(void);
-+ void jmr3927_setup(void);
-+ void it8172_setup(void);
-+ void swarm_setup(void);
-+ void hp_setup(void);
-+ void au1x00_setup(void);
-+
-+#ifdef CONFIG_BLK_DEV_FD
-+ fd_ops = &no_fd_ops;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+ ide_ops = &no_ide_ops;
-+#endif
-+
-+#ifdef CONFIG_PC_KEYB
-+ kbd_ops = &no_kbd_ops;
-+#endif
-+
-+ rtc_ops = &no_rtc_ops;
-+
-+ switch(mips_machgroup)
-+ {
-+#ifdef CONFIG_BAGET_MIPS
-+ case MACH_GROUP_BAGET:
-+ baget_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_COBALT
-+ case MACH_GROUP_COBALT:
-+ cobalt_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_DECSTATION
-+ case MACH_GROUP_DEC:
-+ decstation_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_ATLAS
-+ case MACH_GROUP_UNKNOWN:
-+ atlas_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_JAZZ
-+ case MACH_GROUP_JAZZ:
-+ jazz_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_MALTA
-+ case MACH_GROUP_UNKNOWN:
-+ malta_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MOMENCO_OCELOT
-+ case MACH_GROUP_MOMENCO:
-+ momenco_ocelot_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MOMENCO_OCELOT_G
-+ case MACH_GROUP_MOMENCO:
-+ momenco_ocelot_g_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_SEAD
-+ case MACH_GROUP_UNKNOWN:
-+ sead_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_SGI_IP22
-+ /* As of now this is only IP22. */
-+ case MACH_GROUP_SGI:
-+ ip22_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_SNI_RM200_PCI
-+ case MACH_GROUP_SNI_RM:
-+ sni_rm200_pci_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_DDB5074
-+ case MACH_GROUP_NEC_DDB:
-+ ddb_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_DDB5476
-+ case MACH_GROUP_NEC_DDB:
-+ ddb_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_DDB5477
-+ case MACH_GROUP_NEC_DDB:
-+ ddb_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_CPU_VR41XX
-+ case MACH_GROUP_NEC_VR41XX:
-+ switch (mips_machtype) {
-+#ifdef CONFIG_NEC_OSPREY
-+ case MACH_NEC_OSPREY:
-+ nec_osprey_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_NEC_EAGLE
-+ case MACH_NEC_EAGLE:
-+ nec_eagle_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_ZAO_CAPCELLA
-+ case MACH_ZAO_CAPCELLA:
-+ zao_capcella_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_VICTOR_MPC30X
-+ case MACH_VICTOR_MPC30X:
-+ victor_mpc30x_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_IBM_WORKPAD
-+ case MACH_IBM_WORKPAD:
-+ ibm_workpad_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_CASIO_E55
-+ case MACH_CASIO_E55:
-+ casio_e55_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_TANBAC_TB0226
-+ case MACH_TANBAC_TB0226:
-+ tanbac_tb0226_setup();
-+ break;
-+#endif
-+ }
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_EV96100
-+ case MACH_GROUP_GALILEO:
-+ ev96100_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_MIPS_EV64120
-+ case MACH_GROUP_GALILEO:
-+ ev64120_setup();
-+ break;
-+#endif
-+#if defined(CONFIG_MIPS_IVR) || defined(CONFIG_MIPS_ITE8172)
-+ case MACH_GROUP_ITE:
-+ case MACH_GROUP_GLOBESPAN:
-+ it8172_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_NINO
-+ case MACH_GROUP_PHILIPS:
-+ nino_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_LASAT
-+ case MACH_GROUP_LASAT:
-+ lasat_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_CPU_AU1X00
-+ case MACH_GROUP_ALCHEMY:
-+ au1x00_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_TOSHIBA_JMR3927
-+ case MACH_GROUP_TOSHIBA:
-+ jmr3927_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_SIBYTE_BOARD
-+ case MACH_GROUP_SIBYTE:
-+ swarm_setup();
-+ break;
-+#endif
-+#ifdef CONFIG_HP_LASERJET
-+ case MACH_GROUP_HP_LJ:
-+ hp_setup();
-+ break;
-+#endif
-+ default:
-+ panic("Unsupported architecture");
-+ }
-+
-+ strncpy(command_line, arcs_cmdline, sizeof command_line);
-+ command_line[sizeof command_line - 1] = 0;
-+ strcpy(saved_command_line, command_line);
-+ *cmdline_p = command_line;
-+
-+ parse_mem_cmdline();
-+
-+ bootmem_init();
-+
-+ paging_init();
-+
-+ resource_init();
-+}
-+
- static int __init fpu_disable(char *s)
- {
- mips_cpu.options &= ~MIPS_CPU_FPU;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/signal.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/signal.c
---- linux-2.4.20/arch/mips/kernel/signal.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/signal.c 2002-11-04 13:39:56.000000000 -0600
-@@ -22,6 +22,7 @@
- #include <asm/asm.h>
- #include <asm/bitops.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/offset.h>
- #include <asm/pgalloc.h>
- #include <asm/ptrace.h>
-@@ -34,9 +35,6 @@
-
- extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs);
-
--extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
--extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
--
- extern asmlinkage void syscall_trace(void);
-
- int copy_siginfo_to_user(siginfo_t *to, siginfo_t *from)
-@@ -185,59 +183,8 @@
- return do_sigaltstack(uss, uoss, usp);
- }
-
--static inline int restore_thread_fp_context(struct sigcontext *sc)
--{
-- u64 *pfreg = &current->thread.fpu.soft.regs[0];
-- int err = 0;
--
-- /*
-- * Copy all 32 64-bit values, for two reasons. First, the R3000 and
-- * R4000/MIPS32 kernels use the thread FP register storage differently,
-- * such that a full copy is essentially necessary to support both.
-- */
--
--#define restore_fpr(i) \
-- do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
--
-- restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3);
-- restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7);
-- restore_fpr( 8); restore_fpr( 9); restore_fpr(10); restore_fpr(11);
-- restore_fpr(12); restore_fpr(13); restore_fpr(14); restore_fpr(15);
-- restore_fpr(16); restore_fpr(17); restore_fpr(18); restore_fpr(19);
-- restore_fpr(20); restore_fpr(21); restore_fpr(22); restore_fpr(23);
-- restore_fpr(24); restore_fpr(25); restore_fpr(26); restore_fpr(27);
-- restore_fpr(28); restore_fpr(29); restore_fpr(30); restore_fpr(31);
--
-- err |= __get_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
--
-- return err;
--}
--
--static inline int save_thread_fp_context(struct sigcontext *sc)
--{
-- u64 *pfreg = &current->thread.fpu.soft.regs[0];
-- int err = 0;
--
--#define save_fpr(i) \
-- do { err |= __put_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
--
-- save_fpr( 0); save_fpr( 1); save_fpr( 2); save_fpr( 3);
-- save_fpr( 4); save_fpr( 5); save_fpr( 6); save_fpr( 7);
-- save_fpr( 8); save_fpr( 9); save_fpr(10); save_fpr(11);
-- save_fpr(12); save_fpr(13); save_fpr(14); save_fpr(15);
-- save_fpr(16); save_fpr(17); save_fpr(18); save_fpr(19);
-- save_fpr(20); save_fpr(21); save_fpr(22); save_fpr(23);
-- save_fpr(24); save_fpr(25); save_fpr(26); save_fpr(27);
-- save_fpr(28); save_fpr(29); save_fpr(30); save_fpr(31);
--
-- err |= __put_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
--
-- return err;
--}
--
- static int restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
- {
-- int owned_fp;
- int err = 0;
- u64 reg;
-
-@@ -265,25 +212,17 @@
- restore_gp_reg(31);
- #undef restore_gp_reg
-
-- err |= __get_user(owned_fp, &sc->sc_ownedfp);
- err |= __get_user(current->used_math, &sc->sc_used_math);
-
-- if (owned_fp) {
-- err |= restore_fp_context(sc);
-- goto out;
-- }
--
-- if (current == last_task_used_math) {
-- /* Signal handler acquired FPU - give it back */
-- last_task_used_math = NULL;
-- regs->cp0_status &= ~ST0_CU1;
-- }
- if (current->used_math) {
-- /* Undo possible contamination of thread state */
-- err |= restore_thread_fp_context(sc);
-+ /* restore fpu context if we have used it before */
-+ own_fpu();
-+ err |= restore_fp_context(sc);
-+ } else {
-+ /* signal handler may have used FPU. Give it up. */
-+ loose_fpu();
- }
-
--out:
- return err;
- }
-
-@@ -380,7 +319,6 @@
-
- static int inline setup_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
- {
-- int owned_fp;
- int err = 0;
- u64 reg;
-
-@@ -408,25 +346,20 @@
- err |= __put_user(regs->cp0_cause, &sc->sc_cause);
- err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr);
-
-- owned_fp = (current == last_task_used_math);
-- err |= __put_user(owned_fp, &sc->sc_ownedfp);
- err |= __put_user(current->used_math, &sc->sc_used_math);
-
- if (!current->used_math)
- goto out;
-
-- /* There exists FP thread state that may be trashed by signal */
-- if (owned_fp) {
-- /* fp is active. Save context from FPU */
-- err |= save_fp_context(sc);
-- goto out;
-- }
--
-- /*
-- * Someone else has FPU.
-- * Copy Thread context into signal context
-+ /*
-+ * Save FPU state to signal context. Signal handler will "inherit"
-+ * current FPU state.
- */
-- err |= save_thread_fp_context(sc);
-+ if (!is_fpu_owner()) {
-+ own_fpu();
-+ restore_fp(current);
-+ }
-+ err |= save_fp_context(sc);
-
- out:
- return err;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/smp.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/smp.c
---- linux-2.4.20/arch/mips/kernel/smp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/smp.c 2002-11-28 17:29:36.000000000 -0600
-@@ -45,7 +45,6 @@
- atomic_t smp_commenced = ATOMIC_INIT(0);
- struct cpuinfo_mips cpu_data[NR_CPUS];
-
--// static atomic_t cpus_booted = ATOMIC_INIT(0);
- atomic_t cpus_booted = ATOMIC_INIT(0);
-
- int smp_num_cpus = 1; /* Number that came online. */
-@@ -83,10 +82,6 @@
-
- void prom_smp_finish(void);
-
--static void smp_tune_scheduling(void)
--{
--}
--
- void __init smp_callin(void)
- {
- #if 0
-@@ -282,7 +277,7 @@
- int i;
- for (i = 0; i < smp_num_cpus; i++)
- if (smp_processor_id() != i)
-- CPU_CONTEXT(i, mm) = 0;
-+ cpu_context(i, mm) = 0;
- }
- local_flush_tlb_mm(mm);
- }
-@@ -314,7 +309,7 @@
- int i;
- for (i = 0; i < smp_num_cpus; i++)
- if (smp_processor_id() != i)
-- CPU_CONTEXT(i, mm) = 0;
-+ cpu_context(i, mm) = 0;
- }
- local_flush_tlb_range(mm, start, end);
- }
-@@ -338,7 +333,7 @@
- int i;
- for (i = 0; i < smp_num_cpus; i++)
- if (smp_processor_id() != i)
-- CPU_CONTEXT(i, vma->vm_mm) = 0;
-+ cpu_context(i, vma->vm_mm) = 0;
- }
- local_flush_tlb_page(vma, page);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/syscalls.h linux-2.4.20-mipscvs-20050106/arch/mips/kernel/syscalls.h
---- linux-2.4.20/arch/mips/kernel/syscalls.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/syscalls.h 2003-01-22 20:12:59.000000000 -0600
-@@ -32,7 +32,7 @@
- SYS(sys_chmod, 2) /* 4015 */
- SYS(sys_lchown, 3)
- SYS(sys_ni_syscall, 0)
--SYS(sys_stat, 2)
-+SYS(sys_ni_syscall, 0) /* was sys_stat */
- SYS(sys_lseek, 3)
- SYS(sys_getpid, 0) /* 4020 */
- SYS(sys_mount, 5)
-@@ -42,7 +42,7 @@
- SYS(sys_stime, 1) /* 4025 */
- SYS(sys_ptrace, 4)
- SYS(sys_alarm, 1)
--SYS(sys_fstat, 2)
-+SYS(sys_ni_syscall, 0) /* was sys_fstat */
- SYS(sys_pause, 0)
- SYS(sys_utime, 2) /* 4030 */
- SYS(sys_ni_syscall, 0)
-@@ -96,9 +96,9 @@
- SYS(sys_settimeofday, 2)
- SYS(sys_getgroups, 2) /* 4080 */
- SYS(sys_setgroups, 2)
--SYS(sys_ni_syscall, 0) /* old_select */
-+SYS(sys_ni_syscall, 0) /* old_select */
- SYS(sys_symlink, 2)
--SYS(sys_lstat, 2)
-+SYS(sys_ni_syscall, 0) /* was sys_lstat */
- SYS(sys_readlink, 3) /* 4085 */
- SYS(sys_uselib, 1)
- SYS(sys_swapon, 2)
-@@ -115,7 +115,7 @@
- SYS(sys_ni_syscall, 0)
- SYS(sys_statfs, 2)
- SYS(sys_fstatfs, 2) /* 4100 */
--SYS(sys_ioperm, 3)
-+SYS(sys_ni_syscall, 3) /* was ioperm(2) */
- SYS(sys_socketcall, 2)
- SYS(sys_syslog, 3)
- SYS(sys_setitimer, 3)
-@@ -124,10 +124,10 @@
- SYS(sys_newlstat, 2)
- SYS(sys_newfstat, 2)
- SYS(sys_uname, 1)
--SYS(sys_iopl, 0) /* Well, actually 17 args ... */ /* 4110 */
-+SYS(sys_ni_syscall, 0) /* 4110 was iopl(2) */
- SYS(sys_vhangup, 0)
--SYS(sys_ni_syscall, 0) /* was sys_idle() */
--SYS(sys_vm86, 1)
-+SYS(sys_ni_syscall, 0) /* was sys_idle() */
-+SYS(sys_ni_syscall, 0) /* was vm86(2) */
- SYS(sys_wait4, 4)
- SYS(sys_swapoff, 1) /* 4115 */
- SYS(sys_sysinfo, 1)
-@@ -225,8 +225,8 @@
- SYS(sys_ni_syscall, 0)
- SYS(sys_ni_syscall, 0)
- SYS(sys_mmap2, 6) /* 4210 */
--SYS(sys_truncate64, 2)
--SYS(sys_ftruncate64, 2)
-+SYS(sys_truncate64, 4)
-+SYS(sys_ftruncate64, 4)
- SYS(sys_stat64, 2)
- SYS(sys_lstat64, 2)
- SYS(sys_fstat64, 2) /* 4215 */
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/sysirix.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/sysirix.c
---- linux-2.4.20/arch/mips/kernel/sysirix.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/sysirix.c 2002-10-31 13:36:28.000000000 -0600
-@@ -624,8 +624,10 @@
- write_lock_irq(&xtime_lock);
- xtime.tv_sec = value;
- xtime.tv_usec = 0;
-- time_maxerror = MAXPHASE;
-- time_esterror = MAXPHASE;
-+ time_adjust = 0; /* stop active adjtime() */
-+ time_status |= STA_UNSYNC;
-+ time_maxerror = NTP_PHASE_LIMIT;
-+ time_esterror = NTP_PHASE_LIMIT;
- write_unlock_irq(&xtime_lock);
-
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/time.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/time.c
---- linux-2.4.20/arch/mips/kernel/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/time.c 2002-12-01 18:24:48.000000000 -0600
-@@ -21,6 +21,7 @@
- #include <linux/kernel_stat.h>
- #include <linux/spinlock.h>
- #include <linux/interrupt.h>
-+#include <linux/module.h>
-
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-@@ -38,6 +39,8 @@
- extern rwlock_t xtime_lock;
- extern volatile unsigned long wall_jiffies;
-
-+spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
-+
- /*
- * whether we emulate local_timer_interrupts for SMP machines.
- */
-@@ -154,7 +157,7 @@
- unsigned long res;
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -210,7 +213,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -265,7 +268,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -336,7 +339,7 @@
- * The cycle counter is only 32 bit which is good for about
- * a minute at current count rates of upto 150MHz or so.
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- timerhi += (count < timerlo); /* Wrap around */
- timerlo = count;
-
-@@ -345,7 +348,7 @@
- * is using another timer interrupt source.
- * Note that writing to COMPARE register clears the interrupt
- */
-- write_32bit_cp0_register (CP0_COMPARE,
-+ write_c0_compare(
- count + cycles_per_jiffy);
-
- }
-@@ -515,8 +518,8 @@
- * For those using cpu counter as timer, this sets up the
- * first interrupt
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-- write_32bit_cp0_register (CP0_COMPARE,
-+ count = read_c0_count();
-+ write_c0_compare(
- count + cycles_per_jiffy);
- }
-
-@@ -580,3 +583,5 @@
- */
- tm->tm_wday = (gday + 4) % 7; /* 1970/1/1 was Thursday */
- }
-+
-+EXPORT_SYMBOL(rtc_lock);
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/traps.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/traps.c
---- linux-2.4.20/arch/mips/kernel/traps.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/traps.c 2003-02-10 16:50:48.000000000 -0600
-@@ -24,6 +24,7 @@
- #include <asm/bootinfo.h>
- #include <asm/branch.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/cachectl.h>
- #include <asm/inst.h>
- #include <asm/jazz.h>
-@@ -32,21 +33,13 @@
- #include <asm/io.h>
- #include <asm/siginfo.h>
- #include <asm/watch.h>
-+#include <asm/tlbdebug.h>
- #include <asm/types.h>
- #include <asm/system.h>
- #include <asm/traps.h>
- #include <asm/uaccess.h>
- #include <asm/mmu_context.h>
-
--/*
-- * Machine specific interrupt handlers
-- */
--extern asmlinkage void acer_pica_61_handle_int(void);
--extern asmlinkage void decstation_handle_int(void);
--extern asmlinkage void deskstation_rpc44_handle_int(void);
--extern asmlinkage void deskstation_tyne_handle_int(void);
--extern asmlinkage void mips_magnum_4000_handle_int(void);
--
- extern asmlinkage void handle_mod(void);
- extern asmlinkage void handle_tlbl(void);
- extern asmlinkage void handle_tlbs(void);
-@@ -61,6 +54,7 @@
- extern asmlinkage void handle_ov(void);
- extern asmlinkage void handle_tr(void);
- extern asmlinkage void handle_fpe(void);
-+extern asmlinkage void handle_mdmx(void);
- extern asmlinkage void handle_watch(void);
- extern asmlinkage void handle_mcheck(void);
- extern asmlinkage void handle_reserved(void);
-@@ -103,7 +97,7 @@
-
- static struct task_struct *ll_task = NULL;
-
--static inline void simulate_ll(struct pt_regs *regp, unsigned int opcode)
-+static inline void simulate_ll(struct pt_regs *regs, unsigned int opcode)
- {
- unsigned long value, *vaddr;
- long offset;
-@@ -119,32 +113,37 @@
- offset <<= 16;
- offset >>= 16;
-
-- vaddr = (unsigned long *)((long)(regp->regs[(opcode & BASE) >> 21]) + offset);
-+ vaddr = (unsigned long *)((long)(regs->regs[(opcode & BASE) >> 21]) + offset);
-
- #ifdef CONFIG_PROC_FS
- ll_ops++;
- #endif
-
-- if ((unsigned long)vaddr & 3)
-+ if ((unsigned long)vaddr & 3) {
- signal = SIGBUS;
-- else if (get_user(value, vaddr))
-+ goto sig;
-+ }
-+ if (get_user(value, vaddr)) {
- signal = SIGSEGV;
-- else {
-- if (ll_task == NULL || ll_task == current) {
-- ll_bit = 1;
-- } else {
-- ll_bit = 0;
-- }
-- ll_task = current;
-- regp->regs[(opcode & RT) >> 16] = value;
-+ goto sig;
- }
-- if (compute_return_epc(regp))
-- return;
-- if (signal)
-- send_sig(signal, current, 1);
-+
-+ if (ll_task == NULL || ll_task == current) {
-+ ll_bit = 1;
-+ } else {
-+ ll_bit = 0;
-+ }
-+ ll_task = current;
-+ regs->regs[(opcode & RT) >> 16] = value;
-+
-+ compute_return_epc(regs);
-+ return;
-+
-+sig:
-+ send_sig(signal, current, 1);
- }
-
--static inline void simulate_sc(struct pt_regs *regp, unsigned int opcode)
-+static inline void simulate_sc(struct pt_regs *regs, unsigned int opcode)
- {
- unsigned long *vaddr, reg;
- long offset;
-@@ -160,25 +159,32 @@
- offset <<= 16;
- offset >>= 16;
-
-- vaddr = (unsigned long *)((long)(regp->regs[(opcode & BASE) >> 21]) + offset);
-+ vaddr = (unsigned long *)((long)(regs->regs[(opcode & BASE) >> 21]) + offset);
- reg = (opcode & RT) >> 16;
-
- #ifdef CONFIG_PROC_FS
- sc_ops++;
- #endif
-
-- if ((unsigned long)vaddr & 3)
-+ if ((unsigned long)vaddr & 3) {
- signal = SIGBUS;
-- else if (ll_bit == 0 || ll_task != current)
-- regp->regs[reg] = 0;
-- else if (put_user(regp->regs[reg], vaddr))
-+ goto sig;
-+ }
-+ if (ll_bit == 0 || ll_task != current) {
-+ regs->regs[reg] = 0;
-+ goto sig;
-+ }
-+
-+ if (put_user(regs->regs[reg], vaddr))
- signal = SIGSEGV;
- else
-- regp->regs[reg] = 1;
-- if (compute_return_epc(regp))
-- return;
-- if (signal)
-- send_sig(signal, current, 1);
-+ regs->regs[reg] = 1;
-+
-+ compute_return_epc(regs);
-+ return;
-+
-+sig:
-+ send_sig(signal, current, 1);
- }
-
- /*
-@@ -320,7 +326,7 @@
- }
- }
-
--void show_regs(struct pt_regs * regs)
-+void show_regs(struct pt_regs *regs)
- {
- /*
- * Saved main processor registers
-@@ -496,9 +502,6 @@
- {
- siginfo_t info;
-
-- if (compute_return_epc(regs))
-- return;
--
- info.si_code = FPE_INTOVF;
- info.si_signo = SIGFPE;
- info.si_errno = 0;
-@@ -541,28 +544,19 @@
-
- /* If something went wrong, signal */
- if (sig)
-- {
-- /*
-- * Return EPC is not calculated in the FPU emulator,
-- * if a signal is being send. So we calculate it here.
-- */
-- compute_return_epc(regs);
- force_sig(sig, current);
-- }
-
- return;
- }
-
-- if (compute_return_epc(regs))
-- return;
- force_sig(SIGFPE, current);
- }
-
- static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode)
- {
-- unsigned long *epc;
-+ unsigned int *epc;
-
-- epc = (unsigned long *) regs->cp0_epc +
-+ epc = (unsigned int *) regs->cp0_epc +
- ((regs->cp0_cause & CAUSEF_BD) != 0);
- if (!get_user(*opcode, epc))
- return 0;
-@@ -611,8 +605,8 @@
-
- asmlinkage void do_tr(struct pt_regs *regs)
- {
-- siginfo_t info;
- unsigned int opcode, tcode = 0;
-+ siginfo_t info;
-
- if (get_insn_opcode(regs, &opcode))
- return;
-@@ -677,57 +671,33 @@
- }
- #endif /* CONFIG_CPU_HAS_LLSC */
-
-- if (compute_return_epc(regs))
-- return;
- force_sig(SIGILL, current);
- }
-
- asmlinkage void do_cpu(struct pt_regs *regs)
- {
- unsigned int cpid;
-- void fpu_emulator_init_fpu(void);
-- int sig;
-
- cpid = (regs->cp0_cause >> CAUSEB_CE) & 3;
- if (cpid != 1)
- goto bad_cid;
-
-- if (!(mips_cpu.options & MIPS_CPU_FPU))
-- goto fp_emul;
--
-- regs->cp0_status |= ST0_CU1;
-- if (last_task_used_math == current)
-- return;
-+ die_if_kernel("do_cpu invoked from kernel context!", regs);
-
-+ own_fpu();
- if (current->used_math) { /* Using the FPU again. */
-- lazy_fpu_switch(last_task_used_math);
-+ restore_fp(current);
- } else { /* First time FPU user. */
-- if (last_task_used_math != NULL)
-- save_fp(last_task_used_math);
- init_fpu();
- current->used_math = 1;
- }
-- last_task_used_math = current;
--
-- return;
-
--fp_emul:
-- if (last_task_used_math != current) {
-- if (!current->used_math) {
-- fpu_emulator_init_fpu();
-- current->used_math = 1;
-- }
-- }
-- sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
-- last_task_used_math = current;
-- if (sig) {
-- /*
-- * Return EPC is not calculated in the FPU emulator, if
-- * a signal is being send. So we calculate it here.
-- */
-- compute_return_epc(regs);
-- force_sig(sig, current);
-+ if (!(mips_cpu.options & MIPS_CPU_FPU)) {
-+ int sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
-+ if (sig)
-+ force_sig(sig, current);
- }
-+
- return;
-
- bad_cid:
-@@ -739,14 +709,16 @@
- return;
- }
- #endif
-- compute_return_epc(regs);
- force_sig(SIGILL, current);
- }
-
--asmlinkage void do_watch(struct pt_regs *regs)
-+asmlinkage void do_mdmx(struct pt_regs *regs)
- {
-- extern void dump_tlb_all(void);
-+ force_sig(SIGILL, current);
-+}
-
-+asmlinkage void do_watch(struct pt_regs *regs)
-+{
- /*
- * We use the watch exception where available to detect stack
- * overflows.
-@@ -777,12 +749,13 @@
- * hard/software error.
- */
- show_regs(regs);
-- panic("Caught reserved exception - should not happen.");
-+ panic("Caught reserved exception %ld - should not happen.",
-+ (regs->cp0_cause & 0x7f) >> 2);
- }
-
- static inline void watch_init(void)
- {
-- if (mips_cpu.options & MIPS_CPU_WATCH ) {
-+ if (mips_cpu.options & MIPS_CPU_WATCH) {
- set_except_vector(23, handle_watch);
- watch_available = 1;
- }
-@@ -796,12 +769,10 @@
- {
- switch (mips_cpu.cputype) {
- case CPU_5KC:
-- /* Set the PE bit (bit 31) in the CP0_ECC register. */
-+ /* Set the PE bit (bit 31) in the c0_ecc register. */
- printk(KERN_INFO "Enable the cache parity protection for "
- "MIPS 5KC CPUs.\n");
-- write_32bit_cp0_register(CP0_ECC,
-- read_32bit_cp0_register(CP0_ECC)
-- | 0x80000000);
-+ write_c0_ecc(read_c0_ecc() | 0x80000000);
- break;
- default:
- break;
-@@ -813,13 +784,13 @@
- unsigned int reg_val;
-
- /* For the moment, report the problem and hang. */
-- reg_val = read_32bit_cp0_register(CP0_ERROREPC);
-+ reg_val = read_c0_errorepc();
- printk("Cache error exception:\n");
-- printk("cp0_errorepc == %08x\n", reg_val);
-- reg_val = read_32bit_cp0_register(CP0_CACHEERR);
-- printk("cp0_cacheerr == %08x\n", reg_val);
-+ printk("cp0_errorepc == %08x\n", read_c0_errorepc());
-+ reg_val = read_c0_cacheerr();
-+ printk("c0_cacheerr == %08x\n", reg_val);
-
-- printk("Decoded CP0_CACHEERR: %s cache fault in %s reference.\n",
-+ printk("Decoded c0_cacheerr: %s cache fault in %s reference.\n",
- reg_val & (1<<30) ? "secondary" : "primary",
- reg_val & (1<<31) ? "data" : "insn");
- printk("Error bits: %s%s%s%s%s%s%s\n",
-@@ -832,13 +803,13 @@
- reg_val & (1<<22) ? "E0 " : "");
- printk("IDX: 0x%08x\n", reg_val & ((1<<22)-1));
-
-- if (reg_val&(1<<22))
-- printk("DErrAddr0: 0x%08x\n",
-- read_32bit_cp0_set1_register(CP0_S1_DERRADDR0));
-+#if defined(CONFIG_CPU_MIPS32) || defined (CONFIG_CPU_MIPS64)
-+ if (reg_val & (1<<22))
-+ printk("DErrAddr0: 0x%08x\n", read_c0_derraddr0());
-
-- if (reg_val&(1<<23))
-- printk("DErrAddr1: 0x%08x\n",
-- read_32bit_cp0_set1_register(CP0_S1_DERRADDR1));
-+ if (reg_val & (1<<23))
-+ printk("DErrAddr1: 0x%08x\n", read_c0_derraddr1());
-+#endif
-
- panic("Can't handle the cache error!");
- }
-@@ -849,31 +820,32 @@
- */
- void ejtag_exception_handler(struct pt_regs *regs)
- {
-- unsigned int depc, old_epc, debug;
-+ unsigned long depc, old_epc;
-+ unsigned int debug;
-
-- printk("SDBBP EJTAG debug exception - not handled yet, just ignored!\n");
-- depc = read_32bit_cp0_register(CP0_DEPC);
-- debug = read_32bit_cp0_register(CP0_DEBUG);
-- printk("DEPC = %08x, DEBUG = %08x\n", depc, debug);
-- if (debug & 0x80000000) {
-- /*
-- * In branch delay slot.
-- * We cheat a little bit here and use EPC to calculate the
-- * debug return address (DEPC). EPC is restored after the
-- * calculation.
-- */
-- old_epc = regs->cp0_epc;
-- regs->cp0_epc = depc;
-- __compute_return_epc(regs);
-- depc = regs->cp0_epc;
-- regs->cp0_epc = old_epc;
-- } else
-- depc += 4;
-- write_32bit_cp0_register(CP0_DEPC, depc);
-+ printk("SDBBP EJTAG debug exception - not handled yet, just ignored!\n");
-+ depc = read_c0_depc();
-+ debug = read_c0_debug();
-+ printk("c0_depc = %08lx, DEBUG = %08x\n", depc, debug);
-+ if (debug & 0x80000000) {
-+ /*
-+ * In branch delay slot.
-+ * We cheat a little bit here and use EPC to calculate the
-+ * debug return address (DEPC). EPC is restored after the
-+ * calculation.
-+ */
-+ old_epc = regs->cp0_epc;
-+ regs->cp0_epc = depc;
-+ __compute_return_epc(regs);
-+ depc = regs->cp0_epc;
-+ regs->cp0_epc = old_epc;
-+ } else
-+ depc += 4;
-+ write_c0_depc(depc);
-
- #if 0
- printk("\n\n----- Enable EJTAG single stepping ----\n\n");
-- write_32bit_cp0_register(CP0_DEBUG, debug | 0x100);
-+ write_c0_debug(debug | 0x100);
- #endif
- }
-
-@@ -910,6 +882,7 @@
-
- asmlinkage int (*save_fp_context)(struct sigcontext *sc);
- asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-+
- extern asmlinkage int _save_fp_context(struct sigcontext *sc);
- extern asmlinkage int _restore_fp_context(struct sigcontext *sc);
-
-@@ -921,33 +894,40 @@
- unsigned int cpu = smp_processor_id();
-
- /* Some firmware leaves the BEV flag set, clear it. */
-- clear_cp0_status(ST0_BEV);
-+ clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
-+
-+ if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-+ set_c0_status(ST0_XX);
-
- /*
- * Some MIPS CPUs have a dedicated interrupt vector which reduces the
- * interrupt processing overhead. Use it where available.
- */
- if (mips_cpu.options & MIPS_CPU_DIVEC)
-- set_cp0_cause(CAUSEF_IV);
-+ set_c0_cause(CAUSEF_IV);
-
- cpu_data[cpu].asid_cache = ASID_FIRST_VERSION;
-- set_context(cpu << 23);
-+ write_c0_context(cpu << 23);
-+
-+ atomic_inc(&init_mm.mm_count);
-+ current->active_mm = &init_mm;
-+ if (current->mm)
-+ BUG();
-+ enter_lazy_tlb(&init_mm, current, cpu);
- }
-
- void __init trap_init(void)
- {
-- extern char except_vec1_generic, except_vec2_generic;
-+ extern char except_vec1_generic;
- extern char except_vec3_generic, except_vec3_r4000;
-- extern char except_vec4;
- extern char except_vec_ejtag_debug;
-+ extern char except_vec4;
- unsigned long i;
-
- per_cpu_trap_init();
-
- /* Copy the generic exception handler code to it's final destination. */
- memcpy((void *)(KSEG0 + 0x80), &except_vec1_generic, 0x80);
-- memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-- memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
-
- /*
- * Setup default vectors
-@@ -974,7 +954,7 @@
- */
- if (mips_cpu.options & MIPS_CPU_DIVEC) {
- memcpy((void *)(KSEG0 + 0x200), &except_vec4, 8);
-- set_cp0_cause(CAUSEF_IV);
-+ set_c0_cause(CAUSEF_IV);
- }
-
- /*
-@@ -1005,46 +985,23 @@
- set_except_vector(11, handle_cpu);
- set_except_vector(12, handle_ov);
- set_except_vector(13, handle_tr);
-+ set_except_vector(22, handle_mdmx);
-
- if ((mips_cpu.options & MIPS_CPU_FPU) &&
- !(mips_cpu.options & MIPS_CPU_NOFPUEX))
- set_except_vector(15, handle_fpe);
-+
- if (mips_cpu.options & MIPS_CPU_MCHECK)
- set_except_vector(24, handle_mcheck);
-
-- /*
-- * Handling the following exceptions depends mostly of the cpu type
-- */
-- if ((mips_cpu.options & MIPS_CPU_4KEX)
-- && (mips_cpu.options & MIPS_CPU_4KTLB)) {
-- /* Cache error vector already set above. */
--
-- if (mips_cpu.options & MIPS_CPU_VCE) {
-- memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000,
-- 0x80);
-- }
-- } else switch (mips_cpu.cputype) {
-- case CPU_SB1:
-- /*
-- * XXX - This should be folded in to the "cleaner" handling,
-- * above
-- */
-+ if (mips_cpu.options & MIPS_CPU_VCE)
- memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000, 0x80);
--#ifdef CONFIG_SB1_CACHE_ERROR
-- {
-- /* Special cache error handler for SB1 */
-- extern char except_vec2_sb1;
-- memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
-- memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
-- }
--#endif
-+ else if (mips_cpu.options & MIPS_CPU_4KEX)
-+ memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
-+ else
-+ memcpy((void *)(KSEG0 + 0x080), &except_vec3_generic, 0x80);
-
-- /* Enable timer interrupt and scd mapped interrupt */
-- clear_cp0_status(0xf000);
-- set_cp0_status(0xc00);
-- break;
-- case CPU_R6000:
-- case CPU_R6000A:
-+ if (mips_cpu.cputype == CPU_R6000 || mips_cpu.cputype == CPU_R6000A) {
- /*
- * The R6000 is the only R-series CPU that features a machine
- * check exception (similar to the R4000 cache error) and
-@@ -1055,28 +1012,8 @@
- */
- //set_except_vector(14, handle_mc);
- //set_except_vector(15, handle_ndc);
-- case CPU_R2000:
-- case CPU_R3000:
-- case CPU_R3000A:
-- case CPU_R3041:
-- case CPU_R3051:
-- case CPU_R3052:
-- case CPU_R3081:
-- case CPU_R3081E:
-- case CPU_TX3912:
-- case CPU_TX3922:
-- case CPU_TX3927:
-- case CPU_TX39XX:
-- memcpy((void *)(KSEG0 + 0x80), &except_vec3_generic, 0x80);
-- break;
--
-- case CPU_UNKNOWN:
-- default:
-- panic("Unknown CPU type");
- }
-
-- flush_icache_range(KSEG0, KSEG0 + 0x400);
--
- if (mips_cpu.options & MIPS_CPU_FPU) {
- save_fp_context = _save_fp_context;
- restore_fp_context = _restore_fp_context;
-@@ -1085,10 +1022,9 @@
- restore_fp_context = fpu_emulator_restore_context;
- }
-
-- if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-- set_cp0_status(ST0_XX);
-+ flush_icache_range(KSEG0, KSEG0 + 0x400);
-
-- atomic_inc(&init_mm.mm_count); /* XXX UP? */
-+ atomic_inc(&init_mm.mm_count); /* XXX UP? */
- current->active_mm = &init_mm;
-
- /* XXX Must be done for all CPUs */
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/unaligned.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/unaligned.c
---- linux-2.4.20/arch/mips/kernel/unaligned.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/unaligned.c 2003-02-20 19:09:19.000000000 -0600
-@@ -5,7 +5,7 @@
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
-- * Copyright (C) 1996, 1998, 2002 by Ralf Baechle
-+ * Copyright (C) 1996, 1998, 1999, 2002 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics, Inc.
- *
- * This file contains exception handler for address error exception with the
-@@ -88,22 +88,21 @@
- #define STR(x) __STR(x)
- #define __STR(x) #x
-
--/*
-- * User code may only access USEG; kernel code may access the
-- * entire address space.
-- */
--#define check_axs(pc,a,s) \
-- if ((long)(~(pc) & ((a) | ((a)+(s)))) < 0) \
-- goto sigbus;
-+#ifdef CONFIG_PROC_FS
-+unsigned long unaligned_instructions;
-+#endif
-
- static inline int emulate_load_store_insn(struct pt_regs *regs,
-- unsigned long addr, unsigned long pc)
-+ void *addr, unsigned long pc,
-+ unsigned long **regptr, unsigned long *newvalue)
- {
- union mips_instruction insn;
- unsigned long value, fixup;
- unsigned int res;
-
- regs->regs[0] = 0;
-+ *regptr=NULL;
-+
- /*
- * This load never faults.
- */
-@@ -143,8 +142,10 @@
- * The remaining opcodes are the ones that are really of interest.
- */
- case lh_op:
-- check_axs(pc, addr, 2);
-- __asm__(".set\tnoat\n"
-+ if (verify_area(VERIFY_READ, addr, 2))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (".set\tnoat\n"
- #ifdef __BIG_ENDIAN
- "1:\tlb\t%0, 0(%2)\n"
- "2:\tlbu\t$1, 1(%2)\n\t"
-@@ -169,12 +170,15 @@
- : "r" (addr), "i" (-EFAULT));
- if (res)
- goto fault;
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-
- case lw_op:
-- check_axs(pc, addr, 4);
-- __asm__(
-+ if (verify_area(VERIFY_READ, addr, 4))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
- "1:\tlwl\t%0, (%2)\n"
- "2:\tlwr\t%0, 3(%2)\n\t"
-@@ -196,12 +200,15 @@
- : "r" (addr), "i" (-EFAULT));
- if (res)
- goto fault;
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-
- case lhu_op:
-- check_axs(pc, addr, 2);
-- __asm__(
-+ if (verify_area(VERIFY_READ, addr, 2))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
- ".set\tnoat\n"
- #ifdef __BIG_ENDIAN
- "1:\tlbu\t%0, 0(%2)\n"
-@@ -227,18 +234,102 @@
- : "r" (addr), "i" (-EFAULT));
- if (res)
- goto fault;
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-
- case lwu_op:
-+#ifdef CONFIG_MIPS64
-+ /*
-+ * A 32-bit kernel might be running on a 64-bit processor. But
-+ * if we're on a 32-bit processor and an i-cache incoherency
-+ * or race makes us see a 64-bit instruction here the sdl/sdr
-+ * would blow up, so for now we don't handle unaligned 64-bit
-+ * instructions on 32-bit kernels.
-+ */
-+ if (verify_area(VERIFY_READ, addr, 4))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
-+#ifdef __BIG_ENDIAN
-+ "1:\tlwl\t%0, (%2)\n"
-+ "2:\tlwr\t%0, 3(%2)\n\t"
-+#endif
-+#ifdef __LITTLE_ENDIAN
-+ "1:\tlwl\t%0, 3(%2)\n"
-+ "2:\tlwr\t%0, (%2)\n\t"
-+#endif
-+ "dsll\t%0, %0, 32\n\t"
-+ "dsrl\t%0, %0, 32\n\t"
-+ "li\t%1, 0\n"
-+ "3:\t.section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
-+ ".section\t__ex_table,\"a\"\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
-+ ".previous"
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-+#endif /* CONFIG_MIPS64 */
-+
-+ /* Cannot handle 64-bit instructions in 32-bit kernel */
-+ goto sigill;
-+
- case ld_op:
-+#ifdef CONFIG_MIPS64
-+ /*
-+ * A 32-bit kernel might be running on a 64-bit processor. But
-+ * if we're on a 32-bit processor and an i-cache incoherency
-+ * or race makes us see a 64-bit instruction here the sdl/sdr
-+ * would blow up, so for now we don't handle unaligned 64-bit
-+ * instructions on 32-bit kernels.
-+ */
-+ if (verify_area(VERIFY_READ, addr, 8))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
-+#ifdef __BIG_ENDIAN
-+ "1:\tldl\t%0, (%2)\n"
-+ "2:\tldr\t%0, 7(%2)\n\t"
-+#endif
-+#ifdef __LITTLE_ENDIAN
-+ "1:\tldl\t%0, 7(%2)\n"
-+ "2:\tldr\t%0, (%2)\n\t"
-+#endif
-+ "li\t%1, 0\n"
-+ "3:\t.section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
-+ ".section\t__ex_table,\"a\"\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
-+ ".previous"
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-+#endif /* CONFIG_MIPS64 */
-+
- /* Cannot handle 64-bit instructions in 32-bit kernel */
- goto sigill;
-
- case sh_op:
-- check_axs(pc, addr, 2);
-+ if (verify_area(VERIFY_WRITE, addr, 2))
-+ goto sigbus;
-+
- value = regs->regs[insn.i_format.rt];
-- __asm__(
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
- ".set\tnoat\n"
- "1:\tsb\t%1, 1(%2)\n\t"
-@@ -267,12 +358,14 @@
- : "r" (value), "r" (addr), "i" (-EFAULT));
- if (res)
- goto fault;
-- return 0;
-+ break;
-
- case sw_op:
-- check_axs(pc, addr, 4);
-+ if (verify_area(VERIFY_WRITE, addr, 4))
-+ goto sigbus;
-+
- value = regs->regs[insn.i_format.rt];
-- __asm__(
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
- "1:\tswl\t%1,(%2)\n"
- "2:\tswr\t%1, 3(%2)\n\t"
-@@ -295,9 +388,47 @@
- : "r" (value), "r" (addr), "i" (-EFAULT));
- if (res)
- goto fault;
-- return 0;
-+ break;
-
- case sd_op:
-+#ifdef CONFIG_MIPS64
-+ /*
-+ * A 32-bit kernel might be running on a 64-bit processor. But
-+ * if we're on a 32-bit processor and an i-cache incoherency
-+ * or race makes us see a 64-bit instruction here the sdl/sdr
-+ * would blow up, so for now we don't handle unaligned 64-bit
-+ * instructions on 32-bit kernels.
-+ */
-+ if (verify_area(VERIFY_WRITE, addr, 8))
-+ goto sigbus;
-+
-+ value = regs->regs[insn.i_format.rt];
-+ __asm__ __volatile__ (
-+#ifdef __BIG_ENDIAN
-+ "1:\tsdl\t%1,(%2)\n"
-+ "2:\tsdr\t%1, 7(%2)\n\t"
-+#endif
-+#ifdef __LITTLE_ENDIAN
-+ "1:\tsdl\t%1, 7(%2)\n"
-+ "2:\tsdr\t%1, (%2)\n\t"
-+#endif
-+ "li\t%0, 0\n"
-+ "3:\n\t"
-+ ".section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%0, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
-+ ".section\t__ex_table,\"a\"\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
-+ ".previous"
-+ : "=r" (res)
-+ : "r" (value), "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ break;
-+#endif /* CONFIG_MIPS64 */
-+
- /* Cannot handle 64-bit instructions in 32-bit kernel */
- goto sigill;
-
-@@ -328,6 +459,11 @@
- */
- goto sigill;
- }
-+
-+#ifdef CONFIG_PROC_FS
-+ unaligned_instructions++;
-+#endif
-+
- return 0;
-
- fault:
-@@ -356,23 +492,21 @@
- sigill:
- die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
- send_sig(SIGILL, current, 1);
-+
- return 0;
- }
-
--#ifdef CONFIG_PROC_FS
--unsigned long unaligned_instructions;
--#endif
--
- asmlinkage void do_ade(struct pt_regs *regs)
- {
-- unsigned long pc;
-+ unsigned long *regptr, newval;
- extern int do_dsemulret(struct pt_regs *);
-+ mm_segment_t seg;
-+ unsigned long pc;
-
- /*
-- * Address errors may be deliberately induced
-- * by the FPU emulator to take retake control
-- * of the CPU after executing the instruction
-- * in the delay slot of an emulated branch.
-+ * Address errors may be deliberately induced by the FPU emulator to
-+ * retake control of the CPU after executing the instruction in the
-+ * delay slot of an emulated branch.
- */
- /* Terminate if exception was recognized as a delay slot return */
- if (do_dsemulret(regs))
-@@ -382,13 +516,12 @@
-
- /*
- * Did we catch a fault trying to load an instruction?
-- * This also catches attempts to activate MIPS16 code on
-- * CPUs which don't support it.
-+ * Or are we running in MIPS16 mode?
- */
-- if (regs->cp0_badvaddr == regs->cp0_epc)
-+ if ((regs->cp0_badvaddr == regs->cp0_epc) || (regs->cp0_epc & 0x1))
- goto sigbus;
-
-- pc = regs->cp0_epc + ((regs->cp0_cause & CAUSEF_BD) ? 4 : 0);
-+ pc = exception_epc(regs);
- if ((current->thread.mflags & MF_FIXADE) == 0)
- goto sigbus;
-
-@@ -396,12 +529,20 @@
- * Do branch emulation only if we didn't forward the exception.
- * This is all so but ugly ...
- */
-- if (!emulate_load_store_insn(regs, regs->cp0_badvaddr, pc))
-+ seg = get_fs();
-+ if (!user_mode(regs))
-+ set_fs(KERNEL_DS);
-+ if (!emulate_load_store_insn(regs, (void *)regs->cp0_badvaddr, pc,
-+ &regptr, &newval)) {
- compute_return_epc(regs);
--
--#ifdef CONFIG_PROC_FS
-- unaligned_instructions++;
--#endif
-+ /*
-+ * Now that branch is evaluated, update the dest
-+ * register if necessary
-+ */
-+ if (regptr)
-+ *regptr = newval;
-+ }
-+ set_fs(seg);
-
- return;
-
-@@ -412,6 +553,4 @@
- /*
- * XXX On return from the signal handler we should advance the epc
- */
--
-- return;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/kernel/vm86.c linux-2.4.20-mipscvs-20050106/arch/mips/kernel/vm86.c
---- linux-2.4.20/arch/mips/kernel/vm86.c 1997-06-26 14:33:37.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/kernel/vm86.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,13 +0,0 @@
--/*
-- * arch/mips/vm86.c
-- *
-- * Copyright (C) 1994 Waldorf GMBH,
-- * written by Ralf Baechle
-- */
--#include <linux/linkage.h>
--#include <linux/errno.h>
--
--asmlinkage int sys_vm86(void *v86)
--{
-- return -ENOSYS;
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/at93c.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.c
---- linux-2.4.20/arch/mips/lasat/at93c.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.c 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,148 @@
-+/*
-+ * Atmel AT93C46 serial eeprom driver
-+ *
-+ * Brian Murphy <brian.murphy@eicon.com>
-+ *
-+ */
-+#include <linux/kernel.h>
-+#include <linux/delay.h>
-+#include <asm/lasat/lasat.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+
-+#include "at93c.h"
-+
-+#define AT93C_ADDR_SHIFT 7
-+#define AT93C_ADDR_MAX ((1 << AT93C_ADDR_SHIFT) - 1)
-+#define AT93C_RCMD (0x6 << AT93C_ADDR_SHIFT)
-+#define AT93C_WCMD (0x5 << AT93C_ADDR_SHIFT)
-+#define AT93C_WENCMD 0x260
-+#define AT93C_WDSCMD 0x200
-+
-+struct at93c_defs *at93c;
-+
-+static void at93c_reg_write(u32 val)
-+{
-+ *at93c->reg = val;
-+}
-+
-+static u32 at93c_reg_read(void)
-+{
-+ u32 tmp = *at93c->reg;
-+ return tmp;
-+}
-+
-+static u32 at93c_datareg_read(void)
-+{
-+ u32 tmp = *at93c->rdata_reg;
-+ return tmp;
-+}
-+
-+static void at93c_cycle_clk(u32 data)
-+{
-+ at93c_reg_write(data | at93c->clk);
-+ ndelay(250);
-+ at93c_reg_write(data & ~at93c->clk);
-+ ndelay(250);
-+}
-+
-+static void at93c_write_databit(u8 bit)
-+{
-+ u32 data = at93c_reg_read();
-+ if (bit)
-+ data |= 1 << at93c->wdata_shift;
-+ else
-+ data &= ~(1 << at93c->wdata_shift);
-+
-+ at93c_reg_write(data);
-+ ndelay(100);
-+ at93c_cycle_clk(data);
-+}
-+
-+static unsigned int at93c_read_databit(void)
-+{
-+ u32 data;
-+
-+ at93c_cycle_clk(at93c_reg_read());
-+ data = (at93c_datareg_read() >> at93c->rdata_shift) & 1;
-+ return data;
-+}
-+
-+static u8 at93c_read_byte(void)
-+{
-+ int i;
-+ u8 data = 0;
-+
-+ for (i = 0; i<=7; i++) {
-+ data <<= 1;
-+ data |= at93c_read_databit();
-+ }
-+ return data;
-+}
-+
-+static void at93c_write_bits(u32 data, int size)
-+{
-+ int i;
-+ int shift = size - 1;
-+ u32 mask = (1 << shift);
-+
-+ for (i = 0; i < size; i++) {
-+ at93c_write_databit((data & mask) >> shift);
-+ data <<= 1;
-+ }
-+}
-+
-+static void at93c_init_op(void)
-+{
-+ at93c_reg_write((at93c_reg_read() | at93c->cs) & ~at93c->clk & ~(1 << at93c->rdata_shift));
-+ ndelay(50);
-+}
-+
-+static void at93c_end_op(void)
-+{
-+ at93c_reg_write(at93c_reg_read() & ~at93c->cs);
-+ ndelay(250);
-+}
-+
-+static void at93c_wait(void)
-+{
-+ at93c_init_op();
-+ while (!at93c_read_databit())
-+ ;
-+ at93c_end_op();
-+};
-+
-+static void at93c_disable_wp(void)
-+{
-+ at93c_init_op();
-+ at93c_write_bits(AT93C_WENCMD, 10);
-+ at93c_end_op();
-+}
-+
-+static void at93c_enable_wp(void)
-+{
-+ at93c_init_op();
-+ at93c_write_bits(AT93C_WDSCMD, 10);
-+ at93c_end_op();
-+}
-+
-+u8 at93c_read(u8 addr)
-+{
-+ u8 byte;
-+ at93c_init_op();
-+ at93c_write_bits((addr & AT93C_ADDR_MAX)|AT93C_RCMD, 10);
-+ byte = at93c_read_byte();
-+ at93c_end_op();
-+ return byte;
-+}
-+
-+void at93c_write(u8 addr, u8 data)
-+{
-+ at93c_disable_wp();
-+ at93c_init_op();
-+ at93c_write_bits((addr & AT93C_ADDR_MAX)|AT93C_WCMD, 10);
-+ at93c_write_bits(data, 8);
-+ at93c_end_op();
-+ at93c_wait();
-+ at93c_enable_wp();
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/at93c.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.h
---- linux-2.4.20/arch/mips/lasat/at93c.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/at93c.h 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,18 @@
-+/*
-+ * Atmel AT93C46 serial eeprom driver
-+ *
-+ * Brian Murphy <brian.murphy@eicon.com>
-+ *
-+ */
-+
-+extern struct at93c_defs {
-+ volatile u32 *reg;
-+ volatile u32 *rdata_reg;
-+ int rdata_shift;
-+ int wdata_shift;
-+ u32 cs;
-+ u32 clk;
-+} *at93c;
-+
-+u8 at93c_read(u8 addr);
-+void at93c_write(u8 addr, u8 data);
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/crc32.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/crc32.c
---- linux-2.4.20/arch/mips/lasat/crc32.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/crc32.c 2002-10-06 06:39:39.000000000 -0500
-@@ -0,0 +1,87 @@
-+/* crc32.c -- compute the CRC-32 of a data stream
-+ * Copyright (C) 1995-1998 Mark Adler
-+ * For conditions of distribution and use, see copyright notice in zlib.h
-+ */
-+
-+#undef DYNAMIC_CRC_TABLE
-+
-+#define local static
-+
-+/* ========================================================================
-+ * Table of CRC-32's of all single-byte values (made by make_crc_table)
-+ */
-+const unsigned long crc_table[256] = {
-+ 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
-+ 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
-+ 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
-+ 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
-+ 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
-+ 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
-+ 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
-+ 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
-+ 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
-+ 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
-+ 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
-+ 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
-+ 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
-+ 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
-+ 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
-+ 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
-+ 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
-+ 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
-+ 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
-+ 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
-+ 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
-+ 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
-+ 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
-+ 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
-+ 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
-+ 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
-+ 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
-+ 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
-+ 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
-+ 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
-+ 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
-+ 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
-+ 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
-+ 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
-+ 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
-+ 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
-+ 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
-+ 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
-+ 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
-+ 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
-+ 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
-+ 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
-+ 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
-+ 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
-+ 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
-+ 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
-+ 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
-+ 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
-+ 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
-+ 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
-+ 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
-+ 0x2d02ef8dL
-+};
-+/* ========================================================================= */
-+#define DO1(buf) crc = crc_table[((int)crc ^ (*buf++)) & 0xff] ^ (crc >> 8);
-+#define DO2(buf) DO1(buf); DO1(buf);
-+#define DO4(buf) DO2(buf); DO2(buf);
-+#define DO8(buf) DO4(buf); DO4(buf);
-+
-+/* ========================================================================= */
-+unsigned long crc32(unsigned long crc, const unsigned char * buf, unsigned int len)
-+{
-+ if (buf == 0) return 0L;
-+ crc = crc ^ 0xffffffffL;
-+ while (len >= 8)
-+ {
-+ DO8(buf);
-+ len -= 8;
-+ }
-+ if (len) do {
-+ DO1(buf);
-+ } while (--len);
-+ return crc ^ 0xffffffffL;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Entries
---- linux-2.4.20/arch/mips/lasat/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,22 @@
-+/.cvsignore/1.1.2.1/Sun Oct 6 02:01:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.3/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/at93c.c/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/at93c.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/crc32.c/1.1.2.2/Sun Oct 6 11:39:39 2002/-ko/Tlinux_2_4_20
-+/ds1603.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/ds1603.h/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/interrupt.c/1.1.2.4/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/lasatIRQ.S/1.1.2.2/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/lasat_board.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/lasat_models.h/1.1.2.1/Sun Oct 6 02:01:33 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.6/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/picvue.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/picvue.h/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/picvue_proc.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/prom.h/1.1.2.1/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/reset.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.9/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/sysctl.c/1.1.2.2/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/sysctl.h/1.1.2.2/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+D/image////
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Repository
---- linux-2.4.20/arch/mips/lasat/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Repository 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/lasat
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Root
---- linux-2.4.20/arch/mips/lasat/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Root 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Tag
---- linux-2.4.20/arch/mips/lasat/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/CVS/Tag 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/lasat/.cvsignore
---- linux-2.4.20/arch/mips/lasat/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/.cvsignore 2002-10-05 21:01:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/ds1603.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.c
---- linux-2.4.20/arch/mips/lasat/ds1603.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,174 @@
-+/*
-+ * Dallas Semiconductors 1603 RTC driver
-+ *
-+ * Brian Murphy <brian@murphy.dk>
-+ *
-+ */
-+#include <linux/kernel.h>
-+#include <asm/lasat/lasat.h>
-+#include <linux/delay.h>
-+#include <asm/lasat/ds1603.h>
-+
-+#include "ds1603.h"
-+
-+#define READ_TIME_CMD 0x81
-+#define SET_TIME_CMD 0x80
-+#define TRIMMER_SET_CMD 0xC0
-+#define TRIMMER_VALUE_MASK 0x38
-+#define TRIMMER_SHIFT 3
-+
-+struct ds_defs *ds1603 = NULL;
-+
-+/* HW specific register functions */
-+static void rtc_reg_write(unsigned long val)
-+{
-+ *ds1603->reg = val;
-+}
-+
-+static unsigned long rtc_reg_read(void)
-+{
-+ unsigned long tmp = *ds1603->reg;
-+ return tmp;
-+}
-+
-+static unsigned long rtc_datareg_read(void)
-+{
-+ unsigned long tmp = *ds1603->data_reg;
-+ return tmp;
-+}
-+
-+static void rtc_nrst_high(void)
-+{
-+ rtc_reg_write(rtc_reg_read() | ds1603->rst);
-+}
-+
-+static void rtc_nrst_low(void)
-+{
-+ rtc_reg_write(rtc_reg_read() & ~ds1603->rst);
-+}
-+
-+static void rtc_cycle_clock(unsigned long data)
-+{
-+ data |= ds1603->clk;
-+ rtc_reg_write(data);
-+ ndelay(250);
-+ if (ds1603->data_reversed)
-+ data &= ~ds1603->data;
-+ else
-+ data |= ds1603->data;
-+ data &= ~ds1603->clk;
-+ rtc_reg_write(data);
-+ ndelay(250 + ds1603->huge_delay);
-+}
-+
-+static void rtc_write_databit(unsigned int bit)
-+{
-+ unsigned long data = rtc_reg_read();
-+ if (ds1603->data_reversed)
-+ bit = !bit;
-+ if (bit)
-+ data |= ds1603->data;
-+ else
-+ data &= ~ds1603->data;
-+
-+ rtc_reg_write(data);
-+ ndelay(50 + ds1603->huge_delay);
-+ rtc_cycle_clock(data);
-+}
-+
-+static unsigned int rtc_read_databit(void)
-+{
-+ unsigned int data;
-+
-+ data = (rtc_datareg_read() & (1 << ds1603->data_read_shift))
-+ >> ds1603->data_read_shift;
-+ rtc_cycle_clock(rtc_reg_read());
-+ return data;
-+}
-+
-+static void rtc_write_byte(unsigned int byte)
-+{
-+ int i;
-+
-+ for (i = 0; i<=7; i++) {
-+ rtc_write_databit(byte & 1L);
-+ byte >>= 1;
-+ }
-+}
-+
-+static void rtc_write_word(unsigned long word)
-+{
-+ int i;
-+
-+ for (i = 0; i<=31; i++) {
-+ rtc_write_databit(word & 1L);
-+ word >>= 1;
-+ }
-+}
-+
-+static unsigned long rtc_read_word(void)
-+{
-+ int i;
-+ unsigned long word = 0;
-+ unsigned long shift = 0;
-+
-+ for (i = 0; i<=31; i++) {
-+ word |= rtc_read_databit() << shift;
-+ shift++;
-+ }
-+ return word;
-+}
-+
-+static void rtc_init_op(void)
-+{
-+ rtc_nrst_high();
-+
-+ rtc_reg_write(rtc_reg_read() & ~ds1603->clk);
-+
-+ ndelay(50);
-+}
-+
-+static void rtc_end_op(void)
-+{
-+ rtc_nrst_low();
-+ ndelay(1000);
-+}
-+
-+/* interface */
-+unsigned long ds1603_read(void)
-+{
-+ unsigned long word;
-+ rtc_init_op();
-+ rtc_write_byte(READ_TIME_CMD);
-+ word = rtc_read_word();
-+ rtc_end_op();
-+ return word;
-+}
-+
-+int ds1603_set(unsigned long time)
-+{
-+ rtc_init_op();
-+ rtc_write_byte(SET_TIME_CMD);
-+ rtc_write_word(time);
-+ rtc_end_op();
-+
-+ return 0;
-+}
-+
-+void ds1603_set_trimmer(unsigned int trimval)
-+{
-+ rtc_init_op();
-+ rtc_write_byte(((trimval << TRIMMER_SHIFT) & TRIMMER_VALUE_MASK)
-+ | (TRIMMER_SET_CMD));
-+ rtc_end_op();
-+}
-+
-+void ds1603_disable(void)
-+{
-+ ds1603_set_trimmer(TRIMMER_DISABLE_RTC);
-+}
-+
-+void ds1603_enable(void)
-+{
-+ ds1603_set_trimmer(TRIMMER_DEFAULT);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/ds1603.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.h
---- linux-2.4.20/arch/mips/lasat/ds1603.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/ds1603.h 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,33 @@
-+/*
-+ * Dallas Semiconductors 1603 RTC driver
-+ *
-+ * Brian Murphy <brian@murphy.dk>
-+ *
-+ */
-+#ifndef __DS1603_H
-+#define __DS1603_H
-+
-+struct ds_defs {
-+ volatile u32 *reg;
-+ volatile u32 *data_reg;
-+ u32 rst;
-+ u32 clk;
-+ u32 data;
-+ u32 data_read_shift;
-+ char data_reversed;
-+ u32 huge_delay;
-+};
-+
-+extern struct ds_defs *ds1603;
-+
-+unsigned long ds1603_read(void);
-+int ds1603_set(unsigned long);
-+void ds1603_set_trimmer(unsigned int);
-+void ds1603_enable(void);
-+void ds1603_disable(void);
-+void ds1603_init(struct ds_defs *);
-+
-+#define TRIMMER_DEFAULT 3
-+#define TRIMMER_DISABLE_RTC 0
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Entries
---- linux-2.4.20/arch/mips/lasat/image/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Entries 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1.2.1/Sun Oct 6 02:01:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/head.S/1.1.2.1/Sun Oct 6 02:01:33 2002/-ko/Tlinux_2_4_20
-+/romscript.normal/1.1.2.1/Sun Oct 6 02:01:33 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Repository
---- linux-2.4.20/arch/mips/lasat/image/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Repository 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/lasat/image
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Root
---- linux-2.4.20/arch/mips/lasat/image/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Root 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Tag
---- linux-2.4.20/arch/mips/lasat/image/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/CVS/Tag 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/.cvsignore
---- linux-2.4.20/arch/mips/lasat/image/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/.cvsignore 2002-10-05 21:01:33.000000000 -0500
-@@ -0,0 +1,6 @@
-+.depend
-+.*.flags
-+rom
-+rom.bin
-+rom.sw
-+kImage.bin
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/head.S linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/head.S
---- linux-2.4.20/arch/mips/lasat/image/head.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/head.S 2002-10-05 21:01:33.000000000 -0500
-@@ -0,0 +1,31 @@
-+#include <asm/lasat/head.h>
-+
-+ .text
-+ .section .text.start, "ax"
-+ .set noreorder
-+ .set mips3
-+
-+ /* Magic words identifying a software image */
-+ .word LASAT_K_MAGIC0_VAL
-+ .word LASAT_K_MAGIC1_VAL
-+
-+ /* Image header version */
-+ .word 0x00000002
-+
-+ /* image start and size */
-+ .word _image_start
-+ .word _image_size
-+
-+ /* start of kernel and entrypoint in uncompressed image */
-+ .word _kernel_start
-+ .word _kernel_entry
-+
-+ /* Here we have room for future flags */
-+
-+ .org 0x40
-+reldate:
-+ .word TIMESTAMP
-+
-+ .org 0x50
-+release:
-+ .string VERSION
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/Makefile
---- linux-2.4.20/arch/mips/lasat/image/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/Makefile 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,59 @@
-+#
-+# MAKEFILE FOR THE MIPS LINUX BOOTLOADER AND ROM DEBUGGER
-+#
-+# i-data Networks
-+#
-+# Author: Thomas Horsten <thh@i-data.com>
-+#
-+
-+ifndef Version
-+ Version = "$(USER)-test"
-+endif
-+
-+MKLASATIMG = mklasatimg
-+MKLASATIMG_ARCH = mq2,mqpro,sp100,sp200
-+ifdef CONFIG_LASAT_SERVICE
-+MKLASATIMG_FLAG = -s
-+else
-+MKLASATIMG_FLAG = -k
-+endif
-+
-+KERNEL_IMAGE = $(TOPDIR)/vmlinux
-+KERNEL_START = $(shell $(NM) $(KERNEL_IMAGE) | grep _ftext | cut -f1 -d\ )
-+KERNEL_ENTRY = $(shell $(NM) $(KERNEL_IMAGE) | grep kernel_entry | cut -f1 -d\ )
-+
-+LDSCRIPT= -Tromscript.normal
-+
-+AFLAGS_head.o = -D_kernel_start=0x$(KERNEL_START) \
-+ -D_kernel_entry=0x$(KERNEL_ENTRY) \
-+ -D VERSION="\"$(Version)\"" \
-+ -D TIMESTAMP=$(shell date +%s)
-+
-+head.o: $(KERNEL_IMAGE)
-+
-+OBJECTS= head.o kImage.o
-+
-+rom.sw: rom.bin
-+ $(MKLASATIMG) -o rom.sw $(MKLASATIMG_FLAG) rom.bin -m $(MKLASATIMG_ARCH)
-+
-+rom.bin: rom
-+ $(OBJCOPY) -O binary -S rom rom.bin
-+
-+# Rule to make the bootloader
-+rom: $(OBJECTS)
-+ $(LD) $(LDFLAGS) $(LDSCRIPT) -o rom $(OBJECTS)
-+
-+%.o: %.gz
-+ $(LD) -r -o $@ -b binary $<
-+
-+%.gz: %.bin
-+ gzip -cf -9 $< > $@
-+
-+kImage.bin: $(KERNEL_IMAGE)
-+ $(OBJCOPY) -O binary -S $(TOPDIR)/vmlinux kImage.bin
-+
-+clean:
-+ rm -f rom rom.bin rom.sw kImage.bin
-+
-+USE_STANDARD_AS_RULE = 1
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/image/romscript.normal linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/romscript.normal
---- linux-2.4.20/arch/mips/lasat/image/romscript.normal 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/image/romscript.normal 2002-10-05 21:01:33.000000000 -0500
-@@ -0,0 +1,22 @@
-+OUTPUT_ARCH(mips)
-+
-+SECTIONS
-+{
-+ .text :
-+ {
-+ *(.text.start)
-+ }
-+
-+ /* Data in ROM */
-+
-+ .data ALIGN(0x10) :
-+ {
-+ *(.data)
-+ }
-+ _image_start = ADDR(.data);
-+ _image_size = SIZEOF(.data);
-+
-+ .other : {
-+ *(.*)
-+ }
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/interrupt.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/interrupt.c
---- linux-2.4.20/arch/mips/lasat/interrupt.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/interrupt.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,193 @@
-+/*
-+ * Carsten Langgaard, carstenl@mips.com
-+ * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Routines for generic manipulation of the interrupts found on the
-+ * Lasat boards.
-+ *
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/sched.h>
-+#include <linux/slab.h>
-+#include <linux/interrupt.h>
-+#include <linux/kernel_stat.h>
-+
-+#include <asm/bootinfo.h>
-+#include <asm/irq.h>
-+#include <asm/lasat/lasatint.h>
-+#include <asm/gdb-stub.h>
-+
-+static volatile int *lasat_int_status = NULL;
-+static volatile int *lasat_int_mask = NULL;
-+static volatile int lasat_int_mask_shift;
-+
-+extern asmlinkage void mipsIRQ(void);
-+extern void do_IRQ(int irq, struct pt_regs *regs);
-+
-+#if 0
-+#define DEBUG_INT(x...) printk(x)
-+#else
-+#define DEBUG_INT(x...)
-+#endif
-+
-+void disable_lasat_irq(unsigned int irq_nr)
-+{
-+ unsigned long flags;
-+ DEBUG_INT("disable_lasat_irq: %d", irq_nr);
-+
-+ local_irq_save(flags);
-+ *lasat_int_mask &= ~(1 << irq_nr) << lasat_int_mask_shift;
-+ local_irq_restore(flags);
-+}
-+
-+void enable_lasat_irq(unsigned int irq_nr)
-+{
-+ unsigned long flags;
-+ DEBUG_INT("enable_lasat_irq: %d", irq_nr);
-+
-+ local_irq_save(flags);
-+ *lasat_int_mask |= (1 << irq_nr) << lasat_int_mask_shift;
-+ local_irq_restore(flags);
-+}
-+
-+static unsigned int startup_lasat_irq(unsigned int irq)
-+{
-+ enable_lasat_irq(irq);
-+ return 0; /* never anything pending */
-+}
-+
-+#define shutdown_lasat_irq disable_lasat_irq
-+
-+#define mask_and_ack_lasat_irq disable_lasat_irq
-+
-+static void end_lasat_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ enable_lasat_irq(irq);
-+}
-+
-+static struct hw_interrupt_type lasat_irq_type = {
-+ "Lasat",
-+ startup_lasat_irq,
-+ shutdown_lasat_irq,
-+ enable_lasat_irq,
-+ disable_lasat_irq,
-+ mask_and_ack_lasat_irq,
-+ end_lasat_irq,
-+ NULL
-+};
-+
-+static inline int ls1bit32(unsigned int x)
-+{
-+ int b = 31, s;
-+
-+ s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
-+ s = 8; if (x << 8 == 0) s = 0; b -= s; x <<= s;
-+ s = 4; if (x << 4 == 0) s = 0; b -= s; x <<= s;
-+ s = 2; if (x << 2 == 0) s = 0; b -= s; x <<= s;
-+ s = 1; if (x << 1 == 0) s = 0; b -= s;
-+
-+ return b;
-+}
-+
-+static unsigned long (* get_int_status)(void);
-+
-+static unsigned long get_int_status_100(void)
-+{
-+ return (*lasat_int_status & *lasat_int_mask);
-+}
-+
-+static unsigned long get_int_status_200(void)
-+{
-+ unsigned long int_status;
-+
-+ int_status = *lasat_int_status;
-+ int_status &= (int_status >> LASATINT_MASK_SHIFT_200) & 0xffff;
-+ return int_status;
-+}
-+
-+void lasat_hw0_irqdispatch(struct pt_regs *regs)
-+{
-+ struct irqaction *action;
-+ unsigned long int_status;
-+ int irq, cpu = smp_processor_id();
-+
-+ int_status = get_int_status();
-+
-+ /* if int_status == 0, then the interrupt has already been cleared */
-+ if (int_status == 0)
-+ return;
-+
-+ irq = ls1bit32(int_status);
-+ action = irq_desc[irq].action;
-+
-+ DEBUG_INT("lasat_hw0_irqdispatch: irq=%d\n", irq);
-+
-+ /* if action == NULL, then we don't have a handler for the irq */
-+ if (action == NULL) {
-+ printk("No handler for hw0 irq: %i\n", irq);
-+ atomic_inc(&irq_err_count);
-+ return;
-+ }
-+
-+ irq_enter(cpu, irq);
-+ kstat.irqs[0][irq]++;
-+ action->handler(irq, action->dev_id, regs);
-+ irq_exit(cpu, irq);
-+
-+ return;
-+}
-+
-+void __init init_IRQ(void)
-+{
-+ int i;
-+
-+ init_generic_irq();
-+
-+ switch (mips_machtype) {
-+ case MACH_LASAT_100:
-+ lasat_int_status = (void *)LASAT_INT_STATUS_REG_100;
-+ lasat_int_mask = (void *)LASAT_INT_MASK_REG_100;
-+ lasat_int_mask_shift = LASATINT_MASK_SHIFT_100;
-+ get_int_status = get_int_status_100;
-+ *lasat_int_mask = 0;
-+ break;
-+ case MACH_LASAT_200:
-+ lasat_int_status = (void *)LASAT_INT_STATUS_REG_200;
-+ lasat_int_mask = (void *)LASAT_INT_MASK_REG_200;
-+ lasat_int_mask_shift = LASATINT_MASK_SHIFT_200;
-+ get_int_status = get_int_status_200;
-+ *lasat_int_mask &= 0xffff;
-+ break;
-+ default:
-+ panic("init_IRQ: mips_machtype incorrect");
-+ }
-+
-+ /* Now safe to set the exception vector. */
-+ set_except_vector(0, mipsIRQ);
-+
-+ for (i = 0; i <= LASATINT_END; i++) {
-+ irq_desc[i].status = IRQ_DISABLED;
-+ irq_desc[i].action = 0;
-+ irq_desc[i].depth = 1;
-+ irq_desc[i].handler = &lasat_irq_type;
-+ }
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/lasat_board.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_board.c
---- linux-2.4.20/arch/mips/lasat/lasat_board.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_board.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,279 @@
-+/*
-+ * lasat_board.c
-+ *
-+ * Thomas Horsten <thh@lasat.com>
-+ * Copyright (C) 2000 LASAT Networks A/S.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Routines specific to the LASAT boards
-+ */
-+#include <linux/types.h>
-+#include <asm/lasat/lasat.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+#include <linux/ctype.h>
-+#include <asm/bootinfo.h>
-+#include <asm/addrspace.h>
-+#include "at93c.h"
-+/* New model description table */
-+#include "lasat_models.h"
-+struct lasat_info lasat_board_info;
-+
-+unsigned long crc32(unsigned long, unsigned char *, int);
-+void update_bcastaddr(void);
-+
-+int EEPROMRead(unsigned int pos, unsigned char *data, int len)
-+{
-+ int i;
-+
-+ for (i=0; i<len; i++)
-+ *data++ = at93c_read(pos++);
-+
-+ return 0;
-+}
-+int EEPROMWrite(unsigned int pos, unsigned char *data, int len)
-+{
-+ int i;
-+
-+ for (i=0; i<len; i++)
-+ at93c_write(pos++, *data++);
-+
-+ return 0;
-+}
-+
-+static void init_flash_sizes(void)
-+{
-+ int i;
-+ unsigned long *lb = lasat_board_info.li_flashpart_base;
-+ unsigned long *ls = lasat_board_info.li_flashpart_size;
-+
-+ ls[LASAT_MTD_BOOTLOADER] = 0x40000;
-+ ls[LASAT_MTD_SERVICE] = 0xC0000;
-+ ls[LASAT_MTD_NORMAL] = 0x100000;
-+
-+ if (mips_machtype == MACH_LASAT_100) {
-+ lasat_board_info.li_flash_base = KSEG1ADDR(0x1e000000);
-+
-+ lb[LASAT_MTD_BOOTLOADER] = KSEG1ADDR(0x1e400000);
-+
-+ if (lasat_board_info.li_flash_size > 0x200000) {
-+ ls[LASAT_MTD_CONFIG] = 0x100000;
-+ ls[LASAT_MTD_FS] = 0x500000;
-+ }
-+ } else {
-+ lasat_board_info.li_flash_base = KSEG1ADDR(0x10000000);
-+
-+ if (lasat_board_info.li_flash_size < 0x1000000) {
-+ lb[LASAT_MTD_BOOTLOADER] = KSEG1ADDR(0x10000000);
-+ ls[LASAT_MTD_CONFIG] = 0x100000;
-+ if (lasat_board_info.li_flash_size >= 0x400000) {
-+ ls[LASAT_MTD_FS] = lasat_board_info.li_flash_size - 0x300000;
-+ }
-+ }
-+ }
-+
-+ for (i = 1; i < LASAT_MTD_LAST; i++)
-+ lb[i] = lb[i-1] + ls[i-1];
-+}
-+
-+int lasat_init_board_info(void)
-+{
-+ int c;
-+ unsigned long crc;
-+ unsigned long cfg0, cfg1;
-+ const product_info_t *ppi;
-+ int i_n_base_models = N_BASE_MODELS;
-+ const char * const * i_txt_base_models = txt_base_models;
-+ int i_n_prids = N_PRIDS;
-+
-+ memset(&lasat_board_info, 0, sizeof(lasat_board_info));
-+
-+ /* First read the EEPROM info */
-+ EEPROMRead(0, (unsigned char *)&lasat_board_info.li_eeprom_info,
-+ sizeof(struct lasat_eeprom_struct));
-+
-+ /* Check the CRC */
-+ crc = crc32(0x0, (unsigned char *)(&lasat_board_info.li_eeprom_info),
-+ sizeof(struct lasat_eeprom_struct) - 4);
-+
-+ if (crc != lasat_board_info.li_eeprom_info.crc32) {
-+ prom_printf("WARNING...\nWARNING...\nEEPROM CRC does not match calculated, attempting to soldier on...\n");
-+ }
-+
-+ if (lasat_board_info.li_eeprom_info.version != LASAT_EEPROM_VERSION)
-+ {
-+ prom_printf("WARNING...\nWARNING...\nEEPROM version %d, wanted version %d, attempting to soldier on...\n",
-+ (unsigned int)lasat_board_info.li_eeprom_info.version,
-+ LASAT_EEPROM_VERSION);
-+ }
-+
-+ cfg0 = lasat_board_info.li_eeprom_info.cfg[0];
-+ cfg1 = lasat_board_info.li_eeprom_info.cfg[1];
-+
-+ if ( LASAT_W0_DSCTYPE(cfg0) != 1) {
-+ prom_printf("WARNING...\nWARNING...\nInvalid configuration read from EEPROM, attempting to soldier on...");
-+ }
-+ /* We have a valid configuration */
-+
-+ switch (LASAT_W0_SDRAMBANKSZ(cfg0)) {
-+ case 0:
-+ lasat_board_info.li_memsize = 0x0800000;
-+ break;
-+ case 1:
-+ lasat_board_info.li_memsize = 0x1000000;
-+ break;
-+ case 2:
-+ lasat_board_info.li_memsize = 0x2000000;
-+ break;
-+ case 3:
-+ lasat_board_info.li_memsize = 0x4000000;
-+ break;
-+ case 4:
-+ lasat_board_info.li_memsize = 0x8000000;
-+ break;
-+ default:
-+ lasat_board_info.li_memsize = 0;
-+ }
-+
-+ switch (LASAT_W0_SDRAMBANKS(cfg0)) {
-+ case 0:
-+ break;
-+ case 1:
-+ lasat_board_info.li_memsize *= 2;
-+ break;
-+ default:
-+ break;
-+ }
-+
-+ switch (LASAT_W0_BUSSPEED(cfg0)) {
-+ case 0x0:
-+ lasat_board_info.li_bus_hz = 60000000;
-+ break;
-+ case 0x1:
-+ lasat_board_info.li_bus_hz = 66000000;
-+ break;
-+ case 0x2:
-+ lasat_board_info.li_bus_hz = 66666667;
-+ break;
-+ case 0x3:
-+ lasat_board_info.li_bus_hz = 80000000;
-+ break;
-+ case 0x4:
-+ lasat_board_info.li_bus_hz = 83333333;
-+ break;
-+ case 0x5:
-+ lasat_board_info.li_bus_hz = 100000000;
-+ break;
-+ }
-+
-+ switch (LASAT_W0_CPUCLK(cfg0)) {
-+ case 0x0:
-+ lasat_board_info.li_cpu_hz =
-+ lasat_board_info.li_bus_hz;
-+ break;
-+ case 0x1:
-+ lasat_board_info.li_cpu_hz =
-+ lasat_board_info.li_bus_hz +
-+ (lasat_board_info.li_bus_hz >> 1);
-+ break;
-+ case 0x2:
-+ lasat_board_info.li_cpu_hz =
-+ lasat_board_info.li_bus_hz +
-+ lasat_board_info.li_bus_hz;
-+ break;
-+ case 0x3:
-+ lasat_board_info.li_cpu_hz =
-+ lasat_board_info.li_bus_hz +
-+ lasat_board_info.li_bus_hz +
-+ (lasat_board_info.li_bus_hz >> 1);
-+ break;
-+ case 0x4:
-+ lasat_board_info.li_cpu_hz =
-+ lasat_board_info.li_bus_hz +
-+ lasat_board_info.li_bus_hz +
-+ lasat_board_info.li_bus_hz;
-+ break;
-+ }
-+
-+ /* Flash size */
-+ switch (LASAT_W1_FLASHSIZE(cfg1)) {
-+ case 0:
-+ lasat_board_info.li_flash_size = 0x200000;
-+ break;
-+ case 1:
-+ lasat_board_info.li_flash_size = 0x400000;
-+ break;
-+ case 2:
-+ lasat_board_info.li_flash_size = 0x800000;
-+ break;
-+ case 3:
-+ lasat_board_info.li_flash_size = 0x1000000;
-+ break;
-+ case 4:
-+ lasat_board_info.li_flash_size = 0x2000000;
-+ break;
-+ }
-+
-+ init_flash_sizes();
-+
-+ lasat_board_info.li_bmid = LASAT_W0_BMID(cfg0);
-+ lasat_board_info.li_prid = lasat_board_info.li_eeprom_info.prid;
-+ if (lasat_board_info.li_prid == 0xffff || lasat_board_info.li_prid == 0)
-+ lasat_board_info.li_prid = lasat_board_info.li_bmid;
-+
-+ /* Base model stuff */
-+ if (lasat_board_info.li_bmid > i_n_base_models)
-+ lasat_board_info.li_bmid = i_n_base_models;
-+ strcpy(lasat_board_info.li_bmstr, i_txt_base_models[lasat_board_info.li_bmid]);
-+
-+ /* Product ID dependent values */
-+ c = lasat_board_info.li_prid;
-+ if (c >= i_n_prids) {
-+ strcpy(lasat_board_info.li_namestr, "Unknown Model");
-+ strcpy(lasat_board_info.li_typestr, "Unknown Type");
-+ } else {
-+ ppi = &vendor_info_table[0].vi_product_info[c];
-+ strcpy(lasat_board_info.li_namestr, ppi->pi_name);
-+ if (ppi->pi_type)
-+ strcpy(lasat_board_info.li_typestr, ppi->pi_type);
-+ else
-+ sprintf(lasat_board_info.li_typestr, "%d",10*c);
-+ }
-+
-+#if defined(CONFIG_INET) && defined(CONFIG_SYSCTL)
-+ update_bcastaddr();
-+#endif
-+
-+ return 0;
-+}
-+
-+void lasat_write_eeprom_info(void)
-+{
-+ unsigned long crc;
-+
-+ /* Generate the CRC */
-+ crc = crc32(0x0, (unsigned char *)(&lasat_board_info.li_eeprom_info),
-+ sizeof(struct lasat_eeprom_struct) - 4);
-+ lasat_board_info.li_eeprom_info.crc32 = crc;
-+
-+ /* Write the EEPROM info */
-+ EEPROMWrite(0, (unsigned char *)&lasat_board_info.li_eeprom_info,
-+ sizeof(struct lasat_eeprom_struct));
-+}
-+
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/lasatIRQ.S linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasatIRQ.S
---- linux-2.4.20/arch/mips/lasat/lasatIRQ.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasatIRQ.S 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,75 @@
-+/*
-+ * Carsten Langgaard, carstenl@mips.com
-+ * Copyright (C) 1999, 2000 MIPS Technologies, Inc. All rights reserved.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Interrupt exception dispatch code.
-+ *
-+ */
-+#include <linux/config.h>
-+
-+#include <asm/asm.h>
-+#include <asm/mipsregs.h>
-+#include <asm/regdef.h>
-+#include <asm/stackframe.h>
-+
-+ .text
-+ .set noreorder
-+ .set noat
-+ .align 5
-+ NESTED(mipsIRQ, PT_SIZE, sp)
-+ SAVE_ALL
-+ CLI
-+ .set at
-+
-+ mfc0 s0, CP0_CAUSE # get irq mask
-+
-+ /* First we check for r4k counter/timer IRQ. */
-+ andi a0, s0, CAUSEF_IP7
-+ beq a0, zero, 1f
-+ andi a0, s0, CAUSEF_IP2 # delay slot, check hw0 interrupt
-+
-+ /* Wheee, a timer interrupt. */
-+ move a0, sp
-+ jal lasat_timer_interrupt
-+ nop
-+
-+ j ret_from_irq
-+ nop
-+
-+1:
-+ /* Wheee, combined hardware level zero interrupt. */
-+ jal lasat_hw0_irqdispatch
-+ move a0, sp # delay slot
-+
-+ j ret_from_irq
-+ nop # delay slot
-+
-+1:
-+ /*
-+ * Here by mistake? This is possible, what can happen is that by the
-+ * time we take the exception the IRQ pin goes low, so just leave if
-+ * this is the case.
-+ */
-+ move a1,s0
-+ mfc0 a1, CP0_EPC
-+
-+ j ret_from_irq
-+ nop
-+ END(mipsIRQ)
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/lasat_models.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_models.h
---- linux-2.4.20/arch/mips/lasat/lasat_models.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/lasat_models.h 2002-10-05 21:01:33.000000000 -0500
-@@ -0,0 +1,63 @@
-+/*
-+ * Model description tables
-+ */
-+
-+typedef struct product_info_t {
-+ const char *pi_name;
-+ const char *pi_type;
-+} product_info_t;
-+
-+typedef struct vendor_info_t {
-+ const char *vi_name;
-+ const product_info_t *vi_product_info;
-+} vendor_info_t;
-+
-+/*
-+ * Base models
-+ */
-+static const char * const txt_base_models[] = {
-+ "MQ 2", "MQ Pro", "SP 25", "SP 50", "SP 100", "SP 5000", "SP 7000", "SP 1000", "Unknown"
-+};
-+#define N_BASE_MODELS (sizeof(txt_base_models)/sizeof(char*)-1)
-+
-+/*
-+ * Eicon Networks
-+ */
-+static const char txt_en_mq[] = "Masquerade";
-+static const char txt_en_sp[] = "Safepipe";
-+
-+static const product_info_t product_info_eicon[] = {
-+ { txt_en_mq, "II" }, /* 0 */
-+ { txt_en_mq, "Pro" }, /* 1 */
-+ { txt_en_sp, "25" }, /* 2 */
-+ { txt_en_sp, "50" }, /* 3 */
-+ { txt_en_sp, "100" }, /* 4 */
-+ { txt_en_sp, "5000" }, /* 5 */
-+ { txt_en_sp, "7000" }, /* 6 */
-+ { txt_en_sp, "30" }, /* 7 */
-+ { txt_en_sp, "5100" }, /* 8 */
-+ { txt_en_sp, "7100" }, /* 9 */
-+ { txt_en_sp, "1110" }, /* 10 */
-+ { txt_en_sp, "3020" }, /* 11 */
-+ { txt_en_sp, "3030" }, /* 12 */
-+ { txt_en_sp, "5020" }, /* 13 */
-+ { txt_en_sp, "5030" }, /* 14 */
-+ { txt_en_sp, "1120" }, /* 15 */
-+ { txt_en_sp, "1130" }, /* 16 */
-+ { txt_en_sp, "6010" }, /* 17 */
-+ { txt_en_sp, "6110" }, /* 18 */
-+ { txt_en_sp, "6210" }, /* 19 */
-+ { txt_en_sp, "1020" }, /* 20 */
-+ { txt_en_sp, "1040" }, /* 21 */
-+ { txt_en_sp, "1050" }, /* 22 */
-+ { txt_en_sp, "1060" }, /* 23 */
-+};
-+#define N_PRIDS (sizeof(product_info_eicon)/sizeof(product_info_t))
-+
-+/*
-+ * The vendor table
-+ */
-+static vendor_info_t const vendor_info_table[] = {
-+ { "Eicon Networks", product_info_eicon },
-+};
-+#define N_VENDORS (sizeof(vendor_info_table)/sizeof(vendor_info_t))
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/lasat/Makefile
---- linux-2.4.20/arch/mips/lasat/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/Makefile 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,25 @@
-+#
-+# Makefile for the LASAT specific kernel interface routines under Linux.
-+#
-+USE_STANDARD_AS_RULE := 1
-+
-+O_TARGET := lasatkern.o
-+obj-y := reset.o setup.o prom.o lasat_board.o \
-+ crc32.o at93c.o interrupt.o lasatIRQ.o
-+
-+subdir-$(CONFIG_LASAT_SERVICE) += service
-+obj-$(CONFIG_LASAT_SERVICE) += service/service.o
-+
-+obj-$(CONFIG_LASAT_SYSCTL) += sysctl.o
-+
-+obj-$(CONFIG_DS1603) += ds1603.o
-+
-+obj-$(CONFIG_PICVUE) += picvue.o
-+obj-$(CONFIG_PICVUE_PROC) += picvue_proc.o
-+
-+obj-$(CONFIG_PCI) += pci.o
-+
-+include $(TOPDIR)/Rules.make
-+
-+clean:
-+ make -C image clean
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/pci.c
---- linux-2.4.20/arch/mips/lasat/pci.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/pci.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,348 @@
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+#include <asm/bootinfo.h>
-+
-+#include <asm/lasat/lasat.h>
-+#include <asm/gt64120.h>
-+#include <asm/nile4.h>
-+
-+#define PCI_ACCESS_READ 0
-+#define PCI_ACCESS_WRITE 1
-+
-+#undef DEBUG_PCI
-+#ifdef DEBUG_PCI
-+#define Dprintk(fmt...) printk(fmt)
-+#else
-+#define Dprintk(fmt...)
-+#endif
-+
-+static int (*lasat_pcibios_config_access)(unsigned char access_type,
-+ struct pci_dev *dev,
-+ unsigned char reg,
-+ u32 *data);
-+
-+/*
-+ * Because of an error/peculiarity in the Galileo chip, we need to swap the
-+ * bytes when running bigendian.
-+ */
-+#define GT_WRITE(ofs, data) \
-+ *(volatile u32 *)(LASAT_GT_BASE+ofs) = cpu_to_le32(data)
-+#define GT_READ(ofs, data) \
-+ data = le32_to_cpu(*(volatile u32 *)(LASAT_GT_BASE+ofs))
-+
-+
-+static int lasat_pcibios_config_access_100(unsigned char access_type,
-+ struct pci_dev *dev,
-+ unsigned char reg,
-+ u32 *data)
-+{
-+ unsigned char bus = dev->bus->number;
-+ unsigned char dev_fn = dev->devfn;
-+ u32 intr;
-+
-+ if ((bus == 0) && (dev_fn >= PCI_DEVFN(31,0)))
-+ return -1; /* Because of a bug in the Galileo (for slot 31). */
-+
-+ /* Clear cause register bits */
-+ GT_WRITE( GT_INTRCAUSE_OFS, ~(GT_INTRCAUSE_MASABORT0_BIT |
-+ GT_INTRCAUSE_TARABORT0_BIT) );
-+
-+ /* Setup address */
-+ GT_WRITE( GT_PCI0_CFGADDR_OFS,
-+ (bus << GT_PCI0_CFGADDR_BUSNUM_SHF) |
-+ (dev_fn << GT_PCI0_CFGADDR_FUNCTNUM_SHF) |
-+ ((reg / 4) << GT_PCI0_CFGADDR_REGNUM_SHF) |
-+ GT_PCI0_CFGADDR_CONFIGEN_BIT );
-+
-+ if (access_type == PCI_ACCESS_WRITE) {
-+ GT_WRITE( GT_PCI0_CFGDATA_OFS, *data );
-+ } else {
-+ GT_READ( GT_PCI0_CFGDATA_OFS, *data );
-+ }
-+
-+ /* Check for master or target abort */
-+ GT_READ( GT_INTRCAUSE_OFS, intr );
-+
-+ if( intr & (GT_INTRCAUSE_MASABORT0_BIT | GT_INTRCAUSE_TARABORT0_BIT) )
-+ {
-+ /* Error occured */
-+
-+ /* Clear bits */
-+ GT_WRITE( GT_INTRCAUSE_OFS, ~(GT_INTRCAUSE_MASABORT0_BIT |
-+ GT_INTRCAUSE_TARABORT0_BIT) );
-+
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+#define LO(reg) (reg / 4)
-+#define HI(reg) (reg / 4 + 1)
-+
-+volatile unsigned long * const vrc_pciregs = (void *)Vrc5074_BASE;
-+
-+static int lasat_pcibios_config_access_200(unsigned char access_type,
-+ struct pci_dev *dev,
-+ unsigned char reg,
-+ u32 *data)
-+{
-+ unsigned char bus = dev->bus->number;
-+ unsigned char dev_fn = dev->devfn;
-+ u32 adr, mask, err;
-+
-+ if ((bus == 0) && (PCI_SLOT(dev_fn) > 8))
-+ /* The addressing scheme chosen leaves room for just
-+ * 8 devices on the first bus (besides the PCI
-+ * controller itself) */
-+ return -1;
-+
-+ if ((bus == 0) && (dev_fn == PCI_DEVFN(0,0))) {
-+ /* Access controller registers directly */
-+ if (access_type == PCI_ACCESS_WRITE) {
-+ vrc_pciregs[(0x200+reg) >> 2] = *data;
-+ } else {
-+ *data = vrc_pciregs[(0x200+reg) >> 2];
-+ }
-+ return 0;
-+ }
-+
-+ /* Temporarily map PCI Window 1 to config space */
-+ mask = vrc_pciregs[LO(NILE4_PCIINIT1)];
-+ vrc_pciregs[LO(NILE4_PCIINIT1)] = 0x0000001a | (bus ? 0x200 : 0);
-+
-+ /* Clear PCI Error register. This also clears the Error Type
-+ * bits in the Control register */
-+ vrc_pciregs[LO(NILE4_PCIERR)] = 0;
-+ vrc_pciregs[HI(NILE4_PCIERR)] = 0;
-+
-+ /* Setup address */
-+ if (bus == 0)
-+ adr = KSEG1ADDR(PCI_WINDOW1) + ((1 << (PCI_SLOT(dev_fn) + 15)) | (PCI_FUNC(dev_fn) << 8) | (reg & ~3));
-+ else
-+ adr = KSEG1ADDR(PCI_WINDOW1) | (bus << 16) | (dev_fn << 8) | (reg & ~3);
-+
-+#ifdef DEBUG_PCI
-+ printk("PCI config %s: adr %x", access_type == PCI_ACCESS_WRITE ? "write" : "read", adr);
-+#endif
-+
-+ if (access_type == PCI_ACCESS_WRITE) {
-+ *(u32 *)adr = *data;
-+ } else {
-+ *data = *(u32 *)adr;
-+ }
-+
-+#ifdef DEBUG_PCI
-+ printk(" value = %x\n", *data);
-+#endif
-+
-+ /* Check for master or target abort */
-+ err = (vrc_pciregs[HI(NILE4_PCICTRL)] >> 5) & 0x7;
-+
-+ /* Restore PCI Window 1 */
-+ vrc_pciregs[LO(NILE4_PCIINIT1)] = mask;
-+
-+ if (err)
-+ {
-+ /* Error occured */
-+#ifdef DEBUG_PCI
-+ printk("\terror %x at adr %x\n", err, vrc_pciregs[LO(PCIERR)]);
-+#endif
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+/*
-+ * We can't address 8 and 16 bit words directly. Instead we have to
-+ * read/write a 32bit word and mask/modify the data we actually want.
-+ */
-+static int lasat_pcibios_read_config_byte(struct pci_dev *dev, int reg, u8 *val)
-+{
-+ u32 data=0, flags;
-+
-+ local_irq_save(flags);
-+
-+ if (lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data)) {
-+ local_irq_restore(flags);
-+ return -1;
-+ }
-+
-+ *val = (data >> ((reg & 3) << 3)) & 0xff;
-+
-+ local_irq_restore(flags);
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+
-+static int lasat_pcibios_read_config_word(struct pci_dev *dev, int reg, u16 *val)
-+{
-+ u32 data=0, flags;
-+
-+ if (reg & 1)
-+ return PCIBIOS_BAD_REGISTER_NUMBER;
-+
-+ local_irq_save(flags);
-+
-+ if (lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data)) {
-+ local_irq_restore(flags);
-+ return -1;
-+ }
-+
-+ *val = (data >> ((reg & 3) << 3)) & 0xffff;
-+
-+ local_irq_restore(flags);
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int lasat_pcibios_read_config_dword(struct pci_dev *dev, int reg, u32 *val)
-+{
-+ u32 data=0, flags;
-+
-+ if (reg & 3)
-+ return PCIBIOS_BAD_REGISTER_NUMBER;
-+
-+ local_irq_save(flags);
-+
-+ if (lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data)) {
-+ local_irq_restore(flags);
-+ return -1;
-+ }
-+
-+ *val = data;
-+
-+ local_irq_restore(flags);
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+
-+static int lasat_pcibios_write_config_byte(struct pci_dev *dev, int reg, u8 val)
-+{
-+ u32 data=0, flags, err;
-+
-+ local_irq_save(flags);
-+
-+ err = lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data);
-+ if (err)
-+ goto out;
-+
-+ data = (data & ~(0xff << ((reg & 3) << 3))) |
-+ (val << ((reg & 3) << 3));
-+
-+ err = lasat_pcibios_config_access(PCI_ACCESS_WRITE, dev, reg, &data);
-+out:
-+ local_irq_restore(flags);
-+
-+ if (err)
-+ return -1;
-+ else
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int lasat_pcibios_write_config_word(struct pci_dev *dev, int reg, u16 val)
-+{
-+ u32 data=0, flags, err;
-+
-+ if (reg & 1)
-+ return PCIBIOS_BAD_REGISTER_NUMBER;
-+
-+ local_irq_save(flags);
-+
-+ err = lasat_pcibios_config_access(PCI_ACCESS_READ, dev, reg, &data);
-+ if (err)
-+ goto out;
-+
-+ data = (data & ~(0xffff << ((reg & 3) << 3))) |
-+ (val << ((reg & 3) << 3));
-+
-+ err = lasat_pcibios_config_access(PCI_ACCESS_WRITE, dev, reg, &data);
-+out:
-+ local_irq_restore(flags);
-+
-+ if (err)
-+ return -1;
-+ else
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int lasat_pcibios_write_config_dword(struct pci_dev *dev, int reg, u32 val)
-+{
-+ u32 flags, err;
-+
-+ if (reg & 3)
-+ return PCIBIOS_BAD_REGISTER_NUMBER;
-+
-+ local_irq_save(flags);
-+
-+ err = lasat_pcibios_config_access(PCI_ACCESS_WRITE, dev, reg, &val);
-+ local_irq_restore(flags);
-+
-+ if (err)
-+ return -1;
-+ else
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+struct pci_ops lasat_pci_ops = {
-+ lasat_pcibios_read_config_byte,
-+ lasat_pcibios_read_config_word,
-+ lasat_pcibios_read_config_dword,
-+ lasat_pcibios_write_config_byte,
-+ lasat_pcibios_write_config_word,
-+ lasat_pcibios_write_config_dword
-+};
-+
-+char * __init pcibios_setup(char *str)
-+{
-+ return str;
-+}
-+
-+void __init pcibios_init(void)
-+{
-+ switch (mips_machtype) {
-+ case MACH_LASAT_100:
-+ lasat_pcibios_config_access = &lasat_pcibios_config_access_100;
-+ break;
-+ case MACH_LASAT_200:
-+ lasat_pcibios_config_access = &lasat_pcibios_config_access_200;
-+ break;
-+ default:
-+ panic("pcibios_init: mips_machtype incorrect");
-+ }
-+
-+ Dprintk("pcibios_init()\n");
-+ pci_scan_bus(0, &lasat_pci_ops, NULL);
-+}
-+
-+void __init pcibios_fixup_bus(struct pci_bus *b)
-+{
-+ Dprintk("pcibios_fixup_bus()\n");
-+}
-+
-+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-+ struct resource *res, int resource)
-+{
-+}
-+
-+int __init pcibios_enable_device(struct pci_dev *dev, int mask)
-+{
-+ /* Not needed, since we enable all devices at startup. */
-+ return 0;
-+}
-+
-+void __init pcibios_align_resource(void *data, struct resource *res,
-+ unsigned long size, unsigned long align)
-+{
-+}
-+
-+unsigned __init int pcibios_assign_all_busses(void)
-+{
-+ return 1;
-+}
-+
-+struct pci_fixup pcibios_fixups[] = {
-+ { 0 }
-+};
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/picvue.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.c
---- linux-2.4.20/arch/mips/lasat/picvue.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,241 @@
-+/*
-+ * Picvue PVC160206 display driver
-+ *
-+ * Brian Murphy <brian@murphy.dk>
-+ *
-+ */
-+#include <linux/kernel.h>
-+#include <linux/delay.h>
-+#include <asm/bootinfo.h>
-+#include <asm/lasat/lasat.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+
-+#include "picvue.h"
-+
-+#define PVC_BUSY 0x80
-+#define PVC_NLINES 2
-+#define PVC_DISPMEM 80
-+#define PVC_LINELEN PVC_DISPMEM / PVC_NLINES
-+
-+struct pvc_defs *picvue = NULL;
-+
-+DECLARE_MUTEX(pvc_sem);
-+
-+static void pvc_reg_write(u32 val)
-+{
-+ *picvue->reg = val;
-+}
-+
-+static u32 pvc_reg_read(void)
-+{
-+ u32 tmp = *picvue->reg;
-+ return tmp;
-+}
-+
-+static void pvc_write_byte(u32 data, u8 byte)
-+{
-+ data |= picvue->e;
-+ pvc_reg_write(data);
-+ data &= ~picvue->data_mask;
-+ data |= byte << picvue->data_shift;
-+ pvc_reg_write(data);
-+ ndelay(220);
-+ pvc_reg_write(data & ~picvue->e);
-+ ndelay(220);
-+}
-+
-+static u8 pvc_read_byte(u32 data)
-+{
-+ u8 byte;
-+
-+ data |= picvue->e;
-+ pvc_reg_write(data);
-+ ndelay(220);
-+ byte = (pvc_reg_read() & picvue->data_mask) >> picvue->data_shift;
-+ data &= ~picvue->e;
-+ pvc_reg_write(data);
-+ ndelay(220);
-+ return byte;
-+}
-+
-+static u8 pvc_read_data(void)
-+{
-+ u32 data = pvc_reg_read();
-+ u8 byte;
-+ data |= picvue->rw;
-+ data &= ~picvue->rs;
-+ pvc_reg_write(data);
-+ ndelay(40);
-+ byte = pvc_read_byte(data);
-+ data |= picvue->rs;
-+ pvc_reg_write(data);
-+ return byte;
-+}
-+
-+#define TIMEOUT 1000
-+static int pvc_wait(void)
-+{
-+ int i = TIMEOUT;
-+ int err = 0;
-+
-+ while ((pvc_read_data() & PVC_BUSY) && i)
-+ i--;
-+ if (i == 0)
-+ err = -ETIME;
-+
-+ return err;
-+}
-+
-+#define MODE_INST 0
-+#define MODE_DATA 1
-+static void pvc_write(u8 byte, int mode)
-+{
-+ u32 data = pvc_reg_read();
-+ data &= ~picvue->rw;
-+ if (mode == MODE_DATA)
-+ data |= picvue->rs;
-+ else
-+ data &= ~picvue->rs;
-+ pvc_reg_write(data);
-+ ndelay(40);
-+ pvc_write_byte(data, byte);
-+ if (mode == MODE_DATA)
-+ data &= ~picvue->rs;
-+ else
-+ data |= picvue->rs;
-+ pvc_reg_write(data);
-+ pvc_wait();
-+}
-+
-+void pvc_write_string(const unsigned char *str, u8 addr, int line)
-+{
-+ int i = 0;
-+
-+ if (line > 0 && (PVC_NLINES > 1))
-+ addr += 0x40 * line;
-+ pvc_write(0x80 | addr, MODE_INST);
-+
-+ while (*str != 0 && i < PVC_LINELEN) {
-+ pvc_write(*str++, MODE_DATA);
-+ i++;
-+ }
-+}
-+
-+void pvc_write_string_centered(const unsigned char *str, int line)
-+{
-+ int len = strlen(str);
-+ u8 addr;
-+
-+ if (len > PVC_VISIBLE_CHARS)
-+ addr = 0;
-+ else
-+ addr = (PVC_VISIBLE_CHARS - strlen(str))/2;
-+
-+ pvc_write_string(str, addr, line);
-+}
-+
-+void pvc_dump_string(const unsigned char *str)
-+{
-+ int len = strlen(str);
-+
-+ pvc_clear();
-+ pvc_write_string(str, 0, 0);
-+ if (len > PVC_VISIBLE_CHARS)
-+ pvc_write_string(&str[PVC_VISIBLE_CHARS], 0, 1);
-+}
-+
-+#define BM_SIZE 8
-+#define MAX_PROGRAMMABLE_CHARS 8
-+int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE])
-+{
-+ int i;
-+ int addr;
-+
-+ if (charnum > MAX_PROGRAMMABLE_CHARS)
-+ return -ENOENT;
-+
-+ addr = charnum * 8;
-+ pvc_write(0x40 | addr, MODE_INST);
-+
-+ for (i=0; i<BM_SIZE; i++)
-+ pvc_write(bitmap[i], MODE_DATA);
-+ return 0;
-+}
-+
-+#define FUNC_SET_CMD 0x20
-+#define EIGHT_BYTE (1 << 4)
-+#define FOUR_BYTE 0
-+#define TWO_LINES (1 << 3)
-+#define ONE_LINE 0
-+#define LARGE_FONT (1 << 2)
-+#define SMALL_FONT 0
-+static void pvc_funcset(u8 cmd)
-+{
-+ pvc_write(FUNC_SET_CMD | (cmd & (EIGHT_BYTE|TWO_LINES|LARGE_FONT)), MODE_INST);
-+}
-+
-+#define ENTRYMODE_CMD 0x4
-+#define AUTO_INC (1 << 1)
-+#define AUTO_DEC 0
-+#define CURSOR_FOLLOWS_DISP (1 << 0)
-+static void pvc_entrymode(u8 cmd)
-+{
-+ pvc_write(ENTRYMODE_CMD | (cmd & (AUTO_INC|CURSOR_FOLLOWS_DISP)), MODE_INST);
-+}
-+
-+#define DISP_CNT_CMD 0x08
-+#define DISP_OFF 0
-+#define DISP_ON (1 << 2)
-+#define CUR_ON (1 << 1)
-+#define CUR_BLINK (1 << 0)
-+void pvc_dispcnt(u8 cmd)
-+{
-+ pvc_write(DISP_CNT_CMD | (cmd & (DISP_ON|CUR_ON|CUR_BLINK)), MODE_INST);
-+}
-+
-+#define MOVE_CMD 0x10
-+#define DISPLAY (1 << 3)
-+#define CURSOR 0
-+#define RIGHT (1 << 2)
-+#define LEFT 0
-+void pvc_move(u8 cmd)
-+{
-+ pvc_write(MOVE_CMD | (cmd & (DISPLAY|RIGHT)), MODE_INST);
-+}
-+
-+#define CLEAR_CMD 0x1
-+void pvc_clear(void)
-+{
-+ pvc_write(CLEAR_CMD, MODE_INST);
-+}
-+
-+#define HOME_CMD 0x2
-+void pvc_home(void)
-+{
-+ pvc_write(HOME_CMD, MODE_INST);
-+}
-+
-+int pvc_init(void)
-+{
-+ u8 cmd = EIGHT_BYTE;
-+
-+ if (PVC_NLINES == 2)
-+ cmd |= (SMALL_FONT|TWO_LINES);
-+ else
-+ cmd |= (LARGE_FONT|ONE_LINE);
-+ pvc_funcset(cmd);
-+ pvc_dispcnt(DISP_ON);
-+ pvc_entrymode(AUTO_INC);
-+
-+ pvc_clear();
-+ pvc_write_string_centered("Display", 0);
-+ pvc_write_string_centered("Initialized", 1);
-+
-+ return 0;
-+}
-+
-+module_init(pvc_init);
-+MODULE_LICENSE("GPL");
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/picvue.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.h
---- linux-2.4.20/arch/mips/lasat/picvue.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue.h 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,48 @@
-+/*
-+ * Picvue PVC160206 display driver
-+ *
-+ * Brian Murphy <brian.murphy@eicon.com>
-+ *
-+ */
-+#include <asm/semaphore.h>
-+
-+struct pvc_defs {
-+ volatile u32 *reg;
-+ u32 data_shift;
-+ u32 data_mask;
-+ u32 e;
-+ u32 rw;
-+ u32 rs;
-+};
-+
-+extern struct pvc_defs *picvue;
-+
-+#define PVC_NLINES 2
-+#define PVC_DISPMEM 80
-+#define PVC_LINELEN PVC_DISPMEM / PVC_NLINES
-+#define PVC_VISIBLE_CHARS 16
-+
-+void pvc_write_string(const unsigned char *str, u8 addr, int line);
-+void pvc_write_string_centered(const unsigned char *str, int line);
-+void pvc_dump_string(const unsigned char *str);
-+
-+#define BM_SIZE 8
-+#define MAX_PROGRAMMABLE_CHARS 8
-+int pvc_program_cg(int charnum, u8 bitmap[BM_SIZE]);
-+
-+void pvc_dispcnt(u8 cmd);
-+#define DISP_OFF 0
-+#define DISP_ON (1 << 2)
-+#define CUR_ON (1 << 1)
-+#define CUR_BLINK (1 << 0)
-+
-+void pvc_move(u8 cmd);
-+#define DISPLAY (1 << 3)
-+#define CURSOR 0
-+#define RIGHT (1 << 2)
-+#define LEFT 0
-+
-+void pvc_clear(void);
-+void pvc_home(void);
-+
-+extern struct semaphore pvc_sem;
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/picvue_proc.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue_proc.c
---- linux-2.4.20/arch/mips/lasat/picvue_proc.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/picvue_proc.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,186 @@
-+/*
-+ * Picvue PVC160206 display driver
-+ *
-+ * Brian Murphy <brian.murphy@eicon.com>
-+ *
-+ */
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/errno.h>
-+
-+#include <linux/proc_fs.h>
-+#include <linux/interrupt.h>
-+
-+#include <linux/timer.h>
-+
-+#include "picvue.h"
-+
-+static char pvc_lines[PVC_NLINES][PVC_LINELEN+1];
-+static int pvc_linedata[PVC_NLINES];
-+static struct proc_dir_entry *pvc_display_dir;
-+static char *pvc_linename[PVC_NLINES] = {"line1", "line2"};
-+#define DISPLAY_DIR_NAME "display"
-+static int scroll_dir = 0, scroll_interval = 0;
-+
-+static struct timer_list timer;
-+
-+static void pvc_display(unsigned long data) {
-+ int i;
-+
-+ pvc_clear();
-+ for (i=0; i<PVC_NLINES; i++)
-+ pvc_write_string(pvc_lines[i], 0, i);
-+}
-+
-+static DECLARE_TASKLET(pvc_display_tasklet, &pvc_display, 0);
-+
-+static int pvc_proc_read_line(char *page, char **start,
-+ off_t off, int count,
-+ int *eof, void *data)
-+{
-+ char *origpage = page;
-+ int lineno = *(int *)data;
-+
-+ if (lineno < 0 || lineno > PVC_NLINES) {
-+ printk("proc_read_line: invalid lineno %d\n", lineno);
-+ return 0;
-+ }
-+
-+ down(&pvc_sem);
-+ page += sprintf(page, "%s\n", pvc_lines[lineno]);
-+ up(&pvc_sem);
-+
-+ return page - origpage;
-+}
-+
-+static int pvc_proc_write_line(struct file *file, const char *buffer,
-+ unsigned long count, void *data)
-+{
-+ int origcount = count;
-+ int lineno = *(int *)data;
-+
-+ if (lineno < 0 || lineno > PVC_NLINES) {
-+ printk("proc_write_line: invalid lineno %d\n", lineno);
-+ return origcount;
-+ }
-+
-+ if (count > PVC_LINELEN)
-+ count = PVC_LINELEN;
-+
-+ if (buffer[count-1] == '\n')
-+ count--;
-+
-+ down(&pvc_sem);
-+ strncpy(pvc_lines[lineno], buffer, count);
-+ pvc_lines[lineno][count] = '\0';
-+ up(&pvc_sem);
-+
-+ tasklet_schedule(&pvc_display_tasklet);
-+
-+ return origcount;
-+}
-+
-+static int pvc_proc_write_scroll(struct file *file, const char *buffer,
-+ unsigned long count, void *data)
-+{
-+ int origcount = count;
-+ int cmd = simple_strtol(buffer, NULL, 10);
-+
-+ down(&pvc_sem);
-+ if (scroll_interval != 0)
-+ del_timer(&timer);
-+
-+ if (cmd == 0) {
-+ scroll_dir = 0;
-+ scroll_interval = 0;
-+ } else {
-+ if (cmd < 0) {
-+ scroll_dir = -1;
-+ scroll_interval = -cmd;
-+ } else {
-+ scroll_dir = 1;
-+ scroll_interval = cmd;
-+ }
-+ add_timer(&timer);
-+ }
-+ up(&pvc_sem);
-+
-+ return origcount;
-+}
-+
-+static int pvc_proc_read_scroll(char *page, char **start,
-+ off_t off, int count,
-+ int *eof, void *data)
-+{
-+ char *origpage = page;
-+
-+ down(&pvc_sem);
-+ page += sprintf(page, "%d\n", scroll_dir * scroll_interval);
-+ up(&pvc_sem);
-+
-+ return page - origpage;
-+}
-+
-+
-+void pvc_proc_timerfunc(unsigned long data)
-+{
-+ if (scroll_dir < 0)
-+ pvc_move(DISPLAY|RIGHT);
-+ else if (scroll_dir > 0)
-+ pvc_move(DISPLAY|LEFT);
-+
-+ timer.expires = jiffies + scroll_interval;
-+ add_timer(&timer);
-+}
-+
-+static void pvc_proc_cleanup(void)
-+{
-+ int i;
-+ for (i=0; i<PVC_NLINES; i++)
-+ remove_proc_entry(pvc_linename[i], pvc_display_dir);
-+ remove_proc_entry("scroll", pvc_display_dir);
-+ remove_proc_entry(DISPLAY_DIR_NAME, NULL);
-+
-+ del_timer(&timer);
-+}
-+
-+static int __init pvc_proc_init(void)
-+{
-+ struct proc_dir_entry *proc_entry;
-+ int i;
-+
-+ pvc_display_dir = proc_mkdir(DISPLAY_DIR_NAME, NULL);
-+ if (pvc_display_dir == NULL)
-+ goto error;
-+
-+ for (i=0; i<PVC_NLINES; i++) {
-+ strcpy(pvc_lines[i], "");
-+ pvc_linedata[i] = i;
-+ }
-+ for (i=0; i<PVC_NLINES; i++) {
-+ proc_entry = create_proc_entry(pvc_linename[i], 0644, pvc_display_dir);
-+ if (proc_entry == NULL)
-+ goto error;
-+ proc_entry->read_proc = pvc_proc_read_line;
-+ proc_entry->write_proc = pvc_proc_write_line;
-+ proc_entry->data = &pvc_linedata[i];
-+ }
-+ proc_entry = create_proc_entry("scroll", 0644, pvc_display_dir);
-+ if (proc_entry == NULL)
-+ goto error;
-+ proc_entry->write_proc = pvc_proc_write_scroll;
-+ proc_entry->read_proc = pvc_proc_read_scroll;
-+
-+ init_timer(&timer);
-+ timer.function = pvc_proc_timerfunc;
-+
-+ return 0;
-+error:
-+ pvc_proc_cleanup();
-+ return -ENOMEM;
-+}
-+
-+module_init(pvc_proc_init);
-+module_exit(pvc_proc_cleanup);
-+MODULE_LICENSE("GPL");
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.c
---- linux-2.4.20/arch/mips/lasat/prom.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,135 @@
-+/*
-+ * PROM interface routines.
-+ */
-+#include <linux/types.h>
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/string.h>
-+#include <linux/ctype.h>
-+#include <linux/kernel.h>
-+#include <linux/mm.h>
-+#include <linux/bootmem.h>
-+#include <linux/ioport.h>
-+#include <asm/bootinfo.h>
-+#include <asm/lasat/lasat.h>
-+#include <asm/cpu.h>
-+
-+#include "at93c.h"
-+#include <asm/lasat/eeprom.h>
-+#include "prom.h"
-+
-+#define RESET_VECTOR 0xbfc00000
-+#define PROM_JUMP_TABLE_ENTRY(n) (*((u32 *)(RESET_VECTOR + 0x20) + n))
-+#define PROM_DISPLAY_ADDR PROM_JUMP_TABLE_ENTRY(0)
-+#define PROM_PUTC_ADDR PROM_JUMP_TABLE_ENTRY(1)
-+#define PROM_MONITOR_ADDR PROM_JUMP_TABLE_ENTRY(2)
-+
-+static void null_prom_printf(const char * fmt, ...)
-+{
-+}
-+
-+static void null_prom_display(const char *string, int pos, int clear)
-+{
-+}
-+
-+static void null_prom_monitor(void)
-+{
-+}
-+
-+static void null_prom_putc(char c)
-+{
-+}
-+
-+/* these are functions provided by the bootloader */
-+static void (* prom_putc)(char c) = null_prom_putc;
-+void (* prom_printf)(const char * fmt, ...) = null_prom_printf;
-+void (* prom_display)(const char *string, int pos, int clear) =
-+ null_prom_display;
-+void (* prom_monitor)(void) = null_prom_monitor;
-+
-+#define PROM_PRINTFBUF_SIZE 256
-+static char prom_printfbuf[PROM_PRINTFBUF_SIZE];
-+
-+static void real_prom_printf(const char * fmt, ...)
-+{
-+ va_list ap;
-+ int len;
-+ char *c = prom_printfbuf;
-+ int i;
-+
-+ va_start(ap, fmt);
-+ len = vsnprintf(prom_printfbuf, PROM_PRINTFBUF_SIZE, fmt, ap);
-+ va_end(ap);
-+
-+ /* output overflowed the buffer */
-+ if (len < 0 || len > PROM_PRINTFBUF_SIZE)
-+ len = PROM_PRINTFBUF_SIZE;
-+
-+ for (i=0; i < len; i++) {
-+ if (*c == '\n')
-+ prom_putc('\r');
-+ prom_putc(*c++);
-+ }
-+}
-+
-+static void setup_prom_vectors(void)
-+{
-+ u32 version = *(u32 *)(RESET_VECTOR + 0x90);
-+
-+ if (version == 306) {
-+ prom_display = (void *)PROM_DISPLAY_ADDR;
-+ prom_putc = (void *)PROM_PUTC_ADDR;
-+ prom_printf = real_prom_printf;
-+ prom_monitor = (void *)PROM_MONITOR_ADDR;
-+ }
-+ prom_printf("prom vectors set up\n");
-+}
-+
-+char arcs_cmdline[CL_SIZE];
-+
-+static struct at93c_defs at93c_defs[N_MACHTYPES] = {
-+ {(void *)AT93C_REG_100, (void *)AT93C_RDATA_REG_100, AT93C_RDATA_SHIFT_100,
-+ AT93C_WDATA_SHIFT_100, AT93C_CS_M_100, AT93C_CLK_M_100},
-+ {(void *)AT93C_REG_200, (void *)AT93C_RDATA_REG_200, AT93C_RDATA_SHIFT_200,
-+ AT93C_WDATA_SHIFT_200, AT93C_CS_M_200, AT93C_CLK_M_200},
-+};
-+
-+void __init prom_init(int argc, char **argv, char **envp, int *prom_vec)
-+{
-+ setup_prom_vectors();
-+
-+ if (mips_cpu.cputype == CPU_R5000)
-+ mips_machtype = MACH_LASAT_200;
-+ else
-+ mips_machtype = MACH_LASAT_100;
-+
-+ at93c = &at93c_defs[mips_machtype];
-+
-+ lasat_init_board_info(); /* Read info from EEPROM */
-+
-+ mips_machgroup = MACH_GROUP_LASAT;
-+
-+ /* Get the command line */
-+ if (argc>0) {
-+ strncpy(arcs_cmdline, argv[0], CL_SIZE-1);
-+ arcs_cmdline[CL_SIZE-1] = '\0';
-+ }
-+
-+ /* Set the I/O base address */
-+ set_io_port_base(KSEG1);
-+
-+ /* Set memory regions */
-+ ioport_resource.start = 0; /* Should be KSEGx ??? */
-+ ioport_resource.end = 0xffffffff; /* Should be ??? */
-+
-+ add_memory_region(0, lasat_board_info.li_memsize, BOOT_MEM_RAM);
-+}
-+
-+void prom_free_prom_memory(void)
-+{
-+}
-+
-+const char *get_system_type(void)
-+{
-+ return lasat_board_info.li_bmstr;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/prom.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.h
---- linux-2.4.20/arch/mips/lasat/prom.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/prom.h 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,6 @@
-+#ifndef PROM_H
-+#define PROM_H
-+extern void (* prom_display)(const char *string, int pos, int clear);
-+extern void (* prom_monitor)(void);
-+extern void (* prom_printf)(const char * fmt, ...);
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/reset.c
---- linux-2.4.20/arch/mips/lasat/reset.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/reset.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,73 @@
-+/*
-+ *
-+ * Thomas Horsten <thh@lasat.com>
-+ * Copyright (C) 2000 LASAT Networks A/S.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Reset the LASAT board.
-+ *
-+ */
-+
-+#include <linux/kernel.h>
-+#include <asm/reboot.h>
-+#include <asm/system.h>
-+#include <asm/lasat/lasat.h>
-+#include "picvue.h"
-+#include "prom.h"
-+
-+static void lasat_machine_restart(char *command);
-+static void lasat_machine_halt(void);
-+
-+/* Used to set machine to boot in service mode via /proc interface */
-+int lasat_boot_to_service = 0;
-+
-+static void lasat_machine_restart(char *command)
-+{
-+ local_irq_disable();
-+
-+ if (lasat_boot_to_service) {
-+ printk("machine_restart: Rebooting to service mode\n");
-+ *(volatile unsigned int *)0xa0000024 = 0xdeadbeef;
-+ *(volatile unsigned int *)0xa00000fc = 0xfedeabba;
-+ }
-+ *lasat_misc->reset_reg = 0xbedead;
-+ for (;;) ;
-+}
-+
-+#define MESSAGE "System halted"
-+static void lasat_machine_halt(void)
-+{
-+ local_irq_disable();
-+
-+ /* Disable interrupts and loop forever */
-+ printk(KERN_NOTICE MESSAGE "\n");
-+#ifdef CONFIG_PICVUE
-+ pvc_clear();
-+ pvc_write_string(MESSAGE, 0, 0);
-+#endif
-+ prom_monitor();
-+ for (;;) ;
-+}
-+
-+void lasat_reboot_setup(void)
-+{
-+ _machine_restart = lasat_machine_restart;
-+ _machine_halt = lasat_machine_halt;
-+ _machine_power_off = lasat_machine_halt;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/setup.c
---- linux-2.4.20/arch/mips/lasat/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/setup.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,225 @@
-+/*
-+ * setup.c
-+ *
-+ * Carsten Langgaard, carstenl@mips.com
-+ * Copyright (C) 1999 MIPS Technologies, Inc. All rights reserved.
-+ *
-+ * Thomas Horsten <thh@lasat.com>
-+ * Copyright (C) 2000 LASAT Networks A/S.
-+ *
-+ * Brian Murphy <brian@murphy.dk>
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Lasat specific setup.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/sched.h>
-+#include <linux/pci.h>
-+#include <linux/ide.h>
-+
-+#include <linux/interrupt.h>
-+#include <asm/time.h>
-+
-+#include <asm/cpu.h>
-+#include <asm/bootinfo.h>
-+#include <asm/irq.h>
-+#include <asm/lasat/lasat.h>
-+
-+#include <linux/serial.h>
-+#include <asm/serial.h>
-+#include <asm/lasat/serial.h>
-+
-+#if CONFIG_PICVUE
-+#include <linux/notifier.h>
-+#endif
-+
-+#include "ds1603.h"
-+#include "at93c.h"
-+#include <asm/lasat/ds1603.h>
-+#include <asm/lasat/picvue.h>
-+#include <asm/lasat/eeprom.h>
-+
-+#include "prom.h"
-+
-+int lasat_command_line = 0;
-+void lasatint_init(void);
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+extern struct ide_ops std_ide_ops;
-+extern struct ide_ops *ide_ops;
-+#endif
-+
-+extern char arcs_cmdline[CL_SIZE];
-+
-+extern void lasat_reboot_setup(void);
-+extern void pcisetup(void);
-+extern void edhac_init(void *, void *, void *);
-+extern void addrflt_init(void);
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+struct lasat_misc lasat_misc_info[N_MACHTYPES] = {
-+ {(void *)KSEG1ADDR(0x1c840000), (void *)KSEG1ADDR(0x1c800000), 2},
-+ {(void *)KSEG1ADDR(0x11080000), (void *)KSEG1ADDR(0x11000000), 6}
-+};
-+
-+struct lasat_misc *lasat_misc = NULL;
-+
-+#ifdef CONFIG_DS1603
-+static struct ds_defs ds_defs[N_MACHTYPES] = {
-+ { (void *)DS1603_REG_100, (void *)DS1603_REG_100,
-+ DS1603_RST_100, DS1603_CLK_100, DS1603_DATA_100,
-+ DS1603_DATA_SHIFT_100, 0, 0 },
-+ { (void *)DS1603_REG_200, (void *)DS1603_DATA_REG_200,
-+ DS1603_RST_200, DS1603_CLK_200, DS1603_DATA_200,
-+ DS1603_DATA_READ_SHIFT_200, 1, 2000 }
-+};
-+#endif
-+
-+#ifdef CONFIG_PICVUE
-+#include "picvue.h"
-+static struct pvc_defs pvc_defs[N_MACHTYPES] = {
-+ { (void *)PVC_REG_100, PVC_DATA_SHIFT_100, PVC_DATA_M_100,
-+ PVC_E_100, PVC_RW_100, PVC_RS_100 },
-+ { (void *)PVC_REG_200, PVC_DATA_SHIFT_200, PVC_DATA_M_200,
-+ PVC_E_200, PVC_RW_200, PVC_RS_200 }
-+};
-+#endif
-+
-+static int lasat_panic_display(struct notifier_block *this,
-+ unsigned long event, void *ptr)
-+{
-+#ifdef CONFIG_PICVUE
-+ unsigned char *string = ptr;
-+ if (string == NULL)
-+ string = "Kernel Panic";
-+ pvc_dump_string(string);
-+#endif
-+ return NOTIFY_DONE;
-+}
-+
-+static int lasat_panic_prom_monitor(struct notifier_block *this,
-+ unsigned long event, void *ptr)
-+{
-+ prom_monitor();
-+ return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block lasat_panic_block[] =
-+{
-+ { lasat_panic_display, NULL, INT_MAX },
-+ { lasat_panic_prom_monitor, NULL, INT_MIN }
-+};
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+static int lasat_ide_default_irq(ide_ioreg_t base) {
-+ return 0;
-+}
-+
-+static ide_ioreg_t lasat_ide_default_io_base(int index) {
-+ return 0;
-+}
-+#endif
-+
-+static void lasat_time_init(void)
-+{
-+ mips_counter_frequency = lasat_board_info.li_cpu_hz / 2;
-+}
-+
-+static void lasat_timer_setup(struct irqaction *irq)
-+{
-+
-+ write_c0_compare(
-+ read_c0_count() +
-+ mips_counter_frequency / HZ);
-+ change_c0_status(ST0_IM, IE_IRQ0 | IE_IRQ5);
-+}
-+
-+#define MIPS_CPU_TIMER_IRQ 7
-+asmlinkage void lasat_timer_interrupt(struct pt_regs *regs)
-+{
-+ ll_timer_interrupt(MIPS_CPU_TIMER_IRQ, regs);
-+}
-+
-+void __init serial_init(void)
-+{
-+#ifdef CONFIG_SERIAL
-+ struct serial_struct s;
-+
-+ memset(&s, 0, sizeof(s));
-+
-+ s.flags = STD_COM_FLAGS;
-+ s.io_type = SERIAL_IO_MEM;
-+
-+ if (mips_machtype == MACH_LASAT_100) {
-+ s.baud_base = LASAT_BASE_BAUD_100;
-+ s.irq = LASATINT_UART_100;
-+ s.iomem_reg_shift = LASAT_UART_REGS_SHIFT_100;
-+ s.iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE_100);
-+ } else {
-+ s.baud_base = LASAT_BASE_BAUD_200;
-+ s.irq = LASATINT_UART_200;
-+ s.iomem_reg_shift = LASAT_UART_REGS_SHIFT_200;
-+ s.iomem_base = (u8 *)KSEG1ADDR(LASAT_UART_REGS_BASE_200);
-+ }
-+
-+ if (early_serial_setup(&s) != 0)
-+ printk(KERN_ERR "Serial setup failed!\n");
-+#endif
-+}
-+
-+void __init lasat_setup(void)
-+{
-+ int i;
-+ lasat_misc = &lasat_misc_info[mips_machtype];
-+#ifdef CONFIG_PICVUE
-+ picvue = &pvc_defs[mips_machtype];
-+#endif
-+
-+ /* Set up panic notifier */
-+ for (i = 0; i < sizeof(lasat_panic_block) / sizeof(struct notifier_block); i++)
-+ notifier_chain_register(&panic_notifier_list, &lasat_panic_block[i]);
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+ ide_ops = &std_ide_ops;
-+ ide_ops->ide_default_irq = &lasat_ide_default_irq;
-+ ide_ops->ide_default_io_base = &lasat_ide_default_io_base;
-+#endif
-+
-+ lasat_reboot_setup();
-+
-+ board_time_init = lasat_time_init;
-+ board_timer_setup = lasat_timer_setup;
-+
-+#ifdef CONFIG_DS1603
-+ ds1603 = &ds_defs[mips_machtype];
-+ rtc_get_time = ds1603_read;
-+ rtc_set_time = ds1603_set;
-+#endif
-+
-+ serial_init();
-+
-+ /* Switch from prom exception handler to normal mode */
-+ change_c0_status(ST0_BEV,0);
-+
-+ prom_printf("Lasat specific initialization complete\n");
-+}
-+
-+
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/sysctl.c linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.c
---- linux-2.4.20/arch/mips/lasat/sysctl.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,359 @@
-+/*
-+ * sysctl.c
-+ *
-+ * Thomas Horsten <thh@lasat.com>
-+ * Copyright (C) 2000 LASAT Networks A/S.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Routines specific to the LASAT boards
-+ */
-+#include <linux/types.h>
-+#include <asm/lasat/lasat.h>
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/sysctl.h>
-+#include <linux/stddef.h>
-+#include <linux/init.h>
-+#include <linux/ctype.h>
-+#include <linux/string.h>
-+#include <linux/net.h>
-+#include <linux/inet.h>
-+#include <asm/uaccess.h>
-+
-+#include "sysctl.h"
-+#include "ds1603.h"
-+
-+static DECLARE_MUTEX(lasat_info_sem);
-+
-+/* Strategy function to write EEPROM after changing string entry */
-+int sysctl_lasatstring(ctl_table *table, int *name, int nlen,
-+ void *oldval, size_t *oldlenp,
-+ void *newval, size_t newlen, void **context)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ r = sysctl_string(table, name,
-+ nlen, oldval, oldlenp, newval, newlen, context);
-+ if (r < 0) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ if (newval && newlen) {
-+ lasat_write_eeprom_info();
-+ }
-+ up(&lasat_info_sem);
-+ return 1;
-+}
-+
-+
-+/* And the same for proc */
-+int proc_dolasatstring(ctl_table *table, int write, struct file *filp,
-+ void *buffer, size_t *lenp)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ r = proc_dostring(table, write, filp, buffer, lenp);
-+ if ( (!write) || r) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ lasat_write_eeprom_info();
-+ up(&lasat_info_sem);
-+ return 0;
-+}
-+
-+/* proc function to write EEPROM after changing int entry */
-+int proc_dolasatint(ctl_table *table, int write, struct file *filp,
-+ void *buffer, size_t *lenp)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ r = proc_dointvec(table, write, filp, buffer, lenp);
-+ if ( (!write) || r) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ lasat_write_eeprom_info();
-+ up(&lasat_info_sem);
-+ return 0;
-+}
-+
-+static int rtctmp;
-+
-+#ifdef CONFIG_DS1603
-+/* proc function to read/write RealTime Clock */
-+int proc_dolasatrtc(ctl_table *table, int write, struct file *filp,
-+ void *buffer, size_t *lenp)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ if (!write) {
-+ rtctmp = ds1603_read();
-+ /* check for time < 0 and set to 0 */
-+ if (rtctmp < 0)
-+ rtctmp = 0;
-+ }
-+ r = proc_dointvec(table, write, filp, buffer, lenp);
-+ if ( (!write) || r) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ ds1603_set(rtctmp);
-+ up(&lasat_info_sem);
-+ return 0;
-+}
-+#endif
-+
-+/* Sysctl for setting the IP addresses */
-+int sysctl_lasat_intvec(ctl_table *table, int *name, int nlen,
-+ void *oldval, size_t *oldlenp,
-+ void *newval, size_t newlen, void **context)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context);
-+ if (r < 0) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ if (newval && newlen) {
-+ lasat_write_eeprom_info();
-+ }
-+ up(&lasat_info_sem);
-+ return 1;
-+}
-+
-+#if CONFIG_DS1603
-+/* Same for RTC */
-+int sysctl_lasat_rtc(ctl_table *table, int *name, int nlen,
-+ void *oldval, size_t *oldlenp,
-+ void *newval, size_t newlen, void **context)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ rtctmp = ds1603_read();
-+ if (rtctmp < 0)
-+ rtctmp = 0;
-+ r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context);
-+ if (r < 0) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ if (newval && newlen) {
-+ ds1603_set(rtctmp);
-+ }
-+ up(&lasat_info_sem);
-+ return 1;
-+}
-+#endif
-+
-+#ifdef CONFIG_INET
-+static char lasat_bcastaddr[16];
-+
-+void update_bcastaddr(void)
-+{
-+ unsigned int ip;
-+
-+ ip = lasat_board_info.li_eeprom_info.ipaddr |
-+ ~lasat_board_info.li_eeprom_info.netmask;
-+
-+ sprintf(lasat_bcastaddr, "%d.%d.%d.%d",
-+ (ip ) & 0xff,
-+ (ip >> 8) & 0xff,
-+ (ip >> 16) & 0xff,
-+ (ip >> 24) & 0xff);
-+}
-+
-+static char proc_lasat_ipbuf[32];
-+/* Parsing of IP address */
-+int proc_lasat_ip(ctl_table *table, int write, struct file *filp,
-+ void *buffer, size_t *lenp)
-+{
-+ int len;
-+ unsigned int ip;
-+ char *p, c;
-+
-+ if (!table->data || !table->maxlen || !*lenp ||
-+ (filp->f_pos && !write)) {
-+ *lenp = 0;
-+ return 0;
-+ }
-+
-+ down(&lasat_info_sem);
-+ if (write) {
-+ len = 0;
-+ p = buffer;
-+ while (len < *lenp) {
-+ if(get_user(c, p++)) {
-+ up(&lasat_info_sem);
-+ return -EFAULT;
-+ }
-+ if (c == 0 || c == '\n')
-+ break;
-+ len++;
-+ }
-+ if (len >= sizeof(proc_lasat_ipbuf)-1)
-+ len = sizeof(proc_lasat_ipbuf) - 1;
-+ if (copy_from_user(proc_lasat_ipbuf, buffer, len))
-+ {
-+ up(&lasat_info_sem);
-+ return -EFAULT;
-+ }
-+ proc_lasat_ipbuf[len] = 0;
-+ filp->f_pos += *lenp;
-+ /* Now see if we can convert it to a valid IP */
-+ ip = in_aton(proc_lasat_ipbuf);
-+ *(unsigned int *)(table->data) = ip;
-+ lasat_write_eeprom_info();
-+ } else {
-+ ip = *(unsigned int *)(table->data);
-+ sprintf(proc_lasat_ipbuf, "%d.%d.%d.%d",
-+ (ip ) & 0xff,
-+ (ip >> 8) & 0xff,
-+ (ip >> 16) & 0xff,
-+ (ip >> 24) & 0xff);
-+ len = strlen(proc_lasat_ipbuf);
-+ if (len > *lenp)
-+ len = *lenp;
-+ if (len)
-+ if(copy_to_user(buffer, proc_lasat_ipbuf, len)) {
-+ up(&lasat_info_sem);
-+ return -EFAULT;
-+ }
-+ if (len < *lenp) {
-+ if(put_user('\n', ((char *) buffer) + len)) {
-+ up(&lasat_info_sem);
-+ return -EFAULT;
-+ }
-+ len++;
-+ }
-+ *lenp = len;
-+ filp->f_pos += len;
-+ }
-+ update_bcastaddr();
-+ up(&lasat_info_sem);
-+ return 0;
-+}
-+#endif /* defined(CONFIG_INET) */
-+
-+static int sysctl_lasat_eeprom_value(ctl_table *table, int *name, int nlen,
-+ void *oldval, size_t *oldlenp,
-+ void *newval, size_t newlen,
-+ void **context)
-+{
-+ int r;
-+
-+ down(&lasat_info_sem);
-+ r = sysctl_intvec(table, name, nlen, oldval, oldlenp, newval, newlen, context);
-+ if (r < 0) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+
-+ if (newval && newlen)
-+ {
-+ if (name && *name == LASAT_PRID)
-+ lasat_board_info.li_eeprom_info.prid = *(int*)newval;
-+
-+ lasat_write_eeprom_info();
-+ lasat_init_board_info();
-+ }
-+ up(&lasat_info_sem);
-+
-+ return 0;
-+}
-+
-+int proc_lasat_eeprom_value(ctl_table *table, int write, struct file *filp,
-+ void *buffer, size_t *lenp)
-+{
-+ int r;
-+ down(&lasat_info_sem);
-+ r = proc_dointvec(table, write, filp, buffer, lenp);
-+ if ( (!write) || r) {
-+ up(&lasat_info_sem);
-+ return r;
-+ }
-+ if (filp && filp->f_dentry)
-+ {
-+ if (!strcmp(filp->f_dentry->d_name.name, "prid"))
-+ lasat_board_info.li_eeprom_info.prid = lasat_board_info.li_prid;
-+ if (!strcmp(filp->f_dentry->d_name.name, "debugaccess"))
-+ lasat_board_info.li_eeprom_info.debugaccess = lasat_board_info.li_debugaccess;
-+ }
-+ lasat_write_eeprom_info();
-+ up(&lasat_info_sem);
-+ return 0;
-+}
-+
-+extern int lasat_boot_to_service;
-+
-+#ifdef CONFIG_SYSCTL
-+
-+static ctl_table lasat_table[] = {
-+ {LASAT_CPU_HZ, "cpu-hz", &lasat_board_info.li_cpu_hz, sizeof(int),
-+ 0444, NULL, &proc_dointvec, &sysctl_intvec},
-+ {LASAT_BUS_HZ, "bus-hz", &lasat_board_info.li_bus_hz, sizeof(int),
-+ 0444, NULL, &proc_dointvec, &sysctl_intvec},
-+ {LASAT_MODEL, "bmid", &lasat_board_info.li_bmid, sizeof(int),
-+ 0444, NULL, &proc_dointvec, &sysctl_intvec},
-+ {LASAT_PRID, "prid", &lasat_board_info.li_prid, sizeof(int),
-+ 0644, NULL, &proc_lasat_eeprom_value, &sysctl_lasat_eeprom_value},
-+#ifdef CONFIG_INET
-+ {LASAT_IPADDR, "ipaddr", &lasat_board_info.li_eeprom_info.ipaddr, sizeof(int),
-+ 0644, NULL, &proc_lasat_ip, &sysctl_lasat_intvec},
-+ {LASAT_NETMASK, "netmask", &lasat_board_info.li_eeprom_info.netmask, sizeof(int),
-+ 0644, NULL, &proc_lasat_ip, &sysctl_lasat_intvec},
-+ {LASAT_BCAST, "bcastaddr", &lasat_bcastaddr,
-+ sizeof(lasat_bcastaddr), 0600, NULL,
-+ &proc_dostring, &sysctl_string},
-+#endif
-+ {LASAT_PASSWORD, "passwd_hash", &lasat_board_info.li_eeprom_info.passwd_hash, sizeof(lasat_board_info.li_eeprom_info.passwd_hash),
-+ 0600, NULL, &proc_dolasatstring, &sysctl_lasatstring},
-+ {LASAT_SBOOT, "boot-service", &lasat_boot_to_service, sizeof(int),
-+ 0644, NULL, &proc_dointvec, &sysctl_intvec},
-+#if CONFIG_DS1603
-+ {LASAT_RTC, "rtc", &rtctmp, sizeof(int),
-+ 0644, NULL, &proc_dolasatrtc, &sysctl_lasat_rtc},
-+#endif
-+ {LASAT_NAMESTR, "namestr", &lasat_board_info.li_namestr, sizeof(lasat_board_info.li_namestr),
-+ 0444, NULL, &proc_dostring, &sysctl_string},
-+ {LASAT_TYPESTR, "typestr", &lasat_board_info.li_typestr, sizeof(lasat_board_info.li_typestr),
-+ 0444, NULL, &proc_dostring, &sysctl_string},
-+ {0}
-+};
-+
-+#define CTL_LASAT 1 // CTL_ANY ???
-+static ctl_table lasat_root_table[] = {
-+ { CTL_LASAT, "lasat", NULL, 0, 0555, lasat_table },
-+ { 0 }
-+};
-+
-+static int __init lasat_register_sysctl(void)
-+{
-+ struct ctl_table_header *lasat_table_header;
-+
-+ lasat_table_header =
-+ register_sysctl_table(lasat_root_table, 0);
-+
-+ return 0;
-+}
-+
-+__initcall(lasat_register_sysctl);
-+#endif /* CONFIG_SYSCTL */
-diff -urNd -urNd linux-2.4.20/arch/mips/lasat/sysctl.h linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.h
---- linux-2.4.20/arch/mips/lasat/sysctl.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lasat/sysctl.h 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,24 @@
-+/*
-+ * LASAT sysctl values
-+ */
-+
-+#ifndef _LASAT_SYSCTL_H
-+#define _LASAT_SYSCTL_H
-+
-+/* /proc/sys/lasat */
-+enum {
-+ LASAT_CPU_HZ=1,
-+ LASAT_BUS_HZ,
-+ LASAT_MODEL,
-+ LASAT_PRID,
-+ LASAT_IPADDR,
-+ LASAT_NETMASK,
-+ LASAT_BCAST,
-+ LASAT_PASSWORD,
-+ LASAT_SBOOT,
-+ LASAT_RTC,
-+ LASAT_NAMESTR,
-+ LASAT_TYPESTR,
-+};
-+
-+#endif /* _LASAT_SYSCTL_H */
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Entries
---- linux-2.4.20/arch/mips/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Entries 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1,23 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:39 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.20.2.4/Tue Jan 28 02:31:33 2003/-ko/Tlinux_2_4_20
-+/csum_partial.S/1.3/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/csum_partial_copy.c/1.4.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dump_tlb.c/1.8.2.7/Thu Dec 19 14:02:56 2002/-ko/Tlinux_2_4_20
-+/floppy-no.c/1.2/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/floppy-std.c/1.4.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/ide-no.c/1.4.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/ide-std.c/1.5.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/kbd-no.c/1.2/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/kbd-std.c/1.5.2.1/Wed May 29 03:03:17 2002/-ko/Tlinux_2_4_20
-+/memcpy.S/1.6.2.4/Thu Sep 19 14:01:24 2002/-ko/Tlinux_2_4_20
-+/memset.S/1.3.2.2/Tue Aug 6 00:56:51 2002/-ko/Tlinux_2_4_20
-+/promlib.c/1.1.2.2/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/r3k_dump_tlb.c/1.5.2.1/Mon Dec 2 00:24:49 2002/-ko/Tlinux_2_4_20
-+/rtc-no.c/1.5.2.1/Thu Nov 7 01:47:45 2002/-ko/Tlinux_2_4_20
-+/rtc-std.c/1.3/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
-+/strlen_user.S/1.6.2.1/Mon Jul 1 15:27:23 2002/-ko/Tlinux_2_4_20
-+/strncpy_user.S/1.5/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/strnlen_user.S/1.3.2.1/Mon Jul 1 15:27:23 2002/-ko/Tlinux_2_4_20
-+/tinycon.c/1.1.1.1.8.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/watch.S/1.4/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Repository
---- linux-2.4.20/arch/mips/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Repository 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/lib
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Root
---- linux-2.4.20/arch/mips/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Root 2005-01-06 23:00:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Tag
---- linux-2.4.20/arch/mips/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/lib/.cvsignore
---- linux-2.4.20/arch/mips/lib/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/.cvsignore 1998-03-17 16:07:39.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/dump_tlb.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/dump_tlb.c
---- linux-2.4.20/arch/mips/lib/dump_tlb.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/dump_tlb.c 2002-12-19 08:02:56.000000000 -0600
-@@ -41,11 +41,11 @@
- unsigned long long entrylo0, entrylo1;
- unsigned long entryhi;
-
-- asid = get_entryhi() & 0xff;
-+ asid = read_c0_entryhi() & 0xff;
-
- printk("\n");
- for(i=first;i<=last;i++) {
-- write_32bit_cp0_register(CP0_INDEX, i);
-+ write_c0_index(i);
- __asm__ __volatile__(
- ".set\tmips3\n\t"
- ".set\tnoreorder\n\t"
-@@ -54,10 +54,10 @@
- "nop;nop;nop;nop\n\t"
- ".set\treorder\n\t"
- ".set\tmips0\n\t");
-- pagemask = read_32bit_cp0_register(CP0_PAGEMASK);
-- entryhi = read_32bit_cp0_register(CP0_ENTRYHI);
-- entrylo0 = get_entrylo0();
-- entrylo1 = get_entrylo1();
-+ pagemask = read_c0_pagemask();
-+ entryhi = read_c0_entryhi();
-+ entrylo0 = read_c0_entrylo0();
-+ entrylo1 = read_c0_entrylo1();
-
- /* Unused entries have a virtual address in KSEG0. */
- if ((entryhi & 0xf0000000) != 0x80000000
-@@ -86,7 +86,7 @@
- }
- }
-
-- set_entryhi(asid);
-+ write_c0_entryhi(asid);
- }
-
- void dump_tlb_all(void)
-@@ -98,9 +98,9 @@
- {
- int wired;
-
-- wired = read_32bit_cp0_register(CP0_WIRED);
-+ wired = read_c0_wired();
- printk("Wired: %d", wired);
-- dump_tlb(0, read_32bit_cp0_register(CP0_WIRED));
-+ dump_tlb(0, read_c0_wired());
- }
-
- #define BARRIER \
-@@ -116,14 +116,14 @@
- int index;
-
- __save_and_cli(flags);
-- oldpid = get_entryhi() & 0xff;
-+ oldpid = read_c0_entryhi() & 0xff;
- BARRIER;
-- set_entryhi((addr & PAGE_MASK) | oldpid);
-+ write_c0_entryhi((addr & PAGE_MASK) | oldpid);
- BARRIER;
- tlb_probe();
- BARRIER;
-- index = get_index();
-- set_entryhi(oldpid);
-+ index = read_c0_index();
-+ write_c0_entryhi(oldpid);
- __restore_flags(flags);
-
- if (index < 0) {
-@@ -138,7 +138,7 @@
- void
- dump_tlb_nonwired(void)
- {
-- dump_tlb(read_32bit_cp0_register(CP0_WIRED), mips_cpu.tlbsize - 1);
-+ dump_tlb(read_c0_wired(), mips_cpu.tlbsize - 1);
- }
-
- void
-@@ -177,9 +177,9 @@
-
- page = *pte;
- #ifdef CONFIG_64BIT_PHYS_ADDR
-- printk("page == %08Lx\n", (unsigned long long) pte_val(page));
-+ printk("page == %08Lx\n", pte_val(page));
- #else
-- printk("page == %08lx\n", (unsigned int) pte_val(page));
-+ printk("page == %08lx\n", pte_val(page));
- #endif
-
- val = pte_val(page);
-@@ -225,9 +225,7 @@
-
- for(i=0;i<8;i++)
- {
-- printk("*%08lx == %08lx, ",
-- (unsigned long)p, (unsigned long)*p++);
-- printk("*%08lx == %08lx\n",
-- (unsigned long)p, (unsigned long)*p++);
-+ printk("*%8p = %08lx, ", p, *p); p++;
-+ printk("*%8p = %08lx\n", p, *p); p++;
- }
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/lib/Makefile
---- linux-2.4.20/arch/mips/lib/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/Makefile 2003-01-27 20:31:33.000000000 -0600
-@@ -7,9 +7,9 @@
- L_TARGET = lib.a
-
- obj-y += csum_partial.o csum_partial_copy.o \
-- rtc-std.o rtc-no.o memcpy.o memset.o \
-- watch.o strlen_user.o strncpy_user.o \
-- strnlen_user.o
-+ promlib.o rtc-std.o rtc-no.o memcpy.o \
-+ memset.o watch.o strlen_user.o \
-+ strncpy_user.o strnlen_user.o
-
- ifeq ($(CONFIG_CPU_R3000)$(CONFIG_CPU_TX39XX),y)
- obj-y += r3k_dump_tlb.o
-@@ -18,7 +18,7 @@
- endif
-
- obj-$(CONFIG_BLK_DEV_FD) += floppy-no.o floppy-std.o
--obj-$(CONFIG_IDE) += ide-std.o ide-no.o
-+obj-$(subst m,y,$(CONFIG_IDE)) += ide-std.o ide-no.o # needed for ide module
- obj-$(CONFIG_PC_KEYB) += kbd-std.o kbd-no.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/memcpy.S linux-2.4.20-mipscvs-20050106/arch/mips/lib/memcpy.S
---- linux-2.4.20/arch/mips/lib/memcpy.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/memcpy.S 2002-09-19 09:01:24.000000000 -0500
-@@ -77,11 +77,13 @@
- .previous
-
- /*
-- * In the mips (not mips64) tree, so we can't use doubles
-+ * Only on the 64-bit kernel we can made use of 64-bit registers.
- */
--#undef USE_DOUBLE
-+#ifdef CONFIG_MIPS64
-+#define USE_DOUBLE
-+#endif
-
--#if defined(USE_DOUBLE)
-+#ifdef USE_DOUBLE
-
- #define LOAD ld
- #define LOADL ldl
-@@ -99,6 +101,24 @@
- #define NBYTES 8
- #define LOG_NBYTES 3
-
-+/*
-+ * As we are sharing code base with the mips32 tree (which use the o32 ABI
-+ * register definitions). We need to redefine the register definitions from
-+ * the n64 ABI register naming to the o32 ABI register naming.
-+ */
-+#undef t0
-+#undef t1
-+#undef t2
-+#undef t3
-+#define t0 $8
-+#define t1 $9
-+#define t2 $10
-+#define t3 $11
-+#define t4 $12
-+#define t5 $13
-+#define t6 $14
-+#define t7 $15
-+
- #else
-
- #define LOAD lw
-@@ -385,7 +405,7 @@
- *
- * Assumes src < THREAD_BUADDR($28)
- */
-- lw t0, THREAD_BUADDR($28)
-+ LOAD t0, THREAD_BUADDR($28)
- 1:
- EXC( lb t1, 0(src), l_exc)
- ADD src, src, 1
-@@ -393,16 +413,16 @@
- bne src, t0, 1b
- ADD dst, dst, 1
- l_exc:
-- lw t0, THREAD_BUADDR($28) # t0 is just past last good address
-+ LOAD t0, THREAD_BUADDR($28) # t0 is just past last good address
- nop
-- subu len, AT, t0 # len number of uncopied bytes
-+ SUB len, AT, t0 # len number of uncopied bytes
- /*
- * Here's where we rely on src and dst being incremented in tandem,
- * See (3) above.
- * dst += (fault addr - src) to put dst at first byte to clear
- */
-- addu dst, t0 # compute start address in a1
-- subu dst, src
-+ ADD dst, t0 # compute start address in a1
-+ SUB dst, src
- /*
- * Clear len bytes starting at dst. Can't call __bzero because it
- * might modify len. An inefficient loop for these rare times...
-@@ -440,8 +460,8 @@
-
- .align 5
- LEAF(memmove)
-- addu t0, a0, a2
-- addu t1, a1, a2
-+ ADD t0, a0, a2
-+ ADD t1, a1, a2
- sltu t0, a1, t0 # dst + len <= src -> memcpy
- sltu t1, a0, t1 # dst >= src + len -> memcpy
- and t0, t1
-@@ -455,16 +475,16 @@
- sltu t0, a1, a0
- beqz t0, r_end_bytes_up # src >= dst
- nop
-- addu a0, a2 # dst = dst + len
-- addu a1, a2 # src = src + len
-+ ADD a0, a2 # dst = dst + len
-+ ADD a1, a2 # src = src + len
-
- r_end_bytes:
- lb t0, -1(a1)
-- subu a2, a2, 0x1
-+ SUB a2, a2, 0x1
- sb t0, -1(a0)
-- subu a1, a1, 0x1
-+ SUB a1, a1, 0x1
- bnez a2, r_end_bytes
-- subu a0, a0, 0x1
-+ SUB a0, a0, 0x1
-
- r_out:
- jr ra
-@@ -472,11 +492,11 @@
-
- r_end_bytes_up:
- lb t0, (a1)
-- subu a2, a2, 0x1
-+ SUB a2, a2, 0x1
- sb t0, (a0)
-- addu a1, a1, 0x1
-+ ADD a1, a1, 0x1
- bnez a2, r_end_bytes_up
-- addu a0, a0, 0x1
-+ ADD a0, a0, 0x1
-
- jr ra
- move a2, zero
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/promlib.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/promlib.c
---- linux-2.4.20/arch/mips/lib/promlib.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/promlib.c 2003-01-21 23:11:38.000000000 -0600
-@@ -0,0 +1,24 @@
-+#include <stdarg.h>
-+#include <linux/kernel.h>
-+
-+extern void prom_putchar(char);
-+
-+void prom_printf(char *fmt, ...)
-+{
-+ va_list args;
-+ char ppbuf[1024];
-+ char *bptr;
-+
-+ va_start(args, fmt);
-+ vsprintf(ppbuf, fmt, args);
-+
-+ bptr = ppbuf;
-+
-+ while (*bptr != 0) {
-+ if (*bptr == '\n')
-+ prom_putchar('\r');
-+
-+ prom_putchar(*bptr++);
-+ }
-+ va_end(args);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/r3k_dump_tlb.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/r3k_dump_tlb.c
---- linux-2.4.20/arch/mips/lib/r3k_dump_tlb.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/r3k_dump_tlb.c 2002-12-01 18:24:49.000000000 -0600
-@@ -26,18 +26,18 @@
- unsigned int asid;
- unsigned long entryhi, entrylo0;
-
-- asid = get_entryhi() & 0xfc0;
-+ asid = read_c0_entryhi() & 0xfc0;
-
- for(i=first;i<=last;i++)
- {
-- write_32bit_cp0_register(CP0_INDEX, i<<8);
-+ write_c0_index(i<<8);
- __asm__ __volatile__(
- ".set\tnoreorder\n\t"
- "tlbr\n\t"
- "nop\n\t"
- ".set\treorder");
-- entryhi = read_32bit_cp0_register(CP0_ENTRYHI);
-- entrylo0 = read_32bit_cp0_register(CP0_ENTRYLO0);
-+ entryhi = read_c0_entryhi();
-+ entrylo0 = read_c0_entrylo0();
-
- /* Unused entries have a virtual address of KSEG0. */
- if ((entryhi & 0xffffe000) != 0x80000000
-@@ -60,7 +60,7 @@
- }
- printk("\n");
-
-- set_entryhi(asid);
-+ write_c0_entryhi(asid);
- }
-
- void
-@@ -72,7 +72,7 @@
- void
- dump_tlb_wired(void)
- {
-- int wired = r3k_have_wired_reg ? get_wired() : 8;
-+ int wired = r3k_have_wired_reg ? read_c0_wired() : 8;
-
- printk("Wired: %d", wired);
- dump_tlb(0, wired - 1);
-@@ -85,11 +85,11 @@
- int index;
-
- __save_and_cli(flags);
-- oldpid = get_entryhi() & 0xff;
-- set_entryhi((addr & PAGE_MASK) | oldpid);
-+ oldpid = read_c0_entryhi() & 0xff;
-+ write_c0_entryhi((addr & PAGE_MASK) | oldpid);
- tlb_probe();
-- index = get_index();
-- set_entryhi(oldpid);
-+ index = read_c0_index();
-+ write_c0_entryhi(oldpid);
- __restore_flags(flags);
-
- if (index < 0) {
-@@ -104,7 +104,7 @@
- void
- dump_tlb_nonwired(void)
- {
-- int wired = r3k_have_wired_reg ? get_wired() : 8;
-+ int wired = r3k_have_wired_reg ? read_c0_wired() : 8;
- dump_tlb(wired, mips_cpu.tlbsize - 1);
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/lib/rtc-no.c linux-2.4.20-mipscvs-20050106/arch/mips/lib/rtc-no.c
---- linux-2.4.20/arch/mips/lib/rtc-no.c 2001-07-02 15:56:40.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/lib/rtc-no.c 2002-11-06 19:47:45.000000000 -0600
-@@ -24,7 +24,7 @@
- }
-
- struct rtc_ops no_rtc_ops = {
-- rtc_read_data: (void *) &shouldnt_happen,
-- rtc_write_data: (void *) &shouldnt_happen,
-- rtc_bcd_mode: (void *) &shouldnt_happen
-+ .rtc_read_data = (void *) &shouldnt_happen,
-+ .rtc_write_data = (void *) &shouldnt_happen,
-+ .rtc_bcd_mode = (void *) &shouldnt_happen
- };
-diff -urNd -urNd linux-2.4.20/arch/mips/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/Makefile
---- linux-2.4.20/arch/mips/Makefile 2002-11-28 17:53:09.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/Makefile 2003-02-20 12:53:37.000000000 -0600
-@@ -43,7 +43,12 @@
-
- ifdef CONFIG_REMOTE_DEBUG
- GCCFLAGS += -g
-+ifdef CONFIG_SB1XXX_CORELIS
-+GCCFLAGS += -mno-sched-prolog -fno-omit-frame-pointer
- endif
-+endif
-+
-+check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)
-
- #
- # CPU-dependent compiler/assembler options for optimization.
-@@ -89,7 +94,8 @@
- GCCFLAGS += -mcpu=r5000 -mips2 -Wa,--trap
- endif
- ifdef CONFIG_CPU_SB1
--GCCFLAGS += -mcpu=sb1 -mips2 -Wa,--trap
-+GCCFLAGS += $(call check_gcc, -mcpu=sb1, -mcpu=r5000) \
-+ -mips2 -Wa,--trap
- ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
- MODFLAGS += -msb1-pass1-workarounds
- endif
-@@ -161,6 +167,30 @@
- endif
-
- #
-+# Au1x00 (AMD/Alchemy) eval boards
-+#
-+ifdef CONFIG_MIPS_DB1000
-+LIBS += arch/mips/au1000/db1x00/db1x00.o \
-+ arch/mips/au1000/common/au1000.o
-+SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common
-+LOADADDR += 0x80100000
-+endif
-+
-+ifdef CONFIG_MIPS_DB1500
-+LIBS += arch/mips/au1000/db1x00/db1x00.o \
-+ arch/mips/au1000/common/au1000.o
-+SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common
-+LOADADDR += 0x80100000
-+endif
-+
-+ifdef CONFIG_MIPS_DB1100
-+LIBS += arch/mips/au1000/db1x00/db1x00.o \
-+ arch/mips/au1000/common/au1000.o
-+SUBDIRS += arch/mips/au1000/db1x00 arch/mips/au1000/common
-+LOADADDR += 0x80100000
-+endif
-+
-+#
- # Algorithmics P4032
- #
- ifdef CONFIG_ALGOR_P4032
-@@ -328,6 +358,11 @@
- LOADADDR := 0x80100000
- endif
-
-+ifdef CONFIG_LASAT
-+LIBS += arch/mips/lasat/lasatkern.o
-+SUBDIRS += arch/mips/lasat
-+LOADADDR += 0x80000000
-+endif
- #
- # NEC Osprey (vr4181) board
- #
-@@ -361,6 +396,50 @@
- endif
-
- #
-+# Victor MP-C303/304 (VR4122)
-+#
-+ifdef CONFIG_VICTOR_MPC30X
-+SUBDIRS += arch/mips/vr41xx/common \
-+ arch/mips/vr41xx/victor-mpc30x
-+LIBS += arch/mips/vr41xx/common/vr41xx.o \
-+ arch/mips/vr41xx/victor-mpc30x/mpc30x.o
-+LOADADDR := 0x80001000
-+endif
-+
-+#
-+# IBM WorkPad z50 (VR4121)
-+#
-+ifdef CONFIG_IBM_WORKPAD
-+SUBDIRS += arch/mips/vr41xx/common \
-+ arch/mips/vr41xx/ibm-workpad
-+LIBS += arch/mips/vr41xx/common/vr41xx.o \
-+ arch/mips/vr41xx/ibm-workpad/workpad.o
-+LOADADDR += 0x80004000
-+endif
-+
-+#
-+# CASIO CASSIPEIA E-55/65 (VR4111)
-+#
-+ifdef CONFIG_CASIO_E55
-+SUBDIRS += arch/mips/vr41xx/common \
-+ arch/mips/vr41xx/casio-e55
-+LIBS += arch/mips/vr41xx/common/vr41xx.o \
-+ arch/mips/vr41xx/casio-e55/e55.o
-+LOADADDR += 0x80004000
-+endif
-+
-+#
-+# TANBAC TB0226 Mbase (VR4131)
-+#
-+ifdef CONFIG_TANBAC_TB0226
-+SUBDIRS += arch/mips/vr41xx/common \
-+ arch/mips/vr41xx/tanbac-tb0226
-+LIBS += arch/mips/vr41xx/common/vr41xx.o \
-+ arch/mips/vr41xx/tanbac-tb0226/tb0226.o
-+LOADADDR := 0x80000000
-+endif
-+
-+#
- # Philips Nino
- #
- ifdef CONFIG_NINO
-@@ -385,23 +464,30 @@
- endif
-
- #
--# Sibyte SB1250 SOC
-+# Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs
- #
--ifdef CONFIG_SIBYTE_SB1250
-+ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),)
- # This is a LIB so that it links at the end, and initcalls are later
- # the sequence; but it is built as an object so that modules don't get
- # removed (as happens, even if they have __initcall/module_init)
- LIBS += arch/mips/sibyte/sb1250/sb1250.o
- SUBDIRS += arch/mips/sibyte/sb1250
-+LOADADDR := 0x80100000
- endif
-
- #
--# Sibyte SWARM board
-+# Sibyte boards:
- #
--ifdef CONFIG_SIBYTE_SWARM
-+# BCM91250A (SWARM),
-+# BCM91250E (Sentosa),
-+# BCM91120C (CRhine),
-+# BCM91120x (Carmel),
-+# BCM91125C (CRhone),
-+# BCM91125E (Rhone).
-+#
-+ifdef CONFIG_SIBYTE_BOARD
- LIBS += arch/mips/sibyte/swarm/sbswarm.a
- SUBDIRS += arch/mips/sibyte/swarm
--LOADADDR := 0x80100000
- endif
-
- #
-@@ -413,14 +499,6 @@
- endif
-
- #
--# SB1 Cache Error handler
--#
--ifdef CONFIG_SB1_CACHE_ERROR
--LIBS += arch/mips/sibyte/sb1/sb1kern.a
--SUBDIRS += arch/mips/sibyte/sb1
--endif
--
--#
- # SNI RM200 PCI
- #
- ifdef CONFIG_SNI_RM200_PCI
-@@ -468,12 +546,15 @@
- endif
-
- ifdef CONFIG_MIPS_EV64120
--GALILEOBOOT = $(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120
--
- gboot: vmlinux
- $(MAKE) -C arch/$(ARCH)/galileo-boards/ev64120/compressed
- endif
-
-+ifdef CONFIG_LASAT
-+rom.bin rom.sw: vmlinux
-+ $(MAKE) -C arch/$(ARCH)/lasat/image $@
-+endif
-+
- MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
-
- vmlinux.ecoff: vmlinux
-@@ -484,6 +565,7 @@
- rm -f arch/$(ARCH)/ld.script
- $(MAKE) -C arch/$(ARCH)/tools clean
- $(MAKE) -C arch/mips/baget clean
-+ $(MAKE) -C arch/mips/lasat clean
-
- archmrproper:
- @$(MAKEBOOT) mrproper
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Entries
---- linux-2.4.20/arch/mips/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Entries 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1,49 @@
-+/.cvsignore/1.1/Sat Nov 25 04:49:46 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.2/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/cp1emu.c/1.13.2.10/Tue Sep 10 15:43:18 2002/-ko/Tlinux_2_4_20
-+/dp_add.c/1.4.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dp_cmp.c/1.4.2.2/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
-+/dp_div.c/1.4.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dp_fint.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
-+/dp_flong.c/1.3.2.1/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/dp_frexp.c/1.3.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dp_fsp.c/1.4.2.1/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/dp_logb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
-+/dp_modf.c/1.3.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dp_mul.c/1.4.2.1/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/dp_scalb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
-+/dp_simple.c/1.4/Thu Oct 4 13:19:44 2001/-ko/Tlinux_2_4_20
-+/dp_sqrt.c/1.4.2.1/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/dp_sub.c/1.5.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dp_tint.c/1.4.2.2/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/dp_tlong.c/1.5.2.3/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dsemul.c/1.1.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/dsemul.h/1.1.2.1/Mon Aug 5 14:18:22 2002/-ko/Tlinux_2_4_20
-+/ieee754.c/1.4.2.3/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
-+/ieee754.h/1.3.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/ieee754d.c/1.3.2.3/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/ieee754dp.c/1.5.2.4/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
-+/ieee754dp.h/1.3.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/ieee754int.h/1.3.2.3/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
-+/ieee754m.c/1.2/Sat Nov 25 04:49:46 2000/-ko/Tlinux_2_4_20
-+/ieee754sp.c/1.6.2.3/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
-+/ieee754sp.h/1.3.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/ieee754xcpt.c/1.3.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/kernel_linkage.c/1.5.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_add.c/1.4.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_cmp.c/1.4.2.2/Thu Dec 19 00:30:30 2002/-ko/Tlinux_2_4_20
-+/sp_div.c/1.4.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_fdp.c/1.5.2.3/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_fint.c/1.3.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_flong.c/1.4.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_frexp.c/1.3.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_logb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
-+/sp_modf.c/1.3.2.1/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/sp_mul.c/1.4/Thu Oct 4 13:19:44 2001/-ko/Tlinux_2_4_20
-+/sp_scalb.c/1.3/Sat Jan 13 16:15:24 2001/-ko/Tlinux_2_4_20
-+/sp_simple.c/1.4/Thu Oct 4 13:19:44 2001/-ko/Tlinux_2_4_20
-+/sp_sqrt.c/1.4.2.1/Wed Dec 18 22:33:05 2002/-ko/Tlinux_2_4_20
-+/sp_sub.c/1.4.2.2/Wed Dec 18 19:19:30 2002/-ko/Tlinux_2_4_20
-+/sp_tint.c/1.4.2.2/Mon Aug 5 14:18:23 2002/-ko/Tlinux_2_4_20
-+/sp_tlong.c/1.4.2.2/Mon Aug 5 14:18:23 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Repository
---- linux-2.4.20/arch/mips/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/math-emu
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Root
---- linux-2.4.20/arch/mips/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Tag
---- linux-2.4.20/arch/mips/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/.cvsignore
---- linux-2.4.20/arch/mips/math-emu/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/.cvsignore 2000-11-24 22:49:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/dp_cmp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/dp_cmp.c
---- linux-2.4.20/arch/mips/math-emu/dp_cmp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/dp_cmp.c 2002-12-18 18:30:30.000000000 -0600
-@@ -44,7 +44,7 @@
- if (cmp & IEEE754_CUN)
- return 1;
- if (cmp & (IEEE754_CLT | IEEE754_CGT)) {
-- if (sig && SETCX(IEEE754_INVALID_OPERATION))
-+ if (sig && SETANDTESTCX(IEEE754_INVALID_OPERATION))
- return ieee754si_xcpt(0, "fcmpf", x);
- }
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/ieee754dp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754dp.c
---- linux-2.4.20/arch/mips/math-emu/ieee754dp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754dp.c 2002-12-18 18:30:30.000000000 -0600
-@@ -69,7 +69,7 @@
- if (!ieee754dp_issnan(r)) /* QNAN does not cause invalid op !! */
- return r;
-
-- if (!SETCX(IEEE754_INVALID_OPERATION)) {
-+ if (!SETANDTESTCX(IEEE754_INVALID_OPERATION)) {
- /* not enabled convert to a quiet NaN */
- DPMANT(r) &= (~DP_MBIT(DP_MBITS-1));
- if (ieee754dp_isnan(r))
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/ieee754int.h linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754int.h
---- linux-2.4.20/arch/mips/math-emu/ieee754int.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754int.h 2002-12-18 18:30:30.000000000 -0600
-@@ -61,7 +61,10 @@
- (ieee754_csr.cx = 0)
-
- #define SETCX(x) \
-- (ieee754_csr.cx |= (x),ieee754_csr.sx |= (x),ieee754_csr.mx & (x))
-+ (ieee754_csr.cx |= (x),ieee754_csr.sx |= (x))
-+
-+#define SETANDTESTCX(x) \
-+ (SETCX(x),ieee754_csr.mx & (x))
-
- #define TSTX() \
- (ieee754_csr.cx & ieee754_csr.mx)
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/ieee754sp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754sp.c
---- linux-2.4.20/arch/mips/math-emu/ieee754sp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/ieee754sp.c 2002-12-18 18:30:30.000000000 -0600
-@@ -70,7 +70,7 @@
- if (!ieee754sp_issnan(r)) /* QNAN does not cause invalid op !! */
- return r;
-
-- if (!SETCX(IEEE754_INVALID_OPERATION)) {
-+ if (!SETANDTESTCX(IEEE754_INVALID_OPERATION)) {
- /* not enabled convert to a quiet NaN */
- SPMANT(r) &= (~SP_MBIT(SP_MBITS-1));
- if (ieee754sp_isnan(r))
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/sp_cmp.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_cmp.c
---- linux-2.4.20/arch/mips/math-emu/sp_cmp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_cmp.c 2002-12-18 18:30:30.000000000 -0600
-@@ -44,7 +44,7 @@
- if (cmp & IEEE754_CUN)
- return 1;
- if (cmp & (IEEE754_CLT | IEEE754_CGT)) {
-- if (sig && SETCX(IEEE754_INVALID_OPERATION))
-+ if (sig && SETANDTESTCX(IEEE754_INVALID_OPERATION))
- return ieee754si_xcpt(0, "fcmpf", x);
- }
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/sp_sqrt.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sqrt.c
---- linux-2.4.20/arch/mips/math-emu/sp_sqrt.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sqrt.c 2002-12-18 16:33:05.000000000 -0600
-@@ -29,7 +29,6 @@
-
- ieee754sp ieee754sp_sqrt(ieee754sp x)
- {
-- int sign = (int) 0x80000000;
- int ix, s, q, m, t, i;
- unsigned int r;
- COMPXSP;
-diff -urNd -urNd linux-2.4.20/arch/mips/math-emu/sp_sub.c linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sub.c
---- linux-2.4.20/arch/mips/math-emu/sp_sub.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/math-emu/sp_sub.c 2002-12-18 13:19:30.000000000 -0600
-@@ -167,12 +167,12 @@
- xe = xe;
- xs = ys;
- }
-- if (xm == 0)
-+ if (xm == 0) {
- if (ieee754_csr.rm == IEEE754_RD)
- return ieee754sp_zero(1); /* round negative inf. => sign = -1 */
- else
- return ieee754sp_zero(0); /* other round modes => sign = 1 */
--
-+ }
- /* normalize to rounding precision
- */
- while ((xm >> (SP_MBITS + 3)) == 0) {
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Entries
---- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Entries 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Mon Oct 9 00:46:00 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/atlas_int.c/1.8.2.4/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/atlas_rtc.c/1.3/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
-+/atlas_setup.c/1.7.2.5/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Repository
---- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/mips-boards/atlas
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Root
---- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Tag
---- linux-2.4.20/arch/mips/mips-boards/atlas/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/atlas/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/.cvsignore
---- linux-2.4.20/arch/mips/mips-boards/atlas/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/atlas/.cvsignore 2000-10-08 19:46:00.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Entries
---- linux-2.4.20/arch/mips/mips-boards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,4 @@
-+D/atlas////
-+D/generic////
-+D/malta////
-+D/sead////
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Repository
---- linux-2.4.20/arch/mips/mips-boards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/mips-boards
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Root
---- linux-2.4.20/arch/mips/mips-boards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Tag
---- linux-2.4.20/arch/mips/mips-boards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Entries
---- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Entries 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Mon Oct 9 00:46:00 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.6.2.4/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/cmdline.c/1.3.4.3/Wed May 29 03:03:17 2002/-ko/Tlinux_2_4_20
-+/display.c/1.1.4.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/gdb_hook.c/1.3.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/init.c/1.4.2.4/Tue Nov 5 17:58:00 2002/-ko/Tlinux_2_4_20
-+/memory.c/1.6.2.2/Wed Dec 11 14:25:14 2002/-ko/Tlinux_2_4_20
-+/mipsIRQ.S/1.2.4.4/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.5.2.7/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/printf.c/1.3.2.5/Wed Nov 6 05:27:22 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1/Mon Oct 9 00:36:07 2000/-ko/Tlinux_2_4_20
-+/time.c/1.9.2.5/Mon Dec 2 00:24:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Repository
---- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/mips-boards/generic
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Root
---- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Tag
---- linux-2.4.20/arch/mips/mips-boards/generic/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/.cvsignore
---- linux-2.4.20/arch/mips/mips-boards/generic/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/.cvsignore 2000-10-08 19:46:00.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/init.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/init.c
---- linux-2.4.20/arch/mips/mips-boards/generic/init.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/init.c 2002-11-05 11:58:00.000000000 -0600
-@@ -199,7 +199,6 @@
- while(1); /* We die here... */
- }
- #endif
-- setup_prom_printf(0);
- prom_printf("\nLINUX started...\n");
- prom_init_cmdline();
- prom_meminit();
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/memory.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/memory.c
---- linux-2.4.20/arch/mips/mips-boards/generic/memory.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/memory.c 2002-12-11 08:25:14.000000000 -0600
-@@ -168,7 +168,7 @@
- + boot_mem_map.map[i].size) {
- ClearPageReserved(virt_to_page(__va(addr)));
- set_page_count(virt_to_page(__va(addr)), 1);
-- free_page(__va(addr));
-+ free_page((unsigned long)__va(addr));
- addr += PAGE_SIZE;
- freed += PAGE_SIZE;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/pci.c
---- linux-2.4.20/arch/mips/mips-boards/generic/pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -1,6 +1,6 @@
- /*
- * Carsten Langgaard, carstenl@mips.com
-- * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
-+ * Copyright (C) 1999, 2000 MIPS Technologies, Inc. All rights reserved.
- *
- * This program is free software; you can distribute it and/or modify it
- * under the terms of the GNU General Public License (Version 2) as
-@@ -51,9 +51,8 @@
- #define PCI_CFG_TYPE1_DEV_SHF 11
- #define PCI_CFG_TYPE1_BUS_SHF 16
-
--static int
--mips_pcibios_config_access(unsigned char access_type, struct pci_dev *dev,
-- unsigned char where, u32 *data)
-+static int mips_pcibios_config_access(unsigned char access_type,
-+ struct pci_dev *dev, unsigned char where, u32 *data)
- {
- unsigned char bus = dev->bus->number;
- unsigned char dev_fn = dev->devfn;
-@@ -167,12 +166,7 @@
-
- /* Flush Bonito register block */
- dummy = BONITO_PCIMAP_CFG;
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "sync\n\t"
-- ".set\tat\n\t"
-- ".set\treorder");
-+ iob(); /* sync */
-
- /* Perform access */
- if (access_type == PCI_ACCESS_WRITE) {
-@@ -263,8 +257,8 @@
- * We can't address 8 and 16 bit words directly. Instead we have to
- * read/write a 32bit word and mask/modify the data we actually want.
- */
--static int
--mips_pcibios_read_config_byte (struct pci_dev *dev, int where, u8 *val)
-+static int mips_pcibios_read_config_byte (struct pci_dev *dev, int where,
-+ u8 *val)
- {
- u32 data = 0;
-
-@@ -276,9 +270,8 @@
- return PCIBIOS_SUCCESSFUL;
- }
-
--
--static int
--mips_pcibios_read_config_word (struct pci_dev *dev, int where, u16 *val)
-+static int mips_pcibios_read_config_word (struct pci_dev *dev, int where,
-+ u16 *val)
- {
- u32 data = 0;
-
-@@ -293,8 +286,8 @@
- return PCIBIOS_SUCCESSFUL;
- }
-
--static int
--mips_pcibios_read_config_dword (struct pci_dev *dev, int where, u32 *val)
-+static int mips_pcibios_read_config_dword (struct pci_dev *dev, int where,
-+ u32 *val)
- {
- u32 data = 0;
-
-@@ -309,9 +302,8 @@
- return PCIBIOS_SUCCESSFUL;
- }
-
--
--static int
--mips_pcibios_write_config_byte (struct pci_dev *dev, int where, u8 val)
-+static int mips_pcibios_write_config_byte (struct pci_dev *dev, int where,
-+ u8 val)
- {
- u32 data = 0;
-
-@@ -327,8 +319,8 @@
- return PCIBIOS_SUCCESSFUL;
- }
-
--static int
--mips_pcibios_write_config_word (struct pci_dev *dev, int where, u16 val)
-+static int mips_pcibios_write_config_word (struct pci_dev *dev, int where,
-+ u16 val)
- {
- u32 data = 0;
-
-@@ -348,8 +340,8 @@
- return PCIBIOS_SUCCESSFUL;
- }
-
--static int
--mips_pcibios_write_config_dword(struct pci_dev *dev, int where, u32 val)
-+static int mips_pcibios_write_config_dword(struct pci_dev *dev, int where,
-+ u32 val)
- {
- if (where & 3)
- return PCIBIOS_BAD_REGISTER_NUMBER;
-@@ -400,14 +392,10 @@
-
- /* Flush Bonito register block */
- dummy = BONITO_PCIMAP_CFG;
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "sync\n\t"
-- ".set\tat\n\t"
-- ".set\treorder");
-+ iob(); /* sync */
-
- irq = *(volatile u32 *)(KSEG1ADDR(BONITO_PCICFG_BASE));
-+ iob(); /* sync */
- irq &= 0xff;
- BONITO_PCIMAP_CFG = 0;
- break;
-@@ -497,21 +485,18 @@
- #endif
- }
-
--int __init
--pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- /* Not needed, since we enable all devices at startup. */
- return 0;
- }
-
--void __init
--pcibios_align_resource(void *data, struct resource *res, unsigned long size,
-- unsigned long align)
-+void pcibios_align_resource(void *data, struct resource *res,
-+ unsigned long size, unsigned long align)
- {
- }
-
--char * __init
--pcibios_setup(char *str)
-+char * __init pcibios_setup(char *str)
- {
- /* Nothing to do for now. */
-
-@@ -522,9 +507,8 @@
- { 0 }
- };
-
--void __init
--pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-- struct resource *res, int resource)
-+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-+ struct resource *res, int resource)
- {
- unsigned long where, size;
- u32 reg;
-@@ -540,12 +524,12 @@
- * Called after each bus is probed, but before its children
- * are examined.
- */
--void __init pcibios_fixup_bus(struct pci_bus *b)
-+void __devinit pcibios_fixup_bus(struct pci_bus *b)
- {
- pci_read_bridge_bases(b);
- }
-
--unsigned __init int pcibios_assign_all_busses(void)
-+unsigned int pcibios_assign_all_busses(void)
- {
- return 1;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/printf.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/printf.c
---- linux-2.4.20/arch/mips/mips-boards/generic/printf.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/printf.c 2002-11-05 23:27:22.000000000 -0600
-@@ -2,8 +2,6 @@
- * Carsten Langgaard, carstenl@mips.com
- * Copyright (C) 1999,2000 MIPS Technologies, Inc. All rights reserved.
- *
-- * ########################################################################
-- *
- * This program is free software; you can distribute it and/or modify it
- * under the terms of the GNU General Public License (Version 2) as
- * published by the Free Software Foundation.
-@@ -17,101 +15,84 @@
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
- *
-- * ########################################################################
-- *
- * Putting things on the screen/serial line using YAMONs facilities.
-- *
- */
- #include <linux/config.h>
- #include <linux/init.h>
- #include <linux/kernel.h>
--#include <linux/serialP.h>
- #include <linux/serial_reg.h>
--#include <asm/system.h>
-+#include <linux/spinlock.h>
- #include <asm/io.h>
--#include <asm/serial.h>
-
-+#ifdef CONFIG_MIPS_ATLAS
-+
-+#include <asm/mips-boards/atlas.h>
-
--#if defined(CONFIG_MIPS_ATLAS) || defined(CONFIG_MIPS_SEAD)
- /*
- * Atlas registers are memory mapped on 64-bit aligned boundaries and
- * only word access are allowed.
- * When reading the UART 8 bit registers only the LSB are valid.
- */
--unsigned int atlas_serial_in(struct async_struct *info, int offset)
-+static inline unsigned int serial_in(int offset)
- {
-- return (*(volatile unsigned int *)(info->port + mips_io_port_base + offset*8) & 0xff);
-+ return (*(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) & 0xff);
- }
-
--void atlas_serial_out(struct async_struct *info, int offset, int value)
-+static inline void serial_out(int offset, int value)
- {
-- *(volatile unsigned int *)(info->port + mips_io_port_base + offset*8) = value;
-+ *(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) = value;
- }
-
--#define serial_in atlas_serial_in
--#define serial_out atlas_serial_out
-+#elif defined(CONFIG_MIPS_SEAD)
-
--#else
-+#include <asm/mips-boards/sead.h>
-
--static unsigned int serial_in(struct async_struct *info, int offset)
-+/*
-+ * SEAD registers are just like Atlas registers.
-+ */
-+static inline unsigned int serial_in(int offset)
- {
-- return inb(info->port + offset);
-+ return (*(volatile unsigned int *)(mips_io_port_base + SEAD_UART0_REGS_BASE + offset*8) & 0xff);
- }
-
--static void serial_out(struct async_struct *info, int offset,
-- int value)
-+static inline void serial_out(int offset, int value)
- {
-- outb(value, info->port + offset);
-+ *(volatile unsigned int *)(mips_io_port_base + SEAD_UART0_REGS_BASE + offset*8) = value;
- }
--#endif
-
--static struct serial_state rs_table[] = {
-- SERIAL_PORT_DFNS /* Defined in serial.h */
--};
--
--/*
-- * Hooks to fake "prom" console I/O before devices
-- * are fully initialized.
-- */
--static struct async_struct prom_port_info = {0};
--
--void __init setup_prom_printf(int tty_no) {
-- struct serial_state *ser = &rs_table[tty_no];
-+#else
-
-- prom_port_info.state = ser;
-- prom_port_info.magic = SERIAL_MAGIC;
-- prom_port_info.port = ser->port;
-- prom_port_info.flags = ser->flags;
-+static inline unsigned int serial_in(int offset)
-+{
-+ return inb(0x3f8 + offset);
-+}
-
-- /* No setup of UART - assume YAMON left in sane state */
-+static inline void serial_out(int offset, int value)
-+{
-+ outb(value, 0x3f8 + offset);
- }
-+#endif
-
- int putPromChar(char c)
- {
-- if (!prom_port_info.state) { /* need to init device first */
-- return 0;
-- }
--
-- while ((serial_in(&prom_port_info, UART_LSR) & UART_LSR_THRE) == 0)
-+ while ((serial_in(UART_LSR) & UART_LSR_THRE) == 0)
- ;
-
-- serial_out(&prom_port_info, UART_TX, c);
-+ serial_out(UART_TX, c);
-
- return 1;
- }
-
- char getPromChar(void)
- {
-- if (!prom_port_info.state) { /* need to init device first */
-- return 0;
-- }
--
-- while (!(serial_in(&prom_port_info, UART_LSR) & 1))
-+ while (!(serial_in(UART_LSR) & 1))
- ;
-
-- return(serial_in(&prom_port_info, UART_RX));
-+ return serial_in(UART_RX);
- }
-
-+static spinlock_t con_lock = SPIN_LOCK_UNLOCKED;
-+
- static char buf[1024];
-
- void __init prom_printf(char *fmt, ...)
-@@ -123,8 +104,7 @@
-
- int putPromChar(char);
-
-- /* Low level, brute force, not SMP safe... */
-- save_and_cli(flags);
-+ spin_lock_irqsave(con_lock, flags);
- va_start(args, fmt);
- l = vsprintf(buf, fmt, args); /* hopefully i < sizeof(buf) */
- va_end(args);
-@@ -133,8 +113,9 @@
-
- for (p = buf; p < buf_end; p++) {
- /* Crude cr/nl handling is better than none */
-- if(*p == '\n')putPromChar('\r');
-+ if (*p == '\n')
-+ putPromChar('\r');
- putPromChar(*p);
- }
-- restore_flags(flags);
-+ spin_unlock_irqrestore(con_lock, flags);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/generic/time.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/time.c
---- linux-2.4.20/arch/mips/mips-boards/generic/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/generic/time.c 2002-12-01 18:24:49.000000000 -0600
-@@ -65,7 +65,7 @@
-
- static inline void ack_r4ktimer(unsigned int newval)
- {
-- write_32bit_cp0_register(CP0_COMPARE, newval);
-+ write_c0_compare(newval);
- }
-
- void mips_timer_interrupt(struct pt_regs *regs)
-@@ -96,13 +96,13 @@
- while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
-
- /* Start r4k counter. */
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
-
- /* Read counter exactly on falling edge of update flag */
- while (CMOS_READ(RTC_REG_A) & RTC_UIP);
- while (!(CMOS_READ(RTC_REG_A) & RTC_UIP));
-
-- mips_counter_frequency = read_32bit_cp0_register(CP0_COUNT);
-+ mips_counter_frequency = read_c0_count();
-
- /* restore interrupts */
- __restore_flags(flags);
-@@ -158,7 +158,7 @@
- r4k_offset = cal_r4koff();
- printk("%08x(%d)\n", r4k_offset, r4k_offset);
-
-- if ((read_32bit_cp0_register(CP0_PRID) & 0xffff00) ==
-+ if ((read_c0_prid() & 0xffff00) ==
- (PRID_COMP_MIPS | PRID_IMP_20KC))
- est_freq = r4k_offset*HZ;
- else
-@@ -179,7 +179,7 @@
- setup_irq(MIPS_CPU_TIMER_IRQ, irq);
-
- /* to generate the first timer interrupt */
-- r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-- write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-- set_cp0_status(ALLINTS);
-+ r4k_cur = (read_c0_count() + r4k_offset);
-+ write_c0_compare(r4k_cur);
-+ set_c0_status(ALLINTS);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Entries
---- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Entries 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Mon Oct 9 00:46:00 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.2/Mon Aug 5 23:53:34 2002/-ko/Tlinux_2_4_20
-+/malta_int.c/1.8.2.8/Fri Feb 14 18:48:04 2003/-ko/Tlinux_2_4_20
-+/malta_rtc.c/1.3/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
-+/malta_setup.c/1.7.2.7/Fri Feb 14 18:48:04 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Repository
---- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/mips-boards/malta
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Root
---- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Tag
---- linux-2.4.20/arch/mips/mips-boards/malta/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/.cvsignore
---- linux-2.4.20/arch/mips/mips-boards/malta/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/.cvsignore 2000-10-08 19:46:00.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/malta_int.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_int.c
---- linux-2.4.20/arch/mips/mips-boards/malta/malta_int.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_int.c 2003-02-14 12:48:04.000000000 -0600
-@@ -43,6 +43,12 @@
- extern void init_i8259_irqs (void);
- extern int mips_pcibios_iack(void);
-
-+#ifdef CONFIG_REMOTE_DEBUG
-+extern void breakpoint(void);
-+extern void set_debug_traps(void);
-+extern int remote_debug;
-+#endif
-+
- static spinlock_t mips_irq_lock = SPIN_LOCK_UNLOCKED;
-
- static inline int get_int(int *irq)
-@@ -91,6 +97,9 @@
- {
- unsigned int data,datahi;
-
-+ /* Mask out corehi interrupt. */
-+ clear_c0_status(IE_IRQ3);
-+
- printk("CoreHI interrupt, shouldn't happen, so we die here!!!\n");
- printk("epc : %08lx\nStatus: %08lx\nCause : %08lx\nbadVaddr : %08lx\n"
- , regs->cp0_epc, regs->cp0_status, regs->cp0_cause, regs->cp0_badvaddr);
-@@ -125,7 +134,6 @@
-
- /* We die here*/
- die("CoreHi interrupt", regs);
-- while (1) ;
- }
-
- void __init init_IRQ(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/malta/malta_setup.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_setup.c
---- linux-2.4.20/arch/mips/mips-boards/malta/malta_setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/malta/malta_setup.c 2003-02-14 12:48:04.000000000 -0600
-@@ -51,10 +51,8 @@
- #endif
-
- #ifdef CONFIG_REMOTE_DEBUG
--extern void set_debug_traps(void);
- extern void rs_kgdb_hook(int);
--extern void breakpoint(void);
--static int remote_debug = 0;
-+int remote_debug = 0;
- #endif
-
- extern struct ide_ops std_ide_ops;
-@@ -64,9 +62,6 @@
-
- extern void mips_reboot_setup(void);
-
--extern void (*board_time_init)(void);
--extern void (*board_timer_setup)(struct irqaction *irq);
--extern unsigned long (*rtc_get_time)(void);
- extern void mips_time_init(void);
- extern void mips_timer_setup(struct irqaction *irq);
- extern unsigned long mips_rtc_get_time(void);
-@@ -94,8 +89,8 @@
- #ifdef CONFIG_REMOTE_DEBUG
- int rs_putDebugChar(char);
- char rs_getDebugChar(void);
-- extern int (*putDebugChar)(char);
-- extern char (*getDebugChar)(void);
-+ extern int (*generic_putDebugChar)(char);
-+ extern char (*generic_getDebugChar)(void);
- #endif
- char *argptr;
- int i;
-@@ -130,8 +125,8 @@
- line ? 1 : 0);
-
- rs_kgdb_hook(line);
-- putDebugChar = rs_putDebugChar;
-- getDebugChar = rs_getDebugChar;
-+ generic_putDebugChar = rs_putDebugChar;
-+ generic_getDebugChar = rs_getDebugChar;
-
- prom_printf("KGDB: Using serial line /dev/ttyS%d for session, "
- "please connect your debugger\n", line ? 1 : 0);
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Entries
---- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Entries 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1.2.1/Wed Jul 24 13:51:48 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/sead_int.c/1.1.2.3/Mon Dec 2 00:24:49 2002/-ko/Tlinux_2_4_20
-+/sead_setup.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/sead_time.c/1.1.2.3/Mon Dec 2 00:24:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Repository
---- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/mips-boards/sead
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Root
---- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Tag
---- linux-2.4.20/arch/mips/mips-boards/sead/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/CVS/Tag 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/.cvsignore
---- linux-2.4.20/arch/mips/mips-boards/sead/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/.cvsignore 2002-07-24 08:51:48.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/sead_int.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_int.c
---- linux-2.4.20/arch/mips/mips-boards/sead/sead_int.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_int.c 2002-12-01 18:24:49.000000000 -0600
-@@ -40,19 +40,19 @@
- void disable_sead_irq(unsigned int irq_nr)
- {
- if (irq_nr == SEADINT_UART0)
-- clear_cp0_status(0x00000400);
-+ clear_c0_status(0x00000400);
- else
- if (irq_nr == SEADINT_UART1)
-- clear_cp0_status(0x00000800);
-+ clear_c0_status(0x00000800);
- }
-
- void enable_sead_irq(unsigned int irq_nr)
- {
- if (irq_nr == SEADINT_UART0)
-- set_cp0_status(0x00000400);
-+ set_c0_status(0x00000400);
- else
- if (irq_nr == SEADINT_UART1)
-- set_cp0_status(0x00000800);
-+ set_c0_status(0x00000800);
- }
-
- static unsigned int startup_sead_irq(unsigned int irq)
-@@ -99,7 +99,7 @@
- /*
- * Mask out all interrupt
- */
-- clear_cp0_status(0x0000ff00);
-+ clear_c0_status(0x0000ff00);
-
- /* Now safe to set the exception vector. */
- set_except_vector(0, mipsIRQ);
-diff -urNd -urNd linux-2.4.20/arch/mips/mips-boards/sead/sead_time.c linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_time.c
---- linux-2.4.20/arch/mips/mips-boards/sead/sead_time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mips-boards/sead/sead_time.c 2002-12-01 18:24:49.000000000 -0600
-@@ -59,7 +59,7 @@
-
- static inline void ack_r4ktimer(unsigned long newval)
- {
-- write_32bit_cp0_register(CP0_COMPARE, newval);
-+ write_c0_compare(newval);
- }
-
- /*
-@@ -87,7 +87,7 @@
- r4k_cur += r4k_offset;
- ack_r4ktimer(r4k_cur);
-
-- } while (((unsigned long)read_32bit_cp0_register(CP0_COUNT)
-+ } while (((unsigned long)read_c0_count()
- - r4k_cur) < 0x7fffffff);
-
- irq_exit(cpu, irq);
-@@ -116,13 +116,13 @@
- __save_and_cli(flags);
-
- /* Start r4k counter. */
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
-
- printk("calculating r4koff... ");
- r4k_offset = cal_r4koff();
- printk("%08lx(%d)\n", r4k_offset, (int) r4k_offset);
-
-- if ((read_32bit_cp0_register(CP0_PRID) & 0xffff00) ==
-+ if ((read_c0_prid() & 0xffff00) ==
- (PRID_COMP_MIPS | PRID_IMP_20KC))
- est_freq = r4k_offset*HZ;
- else
-@@ -143,7 +143,7 @@
- setup_irq(MIPS_CPU_TIMER_IRQ, irq);
-
- /* to generate the first timer interrupt */
-- r4k_cur = (read_32bit_cp0_register(CP0_COUNT) + r4k_offset);
-- write_32bit_cp0_register(CP0_COMPARE, r4k_cur);
-- set_cp0_status(ALLINTS);
-+ r4k_cur = (read_c0_count() + r4k_offset);
-+ write_c0_compare(r4k_cur);
-+ set_c0_status(ALLINTS);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-andes.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-andes.c
---- linux-2.4.20/arch/mips/mm/c-andes.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-andes.c 2003-02-09 16:03:23.000000000 -0600
-@@ -15,7 +15,6 @@
- #include <asm/pgtable.h>
- #include <asm/r10kcache.h>
- #include <asm/system.h>
--#include <asm/sgialib.h>
- #include <asm/mmu_context.h>
-
- static int scache_lsz64;
-@@ -94,6 +93,11 @@
-
- void __init ld_mmu_andes(void)
- {
-+ /* Default cache error handler for R10000 */
-+ extern char except_vec2_generic;
-+
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
- printk("Primary instruction cache %dkb, linesize %d bytes\n",
- icache_size >> 10, ic_lsize);
- printk("Primary data cache %dkb, linesize %d bytes\n",
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/cerr-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/cerr-sb1.c
---- linux-2.4.20/arch/mips/mm/cerr-sb1.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/cerr-sb1.c 2003-02-06 17:25:13.000000000 -0600
-@@ -0,0 +1,540 @@
-+/*
-+ * Copyright (C) 2001 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#include <linux/sched.h>
-+#include <asm/mipsregs.h>
-+
-+/* SB1 definitions */
-+
-+/* XXX should come from config1 XXX */
-+#define SB1_CACHE_INDEX_MASK 0x1fe0
-+
-+#define CP0_ERRCTL_RECOVERABLE (1 << 31)
-+#define CP0_ERRCTL_DCACHE (1 << 30)
-+#define CP0_ERRCTL_ICACHE (1 << 29)
-+#define CP0_ERRCTL_MULTIBUS (1 << 23)
-+#define CP0_ERRCTL_MC_TLB (1 << 15)
-+#define CP0_ERRCTL_MC_TIMEOUT (1 << 14)
-+
-+#define CP0_CERRI_TAG_PARITY (1 << 29)
-+#define CP0_CERRI_DATA_PARITY (1 << 28)
-+#define CP0_CERRI_EXTERNAL (1 << 26)
-+
-+#define CP0_CERRI_IDX_VALID(c) (!((c) & CP0_CERRI_EXTERNAL))
-+#define CP0_CERRI_DATA (CP0_CERRI_DATA_PARITY)
-+
-+#define CP0_CERRD_MULTIPLE (1 << 31)
-+#define CP0_CERRD_TAG_STATE (1 << 30)
-+#define CP0_CERRD_TAG_ADDRESS (1 << 29)
-+#define CP0_CERRD_DATA_SBE (1 << 28)
-+#define CP0_CERRD_DATA_DBE (1 << 27)
-+#define CP0_CERRD_EXTERNAL (1 << 26)
-+#define CP0_CERRD_LOAD (1 << 25)
-+#define CP0_CERRD_STORE (1 << 24)
-+#define CP0_CERRD_FILLWB (1 << 23)
-+#define CP0_CERRD_COHERENCY (1 << 22)
-+#define CP0_CERRD_DUPTAG (1 << 21)
-+
-+#define CP0_CERRD_DPA_VALID(c) (!((c) & CP0_CERRD_EXTERNAL))
-+#define CP0_CERRD_IDX_VALID(c) \
-+ (((c) & (CP0_CERRD_LOAD | CP0_CERRD_STORE)) ? (!((c) & CP0_CERRD_EXTERNAL)) : 0)
-+#define CP0_CERRD_CAUSES \
-+ (CP0_CERRD_LOAD | CP0_CERRD_STORE | CP0_CERRD_FILLWB | CP0_CERRD_COHERENCY | CP0_CERRD_DUPTAG)
-+#define CP0_CERRD_TYPES \
-+ (CP0_CERRD_TAG_STATE | CP0_CERRD_TAG_ADDRESS | CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE | CP0_CERRD_EXTERNAL)
-+#define CP0_CERRD_DATA (CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE)
-+
-+static uint32_t extract_ic(unsigned short addr, int data);
-+static uint32_t extract_dc(unsigned short addr, int data);
-+
-+static inline void breakout_errctl(unsigned int val)
-+{
-+ if (val & CP0_ERRCTL_RECOVERABLE)
-+ prom_printf(" recoverable");
-+ if (val & CP0_ERRCTL_DCACHE)
-+ prom_printf(" dcache");
-+ if (val & CP0_ERRCTL_ICACHE)
-+ prom_printf(" icache");
-+ if (val & CP0_ERRCTL_MULTIBUS)
-+ prom_printf(" multiple-buserr");
-+ prom_printf("\n");
-+}
-+
-+static inline void breakout_cerri(unsigned int val)
-+{
-+ if (val & CP0_CERRI_TAG_PARITY)
-+ prom_printf(" tag-parity");
-+ if (val & CP0_CERRI_DATA_PARITY)
-+ prom_printf(" data-parity");
-+ if (val & CP0_CERRI_EXTERNAL)
-+ prom_printf(" external");
-+ prom_printf("\n");
-+}
-+
-+static inline void breakout_cerrd(unsigned int val)
-+{
-+ switch (val & CP0_CERRD_CAUSES) {
-+ case CP0_CERRD_LOAD:
-+ prom_printf(" load,");
-+ break;
-+ case CP0_CERRD_STORE:
-+ prom_printf(" store,");
-+ break;
-+ case CP0_CERRD_FILLWB:
-+ prom_printf(" fill/wb,");
-+ break;
-+ case CP0_CERRD_COHERENCY:
-+ prom_printf(" coherency,");
-+ break;
-+ case CP0_CERRD_DUPTAG:
-+ prom_printf(" duptags,");
-+ break;
-+ default:
-+ prom_printf(" NO CAUSE,");
-+ break;
-+ }
-+ if (!(val & CP0_CERRD_TYPES))
-+ prom_printf(" NO TYPE");
-+ else {
-+ if (val & CP0_CERRD_MULTIPLE)
-+ prom_printf(" multi-err");
-+ if (val & CP0_CERRD_TAG_STATE)
-+ prom_printf(" tag-state");
-+ if (val & CP0_CERRD_TAG_ADDRESS)
-+ prom_printf(" tag-address");
-+ if (val & CP0_CERRD_DATA_SBE)
-+ prom_printf(" data-SBE");
-+ if (val & CP0_CERRD_DATA_DBE)
-+ prom_printf(" data-DBE");
-+ if (val & CP0_CERRD_EXTERNAL)
-+ prom_printf(" external");
-+ }
-+ prom_printf("\n");
-+}
-+
-+#ifndef CONFIG_SIBYTE_BUS_WATCHER
-+
-+#include <asm/io.h>
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_regs.h>
-+#include <asm/sibyte/sb1250_scd.h>
-+#include <asm/sibyte/64bit.h>
-+
-+static void check_bus_watcher(void)
-+{
-+ uint32_t status, l2_err, memio_err;
-+
-+ /* Destructive read, clears register and interrupt */
-+ status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
-+ /* Bit 31 is always on, but there's no #define for that */
-+ if (status & ~(1UL << 31)) {
-+ l2_err = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
-+ memio_err = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
-+ prom_printf("Bus watcher error counters: %08x %08x\n", l2_err, memio_err);
-+ prom_printf("\nLast recorded signature:\n");
-+ prom_printf("Request %02x from %d, answered by %d with Dcode %d\n",
-+ (unsigned int)(G_SCD_BERR_TID(status) & 0x3f),
-+ (int)(G_SCD_BERR_TID(status) >> 6),
-+ (int)G_SCD_BERR_RID(status),
-+ (int)G_SCD_BERR_DCODE(status));
-+ } else {
-+ prom_printf("Bus watcher indicates no error\n");
-+ }
-+}
-+#else
-+extern void check_bus_watcher(void);
-+#endif
-+
-+asmlinkage void sb1_cache_error(void)
-+{
-+ uint64_t cerr_dpa;
-+ uint32_t errctl, cerr_i, cerr_d, dpalo, dpahi, eepc, res;
-+
-+ prom_printf("Cache error exception on CPU %x:\n",
-+ (read_c0_prid() >> 25) & 0x7);
-+
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " mfc0 %0, $26\n\t"
-+ " mfc0 %1, $27\n\t"
-+ " mfc0 %2, $27, 1\n\t"
-+ " dmfc0 $1, $27, 3\n\t"
-+ " dsrl32 %3, $1, 0 \n\t"
-+ " sll %4, $1, 0 \n\t"
-+ " mfc0 %5, $30\n\t"
-+ " .set pop"
-+ : "=r" (errctl), "=r" (cerr_i), "=r" (cerr_d),
-+ "=r" (dpahi), "=r" (dpalo), "=r" (eepc));
-+
-+ cerr_dpa = (((uint64_t)dpahi) << 32) | dpalo;
-+ prom_printf(" cp0_errorepc == %08x\n", eepc);
-+ prom_printf(" cp0_errctl == %08x", errctl);
-+ breakout_errctl(errctl);
-+ if (errctl & CP0_ERRCTL_ICACHE) {
-+ prom_printf(" cp0_cerr_i == %08x", cerr_i);
-+ breakout_cerri(cerr_i);
-+ if (CP0_CERRI_IDX_VALID(cerr_i)) {
-+ if ((eepc & SB1_CACHE_INDEX_MASK) != (cerr_i & SB1_CACHE_INDEX_MASK))
-+ prom_printf(" cerr_i idx doesn't match eepc\n");
-+ else {
-+ res = extract_ic(cerr_i & SB1_CACHE_INDEX_MASK,
-+ (cerr_i & CP0_CERRI_DATA) != 0);
-+ if (!(res & cerr_i))
-+ prom_printf("...didn't see indicated icache problem\n");
-+ }
-+ }
-+ }
-+ if (errctl & CP0_ERRCTL_DCACHE) {
-+ prom_printf(" cp0_cerr_d == %08x", cerr_d);
-+ breakout_cerrd(cerr_d);
-+ if (CP0_CERRD_DPA_VALID(cerr_d)) {
-+ prom_printf(" cp0_cerr_dpa == %010llx\n", cerr_dpa);
-+ if (!CP0_CERRD_IDX_VALID(cerr_d)) {
-+ res = extract_dc(cerr_dpa & SB1_CACHE_INDEX_MASK,
-+ (cerr_d & CP0_CERRD_DATA) != 0);
-+ if (!(res & cerr_d))
-+ prom_printf("...didn't see indicated dcache problem\n");
-+ } else {
-+ if ((cerr_dpa & SB1_CACHE_INDEX_MASK) != (cerr_d & SB1_CACHE_INDEX_MASK))
-+ prom_printf(" cerr_d idx doesn't match cerr_dpa\n");
-+ else {
-+ res = extract_dc(cerr_d & SB1_CACHE_INDEX_MASK,
-+ (cerr_d & CP0_CERRD_DATA) != 0);
-+ if (!(res & cerr_d))
-+ prom_printf("...didn't see indicated problem\n");
-+ }
-+ }
-+ }
-+ }
-+
-+ check_bus_watcher();
-+
-+ while (1);
-+ /*
-+ * This tends to make things get really ugly; let's just stall instead.
-+ * panic("Can't handle the cache error!");
-+ */
-+}
-+
-+
-+/* Parity lookup table. */
-+static const uint8_t parity[256] = {
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0
-+};
-+
-+/* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
-+static const uint64_t mask_72_64[8] = {
-+ 0x0738C808099264FFL,
-+ 0x38C808099264FF07L,
-+ 0xC808099264FF0738L,
-+ 0x08099264FF0738C8L,
-+ 0x099264FF0738C808L,
-+ 0x9264FF0738C80809L,
-+ 0x64FF0738C8080992L,
-+ 0xFF0738C808099264L
-+};
-+
-+/* Calculate the parity on a range of bits */
-+static char range_parity(uint64_t dword, int max, int min)
-+{
-+ char parity = 0;
-+ int i;
-+ dword >>= min;
-+ for (i=max-min; i>=0; i--) {
-+ if (dword & 0x1)
-+ parity = !parity;
-+ dword >>= 1;
-+ }
-+ return parity;
-+}
-+
-+/* Calculate the 4-bit even byte-parity for an instruction */
-+static unsigned char inst_parity(uint32_t word)
-+{
-+ int i, j;
-+ char parity = 0;
-+ for (j=0; j<4; j++) {
-+ char byte_parity = 0;
-+ for (i=0; i<8; i++) {
-+ if (word & 0x80000000)
-+ byte_parity = !byte_parity;
-+ word <<= 1;
-+ }
-+ parity <<= 1;
-+ parity |= byte_parity;
-+ }
-+ return parity;
-+}
-+
-+static uint32_t extract_ic(unsigned short addr, int data)
-+{
-+ unsigned short way;
-+ int valid;
-+ uint64_t taglo, va, tlo_tmp;
-+ uint32_t taghi, taglolo, taglohi;
-+ uint8_t lru;
-+ int res = 0;
-+
-+ prom_printf("Icache index 0x%04x ", addr);
-+ for (way = 0; way < 4; way++) {
-+ /* Index-load-tag-I */
-+ __asm__ __volatile__ (
-+ " .set push \n\t"
-+ " .set noreorder \n\t"
-+ " .set mips64 \n\t"
-+ " .set noat \n\t"
-+ " cache 4, 0(%3) \n\t"
-+ " mfc0 %0, $29 \n\t"
-+ " dmfc0 $1, $28 \n\t"
-+ " dsrl32 %1, $1, 0 \n\t"
-+ " sll %2, $1, 0 \n\t"
-+ " .set pop"
-+ : "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
-+ : "r" ((way << 13) | addr));
-+
-+ taglo = ((unsigned long long)taglohi << 32) | taglolo;
-+ if (way == 0) {
-+ lru = (taghi >> 14) & 0xff;
-+ prom_printf("[Bank %d Set 0x%02x] LRU > %d %d %d %d > MRU\n",
-+ ((addr >> 5) & 0x3), /* bank */
-+ ((addr >> 7) & 0x3f), /* index */
-+ (lru & 0x3),
-+ ((lru >> 2) & 0x3),
-+ ((lru >> 4) & 0x3),
-+ ((lru >> 6) & 0x3));
-+ }
-+ va = (taglo & 0xC0000FFFFFFFE000) | addr;
-+ if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
-+ va |= 0x3FFFF00000000000;
-+ valid = ((taghi >> 29) & 1);
-+ if (valid) {
-+ tlo_tmp = taglo & 0xfff3ff;
-+ if (((taglo >> 10) & 1) ^ range_parity(tlo_tmp, 23, 0)) {
-+ prom_printf(" ** bad parity in VTag0/G/ASID\n");
-+ res |= CP0_CERRI_TAG_PARITY;
-+ }
-+ if (((taglo >> 11) & 1) ^ range_parity(taglo, 63, 24)) {
-+ prom_printf(" ** bad parity in R/VTag1\n");
-+ res |= CP0_CERRI_TAG_PARITY;
-+ }
-+ }
-+ if (valid ^ ((taghi >> 27) & 1)) {
-+ prom_printf(" ** bad parity for valid bit\n");
-+ res |= CP0_CERRI_TAG_PARITY;
-+ }
-+ prom_printf(" %d [VA %016llx] [Vld? %d] raw tags: %08X-%016llX\n",
-+ way, va, valid, taghi, taglo);
-+
-+ if (data) {
-+ uint32_t datahi, insta, instb;
-+ uint8_t predecode;
-+ int offset;
-+
-+ /* (hit all banks and ways) */
-+ for (offset = 0; offset < 4; offset++) {
-+ /* Index-load-data-I */
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set noreorder\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " cache 6, 0(%3) \n\t"
-+ " mfc0 %0, $29, 1\n\t"
-+ " dmfc0 $1, $28, 1\n\t"
-+ " dsrl32 %1, $1, 0 \n\t"
-+ " sll %2, $1, 0 \n\t"
-+ " .set pop \n"
-+ : "=r" (datahi), "=r" (insta), "=r" (instb)
-+ : "r" ((way << 13) | addr | (offset << 3)));
-+ predecode = (datahi >> 8) & 0xff;
-+ if (((datahi >> 16) & 1) != (uint32_t)range_parity(predecode, 7, 0)) {
-+ prom_printf(" ** bad parity in predecode\n");
-+ res |= CP0_CERRI_DATA_PARITY;
-+ }
-+ /* XXXKW should/could check predecode bits themselves */
-+ if (((datahi >> 4) & 0xf) ^ inst_parity(insta)) {
-+ prom_printf(" ** bad parity in instruction a\n");
-+ res |= CP0_CERRI_DATA_PARITY;
-+ }
-+ if ((datahi & 0xf) ^ inst_parity(instb)) {
-+ prom_printf(" ** bad parity in instruction b\n");
-+ res |= CP0_CERRI_DATA_PARITY;
-+ }
-+ prom_printf(" %05X-%08X%08X", datahi, insta, instb);
-+ }
-+ prom_printf("\n");
-+ }
-+ }
-+ return res;
-+}
-+
-+/* Compute the ECC for a data doubleword */
-+static uint8_t dc_ecc(uint64_t dword)
-+{
-+ uint64_t t;
-+ uint32_t w;
-+ uint8_t p;
-+ int i;
-+
-+ p = 0;
-+ for (i = 7; i >= 0; i--)
-+ {
-+ p <<= 1;
-+ t = dword & mask_72_64[i];
-+ w = (uint32_t)(t >> 32);
-+ p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-+ ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-+ w = (uint32_t)(t & 0xFFFFFFFF);
-+ p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-+ ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-+ }
-+ return p;
-+}
-+
-+struct dc_state {
-+ unsigned char val;
-+ char *name;
-+};
-+
-+static struct dc_state dc_states[] = {
-+ { 0x00, "INVALID" },
-+ { 0x0f, "COH-SHD" },
-+ { 0x13, "NCO-E-C" },
-+ { 0x19, "NCO-E-D" },
-+ { 0x16, "COH-E-C" },
-+ { 0x1c, "COH-E-D" },
-+ { 0xff, "*ERROR*" }
-+};
-+
-+#define DC_TAG_VALID(state) \
-+ (((state) == 0xf) || ((state) == 0x13) || ((state) == 0x19) || ((state == 0x16)) || ((state) == 0x1c))
-+
-+static char *dc_state_str(unsigned char state)
-+{
-+ struct dc_state *dsc = dc_states;
-+ while (dsc->val != 0xff) {
-+ if (dsc->val == state)
-+ break;
-+ dsc++;
-+ }
-+ return dsc->name;
-+}
-+
-+static uint32_t extract_dc(unsigned short addr, int data)
-+{
-+ int valid, way;
-+ unsigned char state;
-+ uint64_t taglo, pa;
-+ uint32_t taghi, taglolo, taglohi;
-+ uint8_t ecc, lru;
-+ int res = 0;
-+
-+ prom_printf("Dcache index 0x%04x ", addr);
-+ for (way = 0; way < 4; way++) {
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set noreorder\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " cache 5, 0(%3)\n\t" /* Index-load-tag-D */
-+ " mfc0 %0, $29, 2\n\t"
-+ " dmfc0 $1, $28, 2\n\t"
-+ " dsrl32 %1, $1, 0\n\t"
-+ " sll %2, $1, 0\n\t"
-+ " .set pop"
-+ : "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
-+ : "r" ((way << 13) | addr));
-+
-+ taglo = ((unsigned long long)taglohi << 32) | taglolo;
-+ pa = (taglo & 0xFFFFFFE000) | addr;
-+ if (way == 0) {
-+ lru = (taghi >> 14) & 0xff;
-+ prom_printf("[Bank %d Set 0x%02x] LRU > %d %d %d %d > MRU\n",
-+ ((addr >> 11) & 0x2) | ((addr >> 5) & 1), /* bank */
-+ ((addr >> 6) & 0x3f), /* index */
-+ (lru & 0x3),
-+ ((lru >> 2) & 0x3),
-+ ((lru >> 4) & 0x3),
-+ ((lru >> 6) & 0x3));
-+ }
-+ state = (taghi >> 25) & 0x1f;
-+ valid = DC_TAG_VALID(state);
-+ prom_printf(" %d [PA %010llx] [state %s (%02x)] raw tags: %08X-%016llX\n",
-+ way, pa, dc_state_str(state), state, taghi, taglo);
-+ if (valid) {
-+ if (((taglo >> 11) & 1) ^ range_parity(taglo, 39, 26)) {
-+ prom_printf(" ** bad parity in PTag1\n");
-+ res |= CP0_CERRD_TAG_ADDRESS;
-+ }
-+ if (((taglo >> 10) & 1) ^ range_parity(taglo, 25, 13)) {
-+ prom_printf(" ** bad parity in PTag0\n");
-+ res |= CP0_CERRD_TAG_ADDRESS;
-+ }
-+ } else {
-+ res |= CP0_CERRD_TAG_STATE;
-+ }
-+
-+ if (data) {
-+ uint64_t datalo;
-+ uint32_t datalohi, datalolo, datahi;
-+ int offset;
-+
-+ for (offset = 0; offset < 4; offset++) {
-+ /* Index-load-data-D */
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set noreorder\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " cache 7, 0(%3)\n\t" /* Index-load-data-D */
-+ " mfc0 %0, $29, 3\n\t"
-+ " dmfc0 $1, $28, 3\n\t"
-+ " dsrl32 %1, $1, 0 \n\t"
-+ " sll %2, $1, 0 \n\t"
-+ " .set pop"
-+ : "=r" (datahi), "=r" (datalohi), "=r" (datalolo)
-+ : "r" ((way << 13) | addr | (offset << 3)));
-+ datalo = ((unsigned long long)datalohi << 32) | datalolo;
-+ ecc = dc_ecc(datalo);
-+ if (ecc != datahi) {
-+ int bits = 0;
-+ prom_printf(" ** bad ECC (%02x %02x) ->",
-+ datahi, ecc);
-+ ecc ^= datahi;
-+ while (ecc) {
-+ if (ecc & 1) bits++;
-+ ecc >>= 1;
-+ }
-+ res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
-+ }
-+ prom_printf(" %02X-%016llX", datahi, datalo);
-+ }
-+ prom_printf("\n");
-+ }
-+ }
-+ return res;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/cex-sb1.S linux-2.4.20-mipscvs-20050106/arch/mips/mm/cex-sb1.S
---- linux-2.4.20/arch/mips/mm/cex-sb1.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/cex-sb1.S 2003-02-07 14:33:37.000000000 -0600
-@@ -0,0 +1,83 @@
-+/*
-+ * Copyright (C) 2001,2002,2003 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+
-+#include <asm/asm.h>
-+#include <asm/regdef.h>
-+#include <asm/mipsregs.h>
-+#include <asm/stackframe.h>
-+#include <asm/sibyte/board.h>
-+
-+ .text
-+ .set noat
-+ .set mips4
-+
-+ __INIT
-+
-+ /* Cache Error handler for SB1 */
-+ LEAF(except_vec2_sb1)
-+ mfc0 k1, $26
-+ # check if error was recoverable
-+ bltz k1, leave_cerr
-+#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-+ # look for signature of spurious CErr
-+ lui k0, 0x4000
-+ bne k0, k1, 1f
-+ .word 0x401Bd801 # mfc0 k1, $27, 1
-+ lui k0, 0xffe0
-+ and k1, k0, k1
-+ lui k0, 0x0200
-+ beq k0, k1, leave_cerr
-+1:
-+#endif
-+ j handle_vec2_sb1
-+
-+leave_cerr:
-+ # clear/unlock the registers
-+ mtc0 zero, $26
-+ mtc0 zero, $27
-+ .word 0x4080d801 # mtc0 zero, $27, 1
-+ .word 0x4080d803 # mtc0 zero, $27, 3
-+ eret
-+ END(except_vec2_sb1)
-+
-+ __FINIT
-+
-+ LEAF(handle_vec2_sb1)
-+ mfc0 k0,CP0_CONFIG
-+ li k1,~CONF_CM_CMASK
-+ and k0,k0,k1
-+ ori k0,k0,CONF_CM_UNCACHED
-+ mtc0 k0,CP0_CONFIG
-+
-+ SSNOP
-+ SSNOP
-+ SSNOP
-+ SSNOP
-+ bnezl $0, 1f
-+1:
-+ mfc0 k0, CP0_STATUS
-+ sll k0, k0, 3 # check CU0 (kernel?)
-+ bltz k0, 2f
-+ GET_SAVED_SP
-+ move sp, k0 # want Kseg SP (so uncached)
-+2:
-+ j sb1_cache_error
-+
-+ END(handle_vec2_sb1)
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-mips32.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-mips32.c
---- linux-2.4.20/arch/mips/mm/c-mips32.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-mips32.c 2003-02-09 16:03:23.000000000 -0600
-@@ -65,18 +65,18 @@
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache(); blast_icache(); blast_scache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- static inline void mips32_flush_cache_all_pc(void)
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache(); blast_icache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- static void
-@@ -103,7 +103,7 @@
- pmd_t *pmd;
- pte_t *pte;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- while(start < end) {
- pgd = pgd_offset(mm, start);
- pmd = pmd_offset(pgd, start);
-@@ -113,7 +113,7 @@
- blast_scache_page(start);
- start += PAGE_SIZE;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
- }
-@@ -128,9 +128,9 @@
- #ifdef DEBUG_CACHE
- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache(); blast_icache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -178,7 +178,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -189,7 +188,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -207,8 +206,6 @@
- blast_scache_page_indexed(page);
- } else
- blast_scache_page(page);
--out:
-- __restore_flags(flags);
- }
-
- static void mips32_flush_cache_page_pc(struct vm_area_struct *vma,
-@@ -230,7 +227,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -241,7 +237,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -258,8 +254,6 @@
- page = (KSEG0 + (page & (dcache_size - 1)));
- blast_dcache_page_indexed(page);
- }
--out:
-- __restore_flags(flags);
- }
-
- /* If the addresses passed to these routines are valid, they are
-@@ -298,13 +292,18 @@
- static void
- mips32_flush_icache_page(struct vm_area_struct *vma, struct page *page)
- {
-- int address;
--
-+ /*
-+ * If there's no context yet, or the page isn't executable, no icache
-+ * flush is needed.
-+ */
- if (!(vma->vm_flags & VM_EXEC))
- return;
-
-- address = KSEG0 + ((unsigned long)page_address(page) & PAGE_MASK & (dcache_size - 1));
-- blast_icache_page_indexed(address);
-+ /*
-+ * We're not sure of the virtual address(es) involved here, so
-+ * conservatively flush the entire caches.
-+ */
-+ flush_cache_all();
- }
-
- /*
-@@ -317,17 +316,17 @@
- unsigned int flags;
-
- if (size >= dcache_size) {
-- flush_cache_all();
-+ blast_dcache();
- } else {
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- bc_wback_inv(addr, size);
- }
-@@ -338,12 +337,12 @@
- unsigned long end, a;
-
- if (size >= scache_size) {
-- flush_cache_all();
-+ blast_scache();
- return;
- }
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
- if (a == end) break;
-@@ -358,17 +357,17 @@
- unsigned int flags;
-
- if (size >= dcache_size) {
-- flush_cache_all();
-+ blast_dcache();
- } else {
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
-- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-+ invalidate_dcache_line(a); /* Hit_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- bc_inv(addr, size);
-@@ -380,14 +379,14 @@
- unsigned long end, a;
-
- if (size >= scache_size) {
-- flush_cache_all();
-+ blast_scache();
- return;
- }
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
-- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-+ invalidate_scache_line(a); /* Hit_Inv_SD */
- if (a == end) break;
- a += sc_lsize;
- }
-@@ -412,7 +411,7 @@
-
- static void mips32_flush_icache_all(void)
- {
-- if (mips_cpu.cputype == CPU_20KC) {
-+ if (mips_cpu.icache.flags | MIPS_CACHE_VTAG_CACHE) {
- blast_icache();
- }
- }
-@@ -423,6 +422,7 @@
- unsigned long config1;
- unsigned int lsize;
-
-+ mips_cpu.icache.flags = 0;
- if (!(config & (1 << 31))) {
- /*
- * Not a MIPS32 complainant CPU.
-@@ -440,7 +440,7 @@
- mips_cpu.icache.sets =
- (icache_size / ic_lsize) / mips_cpu.icache.ways;
- } else {
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
-
- if ((lsize = ((config1 >> 19) & 7)))
- mips_cpu.icache.linesz = 2 << lsize;
-@@ -452,6 +452,16 @@
- ic_lsize = mips_cpu.icache.linesz;
- icache_size = mips_cpu.icache.sets * mips_cpu.icache.ways *
- ic_lsize;
-+
-+ if ((config & 0x8) || (mips_cpu.cputype == CPU_20KC)) {
-+ /*
-+ * The CPU has a virtually tagged I-cache.
-+ * Some older 20Kc chips doesn't have the 'VI' bit in
-+ * the config register, so we also check for 20Kc.
-+ */
-+ mips_cpu.icache.flags = MIPS_CACHE_VTAG_CACHE;
-+ printk("Virtually tagged I-cache detected\n");
-+ }
- }
- printk("Primary instruction cache %dkb, linesize %d bytes (%d ways)\n",
- icache_size >> 10, ic_lsize, mips_cpu.icache.ways);
-@@ -462,6 +472,7 @@
- unsigned long config1;
- unsigned int lsize;
-
-+ mips_cpu.dcache.flags = 0;
- if (!(config & (1 << 31))) {
- /*
- * Not a MIPS32 complainant CPU.
-@@ -478,7 +489,7 @@
- mips_cpu.dcache.sets =
- (dcache_size / dc_lsize) / mips_cpu.dcache.ways;
- } else {
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
-
- if ((lsize = ((config1 >> 10) & 7)))
- mips_cpu.dcache.linesz = 2 << lsize;
-@@ -537,7 +548,7 @@
- /* This is such a bitch, you'd think they would make it
- * easy to do this. Away you daemons of stupidity!
- */
-- __save_and_cli(flags);
-+ local_irq_save(flags);
-
- /* Fill each size-multiple cache line with a valid tag. */
- pow2 = (64 * 1024);
-@@ -548,8 +559,8 @@
- }
-
- /* Load first line with zero (therefore invalid) tag. */
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
- __asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
- __asm__ __volatile__("\n\t.set noreorder\n\t"
- ".set mips3\n\t"
-@@ -577,11 +588,11 @@
- ".set mips0\n\t"
- ".set reorder\n\t" : : "r" (addr));
- __asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-- if(!get_taglo())
-+ if(!read_c0_taglo())
- break;
- pow2 <<= 1;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- addr -= begin;
- printk("Secondary cache sized at %dK linesize %d bytes.\n",
- (int) (addr >> 10), sc_lsize);
-@@ -655,9 +666,14 @@
-
- void __init ld_mmu_mips32(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-+ extern char except_vec2_generic;
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /* Default cache error handler for MIPS32 */
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-
- probe_icache(config);
- probe_dcache(config);
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-r3k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r3k.c
---- linux-2.4.20/arch/mips/mm/c-r3k.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r3k.c 2002-12-01 18:24:49.000000000 -0600
-@@ -34,14 +34,14 @@
-
- p = (volatile unsigned long *) KSEG0;
-
-- flags = read_32bit_cp0_register(CP0_STATUS);
-+ flags = read_c0_status();
-
- /* isolate cache space */
-- write_32bit_cp0_register(CP0_STATUS, (ca_flags|flags)&~ST0_IEC);
-+ write_c0_status((ca_flags|flags)&~ST0_IEC);
-
- *p = 0xa5a55a5a;
- dummy = *p;
-- status = read_32bit_cp0_register(CP0_STATUS);
-+ status = read_c0_status();
-
- if (dummy != 0xa5a55a5a || (status & ST0_CM)) {
- size = 0;
-@@ -57,7 +57,7 @@
- size = 0;
- }
-
-- write_32bit_cp0_register(CP0_STATUS, flags);
-+ write_c0_status(flags);
-
- return size * sizeof(*p);
- }
-@@ -69,24 +69,24 @@
-
- p = (volatile unsigned long *) KSEG0;
-
-- flags = read_32bit_cp0_register(CP0_STATUS);
-+ flags = read_c0_status();
-
- /* isolate cache space */
-- write_32bit_cp0_register(CP0_STATUS, (ca_flags|flags)&~ST0_IEC);
-+ write_c0_status((ca_flags|flags)&~ST0_IEC);
-
- for (i = 0; i < 128; i++)
- *(p + i) = 0;
- *(volatile unsigned char *)p = 0;
- for (lsize = 1; lsize < 128; lsize <<= 1) {
- *(p + lsize);
-- status = read_32bit_cp0_register(CP0_STATUS);
-+ status = read_c0_status();
- if (!(status & ST0_CM))
- break;
- }
- for (i = 0; i < 128; i += lsize)
- *(volatile unsigned char *)(p + i) = 0;
-
-- write_32bit_cp0_register(CP0_STATUS, flags);
-+ write_c0_status(flags);
-
- return lsize * sizeof(*p);
- }
-@@ -115,10 +115,10 @@
- }
- p = (char *)start;
-
-- flags = read_32bit_cp0_register(CP0_STATUS);
-+ flags = read_c0_status();
-
- /* isolate cache space */
-- write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
-+ write_c0_status((ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
-
- for (i = 0; i < size; i += 0x080) {
- asm ( "sb\t$0, 0x000(%0)\n\t"
-@@ -157,7 +157,7 @@
- p += 0x080;
- }
-
-- write_32bit_cp0_register(CP0_STATUS, flags);
-+ write_c0_status(flags);
- }
-
- static void r3k_flush_dcache_range(unsigned long start, unsigned long end)
-@@ -172,10 +172,10 @@
- }
- p = (char *)start;
-
-- flags = read_32bit_cp0_register(CP0_STATUS);
-+ flags = read_c0_status();
-
- /* isolate cache space */
-- write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|flags)&~ST0_IEC);
-+ write_c0_status((ST0_ISC|flags)&~ST0_IEC);
-
- for (i = 0; i < size; i += 0x080) {
- asm ( "sb\t$0, 0x000(%0)\n\t"
-@@ -214,7 +214,7 @@
- p += 0x080;
- }
-
-- write_32bit_cp0_register(CP0_STATUS,flags);
-+ write_c0_status(flags);
- }
-
- static inline unsigned long get_phys_page (unsigned long addr,
-@@ -293,22 +293,22 @@
- printk("csigtramp[%08lx]", addr);
- #endif
-
-- flags = read_32bit_cp0_register(CP0_STATUS);
-+ flags = read_c0_status();
-
-- write_32bit_cp0_register(CP0_STATUS, flags&~ST0_IEC);
-+ write_c0_status(flags&~ST0_IEC);
-
- /* Fill the TLB to avoid an exception with caches isolated. */
- asm ( "lw\t$0, 0x000(%0)\n\t"
- "lw\t$0, 0x004(%0)\n\t"
- : : "r" (addr) );
-
-- write_32bit_cp0_register(CP0_STATUS, (ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
-+ write_c0_status((ST0_ISC|ST0_SWC|flags)&~ST0_IEC);
-
- asm ( "sb\t$0, 0x000(%0)\n\t"
- "sb\t$0, 0x004(%0)\n\t"
- : : "r" (addr) );
-
-- write_32bit_cp0_register(CP0_STATUS, flags);
-+ write_c0_status(flags);
- }
-
- static void r3k_dma_cache_wback_inv(unsigned long start, unsigned long size)
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r4k.c
---- linux-2.4.20/arch/mips/mm/c-r4k.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r4k.c 2003-02-09 16:03:23.000000000 -0600
-@@ -6,13 +6,8 @@
- * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
- *
- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-- * Copyright (C) 1997, 1998, 1999, 2000 Ralf Baechle ralf@gnu.org
-- *
-- * To do:
-- *
-- * - this code is a overbloated pig
-- * - many of the bug workarounds are not efficient at all, but at
-- * least they are functional ...
-+ * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
- */
- #include <linux/config.h>
- #include <linux/init.h>
-@@ -20,9 +15,9 @@
- #include <linux/sched.h>
- #include <linux/mm.h>
-
-+#include <asm/bcache.h>
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
--#include <asm/bcache.h>
- #include <asm/io.h>
- #include <asm/page.h>
- #include <asm/pgtable.h>
-@@ -31,17 +26,15 @@
- #include <asm/war.h>
-
- /* Primary cache parameters. */
--static int icache_size, dcache_size; /* Size in bytes */
--static int ic_lsize, dc_lsize; /* LineSize in bytes */
-+static unsigned long icache_size, dcache_size; /* Size in bytes */
-+static unsigned long ic_lsize, dc_lsize; /* LineSize in bytes */
-
- /* Secondary cache (if present) parameters. */
--static unsigned int scache_size, sc_lsize; /* Again, in bytes */
-+static unsigned long scache_size, sc_lsize; /* Again, in bytes */
-
- #include <asm/cacheops.h>
- #include <asm/r4kcache.h>
-
--#undef DEBUG_CACHE
--
- /*
- * Dummy cache handling routines for machines without boardcaches
- */
-@@ -120,23 +113,19 @@
- blast_dcache32(); blast_icache32();
- }
-
--static void
--r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
- if (vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s16d16i16();
- } else {
- pgd_t *pgd;
-@@ -148,7 +137,7 @@
- pmd = pmd_offset(pgd, start);
- pte = pte_offset(pmd, start);
-
-- if(pte_val(*pte) & _PAGE_VALID)
-+ if (pte_val(*pte) & _PAGE_VALID)
- blast_scache16_page(start);
- start += PAGE_SIZE;
- }
-@@ -156,23 +145,19 @@
- }
- }
-
--static void
--r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+static void r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
- if (vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s32d16i16();
- } else {
- pgd_t *pgd;
-@@ -193,21 +178,18 @@
- }
-
- static void r4k_flush_cache_range_s64d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
-- if(vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s64d16i16();
- } else {
- pgd_t *pgd;
-@@ -228,21 +210,18 @@
- }
-
- static void r4k_flush_cache_range_s128d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
- if (vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s128d16i16();
- } else {
- pgd_t *pgd;
-@@ -263,21 +242,18 @@
- }
-
- static void r4k_flush_cache_range_s32d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
- if (vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s32d32i32();
- } else {
- pgd_t *pgd;
-@@ -298,21 +274,18 @@
- }
-
- static void r4k_flush_cache_range_s64d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
- if (vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s64d32i32();
- } else {
- pgd_t *pgd;
-@@ -333,21 +306,18 @@
- }
-
- static void r4k_flush_cache_range_s128d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
- struct vm_area_struct *vma;
-
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
- vma = find_vma(mm, start);
- if (vma) {
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- r4k_flush_cache_all_s128d32i32();
- } else {
- pgd_t *pgd;
-@@ -368,25 +338,17 @@
- }
-
- static void r4k_flush_cache_range_d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- blast_dcache16(); blast_icache16();
- }
- }
-
- static void r4k_flush_cache_range_d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
-+ unsigned long start, unsigned long end)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- blast_dcache32(); blast_icache32();
- }
- }
-@@ -398,90 +360,63 @@
- */
- static void r4k_flush_cache_mm_s16d16i16(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s16d16i16();
- }
- }
-
- static void r4k_flush_cache_mm_s32d16i16(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s32d16i16();
- }
- }
-
- static void r4k_flush_cache_mm_s64d16i16(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s64d16i16();
- }
- }
-
- static void r4k_flush_cache_mm_s128d16i16(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s128d16i16();
- }
- }
-
- static void r4k_flush_cache_mm_s32d32i32(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s32d32i32();
- }
- }
-
- static void r4k_flush_cache_mm_s64d32i32(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s64d32i32();
- }
- }
-
- static void r4k_flush_cache_mm_s128d32i32(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_s128d32i32();
- }
- }
-
- static void r4k_flush_cache_mm_d16i16(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_d16i16();
- }
- }
-
- static void r4k_flush_cache_mm_d32i32(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
- r4k_flush_cache_all_d32i32();
- }
- }
-@@ -498,12 +433,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -514,7 +446,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -522,7 +454,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /*
- * Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
-@@ -532,7 +465,6 @@
- blast_scache16_page_indexed(page);
- } else
- blast_scache16_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma,
-@@ -547,12 +479,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -562,7 +491,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -570,7 +499,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /*
- * Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
-@@ -580,7 +510,6 @@
- blast_scache32_page_indexed(page);
- } else
- blast_scache32_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma,
-@@ -595,12 +524,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -610,7 +536,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -618,7 +544,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /*
- * Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
-@@ -628,7 +555,6 @@
- blast_scache64_page_indexed(page);
- } else
- blast_scache64_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma,
-@@ -643,12 +569,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -659,7 +582,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -667,7 +590,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /*
- * Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
-@@ -677,7 +601,6 @@
- blast_scache128_page_indexed(page);
- } else
- blast_scache128_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma,
-@@ -692,12 +615,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -708,7 +628,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -716,7 +636,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /*
- * Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
-@@ -726,7 +647,6 @@
- blast_scache32_page_indexed(page);
- } else
- blast_scache32_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma,
-@@ -741,12 +661,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -757,7 +674,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -765,7 +682,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /*
- * Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
-@@ -775,7 +693,6 @@
- blast_scache64_page_indexed(page);
- } else
- blast_scache64_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma,
-@@ -790,12 +707,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -806,7 +720,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -814,7 +728,8 @@
- * for every cache flush operation. So we do indexed flushes
- * in that case, which doesn't overly flush the cache too much.
- */
-- if (mm->context != current->active_mm->context) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
- /* Do indexed flush, too much work to get the (possible)
- * tlb refills to work correctly.
- */
-@@ -823,7 +738,6 @@
- blast_scache128_page_indexed(page);
- } else
- blast_scache128_page(page);
--out:
- }
-
- static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma,
-@@ -838,12 +752,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -854,7 +765,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -871,7 +782,6 @@
- page = (KSEG0 + (page & (dcache_size - 1)));
- blast_dcache16_page_indexed(page);
- }
--out:
- }
-
- static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma,
-@@ -886,12 +796,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -902,7 +809,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -920,7 +827,6 @@
- page = (KSEG0 + (page & (dcache_size - 1)));
- blast_dcache32_page_indexed(page);
- }
--out:
- }
-
- static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma,
-@@ -935,12 +841,9 @@
- * If ownes no valid ASID yet, cannot possibly have gotten
- * this page into the cache.
- */
-- if (mm->context == 0)
-+ if (cpu_context(smp_processor_id(), mm) == 0)
- return;
-
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -951,7 +854,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -969,18 +872,8 @@
- blast_dcache32_page_indexed(page);
- blast_dcache32_page_indexed(page ^ dcache_waybit);
- }
--out:
- }
-
--/* If the addresses passed to these routines are valid, they are
-- * either:
-- *
-- * 1) In KSEG0, so we can do a direct flush of the page.
-- * 2) In KSEG2, and since every process can translate those
-- * addresses all the time in kernel mode we can do a direct
-- * flush.
-- * 3) In KSEG1, no flush necessary.
-- */
- static void r4k_flush_page_to_ram_s16(struct page *page)
- {
- blast_scache16_page((unsigned long)page_address(page));
-@@ -1016,27 +909,26 @@
- #ifdef R4600_V1_HIT_DCACHE_WAR
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- __asm__ __volatile__("nop;nop;nop;nop");
- #endif
- blast_dcache32_page((unsigned long)page_address(page));
- #ifdef R4600_V1_HIT_DCACHE_WAR
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- #endif
- }
-
--static void
--r4k_flush_icache_page_s(struct vm_area_struct *vma, struct page *page)
-+static void r4k_flush_icache_range(unsigned long start, unsigned long end)
- {
-- /*
-- * We did an scache flush therefore PI is already clean.
-- */
-+ flush_cache_all();
- }
-
--static void
--r4k_flush_icache_range(unsigned long start, unsigned long end)
-+static void r4k_flush_icache_page_s(struct vm_area_struct *vma,
-+ struct page *page)
- {
-- flush_cache_all();
-+ /*
-+ * We did an scache flush therefore PI is already clean.
-+ */
- }
-
- /*
-@@ -1044,8 +936,8 @@
- * know the virtual address, so we have to blast away the whole icache
- * which is significantly more expensive than the real thing.
- */
--static void
--r4k_flush_icache_page_p(struct vm_area_struct *vma, struct page *page)
-+static void r4k_flush_icache_page_p(struct vm_area_struct *vma,
-+ struct page *page)
- {
- if (!(vma->vm_flags & VM_EXEC))
- return;
-@@ -1053,37 +945,37 @@
- flush_cache_all();
- }
-
--static void
--r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
-+static void r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
- {
- unsigned long end, a;
-- unsigned int flags;
-
- if (size >= dcache_size) {
- flush_cache_all();
- } else {
- #ifdef R4600_V2_HIT_CACHEOP_WAR
-+ unsigned long flags;
-+
- /* Workaround for R4600 bug. See comment in <asm/war>. */
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- *(volatile unsigned long *)KSEG1;
- #endif
-
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
-- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-+ flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
- #ifdef R4600_V2_HIT_CACHEOP_WAR
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- #endif
- }
-+
- bc_wback_inv(addr, size);
- }
-
--static void
--r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
-+static void r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
- {
- unsigned long end, a;
-
-@@ -1093,7 +985,7 @@
- }
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
- if (a == end) break;
-@@ -1101,38 +993,37 @@
- }
- }
-
--static void
--r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
-+static void r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
- {
- unsigned long end, a;
-- unsigned int flags;
-
- if (size >= dcache_size) {
- flush_cache_all();
- } else {
- #ifdef R4600_V2_HIT_CACHEOP_WAR
-- /* Workaround for R4600 bug. See comment above. */
-- __save_and_cli(flags);
-+ unsigned long flags;
-+
-+ /* Workaround for R4600 bug. See comment in <asm/war>. */
-+ local_irq_save(flags);
- *(volatile unsigned long *)KSEG1;
- #endif
-
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
-- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-+ flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
- #ifdef R4600_V2_HIT_CACHEOP_WAR
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- #endif
- }
-
- bc_inv(addr, size);
- }
-
--static void
--r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
-+static void r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
- {
- unsigned long end, a;
-
-@@ -1142,9 +1033,9 @@
- }
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
-- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-+ flush_scache_line(a); /* Hit_Writeback_Inv_SD */
- if (a == end) break;
- a += sc_lsize;
- }
-@@ -1160,22 +1051,24 @@
- #ifdef R4600_V1_HIT_DCACHE_WAR
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- __asm__ __volatile__("nop;nop;nop;nop");
- #endif
-+
- protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
- protected_flush_icache_line(addr & ~(ic_lsize - 1));
-+
- #ifdef R4600_V1_HIT_DCACHE_WAR
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- #endif
- }
-
- static void r4600v20k_flush_cache_sigtramp(unsigned long addr)
- {
-- unsigned int flags;
--
- #ifdef R4600_V2_HIT_CACHEOP_WAR
-- __save_and_cli(flags);
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-
- /* Clear internal cache refill buffer */
- *(volatile unsigned int *)KSEG1;
-@@ -1185,60 +1078,59 @@
- protected_flush_icache_line(addr & ~(ic_lsize - 1));
-
- #ifdef R4600_V2_HIT_CACHEOP_WAR
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- #endif
- }
-
--/* Detect and size the various r4k caches. */
- static void __init probe_icache(unsigned long config)
- {
-- switch (mips_cpu.cputype) {
-- case CPU_VR41XX:
-- case CPU_VR4111:
-- case CPU_VR4121:
-- case CPU_VR4122:
-- case CPU_VR4131:
-- case CPU_VR4181:
-- case CPU_VR4181A:
-- icache_size = 1 << (10 + ((config >> 9) & 7));
-- break;
-- default:
-- icache_size = 1 << (12 + ((config >> 9) & 7));
-- break;
-- }
-+ switch (mips_cpu.cputype) {
-+ case CPU_VR41XX:
-+ case CPU_VR4111:
-+ case CPU_VR4121:
-+ case CPU_VR4122:
-+ case CPU_VR4131:
-+ case CPU_VR4181:
-+ case CPU_VR4181A:
-+ icache_size = 1 << (10 + ((config >> 9) & 7));
-+ break;
-+ default:
-+ icache_size = 1 << (12 + ((config >> 9) & 7));
-+ break;
-+ }
- ic_lsize = 16 << ((config >> 5) & 1);
-
-- printk("Primary instruction cache %dkb, linesize %d bytes.\n",
-+ printk("Primary instruction cache %ldK, linesize %ld bytes.\n",
- icache_size >> 10, ic_lsize);
- }
-
- static void __init probe_dcache(unsigned long config)
- {
-- switch (mips_cpu.cputype) {
-- case CPU_VR41XX:
-- case CPU_VR4111:
-- case CPU_VR4121:
-- case CPU_VR4122:
-- case CPU_VR4131:
-- case CPU_VR4181:
-- case CPU_VR4181A:
-- dcache_size = 1 << (10 + ((config >> 6) & 7));
-- break;
-- default:
-- dcache_size = 1 << (12 + ((config >> 6) & 7));
-- break;
-- }
-+ switch (mips_cpu.cputype) {
-+ case CPU_VR41XX:
-+ case CPU_VR4111:
-+ case CPU_VR4121:
-+ case CPU_VR4122:
-+ case CPU_VR4131:
-+ case CPU_VR4181:
-+ case CPU_VR4181A:
-+ dcache_size = 1 << (10 + ((config >> 6) & 7));
-+ break;
-+ default:
-+ dcache_size = 1 << (12 + ((config >> 6) & 7));
-+ break;
-+ }
- dc_lsize = 16 << ((config >> 4) & 1);
-
-- printk("Primary data cache %dkb, linesize %d bytes.\n",
-+ printk("Primary data cache %ldK, linesize %ld bytes.\n",
- dcache_size >> 10, dc_lsize);
- }
-
--
--/* If you even _breathe_ on this function, look at the gcc output
-- * and make sure it does not pop things on and off the stack for
-- * the cache sizing loop that executes in KSEG1 space or else
-- * you will crash and burn badly. You have been warned.
-+/*
-+ * If you even _breathe_ on this function, look at the gcc output and make sure
-+ * it does not pop things on and off the stack for the cache sizing loop that
-+ * executes in KSEG1 space or else you will crash and burn badly. You have
-+ * been warned.
- */
- static int __init probe_scache(unsigned long config)
- {
-@@ -1269,57 +1161,42 @@
- begin &= ~((4 * 1024 * 1024) - 1);
- end = begin + (4 * 1024 * 1024);
-
-- /* This is such a bitch, you'd think they would make it
-- * easy to do this. Away you daemons of stupidity!
-+ /*
-+ * This is such a bitch, you'd think they would make it easy to do
-+ * this. Away you daemons of stupidity!
- */
-- __save_and_cli(flags);
-+ local_irq_save(flags);
-
- /* Fill each size-multiple cache line with a valid tag. */
- pow2 = (64 * 1024);
-- for(addr = begin; addr < end; addr = (begin + pow2)) {
-+ for (addr = begin; addr < end; addr = (begin + pow2)) {
- unsigned long *p = (unsigned long *) addr;
- __asm__ __volatile__("nop" : : "r" (*p)); /* whee... */
- pow2 <<= 1;
- }
-
- /* Load first line with zero (therefore invalid) tag. */
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
- __asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache 8, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder\n\t" : : "r" (begin));
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache 9, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder\n\t" : : "r" (begin));
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache 11, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder\n\t" : : "r" (begin));
-+ cache_op(Index_Store_Tag_I, begin);
-+ cache_op(Index_Store_Tag_D, begin);
-+ cache_op(Index_Store_Tag_SD, begin);
-
- /* Now search for the wrap around point. */
- pow2 = (128 * 1024);
- tmp = 0;
-- for(addr = (begin + (128 * 1024)); addr < (end); addr = (begin + pow2)) {
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache 7, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder\n\t" : : "r" (addr));
-+ for (addr = begin + (128 * 1024); addr < end; addr = begin + pow2) {
-+ cache_op(Index_Load_Tag_SD, addr);
- __asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-- if(!get_taglo())
-+ if (!read_c0_taglo())
- break;
- pow2 <<= 1;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- addr -= begin;
-- printk("Secondary cache sized at %dK linesize %d bytes.\n",
-- (int) (addr >> 10), sc_lsize);
-+ printk("Secondary cache sized at %ldK, linesize %ld bytes.\n",
-+ addr >> 10, sc_lsize);
- scache_size = addr;
- return 1;
- }
-@@ -1339,7 +1216,7 @@
- _flush_page_to_ram = r4k_flush_page_to_ram_d16;
- break;
- case 32:
-- prid = read_32bit_cp0_register(CP0_PRID) & 0xfff0;
-+ prid = read_c0_prid() & 0xfff0;
- if (prid == 0x2010) { /* R4600 V1.7 */
- _clear_page = r4k_clear_page_r4600_v1;
- _copy_page = r4k_copy_page_r4600_v1;
-@@ -1359,10 +1236,10 @@
- _flush_cache_page = r4k_flush_cache_page_d32i32;
- break;
- }
-- ___flush_cache_all = _flush_cache_all;
--
- _flush_icache_page = r4k_flush_icache_page_p;
-
-+ ___flush_cache_all = _flush_cache_all;
-+
- _dma_cache_wback_inv = r4k_dma_cache_wback_inv_pc;
- _dma_cache_wback = r4k_dma_cache_wback_inv_pc;
- _dma_cache_inv = r4k_dma_cache_inv_pc;
-@@ -1370,9 +1247,9 @@
-
- static void __init setup_scache_funcs(void)
- {
-- switch(sc_lsize) {
-+ switch (sc_lsize) {
- case 16:
-- switch(dc_lsize) {
-+ switch (dc_lsize) {
- case 16:
- _flush_cache_all = r4k_flush_cache_all_s16d16i16;
- _flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
-@@ -1387,7 +1264,7 @@
- _copy_page = r4k_copy_page_s16;
- break;
- case 32:
-- switch(dc_lsize) {
-+ switch (dc_lsize) {
- case 16:
- _flush_cache_all = r4k_flush_cache_all_s32d16i16;
- _flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
-@@ -1406,7 +1283,7 @@
- _copy_page = r4k_copy_page_s32;
- break;
- case 64:
-- switch(dc_lsize) {
-+ switch (dc_lsize) {
- case 16:
- _flush_cache_all = r4k_flush_cache_all_s64d16i16;
- _flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
-@@ -1425,7 +1302,7 @@
- _copy_page = r4k_copy_page_s64;
- break;
- case 128:
-- switch(dc_lsize) {
-+ switch (dc_lsize) {
- case 16:
- _flush_cache_all = r4k_flush_cache_all_s128d16i16;
- _flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
-@@ -1444,14 +1321,17 @@
- _copy_page = r4k_copy_page_s128;
- break;
- }
-- ___flush_cache_all = _flush_cache_all;
- _flush_icache_page = r4k_flush_icache_page_s;
-+
-+ ___flush_cache_all = _flush_cache_all;
-+
- _dma_cache_wback_inv = r4k_dma_cache_wback_inv_sc;
- _dma_cache_wback = r4k_dma_cache_wback_inv_sc;
- _dma_cache_inv = r4k_dma_cache_inv_sc;
- }
-
- typedef int (*probe_func_t)(unsigned long);
-+extern int r5k_sc_init(void);
-
- static inline void __init setup_scache(unsigned int config)
- {
-@@ -1471,22 +1351,26 @@
- case CPU_R5000:
- case CPU_NEVADA:
- setup_noscache_funcs();
--#if defined(CONFIG_CPU_R5000) || defined(CONFIG_CPU_NEVADA)
-+#ifdef CONFIG_R5000_CPU_SCACHE
- r5k_sc_init();
- #endif
- break;
- default:
- setup_scache_funcs();
- }
--
--
- }
-
- void __init ld_mmu_r4xx0(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-+ extern char except_vec2_generic;
-
-- change_cp0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
-+ /* Default cache error handler for R4000 family */
-+
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+
-+ change_c0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
-
- probe_icache(config);
- probe_dcache(config);
-@@ -1501,10 +1385,10 @@
- }
-
- _flush_cache_sigtramp = r4k_flush_cache_sigtramp;
-- _flush_icache_range = r4k_flush_icache_range; /* Ouch */
-- if ((read_32bit_cp0_register(CP0_PRID) & 0xfff0) == 0x2020) {
-+ if ((read_c0_prid() & 0xfff0) == 0x2020) {
- _flush_cache_sigtramp = r4600v20k_flush_cache_sigtramp;
- }
-+ _flush_icache_range = r4k_flush_icache_range; /* Ouch */
-
- __flush_cache_all();
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-r5432.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r5432.c
---- linux-2.4.20/arch/mips/mm/c-r5432.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-r5432.c 2003-02-09 16:03:23.000000000 -0600
-@@ -384,7 +384,7 @@
- flush_cache_all();
- } else {
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
-@@ -403,7 +403,7 @@
- flush_cache_all();
- } else {
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
-@@ -453,9 +453,14 @@
-
- void __init ld_mmu_r5432(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-+ extern char except_vec2_generic;
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /* Default cache error handler for R5432 */
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-
- probe_icache(config);
- probe_dcache(config);
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-rm7k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-rm7k.c
---- linux-2.4.20/arch/mips/mm/c-rm7k.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-rm7k.c 2003-02-09 16:03:23.000000000 -0600
-@@ -131,7 +131,7 @@
- unsigned long end, a;
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-@@ -143,7 +143,7 @@
- return;
-
- a = addr & ~(tc_pagesize - 1);
-- end = (addr + size) & ~(tc_pagesize - 1);
-+ end = (addr + size - 1) & ~(tc_pagesize - 1);
- while(1) {
- invalidate_tcache_page(a); /* Page_Invalidate_T */
- if (a == end) break;
-@@ -157,7 +157,7 @@
- unsigned long end, a;
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
- invalidate_dcache_line(a); /* Hit_Invalidate_D */
- invalidate_scache_line(a); /* Hit_Invalidate_SD */
-@@ -169,7 +169,7 @@
- return;
-
- a = addr & ~(tc_pagesize - 1);
-- end = (addr + size) & ~(tc_pagesize - 1);
-+ end = (addr + size - 1) & ~(tc_pagesize - 1);
- while(1) {
- invalidate_tcache_page(a); /* Page_Invalidate_T */
- if (a == end) break;
-@@ -229,10 +229,10 @@
- {
- int register i;
-
-- set_cp0_config(1<<3 /* CONF_SE */);
-+ set_c0_config(1<<3 /* CONF_SE */);
-
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
-
- for (i=0; i<scache_size; i+=sc_lsize) {
- __asm__ __volatile__ (
-@@ -289,14 +289,18 @@
-
- void __init ld_mmu_rm7k(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-+ extern char except_vec2_generic;
- unsigned long addr;
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ /* Default cache error handler for RM7000 */
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-
- /* RM7000 erratum #31. The icache is screwed at startup. */
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
- for (addr = KSEG0; addr <= KSEG0 + 4096; addr += ic_lsize) {
- __asm__ __volatile__ (
- ".set noreorder\n\t"
-@@ -319,7 +323,7 @@
- : "r" (addr), "i" (Index_Store_Tag_I), "i" (Fill));
- }
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-
- probe_icache(config);
- probe_dcache(config);
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-sb1.c
---- linux-2.4.20/arch/mips/mm/c-sb1.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-sb1.c 2003-02-18 17:38:36.000000000 -0600
-@@ -26,20 +26,24 @@
- #include <asm/uaccess.h>
-
- /* These are probed at ld_mmu time */
--static unsigned int icache_size;
--static unsigned int dcache_size;
-+static unsigned long icache_size;
-+static unsigned long dcache_size;
-
--static unsigned int icache_line_size;
--static unsigned int dcache_line_size;
-+static unsigned long icache_line_size;
-+static unsigned long dcache_line_size;
-
- static unsigned int icache_index_mask;
-+static unsigned int dcache_index_mask;
-
--static unsigned int icache_assoc;
--static unsigned int dcache_assoc;
-+static unsigned long icache_assoc;
-+static unsigned long dcache_assoc;
-
- static unsigned int icache_sets;
- static unsigned int dcache_sets;
-
-+static unsigned int icache_range_cutoff;
-+static unsigned int dcache_range_cutoff;
-+
- void pgd_init(unsigned long page)
- {
- unsigned long *p = (unsigned long *) page;
-@@ -70,59 +74,168 @@
- * to flush it
- */
-
--static void sb1_flush_cache_all(void)
--{
--}
--
--static void local_sb1___flush_cache_all(void)
-+/*
-+ * Writeback and invalidate the entire dcache
-+ */
-+static inline void __sb1_writeback_inv_dcache_all(void)
- {
-- /*
-- * Haven't worried too much about speed here; given that we're flushing
-- * the icache, the time to invalidate is dwarfed by the time it's going
-- * to take to refill it. Register usage:
-- *
-- * $1 - moving cache index
-- * $2 - set count
-- */
- __asm__ __volatile__ (
- ".set push \n"
- ".set noreorder \n"
- ".set noat \n"
- ".set mips4 \n"
-- " move $1, %2 \n" /* Start at index 0 */
-- "1: cache %3, 0($1) \n" /* WB/Invalidate this index */
-+ " move $1, $0 \n" /* Start at index 0 */
-+ "1: cache %2, 0($1) \n" /* Invalidate this index */
-+ " cache %2, (1<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (2<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (3<<13)($1)\n" /* Invalidate this index */
- " addiu %1, %1, -1 \n" /* Decrement loop count */
- " bnez %1, 1b \n" /* loop test */
-- " addu $1, $1, %0 \n" /* Next address */
-+ " addu $1, $1, %0 \n" /* Next address */
- ".set pop \n"
- :
-- : "r" (dcache_line_size), "r" (dcache_sets * dcache_assoc),
-- "r" (KSEG0), "i" (Index_Writeback_Inv_D));
-+ : "r" (dcache_line_size), "r" (dcache_sets),
-+ "i" (Index_Writeback_Inv_D));
-+}
-
-+/*
-+ * Writeback and invalidate a range of the dcache. The addresses are
-+ * virtual, and since we're using index ops and bit 12 is part of both
-+ * the virtual frame and physical index, we have to clear both sets
-+ * (bit 12 set and cleared).
-+ */
-+static inline void __sb1_writeback_inv_dcache_range(unsigned long start,
-+ unsigned long end)
-+{
- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set mips2 \n"
-- "sync \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS /* Bug 1384 */
-- "sync \n"
--#endif
-- ".set pop \n");
-+ " .set push \n"
-+ " .set noreorder \n"
-+ " .set noat \n"
-+ " .set mips4 \n"
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ "1: cache %4, (0<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-WB-inval this address */
-+ " xori $1, $1, 1<<12 \n" /* flip bit 12 (va/pa alias) */
-+ " cache %4, (0<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-WB-inval this address */
-+ " addu %0, %0, %2 \n" /* next line */
-+ " bne %0, %1, 1b \n" /* loop test */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ " sync \n"
-+ " .set pop \n"
-+ :
-+ : "r" (start & ~(dcache_line_size - 1)),
-+ "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-+ "r" (dcache_line_size),
-+ "r" (dcache_index_mask),
-+ "i" (Index_Writeback_Inv_D));
-+}
-
-+/*
-+ * Writeback and invalidate a range of the dcache. With physical
-+ * addresseses, we don't have to worry about possible bit 12 aliasing.
-+ * XXXKW is it worth turning on KX and using hit ops with xkphys?
-+ */
-+static inline void __sb1_writeback_inv_dcache_phys_range(unsigned long start,
-+ unsigned long end)
-+{
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set noreorder \n"
-+ " .set noat \n"
-+ " .set mips4 \n"
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ "1: cache %4, (0<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-WB-inval this address */
-+ " addu %0, %0, %2 \n" /* next line */
-+ " bne %0, %1, 1b \n" /* loop test */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ " sync \n"
-+ " .set pop \n"
-+ :
-+ : "r" (start & ~(dcache_line_size - 1)),
-+ "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-+ "r" (dcache_line_size),
-+ "r" (dcache_index_mask),
-+ "i" (Index_Writeback_Inv_D));
-+}
-+
-+
-+/*
-+ * Invalidate the entire icache
-+ */
-+static inline void __sb1_flush_icache_all(void)
-+{
- __asm__ __volatile__ (
- ".set push \n"
- ".set noreorder \n"
- ".set noat \n"
- ".set mips4 \n"
-- " move $1, %2 \n" /* Start at index 0 */
-- "1: cache %3, 0($1) \n" /* Invalidate this index */
-+ " move $1, $0 \n" /* Start at index 0 */
-+ "1: cache %2, 0($1) \n" /* Invalidate this index */
-+ " cache %2, (1<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (2<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (3<<13)($1)\n" /* Invalidate this index */
- " addiu %1, %1, -1 \n" /* Decrement loop count */
- " bnez %1, 1b \n" /* loop test */
-- " addu $1, $1, %0 \n" /* Next address */
-+ " addu $1, $1, %0 \n" /* Next address */
-+ " bnezl $0, 2f \n" /* Force mispredict */
-+ " nop \n"
-+ "2: sync \n"
- ".set pop \n"
- :
-- : "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-- "r" (KSEG0), "i" (Index_Invalidate_I));
-+ : "r" (icache_line_size), "r" (icache_sets),
-+ "i" (Index_Invalidate_I));
-+}
-+
-+/*
-+ * Invalidate a range of the icache. The addresses are virtual, and
-+ * the cache is virtually indexed and tagged. However, we don't
-+ * necessarily have the right ASID context, so use index ops instead
-+ * of hit ops.
-+ */
-+static inline void __sb1_flush_icache_range(unsigned long start,
-+ unsigned long end)
-+{
-+ __asm__ __volatile__ (
-+ ".set push \n"
-+ ".set noreorder \n"
-+ ".set noat \n"
-+ ".set mips4 \n"
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ "1: cache %4, (0<<13)($1) \n" /* Index-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-inval this address */
-+ " addu %0, %0, %2 \n" /* next line */
-+ " bne %0, %1, 1b \n" /* loop test */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ " bnezl $0, 2f \n" /* Force mispredict */
-+ " nop \n"
-+ "2: sync \n"
-+ ".set pop \n"
-+ :
-+ : "r" (start & ~(icache_line_size - 1)),
-+ "r" ((end + icache_line_size - 1) & ~(icache_line_size - 1)),
-+ "r" (icache_line_size),
-+ "r" (icache_index_mask),
-+ "i" (Index_Invalidate_I));
-+}
-+
-+
-+/*
-+ * Invalidate all caches on this CPU
-+ */
-+static void local_sb1___flush_cache_all(void)
-+{
-+ __sb1_writeback_inv_dcache_all();
-+ __sb1_flush_icache_all();
- }
-
- #ifdef CONFIG_SMP
-@@ -139,80 +252,28 @@
- asm("sb1___flush_cache_all = local_sb1___flush_cache_all");
- #endif
-
--
- /*
- * When flushing a range in the icache, we have to first writeback
- * the dcache for the same range, so new ifetches will see any
- * data that was dirty in the dcache.
- *
-- * The start/end arguments are expected to be Kseg addresses.
-+ * The start/end arguments are Kseg addresses (possibly mapped Kseg).
- */
-
--static void local_sb1_flush_icache_range(unsigned long start, unsigned long end)
-+static void local_sb1_flush_icache_range(unsigned long start,
-+ unsigned long end)
- {
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- unsigned long flags;
-- local_irq_save(flags);
--#endif
--
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " move $1, %0 \n"
-- "1: \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- ".align 3 \n"
-- " lw $0, 0($1) \n" /* Bug 1370, 1368 */
-- " sync \n"
--#endif
-- " cache %3, 0($1) \n" /* Hit-WB{,-inval} this address */
-- " bne $1, %1, 1b \n" /* loop test */
-- " addu $1, $1, %2 \n" /* next line */
-- ".set pop \n"
-- :
-- : "r" (start & ~(dcache_line_size - 1)),
-- "r" ((end - 1) & ~(dcache_line_size - 1)),
-- "r" (dcache_line_size),
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- "i" (Hit_Writeback_Inv_D)
--#else
-- "i" (Hit_Writeback_D)
--#endif
-- );
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set mips2 \n"
-- "sync \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS /* Bug 1384 */
-- "sync \n"
--#endif
-- ".set pop \n");
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- local_irq_restore(flags);
--#endif
--
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " move $1, %0 \n"
-- ".align 3 \n"
-- "1: cache %3, (0<<13)($1) \n" /* Index-inval this address */
-- " cache %3, (1<<13)($1) \n" /* Index-inval this address */
-- " cache %3, (2<<13)($1) \n" /* Index-inval this address */
-- " cache %3, (3<<13)($1) \n" /* Index-inval this address */
-- " bne $1, %1, 1b \n" /* loop test */
-- " addu $1, $1, %2 \n" /* next line */
-- ".set pop \n"
-- :
-- : "r" (start & ~(icache_line_size - 1)),
-- "r" ((end - 1) & ~(icache_line_size - 1)),
-- "r" (icache_line_size),
-- "i" (Index_Invalidate_I));
-+ /* Just wb-inv the whole dcache if the range is big enough */
-+ if ((end - start) > dcache_range_cutoff)
-+ __sb1_writeback_inv_dcache_all();
-+ else
-+ __sb1_writeback_inv_dcache_range(start, end);
-+
-+ /* Just flush the whole icache if the range is big enough */
-+ if ((end - start) > icache_range_cutoff)
-+ __sb1_flush_icache_all();
-+ else
-+ __sb1_flush_icache_range(start, end);
- }
-
- #ifdef CONFIG_SMP
-@@ -243,186 +304,123 @@
- #endif
-
- /*
-- * If there's no context yet, or the page isn't executable, no icache flush
-- * is needed
-+ * Flush the icache for a given physical page. Need to writeback the
-+ * dcache first, then invalidate the icache. If the page isn't
-+ * executable, nothing is required.
- */
--static void sb1_flush_icache_page(struct vm_area_struct *vma,
-+static void local_sb1_flush_icache_page(struct vm_area_struct *vma,
- struct page *page)
- {
-+ unsigned long start;
-+ int cpu = smp_processor_id();
-+
-+#ifndef CONFIG_SMP
- if (!(vma->vm_flags & VM_EXEC))
- return;
-+#endif
-
-+ /* Need to writeback any dirty data for that page, we have the PA */
-+ start = (unsigned long)(page-mem_map) << PAGE_SHIFT;
-+ __sb1_writeback_inv_dcache_phys_range(start, start + PAGE_SIZE);
- /*
-- * We're not sure of the virtual address(es) involved here, so
-- * conservatively flush the entire caches on all processors
-- * (ouch).
-+ * If there's a context, bump the ASID (cheaper than a flush,
-+ * since we don't know VAs!)
- */
-- sb1___flush_cache_all();
-+ if (cpu_context(cpu, vma->vm_mm) != 0) {
-+ drop_mmu_context(vma->vm_mm, cpu);
-+ }
- }
-
--static inline void protected_flush_icache_line(unsigned long addr)
-+#ifdef CONFIG_SMP
-+struct flush_icache_page_args {
-+ struct vm_area_struct *vma;
-+ struct page *page;
-+};
-+
-+static void sb1_flush_icache_page_ipi(void *info)
- {
-- __asm__ __volatile__(
-- " .set push \n"
-- " .set noreorder \n"
-- " .set mips4 \n"
-- "1: cache %1, (%0) \n"
-- "2: .set pop \n"
-- " .section __ex_table,\"a\"\n"
-- " .word 1b, 2b \n"
-- " .previous"
-- :
-- : "r" (addr),
-- "i" (Hit_Invalidate_I));
-+ struct flush_icache_page_args *args = info;
-+ local_sb1_flush_icache_page(args->vma, args->page);
- }
-
--static inline void protected_writeback_dcache_line(unsigned long addr)
-+/* Dirty dcache could be on another CPU, so do the IPIs */
-+static void sb1_flush_icache_page(struct vm_area_struct *vma,
-+ struct page *page)
- {
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- /* Have to be sure the TLB entry exists for the cache op,
-- so we have to be sure that nothing happens in between the
-- lw and the cache op
-- */
-- unsigned long flags;
-- local_irq_save(flags);
--#endif
-- __asm__ __volatile__(
-- " .set push \n"
-- " .set noreorder \n"
-- " .set mips4 \n"
-- "1: \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- " lw $0, (%0) \n"
-- " sync \n"
--#endif
-- " cache %1, 0(%0) \n" /* Hit-WB{-inval} this address */
-- /* XXX: should be able to do this after both dcache cache
-- ops, but there's no guarantee that this will be inlined,
-- and the pass1 restriction checker can't detect syncs
-- following cache ops except in the following basic block.
-- */
-- " sync \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS /* Bug 1384 */
-- " sync \n"
--#endif
-- "2: .set pop \n"
-- " .section __ex_table,\"a\"\n"
-- " .word 1b, 2b \n"
-- " .previous"
-- :
-- : "r" (addr),
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- "i" (Hit_Writeback_Inv_D)
-+ struct flush_icache_page_args args;
-+
-+ if (!(vma->vm_flags & VM_EXEC))
-+ return;
-+ args.vma = vma;
-+ args.page = page;
-+ smp_call_function(sb1_flush_icache_page_ipi, (void *) &args, 1, 1);
-+ local_sb1_flush_icache_page(vma, page);
-+}
- #else
-- "i" (Hit_Writeback_D)
--#endif
-- );
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- local_irq_restore(flags);
-+void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page);
-+asm("sb1_flush_icache_page = local_sb1_flush_icache_page");
- #endif
--}
-
- /*
- * A signal trampoline must fit into a single cacheline.
- */
- static void local_sb1_flush_cache_sigtramp(unsigned long addr)
- {
-- unsigned long daddr, iaddr;
--
-- daddr = addr & ~(dcache_line_size - 1);
-- protected_writeback_dcache_line(daddr);
-- iaddr = addr & ~(icache_line_size - 1);
-- protected_flush_icache_line(iaddr);
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set noreorder \n"
-+ " .set noat \n"
-+ " .set mips4 \n"
-+ " cache %2, (0<<13)(%0) \n" /* Index-inval this address */
-+ " cache %2, (1<<13)(%0) \n" /* Index-inval this address */
-+ " cache %2, (2<<13)(%0) \n" /* Index-inval this address */
-+ " cache %2, (3<<13)(%0) \n" /* Index-inval this address */
-+ " xori $1, %0, 1<<12 \n" /* Flip index bit 12 */
-+ " cache %2, (0<<13)($1) \n" /* Index-inval this address */
-+ " cache %2, (1<<13)($1) \n" /* Index-inval this address */
-+ " cache %2, (2<<13)($1) \n" /* Index-inval this address */
-+ " cache %2, (3<<13)($1) \n" /* Index-inval this address */
-+ " cache %3, (0<<13)(%1) \n" /* Index-inval this address */
-+ " cache %3, (1<<13)(%1) \n" /* Index-inval this address */
-+ " cache %3, (2<<13)(%1) \n" /* Index-inval this address */
-+ " cache %3, (3<<13)(%1) \n" /* Index-inval this address */
-+ " bnezl $0, 1f \n" /* Force mispredict */
-+ " nop \n"
-+ "1: \n"
-+ " .set pop \n"
-+ :
-+ : "r" (addr & dcache_index_mask), "r" (addr & icache_index_mask),
-+ "i" (Index_Writeback_Inv_D), "i" (Index_Invalidate_I));
- }
-
- #ifdef CONFIG_SMP
--
- static void sb1_flush_cache_sigtramp_ipi(void *info)
- {
- unsigned long iaddr = (unsigned long) info;
--
-- iaddr = iaddr & ~(icache_line_size - 1);
-- protected_flush_icache_line(iaddr);
-+ local_sb1_flush_cache_sigtramp(iaddr);
- }
-
- static void sb1_flush_cache_sigtramp(unsigned long addr)
- {
-- unsigned long tmp;
--
-- /*
-- * Flush the local dcache, then load the instruction back into a
-- * register. That will make sure that any remote CPU also has
-- * written back it's data cache to memory.
-- */
- local_sb1_flush_cache_sigtramp(addr);
-- __get_user(tmp, (unsigned long *)addr);
--
- smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
- }
--
- #else
- void sb1_flush_cache_sigtramp(unsigned long addr);
- asm("sb1_flush_cache_sigtramp = local_sb1_flush_cache_sigtramp");
- #endif
-
--static void sb1_flush_icache_all(void)
--{
-- /*
-- * Haven't worried too much about speed here; given that we're flushing
-- * the icache, the time to invalidate is dwarfed by the time it's going
-- * to take to refill it. Register usage:
-- *
-- * $1 - moving cache index
-- * $2 - set count
-- */
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " move $1, %2 \n" /* Start at index 0 */
-- "1: cache %3, 0($1) \n" /* Invalidate this index */
-- " addiu %1, %1, -1 \n" /* Decrement loop count */
-- " bnez %1, 1b \n" /* loop test */
-- " addu $1, $1, %0 \n" /* Next address */
-- ".set pop \n"
-- :
-- : "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-- "r" (KSEG0), "i" (Index_Invalidate_I));
--}
-
- /*
- * Anything that just flushes dcache state can be ignored, as we're always
- * coherent in dcache space. This is just a dummy function that all the
- * nop'ed routines point to
- */
--
- static void sb1_nop(void)
- {
- }
-
- /*
-- * This only needs to make sure stores done up to this
-- * point are visible to other agents outside the CPU. Given
-- * the coherent nature of the ZBbus, all that's required here is
-- * a sync to make sure the data gets out to the caches and is
-- * visible to an arbitrary A Phase from an external agent
-- *
-- * Actually, I'm not even sure that's necessary; the semantics
-- * of this function aren't clear. If it's supposed to serve as
-- * a memory barrier, this is needed. If it's only meant to
-- * prevent data from being invisible to non-cpu memory accessors
-- * for some indefinite period of time (e.g. in a non-coherent
-- * dcache) then this function would be a complete nop.
-- */
--static void sb1_flush_page_to_ram(struct page *page)
--{
-- __asm__ __volatile__(
-- " sync \n" /* Short pipe */
-- :::"memory");
--}
--
--/*
- * Cache set values (from the mips64 spec)
- * 0 - 64
- * 1 - 128
-@@ -481,7 +479,7 @@
- {
- u32 config1;
-
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
- icache_line_size = decode_cache_line_size((config1 >> 19) & 0x7);
- dcache_line_size = decode_cache_line_size((config1 >> 10) & 0x7);
- icache_sets = decode_cache_sets((config1 >> 22) & 0x7);
-@@ -490,7 +488,17 @@
- dcache_assoc = ((config1 >> 7) & 0x7) + 1;
- icache_size = icache_line_size * icache_sets * icache_assoc;
- dcache_size = dcache_line_size * dcache_sets * dcache_assoc;
-+ /* Need to remove non-index bits for index ops */
- icache_index_mask = (icache_sets - 1) * icache_line_size;
-+ dcache_index_mask = (dcache_sets - 1) * dcache_line_size;
-+ /*
-+ * These are for choosing range (index ops) versus all.
-+ * icache flushes all ways for each set, so drop icache_assoc.
-+ * dcache flushes all ways and each setting of bit 12 for each
-+ * index, so drop dcache_assoc and halve the dcache_sets.
-+ */
-+ icache_range_cutoff = icache_sets * icache_line_size;
-+ dcache_range_cutoff = (dcache_sets / 2) * icache_line_size;
- }
-
- /*
-@@ -500,25 +508,50 @@
- */
- void ld_mmu_sb1(void)
- {
-+ extern char except_vec2_sb1;
-+ unsigned long temp;
-+
-+ /* Special cache error handler for SB1 */
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
-+
- probe_cache_sizes();
-
- _clear_page = sb1_clear_page;
- _copy_page = sb1_copy_page;
-
-- _flush_cache_all = sb1_flush_cache_all;
-- ___flush_cache_all = sb1___flush_cache_all;
-- _flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
-+ /*
-+ * None of these are needed for the SB1 - the Dcache is
-+ * physically indexed and tagged, so no virtual aliasing can
-+ * occur
-+ */
- _flush_cache_range = (void *) sb1_nop;
-- _flush_page_to_ram = sb1_flush_page_to_ram;
-- _flush_icache_page = sb1_flush_icache_page;
-- _flush_icache_range = sb1_flush_icache_range;
--
-- /* None of these are needed for the sb1 */
-- _flush_cache_page = (void *) sb1_nop;
-+ _flush_cache_page = (void (*)(struct vm_area_struct *, unsigned long))sb1_nop;
-+ _flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
-+ _flush_cache_all = sb1_nop;
-+ _flush_page_to_ram = (void (*)(struct page *)) sb1_nop;
-
-+ /* These routines are for Icache coherence with the Dcache */
-+ _flush_icache_range = sb1_flush_icache_range;
-+ _flush_icache_page = sb1_flush_icache_page;
-+ _flush_icache_all = __sb1_flush_icache_all; /* local only */
- _flush_cache_sigtramp = sb1_flush_cache_sigtramp;
-- _flush_icache_all = sb1_flush_icache_all;
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /* Full flush */
-+ ___flush_cache_all = sb1___flush_cache_all;
-+
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /*
-+ * This is the only way to force the update of K0 to complete
-+ * before subsequent instruction fetch.
-+ */
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set mips4 \n"
-+ " la %0, 1f \n"
-+ " mtc0 %0, $14 \n"
-+ " eret \n"
-+ "1: .set pop \n"
-+ : "=r" (temp));
- flush_cache_all();
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-tx39.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx39.c
---- linux-2.4.20/arch/mips/mm/c-tx39.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx39.c 2003-01-24 06:58:30.000000000 -0600
-@@ -46,8 +46,8 @@
- unsigned long flags, config;
-
- /* disable icache (set ICE#) */
-- __save_and_cli(flags);
-- config = read_32bit_cp0_register(CP0_CONF);
-+ local_irq_save(flags);
-+ config = read_c0_conf();
-
- /* invalidate icache */
- while (start < end) {
-@@ -55,8 +55,8 @@
- start += 0x200;
- }
-
-- write_32bit_cp0_register(CP0_CONF, config);
-- __restore_flags(flags);
-+ write_c0_conf(config);
-+ local_irq_restore(flags);
- }
-
- static void tx39h_dma_cache_wback_inv(unsigned long addr, unsigned long size)
-@@ -65,7 +65,7 @@
-
- iob();
- a = addr & ~(dcache_lsize - 1);
-- end = (addr + size) & ~(dcache_lsize - 1);
-+ end = (addr + size - 1) & ~(dcache_lsize - 1);
- while (1) {
- invalidate_dcache_line(a); /* Hit_Invalidate_D */
- if (a == end) break;
-@@ -79,14 +79,14 @@
- {
- unsigned long flags, config;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache16_wayLSB();
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, config&~TX39_CONF_ICE);
-+ config = read_c0_conf();
-+ write_c0_conf(config & ~TX39_CONF_ICE);
- blast_icache16_wayLSB();
-- write_32bit_cp0_register(CP0_CONF, config);
-- __restore_flags(flags);
-+ write_c0_conf(config);
-+ local_irq_restore(flags);
- }
-
- static void tx39_flush_cache_mm(struct mm_struct *mm)
-@@ -109,14 +109,14 @@
- #ifdef DEBUG_CACHE
- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache16_wayLSB();
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, config&~TX39_CONF_ICE);
-+ config = read_c0_conf();
-+ write_c0_conf(config & ~TX39_CONF_ICE);
- blast_icache16_wayLSB();
-- write_32bit_cp0_register(CP0_CONF, config);
-- __restore_flags(flags);
-+ write_c0_conf(config);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -139,7 +139,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -150,7 +149,7 @@
- * in the cache.
- */
- if(!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -168,8 +167,6 @@
- page = (KSEG0 + (page & (dcache_size - 1)));
- blast_dcache16_page_indexed_wayLSB(page);
- }
--out:
-- __restore_flags(flags);
- }
-
- static void tx39_flush_page_to_ram(struct page * page)
-@@ -198,7 +195,7 @@
- flush_cache_all();
- } else {
- a = addr & ~(dcache_lsize - 1);
-- end = (addr + size) & ~(dcache_lsize - 1);
-+ end = (addr + size - 1) & ~(dcache_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
-@@ -215,7 +212,7 @@
- flush_cache_all();
- } else {
- a = addr & ~(dcache_lsize - 1);
-- end = (addr + size) & ~(dcache_lsize - 1);
-+ end = (addr + size - 1) & ~(dcache_lsize - 1);
- while (1) {
- invalidate_dcache_line(a); /* Hit_Invalidate_D */
- if (a == end) break;
-@@ -234,22 +231,22 @@
- unsigned long config;
- unsigned int flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- protected_writeback_dcache_line(addr & ~(dcache_lsize - 1));
-
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, config&~TX39_CONF_ICE);
-+ config = read_c0_conf();
-+ write_c0_conf(config & ~TX39_CONF_ICE);
- protected_flush_icache_line(addr & ~(icache_lsize - 1));
-- write_32bit_cp0_register(CP0_CONF, config);
-- __restore_flags(flags);
-+ write_c0_conf(config);
-+ local_irq_restore(flags);
- }
-
- static __init void tx39_probe_cache(void)
- {
- unsigned long config;
-
-- config = read_32bit_cp0_register(CP0_CONF);
-+ config = read_c0_conf();
-
- icache_size = 1 << (10 + ((config >> 19) & 3));
- dcache_size = 1 << (10 + ((config >> 16) & 3));
-@@ -275,9 +272,9 @@
- _clear_page = r3k_clear_page;
- _copy_page = r3k_copy_page;
-
-- config = read_32bit_cp0_register(CP0_CONF);
-+ config = read_c0_conf();
- config &= ~TX39_CONF_WBON;
-- write_32bit_cp0_register(CP0_CONF, config);
-+ write_c0_conf(config);
-
- tx39_probe_cache();
-
-@@ -302,7 +299,7 @@
- default:
- /* TX39/H2,H3 core (writeback 2way-set-associative cache) */
- r3k_have_wired_reg = 1;
-- set_wired (0); /* set 8 on reset... */
-+ write_c0_wired(0); /* set 8 on reset... */
- /* board-dependent init code may set WBON */
-
- _flush_cache_all = tx39_flush_cache_all;
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/c-tx49.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx49.c
---- linux-2.4.20/arch/mips/mm/c-tx49.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/c-tx49.c 2003-02-09 16:03:23.000000000 -0600
-@@ -62,28 +62,28 @@
- {
- unsigned long flags, config;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache16_wayLSB();
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONFIG);
-- write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
-+ config = read_c0_config();
-+ write_c0_config(config | TX49_CONF_IC);
- blast_icache32_wayLSB();
-- write_32bit_cp0_register(CP0_CONFIG, config);
-- __restore_flags(flags);
-+ write_c0_config(config);
-+ local_irq_restore(flags);
- }
-
- static inline void r49_flush_cache_all_d32i32(void)
- {
- unsigned long flags, config;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache32_wayLSB();
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONFIG);
-- write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
-+ config = read_c0_config();
-+ write_c0_config(config | TX49_CONF_IC);
- blast_icache32_wayLSB();
-- write_32bit_cp0_register(CP0_CONFIG, config);
-- __restore_flags(flags);
-+ write_c0_config(config);
-+ local_irq_restore(flags);
- }
-
- static void r49_flush_cache_range_d16i32(struct mm_struct *mm,
-@@ -96,14 +96,14 @@
- #ifdef DEBUG_CACHE
- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache16_wayLSB();
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONFIG);
-- write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
-+ config = read_c0_config();
-+ write_c0_config(config | TX49_CONF_IC);
- blast_icache32_wayLSB();
-- write_32bit_cp0_register(CP0_CONFIG, config);
-- __restore_flags(flags);
-+ write_c0_config(config);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -117,14 +117,14 @@
- #ifdef DEBUG_CACHE
- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache32_wayLSB();
- /* disable icache (set ICE#) */
-- config = read_32bit_cp0_register(CP0_CONFIG);
-- write_32bit_cp0_register(CP0_CONFIG, config|TX49_CONF_IC);
-+ config = read_c0_config();
-+ write_c0_config(config | TX49_CONF_IC);
- blast_icache32_wayLSB();
-- write_32bit_cp0_register(CP0_CONFIG, config);
-- __restore_flags(flags);
-+ write_c0_config(config);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -172,7 +172,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -183,7 +182,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -201,8 +200,6 @@
- page = (KSEG0 + (page & (dcache_size - 1)));
- blast_dcache16_page_indexed_wayLSB(page);
- }
--out:
-- __restore_flags(flags);
- }
-
- static void r49_flush_cache_page_d32i32(struct vm_area_struct *vma,
-@@ -224,7 +221,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -235,7 +231,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -253,8 +249,6 @@
- page = (KSEG0 + (page & (dcache_size - 1)));
- blast_dcache32_page_indexed_wayLSB(page);
- }
--out:
-- __restore_flags(flags);
- }
-
- /* If the addresses passed to these routines are valid, they are
-@@ -308,16 +302,16 @@
- if (size >= dcache_size) {
- flush_cache_all();
- } else {
-- __save_and_cli(flags);
-+ local_irq_save(flags);
-
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -330,16 +324,16 @@
- if (size >= dcache_size) {
- flush_cache_all();
- } else {
-- __save_and_cli(flags);
-+ local_irq_save(flags);
-
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -382,12 +376,18 @@
- int mips_configk0 = -1; /* board-specific setup routine can override this */
- void __init ld_mmu_tx49(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-+
-+ /* Default cache error handler for SB1 */
-+ extern char except_vec2_generic;
-+
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-
- if (mips_configk0 != -1)
-- change_cp0_config(CONF_CM_CMASK, mips_configk0);
-+ change_c0_config(CONF_CM_CMASK, mips_configk0);
- else
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-
- probe_icache(config);
- probe_dcache(config);
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Entries
---- linux-2.4.20/arch/mips/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Entries 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1,33 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:39 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.27.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/c-andes.c/1.3.2.4/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-mips32.c/1.3.2.11/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-r3k.c/1.4.2.4/Mon Dec 2 00:24:49 2002/-ko/Tlinux_2_4_20
-+/c-r4k.c/1.3.2.19/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-r5432.c/1.4.2.5/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-rm7k.c/1.4.2.7/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-sb1.c/1.11.2.20/Tue Feb 18 23:38:36 2003/-ko/Tlinux_2_4_20
-+/c-tx39.c/1.4.2.6/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/c-tx49.c/1.3.2.7/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/cerr-sb1.c/1.1.2.5/Thu Feb 6 23:25:13 2003/-ko/Tlinux_2_4_20
-+/cex-sb1.S/1.1.2.4/Fri Feb 7 20:33:37 2003/-ko/Tlinux_2_4_20
-+/extable.c/1.5.2.2/Tue Aug 6 01:40:40 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.25.2.10/Wed Dec 18 19:04:09 2002/-ko/Tlinux_2_4_20
-+/init.c/1.38.2.7/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.2.2.4/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/loadmmu.c/1.45.2.1/Tue Aug 6 01:46:58 2002/-ko/Tlinux_2_4_20
-+/pg-andes.S/1.1.2.1/Mon Apr 15 07:37:50 2002/-ko/Tlinux_2_4_20
-+/pg-mips32.c/1.2/Tue Oct 23 01:02:46 2001/-ko/Tlinux_2_4_20
-+/pg-r3k.c/1.2.2.1/Wed Jan 16 09:52:44 2002/-ko/Tlinux_2_4_20
-+/pg-r4k.S/1.2.2.3/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/pg-r5432.c/1.2/Tue Oct 23 01:02:46 2001/-ko/Tlinux_2_4_20
-+/pg-rm7k.c/1.2/Tue Oct 23 01:02:46 2001/-ko/Tlinux_2_4_20
-+/pg-sb1.c/1.3.2.3/Tue Jan 7 23:51:51 2003/-ko/Tlinux_2_4_20
-+/r5k-sc.c/1.1.2.3/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/tlb-r3k.c/1.5.2.10/Thu Feb 6 22:53:43 2003/-ko/Tlinux_2_4_20
-+/tlb-r4k.c/1.6.2.12/Thu Feb 6 22:53:43 2003/-ko/Tlinux_2_4_20
-+/tlb-sb1.c/1.5.2.15/Fri Feb 7 01:06:34 2003/-ko/Tlinux_2_4_20
-+/tlbex-r3k.S/1.1.2.5/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/tlbex-r4k.S/1.2.2.11/Fri Feb 7 01:06:34 2003/-ko/Tlinux_2_4_20
-+/umap.c/1.10.2.1/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Repository
---- linux-2.4.20/arch/mips/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Repository 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/mm
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Root
---- linux-2.4.20/arch/mips/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Root 2005-01-06 23:00:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Tag
---- linux-2.4.20/arch/mips/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/CVS/Tag 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/mm/.cvsignore
---- linux-2.4.20/arch/mips/mm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/.cvsignore 1998-03-17 16:07:39.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/fault.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/fault.c
---- linux-2.4.20/arch/mips/mm/fault.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/fault.c 2002-12-18 13:04:09.000000000 -0600
-@@ -159,7 +159,6 @@
- bad_area:
- up_read(&mm->mmap_sem);
-
--bad_area_nosemaphore:
- /* User mode accesses just cause a SIGSEGV */
- if (user_mode(regs)) {
- tsk->thread.cp0_badvaddr = address;
-@@ -246,26 +245,31 @@
- /*
- * Synchronize this task's top level page-table
- * with the 'reference' page table.
-+ *
-+ * Do _not_ use "tsk" here. We might be inside
-+ * an interrupt in the middle of a task switch..
- */
-- int offset = pgd_index(address);
-+ int offset = __pgd_offset(address);
- pgd_t *pgd, *pgd_k;
- pmd_t *pmd, *pmd_k;
-+ pte_t *pte_k;
-
-- pgd = tsk->active_mm->pgd + offset;
-+ pgd = (pgd_t *) pgd_current[smp_processor_id()] + offset;
- pgd_k = init_mm.pgd + offset;
-
-- if (!pgd_present(*pgd)) {
-- if (!pgd_present(*pgd_k))
-- goto bad_area_nosemaphore;
-- set_pgd(pgd, *pgd_k);
-- return;
-- }
-+ if (!pgd_present(*pgd_k))
-+ goto no_context;
-+ set_pgd(pgd, *pgd_k);
-
- pmd = pmd_offset(pgd, address);
- pmd_k = pmd_offset(pgd_k, address);
--
-- if (pmd_present(*pmd) || !pmd_present(*pmd_k))
-- goto bad_area_nosemaphore;
-+ if (!pmd_present(*pmd_k))
-+ goto no_context;
- set_pmd(pmd, *pmd_k);
-+
-+ pte_k = pte_offset(pmd_k, address);
-+ if (!pte_present(*pte_k))
-+ goto no_context;
-+ return;
- }
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/mm/Makefile
---- linux-2.4.20/arch/mips/mm/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/Makefile 2003-01-21 23:11:38.000000000 -0600
-@@ -20,16 +20,16 @@
- obj-$(CONFIG_CPU_R4300) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_R4X00) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_VR41XX) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
--obj-$(CONFIG_CPU_R5000) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o \
-- r5k-sc.o
--obj-$(CONFIG_CPU_NEVADA) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o \
-- r5k-sc.o
-+obj-$(CONFIG_CPU_R5000) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
-+obj-$(CONFIG_CPU_NEVADA) += pg-r4k.o c-r4k.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_R5432) += pg-r5432.o c-r5432.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_RM7000) += pg-rm7k.o c-rm7k.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_R10000) += pg-andes.o c-andes.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_MIPS32) += pg-mips32.o c-mips32.o tlb-r4k.o tlbex-r4k.o
- obj-$(CONFIG_CPU_MIPS64) += pg-mips32.o c-mips32.o tlb-r4k.o tlbex-r4k.o
--obj-$(CONFIG_CPU_SB1) += pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o
-+obj-$(CONFIG_CPU_SB1) += pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o cex-sb1.o cerr-sb1.o
-+
-+obj-$(CONFIG_R5000_CPU_SCACHE) += r5k-sc.o
-
- obj-$(CONFIG_SGI_IP22) += umap.o
- obj-$(CONFIG_BAGET_MIPS) += umap.o
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/pg-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/pg-sb1.c
---- linux-2.4.20/arch/mips/mm/pg-sb1.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/pg-sb1.c 2003-01-07 17:51:51.000000000 -0600
-@@ -34,13 +34,15 @@
- /* These are the functions hooked by the memory management function pointers */
- void sb1_clear_page(void *page)
- {
-- /* JDCXXX - This should be bottlenecked by the write buffer, but these
-- things tend to be mildly unpredictable...should check this on the
-- performance model */
--
-- /* We prefetch 4 lines ahead. We're also "cheating" slightly here...
-- since we know we're on an SB1, we force the assembler to take
-- 64-bit operands to speed things up */
-+ /*
-+ * JDCXXX - This should be bottlenecked by the write buffer, but these
-+ * things tend to be mildly unpredictable...should check this on the
-+ * performance model
-+ *
-+ * We prefetch 4 lines ahead. We're also "cheating" slightly here...
-+ * since we know we're on an SB1, we force the assembler to take
-+ * 64-bit operands to speed things up
-+ */
- __asm__ __volatile__(
- ".set push \n"
- ".set noreorder \n"
-@@ -63,22 +65,21 @@
- " bne $1, %0, 1b \n"
- " addiu %0, %0, 32 \n" /* Next cacheline (This instruction better be short piped!) */
- ".set pop \n"
-- :"=r" (page)
-- :"0" (page),
-- "I" (PAGE_SIZE-32)
-- :"$1","memory");
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE-32)
-+ : "memory");
-
- }
-
- void sb1_copy_page(void *to, void *from)
- {
-
-- /* This should be optimized in assembly...can't use ld/sd, though,
-+ /*
-+ * This should be optimized in assembly...can't use ld/sd, though,
- * because the top 32 bits could be nuked if we took an interrupt
- * during the routine. And this is not a good place to be cli()'ing
-- */
--
-- /* The pref's used here are using "streaming" hints, which cause the
-+ *
-+ * The pref's used here are using "streaming" hints, which cause the
- * copied data to be kicked out of the cache sooner. A page copy often
- * ends up copying a lot more data than is commonly used, so this seems
- * to make sense in terms of reducing cache pollution, but I've no real
-@@ -125,19 +126,7 @@
- " bne $1, %0, 1b \n"
- " addiu %0, %0, 32 \n" /* Next cacheline */
- ".set pop \n"
-- :"=r" (to),
-- "=r" (from)
-- :
-- "0" (from),
-- "1" (to),
-- "I" (PAGE_SIZE-32)
-- :"$1","$2","$3","$4","$5","$6","$7","$8","$9","memory");
--/*
-- unsigned long *src = from;
-- unsigned long *dest = to;
-- unsigned long *target = (unsigned long *) (((unsigned long)src) + PAGE_SIZE);
-- while (src != target) {
-- *dest++ = *src++;
-- }
--*/
-+ : "=r" (to), "=r" (from)
-+ : "0" (from), "1" (to), "I" (PAGE_SIZE-32)
-+ : "$2","$3","$4","$5","$6","$7","$8","$9","memory");
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/r5k-sc.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/r5k-sc.c
---- linux-2.4.20/arch/mips/mm/r5k-sc.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/r5k-sc.c 2003-01-24 06:58:30.000000000 -0600
-@@ -68,25 +68,25 @@
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-- change_cp0_config(CONF_SE, CONF_SE);
-+ local_irq_save(flags);
-+ change_c0_config(CONF_SE, CONF_SE);
- blast_r5000_scache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- static void r5k_sc_disable(void)
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_r5000_scache();
-- change_cp0_config(CONF_SE, 0);
-- __restore_flags(flags);
-+ change_c0_config(CONF_SE, 0);
-+ local_irq_restore(flags);
- }
-
- static inline int __init r5k_sc_probe(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-
- if(config & CONF_SC)
- return(0);
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlbex-r4k.S linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlbex-r4k.S
---- linux-2.4.20/arch/mips/mm/tlbex-r4k.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlbex-r4k.S 2003-02-06 19:06:34.000000000 -0600
-@@ -23,6 +23,7 @@
- #include <asm/processor.h>
- #include <asm/regdef.h>
- #include <asm/stackframe.h>
-+#include <asm/war.h>
-
- #define TLB_OPTIMIZE /* If you are paranoid, disable this. */
-
-@@ -46,6 +47,100 @@
- #define PTE_INDX_SHIFT 10
- #endif
-
-+/*
-+ * ABUSE of CPP macros 101.
-+ *
-+ * After this macro runs, the pte faulted on is
-+ * in register PTE, a ptr into the table in which
-+ * the pte belongs is in PTR.
-+ */
-+
-+#ifdef CONFIG_SMP
-+#define GET_PGD(scratch, ptr) \
-+ mfc0 ptr, CP0_CONTEXT; \
-+ la scratch, pgd_current;\
-+ srl ptr, 23; \
-+ sll ptr, 2; \
-+ addu ptr, scratch, ptr; \
-+ lw ptr, (ptr);
-+#else
-+#define GET_PGD(scratch, ptr) \
-+ lw ptr, pgd_current;
-+#endif
-+
-+#define LOAD_PTE(pte, ptr) \
-+ GET_PGD(pte, ptr) \
-+ mfc0 pte, CP0_BADVADDR; \
-+ srl pte, pte, _PGDIR_SHIFT; \
-+ sll pte, pte, 2; \
-+ addu ptr, ptr, pte; \
-+ mfc0 pte, CP0_BADVADDR; \
-+ lw ptr, (ptr); \
-+ srl pte, pte, PTE_INDX_SHIFT; \
-+ and pte, pte, PTE_INDX_MSK; \
-+ addu ptr, ptr, pte; \
-+ PTE_L pte, (ptr);
-+
-+ /* This places the even/odd pte pair in the page
-+ * table at PTR into ENTRYLO0 and ENTRYLO1 using
-+ * TMP as a scratch register.
-+ */
-+#define PTE_RELOAD(ptr, tmp) \
-+ ori ptr, ptr, PTE_SIZE; \
-+ xori ptr, ptr, PTE_SIZE; \
-+ PTE_L tmp, PTE_SIZE(ptr); \
-+ PTE_L ptr, 0(ptr); \
-+ PTE_SRL tmp, tmp, 6; \
-+ P_MTC0 tmp, CP0_ENTRYLO1; \
-+ PTE_SRL ptr, ptr, 6; \
-+ P_MTC0 ptr, CP0_ENTRYLO0;
-+
-+#define DO_FAULT(write) \
-+ .set noat; \
-+ SAVE_ALL; \
-+ mfc0 a2, CP0_BADVADDR; \
-+ KMODE; \
-+ .set at; \
-+ move a0, sp; \
-+ jal do_page_fault; \
-+ li a1, write; \
-+ j ret_from_exception; \
-+ nop; \
-+ .set noat;
-+
-+ /* Check is PTE is present, if not then jump to LABEL.
-+ * PTR points to the page table where this PTE is located,
-+ * when the macro is done executing PTE will be restored
-+ * with it's original value.
-+ */
-+#define PTE_PRESENT(pte, ptr, label) \
-+ andi pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
-+ xori pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
-+ bnez pte, label; \
-+ PTE_L pte, (ptr);
-+
-+ /* Make PTE valid, store result in PTR. */
-+#define PTE_MAKEVALID(pte, ptr) \
-+ ori pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \
-+ PTE_S pte, (ptr);
-+
-+ /* Check if PTE can be written to, if not branch to LABEL.
-+ * Regardless restore PTE with value from PTR when done.
-+ */
-+#define PTE_WRITABLE(pte, ptr, label) \
-+ andi pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
-+ xori pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
-+ bnez pte, label; \
-+ PTE_L pte, (ptr);
-+
-+ /* Make PTE writable, update software status bits as well,
-+ * then store at PTR.
-+ */
-+#define PTE_MAKEWRITE(pte, ptr) \
-+ ori pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \
-+ _PAGE_VALID | _PAGE_DIRTY); \
-+ PTE_S pte, (ptr);
-+
- __INIT
-
- #ifdef CONFIG_64BIT_PHYS_ADDR
-@@ -67,16 +162,7 @@
- .set noat
- LEAF(except_vec0_r4000)
- .set mips3
--#ifdef CONFIG_SMP
-- mfc0 k1, CP0_CONTEXT
-- la k0, pgd_current
-- srl k1, 23
-- sll k1, 2 # log2(sizeof(pgd_t)
-- addu k1, k0, k1
-- lw k1, (k1)
--#else
-- lw k1, pgd_current # get pgd pointer
--#endif
-+ GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR # Get faulting address
- srl k0, k0, _PGDIR_SHIFT # get pgd only bits
-
-@@ -103,16 +189,14 @@
- /* TLB refill, EXL == 0, R4600 version */
- LEAF(except_vec0_r4600)
- .set mips3
-+ GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR
- srl k0, k0, _PGDIR_SHIFT
-- lw k1, pgd_current # get pgd pointer
- sll k0, k0, 2 # log2(sizeof(pgd_t)
- addu k1, k1, k0
- mfc0 k0, CP0_CONTEXT
- lw k1, (k1)
--#ifndef CONFIG_64BIT_PHYS_ADDR
-- srl k0, k0, 1
--#endif
-+ GET_PTE_OFF(k0) # get pte offset
- and k0, k0, PTEP_INDX_MSK
- addu k1, k1, k0
- PTE_L k0, 0(k1)
-@@ -148,9 +232,7 @@
- addu k1, k1, k0 # add in pgd offset
- lw k1, (k1)
- mfc0 k0, CP0_CONTEXT # get context reg
--#ifndef CONFIG_64BIT_PHYS_ADDR
-- srl k0, k0, 1 # get pte offset
--#endif
-+ GET_PTE_OFF(k0) # get pte offset
- and k0, k0, PTEP_INDX_MSK
- addu k1, k1, k0 # add in offset
- PTE_L k0, 0(k1) # get even pte
-@@ -166,12 +248,41 @@
- eret # return from trap
- END(except_vec0_nevada)
-
-+ /* TLB refill, EXL == 0, SB1 with M3 errata handling version */
-+ LEAF(except_vec0_sb1)
-+#ifdef BCM1250_M3_WAR
-+ mfc0 k0, CP0_BADVADDR
-+ mfc0 k1, CP0_ENTRYHI
-+ xor k0, k1
-+ srl k0, k0, PAGE_SHIFT+1
-+ bnez k0, 1f
-+#endif
-+ GET_PGD(k0, k1) # get pgd pointer
-+ mfc0 k0, CP0_BADVADDR # Get faulting address
-+ srl k0, k0, _PGDIR_SHIFT # get pgd only bits
-+ sll k0, k0, 2
-+ addu k1, k1, k0 # add in pgd offset
-+ mfc0 k0, CP0_CONTEXT # get context reg
-+ lw k1, (k1)
-+ GET_PTE_OFF(k0) # get pte offset
-+ and k0, k0, PTEP_INDX_MSK
-+ addu k1, k1, k0 # add in offset
-+ PTE_L k0, 0(k1) # get even pte
-+ PTE_L k1, PTE_SIZE(k1) # get odd pte
-+ PTE_SRL k0, k0, 6 # convert to entrylo0
-+ P_MTC0 k0, CP0_ENTRYLO0 # load it
-+ PTE_SRL k1, k1, 6 # convert to entrylo1
-+ P_MTC0 k1, CP0_ENTRYLO1 # load it
-+ tlbwr # write random tlb entry
-+1: eret # return from trap
-+ END(except_vec0_sb1)
-+
- /* TLB refill, EXL == 0, R4[40]00/R5000 badvaddr hwbug version */
- LEAF(except_vec0_r45k_bvahwbug)
- .set mips3
-+ GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR
- srl k0, k0, _PGDIR_SHIFT
-- lw k1, pgd_current # get pgd pointer
- sll k0, k0, 2 # log2(sizeof(pgd_t)
- addu k1, k1, k0
- mfc0 k0, CP0_CONTEXT
-@@ -201,9 +312,9 @@
- /* TLB refill, EXL == 0, R4000 MP badvaddr hwbug version */
- LEAF(except_vec0_r4k_mphwbug)
- .set mips3
-+ GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR
- srl k0, k0, _PGDIR_SHIFT
-- lw k1, pgd_current # get pgd pointer
- sll k0, k0, 2 # log2(sizeof(pgd_t)
- addu k1, k1, k0
- mfc0 k0, CP0_CONTEXT
-@@ -233,9 +344,9 @@
- /* TLB refill, EXL == 0, R4000 UP 250MHZ entrylo[01] hwbug version */
- LEAF(except_vec0_r4k_250MHZhwbug)
- .set mips3
-+ GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR
- srl k0, k0, _PGDIR_SHIFT
-- lw k1, pgd_current # get pgd pointer
- sll k0, k0, 2 # log2(sizeof(pgd_t)
- addu k1, k1, k0
- mfc0 k0, CP0_CONTEXT
-@@ -264,9 +375,9 @@
- /* TLB refill, EXL == 0, R4000 MP 250MHZ entrylo[01]+badvaddr bug version */
- LEAF(except_vec0_r4k_MP250MHZhwbug)
- .set mips3
-+ GET_PGD(k0, k1) # get pgd pointer
- mfc0 k0, CP0_BADVADDR
- srl k0, k0, _PGDIR_SHIFT
-- lw k1, pgd_current # get pgd pointer
- sll k0, k0, 2 # log2(sizeof(pgd_t)
- addu k1, k1, k0
- mfc0 k0, CP0_CONTEXT
-@@ -295,104 +406,8 @@
- END(except_vec0_r4k_MP250MHZhwbug)
- #endif
-
--
--
- __FINIT
-
--/*
-- * ABUSE of CPP macros 101.
-- *
-- * After this macro runs, the pte faulted on is
-- * in register PTE, a ptr into the table in which
-- * the pte belongs is in PTR.
-- */
--
--#ifdef CONFIG_SMP
--#define GET_PGD(scratch, ptr) \
-- mfc0 ptr, CP0_CONTEXT; \
-- la scratch, pgd_current;\
-- srl ptr, 23; \
-- sll ptr, 2; \
-- addu ptr, scratch, ptr; \
-- lw ptr, (ptr);
--#else
--#define GET_PGD(scratch, ptr) \
-- lw ptr, pgd_current;
--#endif
--
--#define LOAD_PTE(pte, ptr) \
-- GET_PGD(pte, ptr) \
-- mfc0 pte, CP0_BADVADDR; \
-- srl pte, pte, _PGDIR_SHIFT; \
-- sll pte, pte, 2; \
-- addu ptr, ptr, pte; \
-- mfc0 pte, CP0_BADVADDR; \
-- lw ptr, (ptr); \
-- srl pte, pte, PTE_INDX_SHIFT; \
-- and pte, pte, PTE_INDX_MSK; \
-- addu ptr, ptr, pte; \
-- PTE_L pte, (ptr);
--
-- /* This places the even/odd pte pair in the page
-- * table at PTR into ENTRYLO0 and ENTRYLO1 using
-- * TMP as a scratch register.
-- */
--#define PTE_RELOAD(ptr, tmp) \
-- ori ptr, ptr, PTE_SIZE; \
-- xori ptr, ptr, PTE_SIZE; \
-- PTE_L tmp, PTE_SIZE(ptr); \
-- PTE_L ptr, 0(ptr); \
-- PTE_SRL tmp, tmp, 6; \
-- P_MTC0 tmp, CP0_ENTRYLO1; \
-- PTE_SRL ptr, ptr, 6; \
-- P_MTC0 ptr, CP0_ENTRYLO0;
--
--#define DO_FAULT(write) \
-- .set noat; \
-- SAVE_ALL; \
-- mfc0 a2, CP0_BADVADDR; \
-- KMODE; \
-- .set at; \
-- move a0, sp; \
-- jal do_page_fault; \
-- li a1, write; \
-- j ret_from_exception; \
-- nop; \
-- .set noat;
--
-- /* Check is PTE is present, if not then jump to LABEL.
-- * PTR points to the page table where this PTE is located,
-- * when the macro is done executing PTE will be restored
-- * with it's original value.
-- */
--#define PTE_PRESENT(pte, ptr, label) \
-- andi pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
-- xori pte, pte, (_PAGE_PRESENT | _PAGE_READ); \
-- bnez pte, label; \
-- PTE_L pte, (ptr);
--
-- /* Make PTE valid, store result in PTR. */
--#define PTE_MAKEVALID(pte, ptr) \
-- ori pte, pte, (_PAGE_VALID | _PAGE_ACCESSED); \
-- PTE_S pte, (ptr);
--
-- /* Check if PTE can be written to, if not branch to LABEL.
-- * Regardless restore PTE with value from PTR when done.
-- */
--#define PTE_WRITABLE(pte, ptr, label) \
-- andi pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
-- xori pte, pte, (_PAGE_PRESENT | _PAGE_WRITE); \
-- bnez pte, label; \
-- PTE_L pte, (ptr);
--
-- /* Make PTE writable, update software status bits as well,
-- * then store at PTR.
-- */
--#define PTE_MAKEWRITE(pte, ptr) \
-- ori pte, pte, (_PAGE_ACCESSED | _PAGE_MODIFIED | \
-- _PAGE_VALID | _PAGE_DIRTY); \
-- PTE_S pte, (ptr);
--
- .set noreorder
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlb-r3k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r3k.c
---- linux-2.4.20/arch/mips/mm/tlb-r3k.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r3k.c 2003-02-06 16:53:43.000000000 -0600
-@@ -7,6 +7,8 @@
- * Tx39XX R4k style caches added. HK
- * Copyright (C) 1998, 1999, 2000 Harald Koerfgen
- * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov
-+ * Copyright (C) 2002 Ralf Baechle
-+ * Copyright (C) 2002 Maciej W. Rozycki
- */
- #include <linux/config.h>
- #include <linux/init.h>
-@@ -23,11 +25,19 @@
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-
-+#undef DEBUG_TLB
-+
- extern char except_vec0_r2300;
-
--#undef DEBUG_TLB
-+/* CP0 hazard avoidance. */
-+#define BARRIER \
-+ __asm__ __volatile__( \
-+ ".set push\n\t" \
-+ ".set noreorder\n\t" \
-+ "nop\n\t" \
-+ ".set pop\n\t")
-
--int r3k_have_wired_reg = 0; /* should be in mips_cpu? */
-+int r3k_have_wired_reg; /* should be in mips_cpu? */
-
- /* TLB operations. */
- void local_flush_tlb_all(void)
-@@ -40,117 +50,110 @@
- printk("[tlball]");
- #endif
-
-- save_and_cli(flags);
-- old_ctx = (get_entryhi() & 0xfc0);
-- write_32bit_cp0_register(CP0_ENTRYLO0, 0);
--#ifdef CONFIG_CPU_TX39XX
-- entry = r3k_have_wired_reg ? get_wired() : 8;
--#else
-- entry = 8;
--#endif
-+ local_irq_save(flags);
-+ old_ctx = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entrylo0(0);
-+ entry = r3k_have_wired_reg ? read_c0_wired() : 8;
- for (; entry < mips_cpu.tlbsize; entry++) {
-- write_32bit_cp0_register(CP0_INDEX, entry << 8);
-- write_32bit_cp0_register(CP0_ENTRYHI, ((entry | 0x80000) << 12));
-- __asm__ __volatile__("tlbwi");
-+ write_c0_index(entry << 8);
-+ write_c0_entryhi((entry | 0x80000) << 12);
-+ BARRIER;
-+ tlb_write_indexed();
- }
-- set_entryhi(old_ctx);
-- restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_mm(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
-- unsigned long flags;
-+ int cpu = smp_processor_id();
-
-+ if (cpu_context(cpu, mm) != 0) {
- #ifdef DEBUG_TLB
-- printk("[tlbmm<%lu>]", (unsigned long) mm->context);
-+ printk("[tlbmm<%lu>]", (unsigned long)cpu_context(cpu, mm));
- #endif
-- save_and_cli(flags);
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm)
-- set_entryhi(mm->context & 0xfc0);
-- restore_flags(flags);
-+ drop_mmu_context(mm, cpu);
- }
- }
-
- void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-- unsigned long end)
-+ unsigned long end)
- {
-- if (mm->context != 0) {
-+ int cpu = smp_processor_id();
-+
-+ if (cpu_context(cpu, mm) != 0) {
- unsigned long flags;
- int size;
-
- #ifdef DEBUG_TLB
- printk("[tlbrange<%lu,0x%08lx,0x%08lx>]",
-- (mm->context & 0xfc0), start, end);
-+ cpu_asid(cpu, mm), start, end);
- #endif
-- save_and_cli(flags);
-+ local_irq_save(flags);
- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
- if (size <= mips_cpu.tlbsize) {
-- int oldpid = (get_entryhi() & 0xfc0);
-- int newpid = (mm->context & 0xfc0);
-+ int oldpid = read_c0_entryhi() & ASID_MASK;
-+ int newpid = cpu_asid(cpu, mm);
-
- start &= PAGE_MASK;
-- end += (PAGE_SIZE - 1);
-+ end += PAGE_SIZE - 1;
- end &= PAGE_MASK;
- while (start < end) {
- int idx;
-
-- set_entryhi(start | newpid);
-- start += PAGE_SIZE;
-+ write_c0_entryhi(start | newpid);
-+ start += PAGE_SIZE; /* BARRIER */
- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entryhi(KSEG0);
-- if (idx < 0)
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entryhi(KSEG0);
-+ if (idx < 0) /* BARRIER */
- continue;
- tlb_write_indexed();
- }
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- } else {
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm)
-- set_entryhi(mm->context & 0xfc0);
-+ drop_mmu_context(mm, cpu);
- }
-- restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
- void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
- {
-- if (!vma || vma->vm_mm->context != 0) {
-+ int cpu = smp_processor_id();
-+
-+ if (!vma || cpu_context(cpu, vma->vm_mm) != 0) {
- unsigned long flags;
- int oldpid, newpid, idx;
-
- #ifdef DEBUG_TLB
-- printk("[tlbpage<%lu,0x%08lx>]", vma->vm_mm->context, page);
-+ printk("[tlbpage<%lu,0x%08lx>]", cpu_context(cpu, vma->vm_mm), page);
- #endif
-- newpid = (vma->vm_mm->context & 0xfc0);
-+ newpid = cpu_asid(cpu, vma->vm_mm);
- page &= PAGE_MASK;
-- save_and_cli(flags);
-- oldpid = (get_entryhi() & 0xfc0);
-- set_entryhi(page | newpid);
-+ local_irq_save(flags);
-+ oldpid = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entryhi(page | newpid);
-+ BARRIER;
- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entryhi(KSEG0);
-- if (idx < 0)
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entryhi(KSEG0);
-+ if (idx < 0) /* BARRIER */
- goto finish;
- tlb_write_indexed();
-
- finish:
-- set_entryhi(oldpid);
-- restore_flags(flags);
-+ write_c0_entryhi(oldpid);
-+ local_irq_restore(flags);
- }
- }
-
--void update_mmu_cache(struct vm_area_struct * vma, unsigned long address,
-- pte_t pte)
-+void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
-+ pte_t pte)
- {
- unsigned long flags;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
- int idx, pid;
-
- /*
-@@ -159,92 +162,86 @@
- if (current->active_mm != vma->vm_mm)
- return;
-
-- pid = get_entryhi() & 0xfc0;
-+ pid = read_c0_entryhi() & ASID_MASK;
-
- #ifdef DEBUG_TLB
-- if ((pid != (vma->vm_mm->context & 0xfc0)) || (vma->vm_mm->context == 0)) {
-+ if ((pid != cpu_asid(cpu, vma->vm_mm)) || (cpu_context(cpu, vma->vm_mm) == 0)) {
- printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%lu tlbpid=%d\n",
-- (vma->vm_mm->context & 0xfc0), pid);
-+ (cpu_context(cpu, vma->vm_mm)), pid);
- }
- #endif
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- address &= PAGE_MASK;
-- set_entryhi(address | (pid));
-- pgdp = pgd_offset(vma->vm_mm, address);
-+ write_c0_entryhi(address | pid);
-+ BARRIER;
- tlb_probe();
-- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-- ptep = pte_offset(pmdp, address);
-- set_entrylo0(pte_val(*ptep));
-- set_entryhi(address | (pid));
-- if (idx < 0) {
-+ idx = read_c0_index();
-+ write_c0_entrylo0(pte_val(pte));
-+ write_c0_entryhi(address | pid);
-+ if (idx < 0) { /* BARRIER */
- tlb_write_random();
--#if 0
-- printk("[MISS]");
--#endif
- } else {
- tlb_write_indexed();
--#if 0
-- printk("[HIT]");
--#endif
- }
-- set_entryhi(pid);
-- restore_flags(flags);
-+ write_c0_entryhi(pid);
-+ local_irq_restore(flags);
- }
-
- void __init add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
-- unsigned long entryhi, unsigned long pagemask)
-+ unsigned long entryhi, unsigned long pagemask)
- {
- unsigned long flags;
- unsigned long old_ctx;
- static unsigned long wired = 0;
-
--#ifdef CONFIG_CPU_TX39XX
-- if (r3k_have_wired_reg) {
-+ if (r3k_have_wired_reg) { /* TX39XX */
- unsigned long old_pagemask;
- unsigned long w;
-
- #ifdef DEBUG_TLB
-- printk("[tlbwired]");
-- printk("ently lo0 %8x, hi %8x\n, pagemask %8x\n",
-+ printk("[tlbwired<entry lo0 %8x, hi %8x\n, pagemask %8x>]\n",
- entrylo0, entryhi, pagemask);
- #endif
-- save_and_cli(flags);
-+
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- old_pagemask = get_pagemask();
-- w = get_wired();
-- set_wired (w + 1);
-- if (get_wired() != w + 1) {
-+ old_ctx = read_c0_entryhi() & ASID_MASK;
-+ old_pagemask = read_c0_pagemask();
-+ w = read_c0_wired();
-+ write_c0_wired(w + 1);
-+ if (read_c0_wired() != w + 1) {
- printk("[tlbwired] No WIRED reg?\n");
- return;
- }
-- set_index (w << 8);
-- set_pagemask (pagemask);
-- set_entryhi(entryhi);
-- set_entrylo0(entrylo0);
-+ write_c0_index(w << 8);
-+ write_c0_pagemask(pagemask);
-+ write_c0_entryhi(entryhi);
-+ write_c0_entrylo0(entrylo0);
-+ BARRIER;
- tlb_write_indexed();
-
-- set_entryhi(old_ctx);
-- set_pagemask (old_pagemask);
-+ write_c0_entryhi(old_ctx);
-+ write_c0_pagemask(old_pagemask);
- local_flush_tlb_all();
-- restore_flags(flags);
-- return;
-- }
-+ local_irq_restore(flags);
-+
-+ } else if (wired < 8) {
-+#ifdef DEBUG_TLB
-+ printk("[tlbwired<entry lo0 %8x, hi %8x\n>]\n",
-+ entrylo0, entryhi);
- #endif
-
-- if (wired < 8) {
-- __save_and_cli(flags);
-- old_ctx = get_entryhi() & 0xfc0;
-- set_entrylo0(entrylo0);
-- set_entryhi(entryhi);
-- set_index(wired);
-- wired++;
-+ local_irq_save(flags);
-+ old_ctx = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entrylo0(entrylo0);
-+ write_c0_entryhi(entryhi);
-+ write_c0_index(wired);
-+ wired++; /* BARRIER */
- tlb_write_indexed();
-- set_entryhi(old_ctx);
-- local_flush_tlb_all();
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_flush_tlb_all();
-+ local_irq_restore(flags);
- }
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlb-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r4k.c
---- linux-2.4.20/arch/mips/mm/tlb-r4k.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-r4k.c 2003-02-06 16:53:43.000000000 -0600
-@@ -44,14 +44,14 @@
- printk("[tlball]");
- #endif
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ old_ctx = (read_c0_entryhi() & 0xff);
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- BARRIER;
-
-- entry = get_wired();
-+ entry = read_c0_wired();
-
- /* Blast 'em all away. */
- while (entry < mips_cpu.tlbsize) {
-@@ -59,51 +59,49 @@
- * Make sure all entries differ. If they're not different
- * MIPS32 will take revenge ...
- */
-- set_entryhi(KSEG0 + entry*0x2000);
-- set_index(entry);
-+ write_c0_entryhi(KSEG0 + entry*0x2000);
-+ write_c0_index(entry);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
- entry++;
- }
- BARRIER;
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_mm(struct mm_struct *mm)
- {
-- if (mm->context != 0) {
-- unsigned long flags;
-+ int cpu = smp_processor_id();
-
-+ if (cpu_context(cpu, mm) != 0) {
- #ifdef DEBUG_TLB
-- printk("[tlbmm<%d>]", mm->context);
-+ printk("[tlbmm<%d>]", cpu_context(cpu, mm));
- #endif
-- __save_and_cli(flags);
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm)
-- set_entryhi(mm->context & 0xff);
-- __restore_flags(flags);
-+ drop_mmu_context(mm,cpu);
- }
- }
-
- void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
- unsigned long end)
- {
-- if (mm->context != 0) {
-+ int cpu = smp_processor_id();
-+
-+ if (cpu_context(cpu, mm) != 0) {
- unsigned long flags;
- int size;
-
- #ifdef DEBUG_TLB
-- printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff),
-- start, end);
-+ printk("[tlbrange<%02x,%08lx,%08lx>]",
-+ cpu_asid(cpu, mm), start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
- size = (size + 1) >> 1;
- if (size <= mips_cpu.tlbsize/2) {
-- int oldpid = (get_entryhi() & 0xff);
-- int newpid = (mm->context & 0xff);
-+ int oldpid = read_c0_entryhi() & ASID_MASK;
-+ int newpid = cpu_asid(cpu, mm);
-
- start &= (PAGE_MASK << 1);
- end += ((PAGE_SIZE << 1) - 1);
-@@ -111,63 +109,64 @@
- while (start < end) {
- int idx;
-
-- set_entryhi(start | newpid);
-+ write_c0_entryhi(start | newpid);
- start += (PAGE_SIZE << 1);
- BARRIER;
- tlb_probe();
- BARRIER;
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- if (idx < 0)
- continue;
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0 + idx*0x2000);
-+ write_c0_entryhi(KSEG0 + idx*0x2000);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
- }
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- } else {
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm)
-- set_entryhi(mm->context & 0xff);
-+ drop_mmu_context(mm, cpu);
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
- void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
- {
-- if (!vma || vma->vm_mm->context != 0) {
-+ int cpu = smp_processor_id();
-+
-+ if (!vma || cpu_context(cpu, vma->vm_mm) != 0) {
- unsigned long flags;
- int oldpid, newpid, idx;
-
- #ifdef DEBUG_TLB
-- printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
-+ printk("[tlbpage<%d,%08lx>]", cpu_context(cpu, vma->vm_mm),
-+ page);
- #endif
-- newpid = (vma->vm_mm->context & 0xff);
-+ newpid = cpu_asid(cpu, vma->vm_mm);
- page &= (PAGE_MASK << 1);
-- __save_and_cli(flags);
-- oldpid = (get_entryhi() & 0xff);
-- set_entryhi(page | newpid);
-+ local_irq_save(flags);
-+ oldpid = (read_c0_entryhi() & 0xff);
-+ write_c0_entryhi(page | newpid);
- BARRIER;
- tlb_probe();
- BARRIER;
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- if(idx < 0)
- goto finish;
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0+idx*0x2000);
-+ write_c0_entryhi(KSEG0+idx*0x2000);
- BARRIER;
- tlb_write_indexed();
-
- finish:
- BARRIER;
-- set_entryhi(oldpid);
-- __restore_flags(flags);
-+ write_c0_entryhi(oldpid);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -190,29 +189,30 @@
- if (current->active_mm != vma->vm_mm)
- return;
-
-- pid = get_entryhi() & 0xff;
-+ pid = read_c0_entryhi() & ASID_MASK;
-
- #ifdef DEBUG_TLB
-- if((pid != (vma->vm_mm->context & 0xff)) || (vma->vm_mm->context == 0)) {
-+ if ((pid != cpu_asid(cpu, vma->vm_mm)) ||
-+ (cpu_context(vma->vm_mm) == 0)) {
- printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-- (int) (vma->vm_mm->context & 0xff), pid);
-+ (int) (cpu_asid(cpu, vma->vm_mm)), pid);
- }
- #endif
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (pid));
-+ write_c0_entryhi(address | pid);
- pgdp = pgd_offset(vma->vm_mm, address);
- BARRIER;
- tlb_probe();
- BARRIER;
- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-+ idx = read_c0_index();
- ptep = pte_offset(pmdp, address);
- BARRIER;
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- set_entryhi(address | (pid));
-+ write_c0_entrylo0(pte_val(*ptep++) >> 6);
-+ write_c0_entrylo1(pte_val(*ptep) >> 6);
-+ write_c0_entryhi(address | pid);
- BARRIER;
- if (idx < 0) {
- tlb_write_random();
-@@ -220,9 +220,9 @@
- tlb_write_indexed();
- }
- BARRIER;
-- set_entryhi(pid);
-+ write_c0_entryhi(pid);
- BARRIER;
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- #if 0
-@@ -235,23 +235,23 @@
- pte_t *ptep;
- int idx;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (get_entryhi() & 0xff));
-+ write_c0_entryhi(address | (read_c0_entryhi() & 0xff));
- pgdp = pgd_offset(vma->vm_mm, address);
- tlb_probe();
- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-+ idx = read_c0_index();
- ptep = pte_offset(pmdp, address);
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-+ write_c0_entrylo0(pte_val(*ptep++) >> 6);
-+ write_c0_entrylo1(pte_val(*ptep) >> 6);
- BARRIER;
- if (idx < 0)
- tlb_write_random();
- else
- tlb_write_indexed();
- BARRIER;
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- #endif
-
-@@ -263,27 +263,27 @@
- unsigned long old_pagemask;
- unsigned long old_ctx;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = get_entryhi() & 0xff;
-- old_pagemask = get_pagemask();
-- wired = get_wired();
-- set_wired(wired + 1);
-- set_index(wired);
-+ old_ctx = read_c0_entryhi() & 0xff;
-+ old_pagemask = read_c0_pagemask();
-+ wired = read_c0_wired();
-+ write_c0_wired(wired + 1);
-+ write_c0_index(wired);
- BARRIER;
-- set_pagemask(pagemask);
-- set_entryhi(entryhi);
-- set_entrylo0(entrylo0);
-- set_entrylo1(entrylo1);
-+ write_c0_pagemask(pagemask);
-+ write_c0_entryhi(entryhi);
-+ write_c0_entrylo0(entrylo0);
-+ write_c0_entrylo1(entrylo1);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
-
-- set_entryhi(old_ctx);
-+ write_c0_entryhi(old_ctx);
- BARRIER;
-- set_pagemask(old_pagemask);
-+ write_c0_pagemask(old_pagemask);
- local_flush_tlb_all();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -303,32 +303,32 @@
- unsigned long old_pagemask;
- unsigned long old_ctx;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = get_entryhi() & 0xff;
-- old_pagemask = get_pagemask();
-- wired = get_wired();
-+ old_ctx = read_c0_entryhi() & 0xff;
-+ old_pagemask = read_c0_pagemask();
-+ wired = read_c0_wired();
- if (--temp_tlb_entry < wired) {
- printk(KERN_WARNING "No TLB space left for add_temporary_entry\n");
- ret = -ENOSPC;
- goto out;
- }
-
-- set_index(temp_tlb_entry);
-+ write_c0_index(temp_tlb_entry);
- BARRIER;
-- set_pagemask(pagemask);
-- set_entryhi(entryhi);
-- set_entrylo0(entrylo0);
-- set_entrylo1(entrylo1);
-+ write_c0_pagemask(pagemask);
-+ write_c0_entryhi(entryhi);
-+ write_c0_entrylo0(entrylo0);
-+ write_c0_entrylo1(entrylo1);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
-
-- set_entryhi(old_ctx);
-+ write_c0_entryhi(old_ctx);
- BARRIER;
-- set_pagemask(old_pagemask);
-+ write_c0_pagemask(old_pagemask);
- out:
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- return ret;
- }
-
-@@ -336,7 +336,7 @@
- {
- unsigned int prid, config1;
-
-- prid = read_32bit_cp0_register(CP0_PRID) & 0xff00;
-+ prid = read_c0_prid() & 0xff00;
- if (prid == PRID_IMP_RM7000 || !(config & (1 << 31)))
- /*
- * Not a MIPS32 complianant CPU. Config 1 register not
-@@ -345,16 +345,18 @@
- */
- return;
-
-- config1 = read_mips32_cp0_config1();
-+#if defined(CONFIG_CPU_MIPS32) || defined (CONFIG_CPU_MIPS64)
-+ config1 = read_c0_config1();
- if (!((config >> 7) & 3))
- panic("No MMU present");
- else
- mips_cpu.tlbsize = ((config1 >> 25) & 0x3f) + 1;
-+#endif
- }
-
- void __init r4k_tlb_init(void)
- {
-- u32 config = read_32bit_cp0_register(CP0_CONFIG);
-+ u32 config = read_c0_config();
-
- /*
- * You should never change this register:
-@@ -364,8 +366,8 @@
- * be set for 4kb pages.
- */
- probe_tlb(config);
-- set_pagemask(PM_4K);
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_pagemask(PM_4K);
-+ write_c0_wired(0);
- temp_tlb_entry = mips_cpu.tlbsize - 1;
- local_flush_tlb_all();
-
-diff -urNd -urNd linux-2.4.20/arch/mips/mm/tlb-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-sb1.c
---- linux-2.4.20/arch/mips/mm/tlb-sb1.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/mm/tlb-sb1.c 2003-02-06 19:06:34.000000000 -0600
-@@ -22,7 +22,7 @@
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-
--extern char except_vec0_r4000[];
-+extern char except_vec0_sb1[];
-
- /* Dump the current entry* and pagemask registers */
- static inline void dump_cur_tlb_regs(void)
-@@ -35,7 +35,6 @@
- ".set noreorder \n"
- ".set mips64 \n"
- ".set noat \n"
-- " tlbr \n"
- " dmfc0 $1, $10 \n"
- " dsrl32 %0, $1, 0 \n"
- " sll %1, $1, 0 \n"
-@@ -47,13 +46,11 @@
- " sll %5, $1, 0 \n"
- " mfc0 %6, $5 \n"
- ".set pop \n"
-- : "=r" (entryhihi),
-- "=r" (entryhilo),
-- "=r" (entrylo0hi),
-- "=r" (entrylo0lo),
-- "=r" (entrylo1hi),
-- "=r" (entrylo1lo),
-- "=r" (pagemask));
-+ : "=r" (entryhihi), "=r" (entryhilo),
-+ "=r" (entrylo0hi), "=r" (entrylo0lo),
-+ "=r" (entrylo1hi), "=r" (entrylo1lo),
-+ "=r" (pagemask));
-+
- printk("%08X%08X %08X%08X %08X%08X %08X",
- entryhihi, entryhilo,
- entrylo0hi, entrylo0lo,
-@@ -66,29 +63,25 @@
- unsigned long old_ctx;
- unsigned long flags;
- int entry;
-- __save_and_cli(flags);
-- old_ctx = get_entryhi();
-+ local_irq_save(flags);
-+ old_ctx = read_c0_entryhi();
- printk("Current TLB registers state:\n"
- " EntryHi EntryLo0 EntryLo1 PageMask Index\n"
- "--------------------------------------------------------------------\n");
- dump_cur_tlb_regs();
-- printk(" %08X\n", read_32bit_cp0_register(CP0_INDEX));
-+ printk(" %08X\n", read_c0_index());
- printk("\n\nFull TLB Dump:\n"
- "Idx EntryHi EntryLo0 EntryLo1 PageMask\n"
- "--------------------------------------------------------------\n");
- for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-- set_index(entry);
-+ write_c0_index(entry);
- printk("\n%02i ", entry);
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set mips64 \n"
-- " tlbr \n"
-- ".set pop \n");
-+ tlb_read();
- dump_cur_tlb_regs();
- }
- printk("\n");
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_all(void)
-@@ -97,18 +90,18 @@
- unsigned long old_ctx;
- int entry;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ old_ctx = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-- set_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
-- set_index(entry);
-+ write_c0_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
-+ write_c0_index(entry);
- tlb_write_indexed();
- }
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
-
-@@ -126,15 +119,15 @@
-
- long inc = 1<<24; /* 16MB */
- /* Save old context and create impossible VPN2 value */
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
- do {
- addr += inc;
-- set_entryhi(addr);
-+ write_c0_entryhi(addr);
- tlb_probe();
-- } while ((int)(get_index()) >= 0);
-- set_index(entry);
-+ } while ((int)(read_c0_index()) >= 0);
-+ write_c0_index(entry);
- tlb_write_indexed();
- }
- /* Now that we know we're safe from collisions, we can safely flush
-@@ -149,41 +142,39 @@
- unsigned long flags;
- int cpu;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- cpu = smp_processor_id();
-- if(CPU_CONTEXT(cpu, mm) != 0) {
-+ if (cpu_context(cpu, mm) != 0) {
- int size;
- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
- size = (size + 1) >> 1;
-- if(size <= (mips_cpu.tlbsize/2)) {
-- int oldpid = (get_entryhi() & 0xff);
-- int newpid = (CPU_CONTEXT(cpu, mm) & 0xff);
-+ if (size <= (mips_cpu.tlbsize/2)) {
-+ int oldpid = read_c0_entryhi() & ASID_MASK;
-+ int newpid = cpu_asid(cpu, mm);
-
- start &= (PAGE_MASK << 1);
- end += ((PAGE_SIZE << 1) - 1);
- end &= (PAGE_MASK << 1);
-- while(start < end) {
-+ while (start < end) {
- int idx;
-
-- set_entryhi(start | newpid);
-+ write_c0_entryhi(start | newpid);
- start += (PAGE_SIZE << 1);
- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- set_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
-- if(idx < 0)
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
-+ write_c0_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
-+ if (idx < 0)
- continue;
- tlb_write_indexed();
- }
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- } else {
-- get_new_mmu_context(mm, cpu);
-- if (mm == current->active_mm)
-- set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
-+ drop_mmu_context(mm, cpu);
- }
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-@@ -192,36 +183,33 @@
-
- #ifdef CONFIG_SMP
- /*
-- * This variable is eliminated from CPU_CONTEXT() if SMP isn't defined,
-+ * This variable is eliminated from cpu_context() if SMP isn't defined,
- * so conditional it to get rid of silly "unused variable" compiler
- * complaints
- */
- int cpu = smp_processor_id();
- #endif
-
-- __save_and_cli(flags);
-- if (CPU_CONTEXT(cpu, vma->vm_mm) != 0) {
-+ local_irq_save(flags);
-+ if (cpu_context(cpu, vma->vm_mm) != 0) {
- int oldpid, newpid, idx;
--#ifdef DEBUG_TLB
-- printk("[tlbpage<%d,%08lx>]", CPU_CONTEXT(cpu, vma->vm_mm), page);
--#endif
-- newpid = (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff);
-+ newpid = cpu_asid(cpu, vma->vm_mm);
- page &= (PAGE_MASK << 1);
-- oldpid = (get_entryhi() & 0xff);
-- set_entryhi (page | newpid);
-+ oldpid = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entryhi(page | newpid);
- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- if(idx < 0)
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
-+ if (idx < 0)
- goto finish;
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
-+ write_c0_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
- tlb_write_indexed();
- finish:
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
-
-@@ -229,17 +217,10 @@
- these entries, we just bump the asid. */
- void local_flush_tlb_mm(struct mm_struct *mm)
- {
-- unsigned long flags;
-- int cpu;
-- __save_and_cli(flags);
-- cpu = smp_processor_id();
-- if (CPU_CONTEXT(cpu, mm) != 0) {
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm) {
-- set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
-- }
-+ int cpu = smp_processor_id();
-+ if (cpu_context(cpu, mm) != 0) {
-+ drop_mmu_context(mm, cpu);
- }
-- __restore_flags(flags);
- }
-
- /* Stolen from mips32 routines */
-@@ -259,35 +240,24 @@
- if (current->active_mm != vma->vm_mm)
- return;
-
-- __save_and_cli(flags);
--
--
-- pid = get_entryhi() & 0xff;
--
--#ifdef DEBUG_TLB
-- if((pid != (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff)) || (CPU_CONTEXT(cpu, vma->vm_mm) == 0)) {
-- printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-- (int) (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff), pid);
-- }
--#endif
-+ local_irq_save(flags);
-
-+ pid = read_c0_entryhi() & ASID_MASK;
- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (pid));
-+ write_c0_entryhi(address | (pid));
- pgdp = pgd_offset(vma->vm_mm, address);
- tlb_probe();
- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-+ idx = read_c0_index();
- ptep = pte_offset(pmdp, address);
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- set_entryhi(address | (pid));
-- if(idx < 0) {
-+ write_c0_entrylo0(pte_val(*ptep++) >> 6);
-+ write_c0_entrylo1(pte_val(*ptep) >> 6);
-+ if (idx < 0) {
- tlb_write_random();
- } else {
- tlb_write_indexed();
- }
-- set_entryhi(pid);
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -299,7 +269,8 @@
- {
- u32 config1;
-
-- config1 = read_mips32_cp0_config1();
-+ write_c0_pagemask(PM_4K);
-+ config1 = read_c0_config1();
- mips_cpu.tlbsize = ((config1 >> 25) & 0x3f) + 1;
-
- /*
-@@ -309,6 +280,6 @@
- */
- sb1_sanitize_tlb();
-
-- memcpy((void *)KSEG0, except_vec0_r4000, 0x80);
-+ memcpy((void *)KSEG0, except_vec0_sb1, 0x80);
- flush_icache_range(KSEG0, KSEG0 + 0x80);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Entries
---- linux-2.4.20/arch/mips/momentum/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+D/ocelot_c////
-+D/ocelot_g////
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Repository
---- linux-2.4.20/arch/mips/momentum/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Repository 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/momentum
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Root
---- linux-2.4.20/arch/mips/momentum/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Root 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Tag
---- linux-2.4.20/arch/mips/momentum/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/CVS/Tag 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/cpci-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/cpci-irq.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/cpci-irq.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/cpci-irq.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,156 @@
-+/*
-+ * Copyright 2002 Momentum Computer
-+ * Author: mdharm@momenco.com
-+ *
-+ * arch/mips/momentum/ocelot_c/cpci-irq.c
-+ * Interrupt routines for cpci. Interrupt numbers are assigned from
-+ * CPCI_IRQ_BASE to CPCI_IRQ_BASE+8 (8 interrupt sources).
-+ *
-+ * Note that the high-level software will need to be careful about using
-+ * these interrupts. If this board is asserting a cPCI interrupt, it will
-+ * also see the asserted interrupt. Care must be taken to avoid an
-+ * interrupt flood.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/interrupt.h>
-+#include <linux/kernel.h>
-+#include <asm/ptrace.h>
-+#include <linux/config.h>
-+#include <linux/sched.h>
-+#include <linux/kernel_stat.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include "ocelot_c_fpga.h"
-+
-+extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
-+
-+#define CPCI_IRQ_BASE 8
-+
-+static inline int ls1bit8(unsigned int x)
-+{
-+ int b = 7, s;
-+
-+ s = 4; if (((unsigned char)(x << 4)) == 0) s = 0; b -= s; x <<= s;
-+ s = 2; if (((unsigned char)(x << 2)) == 0) s = 0; b -= s; x <<= s;
-+ s = 1; if (((unsigned char)(x << 1)) == 0) s = 0; b -= s;
-+
-+ return b;
-+}
-+
-+/* mask off an interrupt -- 0 is enable, 1 is disable */
-+static inline void mask_cpci_irq(unsigned int irq)
-+{
-+ uint32_t value;
-+
-+ value = OCELOT_FPGA_READ(INTMASK);
-+ value |= 1 << (irq - CPCI_IRQ_BASE);
-+ OCELOT_FPGA_WRITE(value, INTMASK);
-+
-+ /* read the value back to assure that it's really been written */
-+ value = OCELOT_FPGA_READ(INTMASK);
-+}
-+
-+/* unmask an interrupt -- 0 is enable, 1 is disable */
-+static inline void unmask_cpci_irq(unsigned int irq)
-+{
-+ uint32_t value;
-+
-+ value = OCELOT_FPGA_READ(INTMASK);
-+ value &= ~(1 << (irq - CPCI_IRQ_BASE));
-+ OCELOT_FPGA_WRITE(value, INTMASK);
-+
-+ /* read the value back to assure that it's really been written */
-+ value = OCELOT_FPGA_READ(INTMASK);
-+}
-+
-+/*
-+ * Enables the IRQ in the FPGA
-+ */
-+static void enable_cpci_irq(unsigned int irq)
-+{
-+ unmask_cpci_irq(irq);
-+}
-+
-+/*
-+ * Initialize the IRQ in the FPGA
-+ */
-+static unsigned int startup_cpci_irq(unsigned int irq)
-+{
-+ unmask_cpci_irq(irq);
-+ return 0;
-+}
-+
-+/*
-+ * Disables the IRQ in the FPGA
-+ */
-+static void disable_cpci_irq(unsigned int irq)
-+{
-+ mask_cpci_irq(irq);
-+}
-+
-+/*
-+ * Masks and ACKs an IRQ
-+ */
-+static void mask_and_ack_cpci_irq(unsigned int irq)
-+{
-+ mask_cpci_irq(irq);
-+}
-+
-+/*
-+ * End IRQ processing
-+ */
-+static void end_cpci_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ unmask_cpci_irq(irq);
-+}
-+
-+/*
-+ * Interrupt handler for interrupts coming from the FPGA chip.
-+ * It could be built in ethernet ports etc...
-+ */
-+void ll_cpci_irq(struct pt_regs *regs)
-+{
-+ unsigned int irq_src, irq_mask;
-+
-+ /* read the interrupt status registers */
-+ irq_src = OCELOT_FPGA_READ(INTSTAT);
-+ irq_mask = OCELOT_FPGA_READ(INTMASK);
-+
-+ /* mask for just the interrupts we want */
-+ irq_src &= ~irq_mask;
-+
-+ do_IRQ(ls1bit8(irq_src) + CPCI_IRQ_BASE, regs);
-+}
-+
-+#define shutdown_cpci_irq disable_cpci_irq
-+
-+struct hw_interrupt_type cpci_irq_type = {
-+ "CPCI/FPGA",
-+ startup_cpci_irq,
-+ shutdown_cpci_irq,
-+ enable_cpci_irq,
-+ disable_cpci_irq,
-+ mask_and_ack_cpci_irq,
-+ end_cpci_irq,
-+ NULL
-+};
-+
-+void cpci_irq_init(void)
-+{
-+ int i;
-+
-+ /* Reset irq handlers pointers to NULL */
-+ for (i = CPCI_IRQ_BASE; i < (CPCI_IRQ_BASE + 8); i++) {
-+ irq_desc[i].status = IRQ_DISABLED;
-+ irq_desc[i].action = 0;
-+ irq_desc[i].depth = 2;
-+ irq_desc[i].handler = &cpci_irq_type;
-+ }
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Entries
---- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Entries 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
-+/cpci-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.2/Mon Dec 2 00:24:50 2002/-ko/Tlinux_2_4_20
-+/mv-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/ocelot_c_fpga.h/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/pci-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.2/Sat Jan 11 17:53:10 2003//Tlinux_2_4_20
-+/prom.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+/uart-irq.c/1.1.2.1/Mon Nov 11 23:05:46 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Repository
---- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Repository 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/momentum/ocelot_c
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Root
---- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Root 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Tag
---- linux-2.4.20/arch/mips/momentum/ocelot_c/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/CVS/Tag 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/.cvsignore
---- linux-2.4.20/arch/mips/momentum/ocelot_c/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/.cvsignore 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/dbg_io.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/dbg_io.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/dbg_io.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/dbg_io.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,126 @@
-+#include <linux/config.h>
-+
-+#if defined(CONFIG_REMOTE_DEBUG)
-+
-+#include <asm/serial.h> /* For the serial port location and base baud */
-+
-+/* --- CONFIG --- */
-+
-+typedef unsigned char uint8;
-+typedef unsigned int uint32;
-+
-+/* --- END OF CONFIG --- */
-+
-+#define UART16550_BAUD_2400 2400
-+#define UART16550_BAUD_4800 4800
-+#define UART16550_BAUD_9600 9600
-+#define UART16550_BAUD_19200 19200
-+#define UART16550_BAUD_38400 38400
-+#define UART16550_BAUD_57600 57600
-+#define UART16550_BAUD_115200 115200
-+
-+#define UART16550_PARITY_NONE 0
-+#define UART16550_PARITY_ODD 0x08
-+#define UART16550_PARITY_EVEN 0x18
-+#define UART16550_PARITY_MARK 0x28
-+#define UART16550_PARITY_SPACE 0x38
-+
-+#define UART16550_DATA_5BIT 0x0
-+#define UART16550_DATA_6BIT 0x1
-+#define UART16550_DATA_7BIT 0x2
-+#define UART16550_DATA_8BIT 0x3
-+
-+#define UART16550_STOP_1BIT 0x0
-+#define UART16550_STOP_2BIT 0x4
-+
-+/* ----------------------------------------------------- */
-+
-+/* === CONFIG === */
-+
-+/* [jsun] we use the second serial port for kdb */
-+#define BASE OCELOT_SERIAL1_BASE
-+#define MAX_BAUD OCELOT_BASE_BAUD
-+
-+/* === END OF CONFIG === */
-+
-+#define REG_OFFSET 4
-+
-+/* register offset */
-+#define OFS_RCV_BUFFER 0
-+#define OFS_TRANS_HOLD 0
-+#define OFS_SEND_BUFFER 0
-+#define OFS_INTR_ENABLE (1*REG_OFFSET)
-+#define OFS_INTR_ID (2*REG_OFFSET)
-+#define OFS_DATA_FORMAT (3*REG_OFFSET)
-+#define OFS_LINE_CONTROL (3*REG_OFFSET)
-+#define OFS_MODEM_CONTROL (4*REG_OFFSET)
-+#define OFS_RS232_OUTPUT (4*REG_OFFSET)
-+#define OFS_LINE_STATUS (5*REG_OFFSET)
-+#define OFS_MODEM_STATUS (6*REG_OFFSET)
-+#define OFS_RS232_INPUT (6*REG_OFFSET)
-+#define OFS_SCRATCH_PAD (7*REG_OFFSET)
-+
-+#define OFS_DIVISOR_LSB (0*REG_OFFSET)
-+#define OFS_DIVISOR_MSB (1*REG_OFFSET)
-+
-+
-+/* memory-mapped read/write of the port */
-+#define UART16550_READ(y) (*((volatile uint8*)(BASE + y)))
-+#define UART16550_WRITE(y, z) ((*((volatile uint8*)(BASE + y))) = z)
-+
-+void debugInit(uint32 baud, uint8 data, uint8 parity, uint8 stop)
-+{
-+ /* disable interrupts */
-+ UART16550_WRITE(OFS_INTR_ENABLE, 0);
-+
-+ /* set up buad rate */
-+ {
-+ uint32 divisor;
-+
-+ /* set DIAB bit */
-+ UART16550_WRITE(OFS_LINE_CONTROL, 0x80);
-+
-+ /* set divisor */
-+ divisor = MAX_BAUD / baud;
-+ UART16550_WRITE(OFS_DIVISOR_LSB, divisor & 0xff);
-+ UART16550_WRITE(OFS_DIVISOR_MSB, (divisor & 0xff00) >> 8);
-+
-+ /* clear DIAB bit */
-+ UART16550_WRITE(OFS_LINE_CONTROL, 0x0);
-+ }
-+
-+ /* set data format */
-+ UART16550_WRITE(OFS_DATA_FORMAT, data | parity | stop);
-+}
-+
-+static int remoteDebugInitialized = 0;
-+
-+uint8 getDebugChar(void)
-+{
-+ if (!remoteDebugInitialized) {
-+ remoteDebugInitialized = 1;
-+ debugInit(UART16550_BAUD_38400,
-+ UART16550_DATA_8BIT,
-+ UART16550_PARITY_NONE, UART16550_STOP_1BIT);
-+ }
-+
-+ while ((UART16550_READ(OFS_LINE_STATUS) & 0x1) == 0);
-+ return UART16550_READ(OFS_RCV_BUFFER);
-+}
-+
-+
-+int putDebugChar(uint8 byte)
-+{
-+ if (!remoteDebugInitialized) {
-+ remoteDebugInitialized = 1;
-+ debugInit(UART16550_BAUD_38400,
-+ UART16550_DATA_8BIT,
-+ UART16550_PARITY_NONE, UART16550_STOP_1BIT);
-+ }
-+
-+ while ((UART16550_READ(OFS_LINE_STATUS) & 0x20) == 0);
-+ UART16550_WRITE(OFS_SEND_BUFFER, byte);
-+ return 1;
-+}
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/int-handler.S
---- linux-2.4.20/arch/mips/momentum/ocelot_c/int-handler.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/int-handler.S 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,104 @@
-+/*
-+ * Copyright 2002 Momentum Computer Inc.
-+ * Author: Matthew Dharm <mdharm@momenco.com>
-+ *
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: jsun@mvista.com or jsun@junsun.net
-+ *
-+ * First-level interrupt dispatcher for Ocelot-CS board.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#define __ASSEMBLY__
-+#include <linux/config.h>
-+#include <asm/asm.h>
-+#include <asm/mipsregs.h>
-+#include <asm/addrspace.h>
-+#include <asm/regdef.h>
-+#include <asm/stackframe.h>
-+#include "ocelot_c_fpga.h"
-+
-+/*
-+ * First level interrupt dispatcher for Ocelot-CS board
-+ */
-+ .align 5
-+ NESTED(ocelot_handle_int, PT_SIZE, sp)
-+ SAVE_ALL
-+ CLI
-+ .set at
-+ mfc0 t0, CP0_CAUSE
-+ mfc0 t2, CP0_STATUS
-+
-+ and t0, t2
-+
-+ andi t1, t0, STATUSF_IP0 /* sw0 software interrupt */
-+ bnez t1, ll_sw0_irq
-+ andi t1, t0, STATUSF_IP1 /* sw1 software interrupt */
-+ bnez t1, ll_sw1_irq
-+ andi t1, t0, STATUSF_IP2 /* int0 hardware line */
-+ bnez t1, ll_scsi_irq
-+ andi t1, t0, STATUSF_IP3 /* int1 hardware line */
-+ bnez t1, ll_uart_decode_irq
-+ andi t1, t0, STATUSF_IP4 /* int2 hardware line */
-+ bnez t1, ll_pmc_irq
-+ andi t1, t0, STATUSF_IP5 /* int3 hardware line */
-+ bnez t1, ll_cpci_decode_irq
-+ andi t1, t0, STATUSF_IP6 /* int4 hardware line */
-+ bnez t1, ll_mv64340_decode_irq
-+ andi t1, t0, STATUSF_IP7 /* cpu timer */
-+ bnez t1, ll_cputimer_irq
-+
-+ .set reorder
-+
-+ /* wrong alarm or masked ... */
-+ j spurious_interrupt
-+ nop
-+ END(ocelot_handle_int)
-+
-+ .align 5
-+ll_sw0_irq:
-+ li a0, 0
-+ move a1, sp
-+ jal do_IRQ
-+ j ret_from_irq
-+ll_sw1_irq:
-+ li a0, 1
-+ move a1, sp
-+ jal do_IRQ
-+ j ret_from_irq
-+ll_scsi_irq:
-+ li a0, 2
-+ move a1, sp
-+ jal do_IRQ
-+ j ret_from_irq
-+
-+ll_uart_decode_irq:
-+ move a0, sp
-+ jal ll_uart_irq
-+ j ret_from_irq
-+
-+ll_pmc_irq:
-+ li a0, 4
-+ move a1, sp
-+ jal do_IRQ
-+ j ret_from_irq
-+
-+ll_cpci_decode_irq:
-+ move a0, sp
-+ jal ll_cpci_irq
-+ j ret_from_irq
-+
-+ll_mv64340_decode_irq:
-+ move a0, sp
-+ jal ll_mv64340_irq
-+ j ret_from_irq
-+
-+ll_cputimer_irq:
-+ li a0, 7
-+ move a1, sp
-+ jal do_IRQ
-+ j ret_from_irq
-+
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/irq.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/irq.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/irq.c 2002-12-01 18:24:50.000000000 -0600
-@@ -0,0 +1,182 @@
-+/*
-+ * Copyright (C) 2000 RidgeRun, Inc.
-+ * Author: RidgeRun, Inc.
-+ * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
-+ *
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
-+ * Copyright (C) 2000, 2001 Ralf Baechle (ralf@gnu.org)
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#include <linux/errno.h>
-+#include <linux/init.h>
-+#include <linux/kernel_stat.h>
-+#include <linux/module.h>
-+#include <linux/signal.h>
-+#include <linux/sched.h>
-+#include <linux/types.h>
-+#include <linux/interrupt.h>
-+#include <linux/ioport.h>
-+#include <linux/timex.h>
-+#include <linux/slab.h>
-+#include <linux/random.h>
-+#include <asm/bitops.h>
-+#include <asm/bootinfo.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mipsregs.h>
-+#include <asm/system.h>
-+
-+
-+static spinlock_t irq_lock = SPIN_LOCK_UNLOCKED;
-+
-+/* Function for careful CP0 interrupt mask access */
-+static inline void modify_cp0_intmask(unsigned clr_mask_in, unsigned set_mask_in)
-+{
-+ unsigned long status;
-+ unsigned clr_mask;
-+ unsigned set_mask;
-+
-+ /* do the low 8 bits first */
-+ clr_mask = 0xff & clr_mask_in;
-+ set_mask = 0xff & set_mask_in;
-+ status = read_c0_status();
-+ status &= ~((clr_mask & 0xFF) << 8);
-+ status |= (set_mask & 0xFF) << 8;
-+ write_c0_status(status);
-+}
-+
-+static inline void mask_irq(unsigned int irq)
-+{
-+ modify_cp0_intmask(irq, 0);
-+}
-+
-+static inline void unmask_irq(unsigned int irq)
-+{
-+ modify_cp0_intmask(0, irq);
-+}
-+
-+static void enable_cp7000_irq(unsigned int irq)
-+{
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&irq_lock, flags);
-+ unmask_irq(1 << irq);
-+ spin_unlock_irqrestore(&irq_lock, flags);
-+}
-+
-+static unsigned int startup_cp7000_irq(unsigned int irq)
-+{
-+ enable_cp7000_irq(irq);
-+
-+ return 0; /* never anything pending */
-+}
-+
-+static void disable_cp7000_irq(unsigned int irq)
-+{
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&irq_lock, flags);
-+ mask_irq(1 << irq);
-+ spin_unlock_irqrestore(&irq_lock, flags);
-+}
-+
-+#define shutdown_cp7000_irq disable_cp7000_irq
-+
-+static void mask_and_ack_cp7000_irq(unsigned int irq)
-+{
-+ mask_irq(1 << irq);
-+}
-+
-+static void end_cp7000_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ unmask_irq(1 << irq);
-+}
-+
-+static struct hw_interrupt_type cp7000_hpcdma_irq_type = {
-+#ifdef CONFIG_CPU_SR71000
-+ "SR71000",
-+#else
-+ "RM7000",
-+#endif
-+ startup_cp7000_irq,
-+ shutdown_cp7000_irq,
-+ enable_cp7000_irq,
-+ disable_cp7000_irq,
-+ mask_and_ack_cp7000_irq,
-+ end_cp7000_irq,
-+ NULL
-+};
-+
-+extern asmlinkage void ocelot_handle_int(void);
-+extern void mv64340_irq_init(void);
-+extern void uart_irq_init(void);
-+extern void cpci_irq_init(void);
-+
-+static struct irqaction cascade_fpga =
-+ { no_action, SA_INTERRUPT, 0, "cascade via FPGA", NULL, NULL };
-+static struct irqaction cascade_mv64340 =
-+ { no_action, SA_INTERRUPT, 0, "cascade via MV64340", NULL, NULL };
-+
-+void __init init_IRQ(void)
-+{
-+ int i;
-+
-+ /*
-+ * Clear all of the interrupts while we change the able around a bit.
-+ * int-handler is not on bootstrap
-+ */
-+ clear_c0_status(ST0_IM | ST0_BEV);
-+ __cli();
-+
-+ /* Sets the first-level interrupt dispatcher. */
-+ set_except_vector(0, ocelot_handle_int);
-+ init_generic_irq();
-+
-+ /* set up handler for first 8 IRQs as the CPU */
-+ for (i = 0; i < 8; i++) {
-+ irq_desc[i].status = IRQ_DISABLED;
-+ irq_desc[i].action = 0;
-+ irq_desc[i].depth = 1;
-+ irq_desc[i].handler = &cp7000_hpcdma_irq_type;
-+ }
-+
-+ /* set up the cascading interrupts */
-+ setup_irq(3, &cascade_fpga);
-+ setup_irq(5, &cascade_fpga);
-+ setup_irq(6, &cascade_mv64340);
-+
-+ mv64340_irq_init();
-+ uart_irq_init();
-+ cpci_irq_init();
-+
-+#ifdef CONFIG_REMOTE_DEBUG
-+ printk("start kgdb ...\n");
-+ set_debug_traps();
-+ breakpoint(); /* you may move this line to whereever you want :-) */
-+#endif
-+#ifdef CONFIG_GDB_CONSOLE
-+ register_gdb_console();
-+#endif
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/Makefile
---- linux-2.4.20/arch/mips/momentum/ocelot_c/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/Makefile 2002-11-13 04:00:14.000000000 -0600
-@@ -0,0 +1,18 @@
-+#
-+# Makefile for Momentum Computer's Ocelot-C and -CS boards.
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET:= ocelot_c.o
-+
-+obj-y += mv-irq.o cpci-irq.o uart-irq.o int-handler.o irq.o
-+obj-y += pci-irq.o pci.o prom.o reset.o setup.o
-+
-+obj-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
-+
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/mv-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/mv-irq.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/mv-irq.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/mv-irq.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,166 @@
-+/*
-+ * Copyright 2002 Momentum Computer
-+ * Author: mdharm@momenco.com
-+ *
-+ * arch/mips/momentum/ocelot_c/mv-irq.c
-+ * Interrupt routines for mv64340. Interrupt numbers are assigned from
-+ * MV64340_IRQ_BASE to MV64340_IRQ_BASE+64.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/interrupt.h>
-+#include <linux/kernel.h>
-+#include <asm/ptrace.h>
-+#include <linux/config.h>
-+#include <linux/sched.h>
-+#include <linux/kernel_stat.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/mv64340.h>
-+
-+extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
-+
-+#define MV64340_IRQ_BASE 16
-+
-+static inline int ls1bit32(unsigned int x)
-+{
-+ int b = 31, s;
-+
-+ s = 16; if (x << 16 == 0) s = 0; b -= s; x <<= s;
-+ s = 8; if (x << 8 == 0) s = 0; b -= s; x <<= s;
-+ s = 4; if (x << 4 == 0) s = 0; b -= s; x <<= s;
-+ s = 2; if (x << 2 == 0) s = 0; b -= s; x <<= s;
-+ s = 1; if (x << 1 == 0) s = 0; b -= s;
-+
-+ return b;
-+}
-+
-+/* mask off an interrupt -- 1 is enable, 0 is disable */
-+static inline void mask_mv64340_irq(unsigned int irq)
-+{
-+ uint32_t value;
-+
-+ if (irq < (MV64340_IRQ_BASE + 32)) {
-+ MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
-+ value &= ~(1 << (irq - MV64340_IRQ_BASE));
-+ MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
-+ } else {
-+ MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
-+ value &= ~(1 << (irq - (MV64340_IRQ_BASE - 32)));
-+ MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
-+ }
-+}
-+
-+/* unmask an interrupt -- 1 is enable, 0 is disable */
-+static inline void unmask_mv64340_irq(unsigned int irq)
-+{
-+ uint32_t value;
-+
-+ if (irq < (MV64340_IRQ_BASE + 32)) {
-+ MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &value);
-+ value |= 1 << (irq - MV64340_IRQ_BASE);
-+ MV_WRITE(MV64340_INTERRUPT0_MASK_0_LOW, value);
-+ } else {
-+ MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &value);
-+ value |= 1 << (irq - (MV64340_IRQ_BASE - 32));
-+ MV_WRITE(MV64340_INTERRUPT0_MASK_0_HIGH, value);
-+ }
-+}
-+
-+/*
-+ * Enables the IRQ on Marvell Chip
-+ */
-+static void enable_mv64340_irq(unsigned int irq)
-+{
-+ unmask_mv64340_irq(irq);
-+}
-+
-+/*
-+ * Initialize the IRQ on Marvell Chip
-+ */
-+static unsigned int startup_mv64340_irq(unsigned int irq)
-+{
-+ unmask_mv64340_irq(irq);
-+ return 0;
-+}
-+
-+/*
-+ * Disables the IRQ on Marvell Chip
-+ */
-+static void disable_mv64340_irq(unsigned int irq)
-+{
-+ mask_mv64340_irq(irq);
-+}
-+
-+/*
-+ * Masks and ACKs an IRQ
-+ */
-+static void mask_and_ack_mv64340_irq(unsigned int irq)
-+{
-+ mask_mv64340_irq(irq);
-+}
-+
-+/*
-+ * End IRQ processing
-+ */
-+static void end_mv64340_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ unmask_mv64340_irq(irq);
-+}
-+
-+/*
-+ * Interrupt handler for interrupts coming from the Marvell chip.
-+ * It could be built in ethernet ports etc...
-+ */
-+void ll_mv64340_irq(struct pt_regs *regs)
-+{
-+ unsigned int irq_src_low, irq_src_high;
-+ unsigned int irq_mask_low, irq_mask_high;
-+
-+ /* read the interrupt status registers */
-+ MV_READ(MV64340_INTERRUPT0_MASK_0_LOW, &irq_mask_low);
-+ MV_READ(MV64340_INTERRUPT0_MASK_0_HIGH, &irq_mask_high);
-+ MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_LOW, &irq_src_low);
-+ MV_READ(MV64340_MAIN_INTERRUPT_CAUSE_HIGH, &irq_src_high);
-+
-+ /* mask for just the interrupts we want */
-+ irq_src_low &= irq_mask_low;
-+ irq_src_high &= irq_mask_high;
-+
-+ if (irq_src_low)
-+ do_IRQ(ls1bit32(irq_src_low) + MV64340_IRQ_BASE, regs);
-+ else
-+ do_IRQ(ls1bit32(irq_src_high) + MV64340_IRQ_BASE + 32, regs);
-+}
-+
-+#define shutdown_mv64340_irq disable_mv64340_irq
-+
-+struct hw_interrupt_type mv64340_irq_type = {
-+ "MV-64340",
-+ startup_mv64340_irq,
-+ shutdown_mv64340_irq,
-+ enable_mv64340_irq,
-+ disable_mv64340_irq,
-+ mask_and_ack_mv64340_irq,
-+ end_mv64340_irq,
-+ NULL
-+};
-+
-+void mv64340_irq_init(void)
-+{
-+ int i;
-+
-+ /* Reset irq handlers pointers to NULL */
-+ for (i = MV64340_IRQ_BASE; i < (MV64340_IRQ_BASE + 64); i++) {
-+ irq_desc[i].status = IRQ_DISABLED;
-+ irq_desc[i].action = 0;
-+ irq_desc[i].depth = 2;
-+ irq_desc[i].handler = &mv64340_irq_type;
-+ }
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h
---- linux-2.4.20/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/ocelot_c_fpga.h 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,50 @@
-+/*
-+ * Ocelot-C Board Register Definitions
-+ *
-+ * (C) 2002 Momentum Computer Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#ifndef __OCELOT_C_FPGA_H__
-+#define __OCELOT_C_FPGA_H__
-+
-+#define OCELOT_C_CS0_ADDR (0xfc000000)
-+
-+#define OCELOT_C_REG_BOARDREV 0x0
-+#define OCELOT_C_REG_FPGA_REV 0x1
-+#define OCELOT_C_REG_FPGA_TYPE 0x2
-+#define OCELOT_C_REG_RESET_STATUS 0x3
-+#define OCELOT_C_REG_BOARD_STATUS 0x4
-+#define OCELOT_C_REG_CPCI_ID 0x5
-+#define OCELOT_C_REG_SET 0x6
-+#define OCELOT_C_REG_CLR 0x7
-+#define OCELOT_C_REG_EEPROM_MODE 0x9
-+#define OCELOT_C_REG_INTMASK 0xa
-+#define OCELOT_C_REG_INTSTAT 0xb
-+#define OCELOT_C_REG_UART_INTMASK 0xc
-+#define OCELOT_C_REG_UART_INTSTAT 0xd
-+#define OCELOT_C_REG_INTSET 0xe
-+#define OCELOT_C_REG_INTCLR 0xf
-+
-+#define OCELOT_FPGA_WRITE(x, y) writeb(x, OCELOT_C_CS0_ADDR + OCELOT_C_REG_##y)
-+#define OCELOT_FPGA_READ(x) readb(OCELOT_C_CS0_ADDR + OCELOT_C_REG_##x)
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/pci.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -0,0 +1,495 @@
-+/*
-+ * Copyright 2002 Momentum Computer
-+ * Author: Matthew Dharm <mdharm@momenco.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#include <linux/config.h>
-+#include <linux/types.h>
-+#include <linux/pci.h>
-+#include <linux/kernel.h>
-+#include <linux/slab.h>
-+#include <linux/version.h>
-+#include <asm/pci.h>
-+#include <asm/io.h>
-+#include <asm/mv64340.h>
-+
-+#include <linux/init.h>
-+
-+#ifdef CONFIG_PCI
-+
-+/*
-+ * These functions and structures provide the BIOS scan and mapping of the PCI
-+ * devices.
-+ */
-+
-+#define MAX_PCI_DEVS 10
-+
-+void mv64340_board_pcibios_fixup_bus(struct pci_bus* c);
-+
-+/* Functions to implement "pci ops" */
-+static int marvell_pcibios_read_config_word(struct pci_dev *dev,
-+ int offset, u16 * val);
-+static int marvell_pcibios_read_config_byte(struct pci_dev *dev,
-+ int offset, u8 * val);
-+static int marvell_pcibios_read_config_dword(struct pci_dev *dev,
-+ int offset, u32 * val);
-+static int marvell_pcibios_write_config_byte(struct pci_dev *dev,
-+ int offset, u8 val);
-+static int marvell_pcibios_write_config_word(struct pci_dev *dev,
-+ int offset, u16 val);
-+static int marvell_pcibios_write_config_dword(struct pci_dev *dev,
-+ int offset, u32 val);
-+static void marvell_pcibios_set_master(struct pci_dev *dev);
-+
-+/*
-+ * General-purpose PCI functions.
-+ */
-+
-+
-+/*
-+ * pci_range_ck -
-+ *
-+ * Check if the pci device that are trying to access does really exists
-+ * on the evaluation board.
-+ *
-+ * Inputs :
-+ * bus - bus number (0 for PCI 0 ; 1 for PCI 1)
-+ * dev - number of device on the specific pci bus
-+ *
-+ * Outpus :
-+ * 0 - if OK , 1 - if failure
-+ */
-+static __inline__ int pci_range_ck(unsigned char bus, unsigned char dev)
-+{
-+ /* Accessing device 31 crashes the MV-64340. */
-+ if (dev < 5)
-+ return 0;
-+ return -1;
-+}
-+
-+/*
-+ * marvell_pcibios_(read/write)_config_(dword/word/byte) -
-+ *
-+ * reads/write a dword/word/byte register from the configuration space
-+ * of a device.
-+ *
-+ * Note that bus 0 and bus 1 are local, and we assume all other busses are
-+ * bridged from bus 1. This is a safe assumption, since any other
-+ * configuration will require major modifications to the CP7000G
-+ *
-+ * Inputs :
-+ * bus - bus number
-+ * dev - device number
-+ * offset - register offset in the configuration space
-+ * val - value to be written / read
-+ *
-+ * Outputs :
-+ * PCIBIOS_SUCCESSFUL when operation was succesfull
-+ * PCIBIOS_DEVICE_NOT_FOUND when the bus or dev is errorneous
-+ * PCIBIOS_BAD_REGISTER_NUMBER when accessing non aligned
-+ */
-+
-+static int marvell_pcibios_read_config_dword(struct pci_dev *device,
-+ int offset, u32* val)
-+{
-+ int dev, bus, func;
-+ uint32_t address_reg, data_reg;
-+ uint32_t address;
-+
-+ bus = device->bus->number;
-+ dev = PCI_SLOT(device->devfn);
-+ func = PCI_FUNC(device->devfn);
-+
-+ /* verify the range */
-+ if (pci_range_ck(bus, dev))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /* select the MV-64340 registers to communicate with the PCI bus */
-+ if (bus == 0) {
-+ address_reg = MV64340_PCI_0_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
-+ } else {
-+ address_reg = MV64340_PCI_1_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
-+ }
-+
-+ address = (bus << 16) | (dev << 11) | (func << 8) |
-+ (offset & 0xfc) | 0x80000000;
-+
-+ /* start the configuration cycle */
-+ MV_WRITE(address_reg, address);
-+
-+ /* read the data */
-+ MV_READ(data_reg, val);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+
-+static int marvell_pcibios_read_config_word(struct pci_dev *device,
-+ int offset, u16* val)
-+{
-+ int dev, bus, func;
-+ uint32_t address_reg, data_reg;
-+ uint32_t address;
-+
-+ bus = device->bus->number;
-+ dev = PCI_SLOT(device->devfn);
-+ func = PCI_FUNC(device->devfn);
-+
-+ /* verify the range */
-+ if (pci_range_ck(bus, dev))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /* select the MV-64340 registers to communicate with the PCI bus */
-+ if (bus == 0) {
-+ address_reg = MV64340_PCI_0_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
-+ } else {
-+ address_reg = MV64340_PCI_1_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
-+ }
-+
-+ address = (bus << 16) | (dev << 11) | (func << 8) |
-+ (offset & 0xfc) | 0x80000000;
-+
-+ /* start the configuration cycle */
-+ MV_WRITE(address_reg, address);
-+
-+ /* read the data */
-+ MV_READ_16(data_reg + (offset & 0x3), val);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int marvell_pcibios_read_config_byte(struct pci_dev *device,
-+ int offset, u8* val)
-+{
-+ int dev, bus, func;
-+ uint32_t address_reg, data_reg;
-+ uint32_t address;
-+
-+ bus = device->bus->number;
-+ dev = PCI_SLOT(device->devfn);
-+ func = PCI_FUNC(device->devfn);
-+
-+ /* verify the range */
-+ if (pci_range_ck(bus, dev))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /* select the MV-64340 registers to communicate with the PCI bus */
-+ if (bus == 0) {
-+ address_reg = MV64340_PCI_0_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
-+ } else {
-+ address_reg = MV64340_PCI_1_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
-+ }
-+
-+ address = (bus << 16) | (dev << 11) | (func << 8) |
-+ (offset & 0xfc) | 0x80000000;
-+
-+ /* start the configuration cycle */
-+ MV_WRITE(address_reg, address);
-+
-+ /* write the data */
-+ MV_READ_8(data_reg + (offset & 0x3), val);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int marvell_pcibios_write_config_dword(struct pci_dev *device,
-+ int offset, u32 val)
-+{
-+ int dev, bus, func;
-+ uint32_t address_reg, data_reg;
-+ uint32_t address;
-+
-+ bus = device->bus->number;
-+ dev = PCI_SLOT(device->devfn);
-+ func = PCI_FUNC(device->devfn);
-+
-+ /* verify the range */
-+ if (pci_range_ck(bus, dev))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /* select the MV-64340 registers to communicate with the PCI bus */
-+ if (bus == 0) {
-+ address_reg = MV64340_PCI_0_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
-+ } else {
-+ address_reg = MV64340_PCI_1_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
-+ }
-+
-+ address = (bus << 16) | (dev << 11) | (func << 8) |
-+ (offset & 0xfc) | 0x80000000;
-+
-+ /* start the configuration cycle */
-+ MV_WRITE(address_reg, address);
-+
-+ /* write the data */
-+ MV_WRITE(data_reg, val);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+
-+static int marvell_pcibios_write_config_word(struct pci_dev *device,
-+ int offset, u16 val)
-+{
-+ int dev, bus, func;
-+ uint32_t address_reg, data_reg;
-+ uint32_t address;
-+
-+ bus = device->bus->number;
-+ dev = PCI_SLOT(device->devfn);
-+ func = PCI_FUNC(device->devfn);
-+
-+ /* verify the range */
-+ if (pci_range_ck(bus, dev))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /* select the MV-64340 registers to communicate with the PCI bus */
-+ if (bus == 0) {
-+ address_reg = MV64340_PCI_0_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
-+ } else {
-+ address_reg = MV64340_PCI_1_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
-+ }
-+
-+ address = (bus << 16) | (dev << 11) | (func << 8) |
-+ (offset & 0xfc) | 0x80000000;
-+
-+ /* start the configuration cycle */
-+ MV_WRITE(address_reg, address);
-+
-+ /* write the data */
-+ MV_WRITE_16(data_reg + (offset & 0x3), val);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static int marvell_pcibios_write_config_byte(struct pci_dev *device,
-+ int offset, u8 val)
-+{
-+ int dev, bus, func;
-+ uint32_t address_reg, data_reg;
-+ uint32_t address;
-+
-+ bus = device->bus->number;
-+ dev = PCI_SLOT(device->devfn);
-+ func = PCI_FUNC(device->devfn);
-+
-+ /* verify the range */
-+ if (pci_range_ck(bus, dev))
-+ return PCIBIOS_DEVICE_NOT_FOUND;
-+
-+ /* select the MV-64340 registers to communicate with the PCI bus */
-+ if (bus == 0) {
-+ address_reg = MV64340_PCI_0_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_0_CONFIG_DATA_VIRTUAL_REG;
-+ } else {
-+ address_reg = MV64340_PCI_1_CONFIG_ADDR;
-+ data_reg = MV64340_PCI_1_CONFIG_DATA_VIRTUAL_REG;
-+ }
-+
-+ address = (bus << 16) | (dev << 11) | (func << 8) |
-+ (offset & 0xfc) | 0x80000000;
-+
-+ /* start the configuration cycle */
-+ MV_WRITE(address_reg, address);
-+
-+ /* write the data */
-+ MV_WRITE_8(data_reg + (offset & 0x3), val);
-+
-+ return PCIBIOS_SUCCESSFUL;
-+}
-+
-+static void marvell_pcibios_set_master(struct pci_dev *dev)
-+{
-+ u16 cmd;
-+
-+ marvell_pcibios_read_config_word(dev, PCI_COMMAND, &cmd);
-+ cmd |= PCI_COMMAND_MASTER;
-+ marvell_pcibios_write_config_word(dev, PCI_COMMAND, cmd);
-+}
-+
-+/* Externally-expected functions. Do not change function names */
-+
-+int pcibios_enable_resources(struct pci_dev *dev)
-+{
-+ u16 cmd, old_cmd;
-+ u8 tmp1;
-+ int idx;
-+ struct resource *r;
-+
-+ marvell_pcibios_read_config_word(dev, PCI_COMMAND, &cmd);
-+ old_cmd = cmd;
-+ for (idx = 0; idx < 6; idx++) {
-+ r = &dev->resource[idx];
-+ if (!r->start && r->end) {
-+ printk(KERN_ERR
-+ "PCI: Device %s not available because of "
-+ "resource collisions\n", dev->slot_name);
-+ return -EINVAL;
-+ }
-+ if (r->flags & IORESOURCE_IO)
-+ cmd |= PCI_COMMAND_IO;
-+ if (r->flags & IORESOURCE_MEM)
-+ cmd |= PCI_COMMAND_MEMORY;
-+ }
-+ if (cmd != old_cmd) {
-+ marvell_pcibios_write_config_word(dev, PCI_COMMAND, cmd);
-+ }
-+
-+ /*
-+ * Let's fix up the latency timer and cache line size here. Cache
-+ * line size = 32 bytes / sizeof dword (4) = 8.
-+ * Latency timer must be > 8. 32 is random but appears to work.
-+ */
-+ marvell_pcibios_read_config_byte(dev, PCI_CACHE_LINE_SIZE, &tmp1);
-+ if (tmp1 != 8) {
-+ printk(KERN_WARNING "PCI setting cache line size to 8 from "
-+ "%d\n", tmp1);
-+ marvell_pcibios_write_config_byte(dev, PCI_CACHE_LINE_SIZE,
-+ 8);
-+ }
-+ marvell_pcibios_read_config_byte(dev, PCI_LATENCY_TIMER, &tmp1);
-+ if (tmp1 < 32) {
-+ printk(KERN_WARNING "PCI setting latency timer to 32 from %d\n",
-+ tmp1);
-+ marvell_pcibios_write_config_byte(dev, PCI_LATENCY_TIMER,
-+ 32);
-+ }
-+
-+ return 0;
-+}
-+
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
-+{
-+ return pcibios_enable_resources(dev);
-+}
-+
-+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-+ struct resource *res, int resource)
-+{
-+ u32 new, check;
-+ int reg;
-+
-+ return;
-+
-+ new = res->start | (res->flags & PCI_REGION_FLAG_MASK);
-+ if (resource < 6) {
-+ reg = PCI_BASE_ADDRESS_0 + 4 * resource;
-+ } else if (resource == PCI_ROM_RESOURCE) {
-+ res->flags |= PCI_ROM_ADDRESS_ENABLE;
-+ reg = dev->rom_base_reg;
-+ } else {
-+ /*
-+ * Somebody might have asked allocation of a non-standard
-+ * resource
-+ */
-+ return;
-+ }
-+
-+ pci_write_config_dword(dev, reg, new);
-+ pci_read_config_dword(dev, reg, &check);
-+ if ((new ^ check) &
-+ ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK :
-+ PCI_BASE_ADDRESS_MEM_MASK)) {
-+ printk(KERN_ERR "PCI: Error while updating region "
-+ "%s/%d (%08x != %08x)\n", dev->slot_name, resource,
-+ new, check);
-+ }
-+}
-+
-+void pcibios_align_resource(void *data, struct resource *res,
-+ unsigned long size, unsigned long align)
-+{
-+ struct pci_dev *dev = data;
-+
-+ if (res->flags & IORESOURCE_IO) {
-+ unsigned long start = res->start;
-+
-+ /* We need to avoid collisions with `mirrored' VGA ports
-+ and other strange ISA hardware, so we always want the
-+ addresses kilobyte aligned. */
-+ if (size > 0x100) {
-+ printk(KERN_ERR "PCI: I/O Region %s/%d too large"
-+ " (%ld bytes)\n", dev->slot_name,
-+ dev->resource - res, size);
-+ }
-+
-+ start = (start + 1024 - 1) & ~(1024 - 1);
-+ res->start = start;
-+ }
-+}
-+
-+struct pci_ops marvell_pci_ops = {
-+ marvell_pcibios_read_config_byte,
-+ marvell_pcibios_read_config_word,
-+ marvell_pcibios_read_config_dword,
-+ marvell_pcibios_write_config_byte,
-+ marvell_pcibios_write_config_word,
-+ marvell_pcibios_write_config_dword
-+};
-+
-+struct pci_fixup pcibios_fixups[] = {
-+ {0}
-+};
-+
-+void __init pcibios_fixup_bus(struct pci_bus *c)
-+{
-+ mv64340_board_pcibios_fixup_bus(c);
-+}
-+
-+void __init pcibios_init(void)
-+{
-+ /* Reset PCI I/O and PCI MEM values */
-+ ioport_resource.start = 0xe0000000;
-+ ioport_resource.end = 0xe0000000 + 0x20000000 - 1;
-+ iomem_resource.start = 0xc0000000;
-+ iomem_resource.end = 0xc0000000 + 0x20000000 - 1;
-+
-+ pci_scan_bus(0, &marvell_pci_ops, NULL);
-+ pci_scan_bus(1, &marvell_pci_ops, NULL);
-+}
-+
-+/*
-+ * for parsing "pci=" kernel boot arguments.
-+ */
-+char *pcibios_setup(char *str)
-+{
-+ printk(KERN_INFO "rr: pcibios_setup\n");
-+ /* Nothing to do for now. */
-+
-+ return str;
-+}
-+
-+unsigned __init int pcibios_assign_all_busses(void)
-+{
-+ return 1;
-+}
-+
-+#endif /* CONFIG_PCI */
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/pci-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci-irq.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/pci-irq.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/pci-irq.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,73 @@
-+/*
-+ * Copyright 2002 Momentum Computer Inc.
-+ * Author: Matthew Dharm <mdharm@momenco.com>
-+ *
-+ * Based on work for the Linux port to the Ocelot board, which is
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
-+ *
-+ * arch/mips/momentum/ocelot_g/pci.c
-+ * Board-specific PCI routines for mv64340 controller.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/types.h>
-+#include <linux/pci.h>
-+#include <linux/kernel.h>
-+#include <linux/version.h>
-+#include <linux/init.h>
-+#include <asm/pci.h>
-+
-+
-+void __init mv64340_board_pcibios_fixup_bus(struct pci_bus *bus)
-+{
-+ struct pci_bus *current_bus = bus;
-+ struct pci_dev *devices;
-+ struct list_head *devices_link;
-+ u16 cmd;
-+
-+ /* loop over all known devices on this bus */
-+ list_for_each(devices_link, &(current_bus->devices)) {
-+
-+ devices = pci_dev_b(devices_link);
-+ if (devices == NULL)
-+ continue;
-+
-+ if ((current_bus->number == 0) &&
-+ (PCI_SLOT(devices->devfn) == 1) &&
-+ (PCI_FUNC(devices->devfn) == 0)) {
-+ /* LSI 53C10101R SCSI (A) */
-+ devices->irq = 2;
-+ } else if ((current_bus->number == 0) &&
-+ (PCI_SLOT(devices->devfn) == 1) &&
-+ (PCI_FUNC(devices->devfn) == 1)) {
-+ /* LSI 53C10101R SCSI (B) */
-+ devices->irq = 2;
-+ } else if ((current_bus->number == 1) &&
-+ (PCI_SLOT(devices->devfn) == 1)) {
-+ /* Intel 21555 bridge */
-+ devices->irq = 12;
-+ } else if ((current_bus->number == 1) &&
-+ (PCI_SLOT(devices->devfn) == 2)) {
-+ /* PMC Slot */
-+ devices->irq = 4;
-+ } else {
-+ /* We don't have assign interrupts for other devices. */
-+ devices->irq = 0xff;
-+ }
-+
-+ /* Assign an interrupt number for the device */
-+ bus->ops->write_byte(devices, PCI_INTERRUPT_LINE, devices->irq);
-+
-+ /* enable master for everything but the MV-64340 */
-+ if (((current_bus->number != 0) && (current_bus->number != 1))
-+ || (PCI_SLOT(devices->devfn) != 0)) {
-+ bus->ops->read_word(devices, PCI_COMMAND, &cmd);
-+ cmd |= PCI_COMMAND_MASTER;
-+ bus->ops->write_word(devices, PCI_COMMAND, cmd);
-+ }
-+ }
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/prom.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/prom.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/prom.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,151 @@
-+/*
-+ * Copyright 2002 Momentum Computer Inc.
-+ * Author: Matthew Dharm <mdharm@momenco.com>
-+ *
-+ * Based on Ocelot Linux port, which is
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: jsun@mvista.com or jsun@junsun.net
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/mm.h>
-+#include <linux/sched.h>
-+#include <linux/bootmem.h>
-+
-+#include <asm/addrspace.h>
-+#include <asm/bootinfo.h>
-+#include <asm/mv64340.h>
-+
-+#include "ocelot_c_fpga.h"
-+
-+struct callvectors {
-+ int (*open) (char*, int, int);
-+ int (*close) (int);
-+ int (*read) (int, void*, int);
-+ int (*write) (int, void*, int);
-+ off_t (*lseek) (int, off_t, int);
-+ int (*printf) (const char*, ...);
-+ void (*cacheflush) (void);
-+ char* (*gets) (char*);
-+};
-+
-+struct callvectors* debug_vectors;
-+char arcs_cmdline[CL_SIZE];
-+
-+extern unsigned long mv64340_base;
-+extern unsigned long cpu_clock;
-+
-+#ifdef CONFIG_MV64340_ETH
-+extern unsigned char prom_mac_addr_base[6];
-+#endif
-+
-+const char *get_system_type(void)
-+{
-+#ifdef CONFIG_CPU_SR71000
-+ return "Momentum Ocelot-CS";
-+#else
-+ return "Momentum Ocelot-C";
-+#endif
-+}
-+
-+#ifdef CONFIG_MV64340_ETH
-+static void burn_clocks(void)
-+{
-+ int i;
-+
-+ /* this loop should burn at least 1us -- this should be plenty */
-+ for (i = 0; i < 0x10000; i++)
-+ ;
-+}
-+
-+static u8 exchange_bit(u8 val, u8 cs)
-+{
-+ /* place the data */
-+ OCELOT_FPGA_WRITE((val << 2) | cs, EEPROM_MODE);
-+ burn_clocks();
-+
-+ /* turn the clock on */
-+ OCELOT_FPGA_WRITE((val << 2) | cs | 0x2, EEPROM_MODE);
-+ burn_clocks();
-+
-+ /* turn the clock off and read-strobe */
-+ OCELOT_FPGA_WRITE((val << 2) | cs | 0x10, EEPROM_MODE);
-+
-+ /* return the data */
-+ return ((OCELOT_FPGA_READ(EEPROM_MODE) >> 3) & 0x1);
-+}
-+
-+void get_mac(char dest[6])
-+{
-+ u8 read_opcode[12] = {1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
-+ int i,j;
-+
-+ for (i = 0; i < 12; i++)
-+ exchange_bit(read_opcode[i], 1);
-+
-+ for (j = 0; j < 6; j++) {
-+ dest[j] = 0;
-+ for (i = 0; i < 8; i++) {
-+ dest[j] <<= 1;
-+ dest[j] |= exchange_bit(0, 1);
-+ }
-+ }
-+
-+ /* turn off CS */
-+ exchange_bit(0,0);
-+}
-+#endif
-+
-+/* [jsun@junsun.net] PMON passes arguments in C main() style */
-+void __init prom_init(int argc, char **arg, char** env, struct callvectors *cv)
-+{
-+ int i;
-+
-+ /* save the PROM vectors for debugging use */
-+ debug_vectors = cv;
-+
-+ /* arg[0] is "g", the rest is boot parameters */
-+ arcs_cmdline[0] = '\0';
-+ for (i = 1; i < argc; i++) {
-+ if (strlen(arcs_cmdline) + strlen(arg[i] + 1)
-+ >= sizeof(arcs_cmdline))
-+ break;
-+ strcat(arcs_cmdline, arg[i]);
-+ strcat(arcs_cmdline, " ");
-+ }
-+
-+ mips_machgroup = MACH_GROUP_MOMENCO;
-+ mips_machtype = MACH_MOMENCO_OCELOT_C;
-+
-+ while (*env) {
-+ if (strncmp("gtbase", *env, strlen("gtbase")) == 0) {
-+ mv64340_base = simple_strtol(*env + strlen("gtbase="),
-+ NULL, 16);
-+ }
-+ if (strncmp("cpuclock", *env, strlen("cpuclock")) == 0) {
-+ cpu_clock = simple_strtol(*env + strlen("cpuclock="),
-+ NULL, 10);
-+ }
-+ env++;
-+ }
-+
-+#ifdef CONFIG_MV64340_ETH
-+ /* get the base MAC address for on-board ethernet ports */
-+ get_mac(prom_mac_addr_base);
-+#endif
-+
-+ debug_vectors->printf("Booting Linux kernel...\n");
-+}
-+
-+void __init prom_free_prom_memory(void)
-+{
-+}
-+
-+void __init prom_fixup_mem_map(unsigned long start, unsigned long end)
-+{
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/reset.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/reset.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/reset.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,50 @@
-+/*
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * Copyright (C) 1997, 2001 Ralf Baechle
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: jsun@mvista.com or jsun@junsun.net
-+ *
-+ * Copyright (C) 2002 Momentum Computer Inc.
-+ * Author: Matthew Dharm <mdharm@momenco.com>
-+ */
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+#include <asm/io.h>
-+#include <asm/pgtable.h>
-+#include <asm/processor.h>
-+#include <asm/reboot.h>
-+#include <asm/system.h>
-+#include <linux/delay.h>
-+
-+void momenco_ocelot_restart(char *command)
-+{
-+ /* base address of timekeeper portion of part */
-+ void *nvram = (void*) 0xfc807000;
-+
-+ /* Ask the NVRAM/RTC/watchdog chip to assert reset in 1/16 second */
-+ writeb(0x84, nvram + 0xff7);
-+
-+ /* wait for the watchdog to go off */
-+ mdelay(100+(1000/16));
-+
-+ /* if the watchdog fails for some reason, let people know */
-+ printk(KERN_NOTICE "Watchdog reset failed\n");
-+}
-+
-+void momenco_ocelot_halt(void)
-+{
-+ printk(KERN_NOTICE "\n** You can safely turn off the power\n");
-+ while (1)
-+ __asm__(".set\tmips3\n\t"
-+ "wait\n\t"
-+ ".set\tmips0");
-+}
-+
-+void momenco_ocelot_power_off(void)
-+{
-+ momenco_ocelot_halt();
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/setup.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/setup.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,332 @@
-+/*
-+ * setup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Momentum Computer Ocelot-C and -CS board dependent boot routines
-+ *
-+ * Copyright (C) 1996, 1997, 2001 Ralf Baechle
-+ * Copyright (C) 2000 RidgeRun, Inc.
-+ * Copyright (C) 2001 Red Hat, Inc.
-+ * Copyright (C) 2002 Momentum Computer
-+ *
-+ * Author: Matthew Dharm, Momentum Computer
-+ * mdharm@momenco.com
-+ *
-+ * Author: RidgeRun, Inc.
-+ * glonnon@ridgerun.com, skranz@ridgerun.com, stevej@ridgerun.com
-+ *
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: jsun@mvista.com or jsun@junsun.net
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ *
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/types.h>
-+#include <linux/mc146818rtc.h>
-+#include <linux/mm.h>
-+#include <linux/swap.h>
-+#include <linux/ioport.h>
-+#include <linux/sched.h>
-+#include <linux/interrupt.h>
-+#include <linux/pci.h>
-+#include <linux/timex.h>
-+#include <linux/vmalloc.h>
-+#include <asm/time.h>
-+#include <asm/bootinfo.h>
-+#include <asm/page.h>
-+#include <asm/bootinfo.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/pci.h>
-+#include <asm/processor.h>
-+#include <asm/ptrace.h>
-+#include <asm/reboot.h>
-+#include <asm/mc146818rtc.h>
-+#include <linux/version.h>
-+#include <linux/bootmem.h>
-+#include <linux/blk.h>
-+#include <asm/mv64340.h>
-+#include "ocelot_c_fpga.h"
-+
-+unsigned long mv64340_base;
-+unsigned long cpu_clock;
-+
-+/* These functions are used for rebooting or halting the machine*/
-+extern void momenco_ocelot_restart(char *command);
-+extern void momenco_ocelot_halt(void);
-+extern void momenco_ocelot_power_off(void);
-+
-+void momenco_time_init(void);
-+
-+static char reset_reason;
-+
-+#define ENTRYLO(x) ((pte_val(mk_pte_phys((x), PAGE_KERNEL_UNCACHED)) >> 6)|1)
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+/* setup code for a handoff from a version 2 PMON 2000 PROM */
-+void PMON_v2_setup(void)
-+{
-+ /* Some wired TLB entries for the MV64340 and perhiperals. The
-+ MV64340 is going to be hit on every IRQ anyway - there's
-+ absolutely no point in letting it be a random TLB entry, as
-+ it'll just cause needless churning of the TLB. And we use
-+ the other half for the serial port, which is just a PITA
-+ otherwise :)
-+
-+ Device Physical Virtual
-+ MV64340 Internal Regs 0xf4000000 0xf4000000
-+ Ocelot-C[S] PLD (CS0) 0xfc000000 0xfc000000
-+ NVRAM (CS1) 0xfc800000 0xfc800000
-+ UARTs (CS2) 0xfd000000 0xfd000000
-+ Internal SRAM 0xfe000000 0xfe000000
-+ M-Systems DOC (CS3) 0xff000000 0xff000000
-+ */
-+
-+ /* marvell and extra space */
-+ add_wired_entry(ENTRYLO(0xf4000000), ENTRYLO(0xf4010000), 0xf4000000, PM_64K);
-+ /* fpga, rtc, and uart */
-+ add_wired_entry(ENTRYLO(0xfc000000), ENTRYLO(0xfd000000), 0xfc000000, PM_16M);
-+ /* m-sys and internal SRAM */
-+ add_wired_entry(ENTRYLO(0xfe000000), ENTRYLO(0xff000000), 0xfe000000, PM_16M);
-+
-+ mv64340_base = 0xf4000000;
-+}
-+
-+#define CONV_BCD_TO_BIN(val) (((val) & 0xf) + (((val) >> 4) * 10))
-+#define CONV_BIN_TO_BCD(val) (((val) % 10) + (((val) / 10) << 4))
-+
-+unsigned long m48t37y_get_time(void)
-+{
-+ unsigned char* rtc_base = (unsigned char*)0xfc800000;
-+ unsigned int year, month, day, hour, min, sec;
-+
-+ /* stop the update */
-+ rtc_base[0x7ff8] = 0x40;
-+
-+ year = CONV_BCD_TO_BIN(rtc_base[0x7fff]);
-+ year += CONV_BCD_TO_BIN(rtc_base[0x7ff1]) * 100;
-+
-+ month = CONV_BCD_TO_BIN(rtc_base[0x7ffe]);
-+
-+ day = CONV_BCD_TO_BIN(rtc_base[0x7ffd]);
-+
-+ hour = CONV_BCD_TO_BIN(rtc_base[0x7ffb]);
-+ min = CONV_BCD_TO_BIN(rtc_base[0x7ffa]);
-+ sec = CONV_BCD_TO_BIN(rtc_base[0x7ff9]);
-+
-+ /* start the update */
-+ rtc_base[0x7ff8] = 0x00;
-+
-+ return mktime(year, month, day, hour, min, sec);
-+}
-+
-+int m48t37y_set_time(unsigned long sec)
-+{
-+ unsigned char* rtc_base = (unsigned char*)0xfc800000;
-+ struct rtc_time tm;
-+
-+ /* convert to a more useful format -- note months count from 0 */
-+ to_tm(sec, &tm);
-+ tm.tm_mon += 1;
-+
-+ /* enable writing */
-+ rtc_base[0x7ff8] = 0x80;
-+
-+ /* year */
-+ rtc_base[0x7fff] = CONV_BIN_TO_BCD(tm.tm_year % 100);
-+ rtc_base[0x7ff1] = CONV_BIN_TO_BCD(tm.tm_year / 100);
-+
-+ /* month */
-+ rtc_base[0x7ffe] = CONV_BIN_TO_BCD(tm.tm_mon);
-+
-+ /* day */
-+ rtc_base[0x7ffd] = CONV_BIN_TO_BCD(tm.tm_mday);
-+
-+ /* hour/min/sec */
-+ rtc_base[0x7ffb] = CONV_BIN_TO_BCD(tm.tm_hour);
-+ rtc_base[0x7ffa] = CONV_BIN_TO_BCD(tm.tm_min);
-+ rtc_base[0x7ff9] = CONV_BIN_TO_BCD(tm.tm_sec);
-+
-+ /* day of week -- not really used, but let's keep it up-to-date */
-+ rtc_base[0x7ffc] = CONV_BIN_TO_BCD(tm.tm_wday + 1);
-+
-+ /* disable writing */
-+ rtc_base[0x7ff8] = 0x00;
-+
-+ return 0;
-+}
-+
-+void momenco_timer_setup(struct irqaction *irq)
-+{
-+ setup_irq(7, irq);
-+}
-+
-+void momenco_time_init(void)
-+{
-+#ifdef CONFIG_CPU_SR71000
-+ mips_counter_frequency = cpu_clock;
-+#elif defined(CONFIG_CPU_RM7000)
-+ mips_counter_frequency = cpu_clock / 2;
-+#else
-+#error Unknown CPU for this board
-+#endif
-+ board_timer_setup = momenco_timer_setup;
-+
-+ rtc_get_time = m48t37y_get_time;
-+ rtc_set_time = m48t37y_set_time;
-+}
-+
-+void __init momenco_ocelot_c_setup(void)
-+{
-+ unsigned int tmpword;
-+
-+ board_time_init = momenco_time_init;
-+
-+ _machine_restart = momenco_ocelot_restart;
-+ _machine_halt = momenco_ocelot_halt;
-+ _machine_power_off = momenco_ocelot_power_off;
-+
-+ /*
-+ * initrd_start = (ulong)ocelot_initrd_start;
-+ * initrd_end = (ulong)ocelot_initrd_start + (ulong)ocelot_initrd_size;
-+ * initrd_below_start_ok = 1;
-+ */
-+
-+ /* do handoff reconfiguration */
-+ PMON_v2_setup();
-+
-+ /* shut down ethernet ports, just to be sure our memory doesn't get
-+ * corrupted by random ethernet traffic.
-+ */
-+ MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0), 0xff << 8);
-+ MV_WRITE(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1), 0xff << 8);
-+ MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0), 0xff << 8);
-+ MV_WRITE(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1), 0xff << 8);
-+ do {}
-+ while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(0)) & 0xff);
-+ do {}
-+ while (MV_READ_DATA(MV64340_ETH_RECEIVE_QUEUE_COMMAND_REG(1)) & 0xff);
-+ do {}
-+ while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(0)) & 0xff);
-+ do {}
-+ while (MV_READ_DATA(MV64340_ETH_TRANSMIT_QUEUE_COMMAND_REG(1)) & 0xff);
-+ MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(0)) & ~1);
-+ MV_WRITE(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1), MV_READ_DATA(MV64340_ETH_PORT_SERIAL_CONTROL_REG(1)) & ~1);
-+
-+ /* Turn off the Bit-Error LED */
-+ OCELOT_FPGA_WRITE(0x80, CLR);
-+
-+ tmpword = OCELOT_FPGA_READ(BOARDREV);
-+#ifdef CONFIG_CPU_SR71000
-+ if (tmpword < 26)
-+ printk("Momenco Ocelot-CS: Board Assembly Rev. %c\n",
-+ 'A'+tmpword);
-+ else
-+ printk("Momenco Ocelot-CS: Board Assembly Revision #0x%x\n",
-+ tmpword);
-+#else
-+ if (tmpword < 26)
-+ printk("Momenco Ocelot-C: Board Assembly Rev. %c\n",
-+ 'A'+tmpword);
-+ else
-+ printk("Momenco Ocelot-C: Board Assembly Revision #0x%x\n",
-+ tmpword);
-+#endif
-+
-+ tmpword = OCELOT_FPGA_READ(FPGA_REV);
-+ printk("FPGA Rev: %d.%d\n", tmpword>>4, tmpword&15);
-+ tmpword = OCELOT_FPGA_READ(RESET_STATUS);
-+ printk("Reset reason: 0x%x\n", tmpword);
-+ switch (tmpword) {
-+ case 0x1:
-+ printk(" - Power-up reset\n");
-+ break;
-+ case 0x2:
-+ printk(" - Push-button reset\n");
-+ break;
-+ case 0x4:
-+ printk(" - cPCI bus reset\n");
-+ break;
-+ case 0x8:
-+ printk(" - Watchdog reset\n");
-+ break;
-+ case 0x10:
-+ printk(" - Software reset\n");
-+ break;
-+ default:
-+ printk(" - Unknown reset cause\n");
-+ }
-+ reset_reason = tmpword;
-+ OCELOT_FPGA_WRITE(0xff, RESET_STATUS);
-+
-+ tmpword = OCELOT_FPGA_READ(CPCI_ID);
-+ printk("cPCI ID register: 0x%02x\n", tmpword);
-+ printk(" - Slot number: %d\n", tmpword & 0x1f);
-+ printk(" - PCI bus present: %s\n", tmpword & 0x40 ? "yes" : "no");
-+ printk(" - System Slot: %s\n", tmpword & 0x20 ? "yes" : "no");
-+
-+ tmpword = OCELOT_FPGA_READ(BOARD_STATUS);
-+ printk("Board Status register: 0x%02x\n", tmpword);
-+ printk(" - User jumper: %s\n", (tmpword & 0x80)?"installed":"absent");
-+ printk(" - Boot flash write jumper: %s\n", (tmpword&0x40)?"installed":"absent");
-+ printk(" - L3 Cache size: %d MiB\n", (1<<((tmpword&12) >> 2))&~1);
-+ printk(" - SDRAM size: %d MiB\n", 1<<(6+(tmpword&3)));
-+
-+ switch(tmpword &3) {
-+ case 3:
-+ /* 512MiB */
-+ add_memory_region(0x0, 0x200<<20, BOOT_MEM_RAM);
-+ break;
-+ case 2:
-+ /* 256MiB */
-+ add_memory_region(0x0, 0x100<<20, BOOT_MEM_RAM);
-+ break;
-+ case 1:
-+ /* 128MiB */
-+ add_memory_region(0x0, 0x80<<20, BOOT_MEM_RAM);
-+ break;
-+ case 0:
-+ /* 1GiB -- needs CONFIG_HIGHMEM */
-+ add_memory_region(0x0, 0x400<<20, BOOT_MEM_RAM);
-+ break;
-+ }
-+}
-+
-+/* This needs to be one of the first initcalls, because no I/O port access
-+ can work before this */
-+static int io_base_ioremap(void)
-+{
-+ /* we're mapping PCI accesses from 0xc0000000 to 0xf0000000 */
-+ void *io_remap_range = ioremap(0xc0000000, 0x30000000);
-+
-+ if (!io_remap_range) {
-+ panic("Could not ioremap I/O port range");
-+ }
-+ printk("io_remap_range set at 0x%08x\n", (uint32_t)io_remap_range);
-+ set_io_port_base(io_remap_range - 0xc0000000);
-+
-+ return 0;
-+}
-+
-+module_init(io_base_ioremap);
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_c/uart-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/uart-irq.c
---- linux-2.4.20/arch/mips/momentum/ocelot_c/uart-irq.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_c/uart-irq.c 2002-11-11 17:05:46.000000000 -0600
-@@ -0,0 +1,149 @@
-+/*
-+ * Copyright 2002 Momentum Computer
-+ * Author: mdharm@momenco.com
-+ *
-+ * arch/mips/momentum/ocelot_c/uart-irq.c
-+ * Interrupt routines for UARTs. Interrupt numbers are assigned from
-+ * 80 to 81 (2 interrupt sources).
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/interrupt.h>
-+#include <linux/kernel.h>
-+#include <asm/ptrace.h>
-+#include <linux/config.h>
-+#include <linux/sched.h>
-+#include <linux/kernel_stat.h>
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include "ocelot_c_fpga.h"
-+
-+extern unsigned int do_IRQ(int irq, struct pt_regs *regs);
-+
-+static inline int ls1bit8(unsigned int x)
-+{
-+ int b = 7, s;
-+
-+ s = 4; if (((unsigned char)(x << 4)) == 0) s = 0; b -= s; x <<= s;
-+ s = 2; if (((unsigned char)(x << 2)) == 0) s = 0; b -= s; x <<= s;
-+ s = 1; if (((unsigned char)(x << 1)) == 0) s = 0; b -= s;
-+
-+ return b;
-+}
-+
-+/* mask off an interrupt -- 0 is enable, 1 is disable */
-+static inline void mask_uart_irq(unsigned int irq)
-+{
-+ uint8_t value;
-+
-+ value = OCELOT_FPGA_READ(UART_INTMASK);
-+ value |= 1 << (irq - 74);
-+ OCELOT_FPGA_WRITE(value, UART_INTMASK);
-+
-+ /* read the value back to assure that it's really been written */
-+ value = OCELOT_FPGA_READ(UART_INTMASK);
-+}
-+
-+/* unmask an interrupt -- 0 is enable, 1 is disable */
-+static inline void unmask_uart_irq(unsigned int irq)
-+{
-+ uint8_t value;
-+
-+ value = OCELOT_FPGA_READ(UART_INTMASK);
-+ value &= ~(1 << (irq - 74));
-+ OCELOT_FPGA_WRITE(value, UART_INTMASK);
-+
-+ /* read the value back to assure that it's really been written */
-+ value = OCELOT_FPGA_READ(UART_INTMASK);
-+}
-+
-+/*
-+ * Enables the IRQ in the FPGA
-+ */
-+static void enable_uart_irq(unsigned int irq)
-+{
-+ unmask_uart_irq(irq);
-+}
-+
-+/*
-+ * Initialize the IRQ in the FPGA
-+ */
-+static unsigned int startup_uart_irq(unsigned int irq)
-+{
-+ unmask_uart_irq(irq);
-+ return 0;
-+}
-+
-+/*
-+ * Disables the IRQ in the FPGA
-+ */
-+static void disable_uart_irq(unsigned int irq)
-+{
-+ mask_uart_irq(irq);
-+}
-+
-+/*
-+ * Masks and ACKs an IRQ
-+ */
-+static void mask_and_ack_uart_irq(unsigned int irq)
-+{
-+ mask_uart_irq(irq);
-+}
-+
-+/*
-+ * End IRQ processing
-+ */
-+static void end_uart_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED|IRQ_INPROGRESS)))
-+ unmask_uart_irq(irq);
-+}
-+
-+/*
-+ * Interrupt handler for interrupts coming from the FPGA chip.
-+ */
-+void ll_uart_irq(struct pt_regs *regs)
-+{
-+ unsigned int irq_src, irq_mask;
-+
-+ /* read the interrupt status registers */
-+ irq_src = OCELOT_FPGA_READ(UART_INTSTAT);
-+ irq_mask = OCELOT_FPGA_READ(UART_INTMASK);
-+
-+ /* mask for just the interrupts we want */
-+ irq_src &= ~irq_mask;
-+
-+ do_IRQ(ls1bit8(irq_src) + 74, regs);
-+}
-+
-+#define shutdown_uart_irq disable_uart_irq
-+
-+struct hw_interrupt_type uart_irq_type = {
-+ "UART/FPGA",
-+ startup_uart_irq,
-+ shutdown_uart_irq,
-+ enable_uart_irq,
-+ disable_uart_irq,
-+ mask_and_ack_uart_irq,
-+ end_uart_irq,
-+ NULL
-+};
-+
-+void uart_irq_init(void)
-+{
-+ /* Reset irq handlers pointers to NULL */
-+ irq_desc[80].status = IRQ_DISABLED;
-+ irq_desc[80].action = 0;
-+ irq_desc[80].depth = 2;
-+ irq_desc[80].handler = &uart_irq_type;
-+
-+ irq_desc[81].status = IRQ_DISABLED;
-+ irq_desc[81].action = 0;
-+ irq_desc[81].depth = 2;
-+ irq_desc[81].handler = &uart_irq_type;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Entries
---- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Entries 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1.2.1/Thu Nov 7 00:06:20 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.3/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.1.2.1/Mon Sep 2 16:11:44 2002/-ko/Tlinux_2_4_20
-+/gt-irq.c/1.1.2.2/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+/gt64240.h/1.1.2.2/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+/gt64240_dep.h/1.1.2.2/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.1.2.2/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.2/Mon Dec 2 00:24:50 2002/-ko/Tlinux_2_4_20
-+/ocelot_pld.h/1.1.2.2/Thu Nov 7 00:06:20 2002/-ko/Tlinux_2_4_20
-+/pci-irq.c/1.1.2.2/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.1/Mon Sep 2 16:11:44 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1.2.1/Mon Sep 2 16:11:44 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.4/Mon Dec 2 00:24:50 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Repository
---- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Repository 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/momentum/ocelot_g
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Root
---- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Root 2005-01-06 23:00:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Tag
---- linux-2.4.20/arch/mips/momentum/ocelot_g/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/CVS/Tag 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/.cvsignore
---- linux-2.4.20/arch/mips/momentum/ocelot_g/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/.cvsignore 2002-11-06 18:06:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/irq.c
---- linux-2.4.20/arch/mips/momentum/ocelot_g/irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/irq.c 2002-12-01 18:24:50.000000000 -0600
-@@ -60,18 +60,18 @@
- /* do the low 8 bits first */
- clr_mask = 0xff & clr_mask_in;
- set_mask = 0xff & set_mask_in;
-- status = read_32bit_cp0_register(CP0_STATUS);
-+ status = read_c0_status();
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
-- write_32bit_cp0_register(CP0_STATUS, status);
-+ write_c0_status(status);
-
- /* do the high 8 bits */
- clr_mask = 0xff & (clr_mask_in >> 8);
- set_mask = 0xff & (set_mask_in >> 8);
-- status = read_32bit_cp0_set1_register(CP0_S1_INTCONTROL);
-+ status = read_c0_intcontrol();
- status &= ~((clr_mask & 0xFF) << 8);
- status |= (set_mask & 0xFF) << 8;
-- write_32bit_cp0_set1_register(CP0_S1_INTCONTROL, status);
-+ write_c0_intrcontrol(status);
- }
-
- static inline void mask_irq(unsigned int irq)
-@@ -145,7 +145,7 @@
- * Clear all of the interrupts while we change the able around a bit.
- * int-handler is not on bootstrap
- */
-- clear_cp0_status(ST0_IM | ST0_BEV);
-+ clear_c0_status(ST0_IM | ST0_BEV);
- __cli();
-
- /* Sets the first-level interrupt dispatcher. */
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/Makefile
---- linux-2.4.20/arch/mips/momentum/ocelot_g/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/Makefile 2002-11-13 04:00:14.000000000 -0600
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET:= ocelot_g.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/ocelot_pld.h linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/ocelot_pld.h
---- linux-2.4.20/arch/mips/momentum/ocelot_g/ocelot_pld.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/ocelot_pld.h 2002-11-06 18:06:20.000000000 -0600
-@@ -8,11 +8,7 @@
- #ifndef __MOMENCO_OCELOT_PLD_H__
- #define __MOMENCO_OCELOT_PLD_H__
-
--#if 0
--#define OCELOT_CS0_ADDR (0xe0020000)
--#else
- #define OCELOT_CS0_ADDR (0xfc000000)
--#endif
-
- #define OCELOT_REG_BOARDREV (0)
- #define OCELOT_REG_PLD1_ID (1)
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/pci.c
---- linux-2.4.20/arch/mips/momentum/ocelot_g/pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -405,7 +405,7 @@
- return 0;
- }
-
--int pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- return pcibios_enable_resources(dev);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/momentum/ocelot_g/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/setup.c
---- linux-2.4.20/arch/mips/momentum/ocelot_g/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/momentum/ocelot_g/setup.c 2002-12-01 18:24:50.000000000 -0600
-@@ -70,6 +70,10 @@
-
- extern struct rtc_ops no_rtc_ops;
-
-+#ifdef CONFIG_GALILLEO_GT64240_ETH
-+extern unsigned char prom_mac_addr_base[6];
-+#endif
-+
- unsigned long gt64240_base;
-
- /* These functions are used for rebooting or halting the machine*/
-@@ -139,6 +143,11 @@
- /* do handoff reconfiguration */
- PMON_v2_setup();
-
-+#ifdef CONFIG_GALILLEO_GT64240_ETH
-+ /* get the mac addr */
-+ memcpy(prom_mac_addr_base, (void*)0xfc807cf2, 6);
-+#endif
-+
- /* Turn off the Bit-Error LED */
- OCELOT_PLD_WRITE(0x80, INTCLR);
-
-@@ -213,11 +222,11 @@
- GT_WRITE(0, tmp | (1<<14));
-
- /* Enable the L3 cache in the CPU */
-- set_cp0_config(1<<12 /* CONF_TE */);
-+ set_c0_config(1<<12 /* CONF_TE */);
-
- /* Clear the cache */
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
-
- for (i=0; i < size; i+= 4096) {
- __asm__ __volatile__ (
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Entries
---- linux-2.4.20/arch/mips/philips/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1 @@
-+D/nino////
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Repository
---- linux-2.4.20/arch/mips/philips/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Repository 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/philips
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Root
---- linux-2.4.20/arch/mips/philips/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Root 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Tag
---- linux-2.4.20/arch/mips/philips/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/CVS/Tag 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Entries
---- linux-2.4.20/arch/mips/philips/nino/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Entries 2005-01-06 23:08:20.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Thu Feb 22 04:12:12 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/TODO/1.2/Sat Nov 24 14:03:19 2001/-ko/Tlinux_2_4_20
-+/int-handler.S/1.4/Wed Oct 31 04:18:24 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.9.2.4/Mon Dec 2 00:24:50 2002/-ko/Tlinux_2_4_20
-+/power.c/1.4.2.1/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.6.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.10.2.2/Wed Jun 26 12:22:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Repository
---- linux-2.4.20/arch/mips/philips/nino/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Repository 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/philips/nino
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Root
---- linux-2.4.20/arch/mips/philips/nino/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Root 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Tag
---- linux-2.4.20/arch/mips/philips/nino/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/CVS/Tag 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/.cvsignore
---- linux-2.4.20/arch/mips/philips/nino/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/.cvsignore 2001-02-21 22:12:12.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/irq.c
---- linux-2.4.20/arch/mips/philips/nino/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/irq.c 2002-12-01 18:24:50.000000000 -0600
-@@ -9,6 +9,7 @@
- *
- * Interrupt service routines for Philips Nino
- */
-+#include <linux/config.h>
- #include <linux/init.h>
- #include <linux/sched.h>
- #include <linux/interrupt.h>
-@@ -112,7 +113,7 @@
-
- static void enable_irq4(unsigned int irq)
- {
-- set_cp0_status(STATUSF_IP4);
-+ set_c0_status(STATUSF_IP4);
- if (irq == 2) {
- outl(inl(TX3912_INT2_CLEAR) | TX3912_INT2_UARTA_TX_BITS,
- TX3912_INT2_CLEAR);
-@@ -130,7 +131,7 @@
-
- static void disable_irq4(unsigned int irq)
- {
-- clear_cp0_status(STATUSF_IP4);
-+ clear_c0_status(STATUSF_IP4);
- }
-
- #define shutdown_irq4 disable_irq4
-@@ -198,7 +199,7 @@
- unsigned int i;
-
- /* Disable all hardware interrupts */
-- change_cp0_status(ST0_IM, 0x00);
-+ change_c0_status(ST0_IM, 0x00);
-
- /* Clear interrupts */
- outl(0xffffffff, TX3912_INT1_CLEAR);
-@@ -243,7 +244,7 @@
- TX3912_INT6_ENABLE);
-
- /* Enable all interrupts */
-- change_cp0_status(ST0_IM, ALLINTS);
-+ change_c0_status(ST0_IM, ALLINTS);
- }
-
- void (*irq_setup)(void);
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/Makefile
---- linux-2.4.20/arch/mips/philips/nino/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(AFLAGS) $< -o $@
--.S.o:
-- $(CC) $(AFLAGS) -c $< -o $@
-+USE_STANDARD_AS_RULE := true
-
- O_TARGET := nino.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/power.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/power.c
---- linux-2.4.20/arch/mips/philips/nino/power.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/power.c 2002-08-05 18:53:35.000000000 -0500
-@@ -19,7 +19,7 @@
- outl(inl(TX3912_POWER_CTRL) | TX3912_POWER_CTRL_STOPCPU,
- TX3912_POWER_CTRL);
-
-- /*
-+ /*
- * We wait until an interrupt happens...
- */
-
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/prom.c
---- linux-2.4.20/arch/mips/philips/nino/prom.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/prom.c 2002-08-05 18:53:35.000000000 -0500
-@@ -6,7 +6,7 @@
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
-- *
-+ *
- * Early initialization code for the Philips Nino
- */
- #include <linux/config.h>
-@@ -60,8 +60,8 @@
- * memory and mark it as reserved.
- */
- free_end = (mem_size - tx3912fb_size) & PAGE_MASK;
-- add_memory_region(0, free_end, BOOT_MEM_RAM);
-- add_memory_region(free_end, (mem_size - free_end), BOOT_MEM_RESERVED);
-+ add_memory_region(0, free_end, BOOT_MEM_RAM);
-+ add_memory_region(free_end, (mem_size - free_end), BOOT_MEM_RESERVED);
-
- /*
- * Calculate physical and virtual addresses for
-@@ -71,7 +71,7 @@
- tx3912fb_vaddr = KSEG1ADDR(free_end);
- }
- #else
-- add_memory_region(0, mem_size, BOOT_MEM_RAM);
-+ add_memory_region(0, mem_size, BOOT_MEM_RAM);
- #endif
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/philips/nino/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/setup.c
---- linux-2.4.20/arch/mips/philips/nino/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/philips/nino/setup.c 2002-06-26 07:22:42.000000000 -0500
-@@ -9,6 +9,7 @@
- *
- * Interrupt and exception initialization for Philips Nino
- */
-+#include <linux/config.h>
- #include <linux/console.h>
- #include <linux/init.h>
- #include <linux/interrupt.h>
-@@ -18,6 +19,7 @@
- #include <asm/irq.h>
- #include <asm/reboot.h>
- #include <asm/time.h>
-+#include <asm/traps.h>
- #include <asm/tx3912.h>
-
- static void nino_machine_restart(char *command)
-@@ -80,6 +82,10 @@
- setup_irq(0, irq);
- }
-
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+
- void __init nino_setup(void)
- {
- extern void nino_irq_setup(void);
-diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Entries
---- linux-2.4.20/arch/mips/ramdisk/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Entries 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.1/Tue Nov 13 05:35:54 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Thu Oct 3 01:27:58 2002/-ko/Tlinux_2_4_20
-+/ld.script/1.1/Tue Nov 13 05:35:54 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Repository
---- linux-2.4.20/arch/mips/ramdisk/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Repository 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/ramdisk
-diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Root
---- linux-2.4.20/arch/mips/ramdisk/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Root 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Tag
---- linux-2.4.20/arch/mips/ramdisk/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/CVS/Tag 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/.cvsignore
---- linux-2.4.20/arch/mips/ramdisk/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/.cvsignore 2001-11-12 23:35:54.000000000 -0600
-@@ -0,0 +1 @@
-+ramdisk.gz
-diff -urNd -urNd linux-2.4.20/arch/mips/ramdisk/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/Makefile
---- linux-2.4.20/arch/mips/ramdisk/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/ramdisk/Makefile 2002-10-02 20:27:58.000000000 -0500
-@@ -7,9 +7,9 @@
- #
-
- O_FORMAT = $(shell $(OBJDUMP) -i | head -2 | grep elf32)
-+img = $(CONFIG_EMBEDDED_RAMDISK_IMAGE)
- ramdisk.o: ramdisk.gz ld.script
- echo "O_FORMAT: " $(O_FORMAT)
-- $(LD) -T ld.script -b binary --oformat $(O_FORMAT) -o $@ ramdisk.gz
-+ $(LD) -T ld.script -b binary --oformat $(O_FORMAT) -o $@ $(img)
-
- include $(TOPDIR)/Rules.make
--
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Entries
---- linux-2.4.20/arch/mips/sgi-ip22/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Entries 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Tue Nov 27 15:57:11 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.6/Thu Jan 9 13:25:37 2003/-ko/Tlinux_2_4_20
-+/ip22-berr.c/1.1.2.3/Tue Jan 28 05:36:27 2003/-ko/Tlinux_2_4_20
-+/ip22-eisa.c/1.1.2.2/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/ip22-hpc.c/1.1.2.3/Tue Jan 28 11:55:51 2003/-ko/Tlinux_2_4_20
-+/ip22-int.c/1.2.2.7/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/ip22-irq.S/1.1.2.3/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip22-mc.c/1.1.2.5/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip22-reset.c/1.1.2.5/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/ip22-rtc.c/1.1/Tue Nov 27 15:57:11 2001/-ko/Tlinux_2_4_20
-+/ip22-sc.c/1.1.2.1/Tue Jul 2 11:46:32 2002/-ko/Tlinux_2_4_20
-+/ip22-setup.c/1.1.2.15/Thu Jan 9 13:25:37 2003/-ko/Tlinux_2_4_20
-+/ip22-system.c/1.1.2.8/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/ip22-time.c/1.1.2.12/Thu Jan 9 13:25:37 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Repository
---- linux-2.4.20/arch/mips/sgi-ip22/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Repository 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sgi-ip22
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Root
---- linux-2.4.20/arch/mips/sgi-ip22/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Root 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Tag
---- linux-2.4.20/arch/mips/sgi-ip22/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/CVS/Tag 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/.cvsignore
---- linux-2.4.20/arch/mips/sgi-ip22/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/.cvsignore 2001-11-27 09:57:11.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-berr.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-berr.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-berr.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-berr.c 2003-01-27 23:36:27.000000000 -0600
-@@ -15,12 +15,11 @@
- #include <asm/sgi/sgimc.h>
- #include <asm/sgi/sgihpc.h>
-
--unsigned int cpu_err_stat; /* Status reg for CPU */
--unsigned int gio_err_stat; /* Status reg for GIO */
--unsigned int cpu_err_addr; /* Error address reg for CPU */
--unsigned int gio_err_addr; /* Error address reg for GIO */
-
--volatile int nofault;
-+static unsigned int cpu_err_stat; /* Status reg for CPU */
-+static unsigned int gio_err_stat; /* Status reg for GIO */
-+static unsigned int cpu_err_addr; /* Error address reg for CPU */
-+static unsigned int gio_err_addr; /* Error address reg for GIO */
-
- static void save_and_clear_buserr(void)
- {
-@@ -33,6 +32,35 @@
- mcmisc_regs->cstat = mcmisc_regs->gstat = 0;
- }
-
-+#define GIO_ERRMASK 0xff00
-+#define CPU_ERRMASK 0x3f00
-+
-+static void print_buserr(void)
-+{
-+ if (cpu_err_stat & CPU_ERRMASK)
-+ printk(KERN_ALERT "CPU error 0x%x<%s%s%s%s%s%s> @ 0x%08x\n",
-+ cpu_err_stat,
-+ cpu_err_stat & SGIMC_CSTAT_RD ? "RD " : "",
-+ cpu_err_stat & SGIMC_CSTAT_PAR ? "PAR " : "",
-+ cpu_err_stat & SGIMC_CSTAT_ADDR ? "ADDR " : "",
-+ cpu_err_stat & SGIMC_CSTAT_SYSAD_PAR ? "SYSAD " : "",
-+ cpu_err_stat & SGIMC_CSTAT_SYSCMD_PAR ? "SYSCMD " : "",
-+ cpu_err_stat & SGIMC_CSTAT_BAD_DATA ? "BAD_DATA " : "",
-+ cpu_err_addr);
-+ if (gio_err_stat & GIO_ERRMASK)
-+ printk(KERN_ALERT "GIO error 0x%x:<%s%s%s%s%s%s%s%s> @ 0x08%x\n",
-+ gio_err_stat,
-+ gio_err_stat & SGIMC_GSTAT_RD ? "RD " : "",
-+ gio_err_stat & SGIMC_GSTAT_WR ? "WR " : "",
-+ gio_err_stat & SGIMC_GSTAT_TIME ? "TIME " : "",
-+ gio_err_stat & SGIMC_GSTAT_PROM ? "PROM " : "",
-+ gio_err_stat & SGIMC_GSTAT_ADDR ? "ADDR " : "",
-+ gio_err_stat & SGIMC_GSTAT_BC ? "BC " : "",
-+ gio_err_stat & SGIMC_GSTAT_PIO_RD ? "PIO_RD " : "",
-+ gio_err_stat & SGIMC_GSTAT_PIO_WR ? "PIO_WR " : "",
-+ gio_err_addr);
-+}
-+
- /*
- * MC sends an interrupt whenever bus or parity errors occur. In addition,
- * if the error happened during a CPU read, it also asserts the bus error
-@@ -43,33 +71,18 @@
- void be_ip22_interrupt(int irq, struct pt_regs *regs)
- {
- save_and_clear_buserr();
-- printk(KERN_ALERT "Bus error, epc == %08lx, ra == %08lx\n",
-- regs->cp0_epc, regs->regs[31]);
-- die_if_kernel("Oops", regs);
-- force_sig(SIGBUS, current);
-+ print_buserr();
-+ panic("Bus error, epc == %08lx, ra == %08lx",
-+ regs->cp0_epc, regs->regs[31]);
- }
-
- int be_ip22_handler(struct pt_regs *regs, int is_fixup)
- {
- save_and_clear_buserr();
-- if (nofault) {
-- nofault = 0;
-- compute_return_epc(regs);
-- return MIPS_BE_DISCARD;
-- }
-- return MIPS_BE_FIXUP;
--}
--
--int ip22_baddr(unsigned int *val, unsigned long addr)
--{
-- nofault = 1;
-- *val = *(volatile unsigned int *) addr;
-- __asm__ __volatile__("nop;nop;nop;nop");
-- if (nofault) {
-- nofault = 0;
-- return 0;
-- }
-- return -EFAULT;
-+ if (is_fixup)
-+ return MIPS_BE_FIXUP;
-+ print_buserr();
-+ return MIPS_BE_FATAL;
- }
-
- void __init bus_error_init(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-eisa.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-eisa.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-eisa.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-eisa.c 2002-12-18 13:11:09.000000000 -0600
-@@ -153,14 +153,13 @@
- }
-
- static struct hw_interrupt_type ip22_eisa1_irq_type = {
-- "IP22 EISA",
-- startup_eisa1_irq,
-- shutdown_eisa1_irq,
-- enable_eisa1_irq,
-- disable_eisa1_irq,
-- mask_and_ack_eisa1_irq,
-- end_eisa1_irq,
-- NULL
-+ .typename = "IP22 EISA",
-+ .startup = startup_eisa1_irq,
-+ .shutdown = shutdown_eisa1_irq,
-+ .enable = enable_eisa1_irq,
-+ .disable = disable_eisa1_irq,
-+ .ack = mask_and_ack_eisa1_irq,
-+ .end = end_eisa1_irq,
- };
-
- static void enable_eisa2_irq(unsigned int irq)
-@@ -217,22 +216,23 @@
- }
-
- static struct hw_interrupt_type ip22_eisa2_irq_type = {
-- "IP22 EISA",
-- startup_eisa2_irq,
-- shutdown_eisa2_irq,
-- enable_eisa2_irq,
-- disable_eisa2_irq,
-- mask_and_ack_eisa2_irq,
-- end_eisa2_irq,
-- NULL
-+ .typename = "IP22 EISA",
-+ .startup = startup_eisa2_irq,
-+ .shutdown = shutdown_eisa2_irq,
-+ .enable = enable_eisa2_irq,
-+ .disable = disable_eisa2_irq,
-+ .ack = mask_and_ack_eisa2_irq,
-+ .end = end_eisa2_irq,
- };
-
- static struct irqaction eisa_action = {
-- ip22_eisa_intr, 0, 0, "EISA", NULL, NULL
-+ .handler = ip22_eisa_intr,
-+ .name = "EISA",
- };
-
- static struct irqaction cascade_action = {
-- no_action, 0, 0, "EISA cascade", NULL, NULL
-+ .handler = no_action,
-+ .name = "EISA cascade",
- };
-
- int __init ip22_eisa_init(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-gio.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-gio.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-gio.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-gio.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,153 +0,0 @@
--/*
-- * ip22-gio.c: Support for GIO64 bus (inspired by PCI code)
-- *
-- * Copyright (C) 2002 Ladislav Michl
-- */
--
--#include <linux/kernel.h>
--#include <linux/types.h>
--#include <linux/slab.h>
--#include <linux/init.h>
--#include <linux/proc_fs.h>
--
--#include <asm/addrspace.h>
--#include <asm/sgi/sgimc.h>
--#include <asm/sgi/sgigio.h>
--
--#define GIO_PIO_MAP_BASE 0x1f000000L
--#define GIO_PIO_MAP_SIZE (16 * 1024*1024)
--
--#define GIO_ADDR_GFX 0x1f000000L
--#define GIO_ADDR_GIO1 0x1f400000L
--#define GIO_ADDR_GIO2 0x1f600000L
--
--#define GIO_GFX_MAP_SIZE (4 * 1024*1024)
--#define GIO_GIO1_MAP_SIZE (2 * 1024*1024)
--#define GIO_GIO2_MAP_SIZE (4 * 1024*1024)
--
--#define GIO_NO_DEVICE 0x80
--
--static struct gio_dev gio_slot[GIO_NUM_SLOTS] = {
-- {
-- 0,
-- 0,
-- 0,
-- GIO_NO_DEVICE,
-- GIO_SLOT_GFX,
-- GIO_ADDR_GFX,
-- GIO_GFX_MAP_SIZE,
-- NULL,
-- "GFX"
-- },
-- {
-- 0,
-- 0,
-- 0,
-- GIO_NO_DEVICE,
-- GIO_SLOT_GIO1,
-- GIO_ADDR_GIO1,
-- GIO_GIO1_MAP_SIZE,
-- NULL,
-- "EXP0"
-- },
-- {
-- 0,
-- 0,
-- 0,
-- GIO_NO_DEVICE,
-- GIO_SLOT_GIO2,
-- GIO_ADDR_GIO2,
-- GIO_GIO2_MAP_SIZE,
-- NULL,
-- "EXP1"
-- }
--};
--
--static int gio_read_proc(char *buf, char **start, off_t off,
-- int count, int *eof, void *data)
--{
-- int i;
-- char *p = buf;
--
-- p += sprintf(p, "GIO devices found:\n");
-- for (i = 0; i < GIO_NUM_SLOTS; i++) {
-- if (gio_slot[i].flags & GIO_NO_DEVICE)
-- continue;
-- p += sprintf(p, " Slot %s, DeviceId 0x%02x\n",
-- gio_slot[i].slot_name, gio_slot[i].device);
-- p += sprintf(p, " BaseAddr 0x%08lx, MapSize 0x%08x\n",
-- gio_slot[i].base_addr, gio_slot[i].map_size);
-- }
--
-- return p - buf;
--}
--
--void create_gio_proc_entry(void)
--{
-- create_proc_read_entry("gio", 0, NULL, gio_read_proc, NULL);
--}
--
--/**
-- * gio_find_device - begin or continue searching for a GIO device by device id
-- * @device: GIO device id to match, or %GIO_ANY_ID to match all device ids
-- * @from: Previous GIO device found in search, or %NULL for new search.
-- *
-- * Iterates through the list of known GIO devices. If a GIO device is found
-- * with a matching @device, a pointer to its device structure is returned.
-- * Otherwise, %NULL is returned.
-- * A new search is initiated by passing %NULL to the @from argument.
-- * Otherwise if @from is not %NULL, searches continue from next device.
-- */
--struct gio_dev *
--gio_find_device(unsigned char device, const struct gio_dev *from)
--{
-- int i;
--
-- for (i = (from) ? from->slot_number : 0; i < GIO_NUM_SLOTS; i++)
-- if (!(gio_slot[i].flags & GIO_NO_DEVICE) &&
-- (device == GIO_ANY_ID || device == gio_slot[i].device))
-- return &gio_slot[i];
--
-- return NULL;
--}
--
--#define GIO_IDCODE(x) (x & 0x7f)
--#define GIO_ALL_BITS_VALID 0x80
--#define GIO_REV(x) ((x >> 8) & 0xff)
--#define GIO_GIO_SIZE_64 0x10000
--#define GIO_ROM_PRESENT 0x20000
--#define GIO_VENDOR_CODE(x) ((x >> 18) & 0x3fff)
--
--extern int ip22_baddr(unsigned int *val, unsigned long addr);
--
--/**
-- * sgigio_init - scan the GIO space and figure out what hardware is actually
-- * present.
-- */
--void __init sgigio_init(void)
--{
-- unsigned int i, id, found = 0;
--
-- printk("GIO: Scanning for GIO cards...\n");
-- for (i = 0; i < GIO_NUM_SLOTS; i++) {
-- if (ip22_baddr(&id, KSEG1ADDR(gio_slot[i].base_addr)))
-- continue;
--
-- found = 1;
-- gio_slot[i].device = GIO_IDCODE(id);
-- if (id & GIO_ALL_BITS_VALID) {
-- gio_slot[i].revision = GIO_REV(id);
-- gio_slot[i].vendor = GIO_VENDOR_CODE(id);
-- gio_slot[i].flags =
-- (id & GIO_GIO_SIZE_64) ? GIO_IFACE_64 : 0 |
-- (id & GIO_ROM_PRESENT) ? GIO_HAS_ROM : 0;
-- } else
-- gio_slot[i].flags = GIO_VALID_ID_ONLY;
--
-- printk("GIO: Card 0x%02x @ 0x%08lx\n", gio_slot[i].device,
-- gio_slot[i].base_addr);
-- }
--
-- if (!found)
-- printk("GIO: No GIO cards present.\n");
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-hpc.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-hpc.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-hpc.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-hpc.c 2003-01-28 05:55:51.000000000 -0600
-@@ -52,11 +52,9 @@
- if ((sid & 1) == 0 ) {
- HPC_DEBUG("GUINESS ");
- sgi_guiness = 1;
-- mips_machtype = MACH_SGI_INDY;
-- system_type = "SGI Indy";
-+ system_type = "SGI Indy";
- } else {
- HPC_DEBUG("FULLHOUSE ");
-- mips_machtype = MACH_SGI_INDIGO2;
- sgi_guiness = 0;
- system_type = "SGI Indigo2";
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-int.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-int.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-int.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-int.c 2002-12-18 13:11:09.000000000 -0600
-@@ -79,14 +79,13 @@
- }
-
- static struct hw_interrupt_type ip22_local0_irq_type = {
-- "IP22 local 0",
-- startup_local0_irq,
-- shutdown_local0_irq,
-- enable_local0_irq,
-- disable_local0_irq,
-- mask_and_ack_local0_irq,
-- end_local0_irq,
-- NULL
-+ .typename = "IP22 local 0",
-+ .startup = startup_local0_irq,
-+ .shutdown = shutdown_local0_irq,
-+ .enable = enable_local0_irq,
-+ .disable = disable_local0_irq,
-+ .ack = mask_and_ack_local0_irq,
-+ .end = end_local0_irq,
- };
-
- static void enable_local1_irq(unsigned int irq)
-@@ -126,14 +125,13 @@
- }
-
- static struct hw_interrupt_type ip22_local1_irq_type = {
-- "IP22 local 1",
-- startup_local1_irq,
-- shutdown_local1_irq,
-- enable_local1_irq,
-- disable_local1_irq,
-- mask_and_ack_local1_irq,
-- end_local1_irq,
-- NULL
-+ .typename = "IP22 local 1",
-+ .startup = startup_local1_irq,
-+ .shutdown = shutdown_local1_irq,
-+ .enable = enable_local1_irq,
-+ .disable = disable_local1_irq,
-+ .ack = mask_and_ack_local1_irq,
-+ .end = end_local1_irq,
- };
-
- static void enable_local2_irq(unsigned int irq)
-@@ -173,14 +171,13 @@
- }
-
- static struct hw_interrupt_type ip22_local2_irq_type = {
-- "IP22 local 2",
-- startup_local2_irq,
-- shutdown_local2_irq,
-- enable_local2_irq,
-- disable_local2_irq,
-- mask_and_ack_local2_irq,
-- end_local2_irq,
-- NULL
-+ .typename = "IP22 local 2",
-+ .startup = startup_local2_irq,
-+ .shutdown = shutdown_local2_irq,
-+ .enable = enable_local2_irq,
-+ .disable = disable_local2_irq,
-+ .ack = mask_and_ack_local2_irq,
-+ .end = end_local2_irq,
- };
-
- static void enable_local3_irq(unsigned int irq)
-@@ -224,14 +221,13 @@
- }
-
- static struct hw_interrupt_type ip22_local3_irq_type = {
-- "IP22 local 3",
-- startup_local3_irq,
-- shutdown_local3_irq,
-- enable_local3_irq,
-- disable_local3_irq,
-- mask_and_ack_local3_irq,
-- end_local3_irq,
-- NULL
-+ .typename = "IP22 local 3",
-+ .startup = startup_local3_irq,
-+ .shutdown = shutdown_local3_irq,
-+ .enable = enable_local3_irq,
-+ .disable = disable_local3_irq,
-+ .ack = mask_and_ack_local3_irq,
-+ .end = end_local3_irq,
- };
-
- void indy_local0_irqdispatch(struct pt_regs *regs)
-@@ -292,17 +288,36 @@
- irq_exit(cpu, irq);
- }
-
--static struct irqaction local0_cascade =
-- { no_action, SA_INTERRUPT, 0, "local0 cascade", NULL, NULL };
--static struct irqaction local1_cascade =
-- { no_action, SA_INTERRUPT, 0, "local1 cascade", NULL, NULL };
--static struct irqaction buserr =
-- { no_action, SA_INTERRUPT, 0, "Bus Error", NULL, NULL };
--static struct irqaction map0_cascade =
-- { no_action, SA_INTERRUPT, 0, "mappable0 cascade", NULL, NULL };
-+static struct irqaction local0_cascade = {
-+ .handler = no_action,
-+ .flags = SA_INTERRUPT,
-+ .name = "local0 cascade",
-+};
-+
-+static struct irqaction local1_cascade = {
-+ .handler = no_action,
-+ .flags = SA_INTERRUPT,
-+ .name = "local1 cascade",
-+};
-+
-+static struct irqaction buserr = {
-+ .handler = no_action,
-+ .flags = SA_INTERRUPT,
-+ .name = "Bus Error",
-+};
-+
-+static struct irqaction map0_cascade = {
-+ .handler = no_action,
-+ .flags = SA_INTERRUPT,
-+ .name = "mapable0 cascade",
-+};
-+
- #ifdef I_REALLY_NEED_THIS_IRQ
--static struct irqaction map1_cascade =
-- { no_action, SA_INTERRUPT, 0, "mappable1 cascade", NULL, NULL };
-+static struct irqaction map1_cascade = {
-+ .handler = no_action,
-+ .flags = SA_INTERRUPT,
-+ .name = "mapable1 cascade",
-+};
- #endif
-
- extern void mips_cpu_irq_init(unsigned int irq_base);
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-reset.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-reset.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-reset.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-reset.c 2002-12-18 13:11:09.000000000 -0600
-@@ -220,9 +220,7 @@
- }
-
- static struct notifier_block panic_block = {
-- panic_event,
-- NULL,
-- 0
-+ .notifier_call = panic_event,
- };
-
- void indy_reboot_setup(void)
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-setup.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-setup.c 2003-01-09 07:25:37.000000000 -0600
-@@ -47,7 +47,6 @@
- extern struct rtc_ops indy_rtc_ops;
- extern void indy_reboot_setup(void);
- extern void sgi_volume_set(unsigned char);
--extern void create_gio_proc_entry(void);
-
- #define sgi_kh ((struct hpc_keyb *) &(hpc3mregs->kbdmouse0))
-
-@@ -70,11 +69,6 @@
- */
- indy_reboot_setup();
-
-- /* Ehm, well... once David used hack above, let's add yet another.
-- * Register GIO bus proc entry here.
-- */
-- create_gio_proc_entry();
--
- return request_irq(SGI_KEYBD_IRQ, handler, 0, "keyboard", NULL);
- }
-
-@@ -162,19 +156,22 @@
- * line and "d2" for the second serial line.
- */
- ctype = ArcGetEnvironmentVariable("console");
-- if (*ctype == 'd') {
-+ if (ctype && *ctype == 'd') {
- #ifdef CONFIG_SERIAL_CONSOLE
- if(*(ctype + 1) == '2')
- console_setup("ttyS1");
- else
- console_setup("ttyS0");
- #endif
-- } else {
-+ }
- #ifdef CONFIG_ARC_CONSOLE
-- prom_flags &= PROM_FLAG_USE_AS_CONSOLE;
-- console_setup("ttyS0");
--#endif
-+ else if (!ctype || *ctype != 'g') {
-+ /* Use ARC if we don't want serial ('d') or
-+ * Newport ('g'). */
-+ prom_flags |= PROM_FLAG_USE_AS_CONSOLE;
-+ console_setup("arc");
- }
-+#endif
-
- #ifdef CONFIG_REMOTE_DEBUG
- kgdb_ttyd = prom_getcmdline();
-@@ -201,7 +198,7 @@
-
- #ifdef CONFIG_VT
- #ifdef CONFIG_SGI_NEWPORT_CONSOLE
-- {
-+ if (ctype && *ctype == 'g'){
- unsigned long *gfxinfo;
- long (*__vec)(void) = (void *) *(long *)((PROMBLOCK)->pvector + 0x20);
-
-@@ -209,29 +206,29 @@
- sgi_gfxaddr = ((gfxinfo[1] >= 0xa0000000
- && gfxinfo[1] <= 0xc0000000)
- ? gfxinfo[1] - 0xa0000000 : 0);
-- }
-- /* newport addresses? */
-- if (sgi_gfxaddr == 0x1f0f0000 || sgi_gfxaddr == 0x1f4f0000) {
-- conswitchp = &newport_con;
-
-- screen_info = (struct screen_info) {
-- 0, 0, /* orig-x, orig-y */
-- 0, /* unused */
-- 0, /* orig_video_page */
-- 0, /* orig_video_mode */
-- 160, /* orig_video_cols */
-- 0, 0, 0, /* unused, ega_bx, unused */
-- 64, /* orig_video_lines */
-- 0, /* orig_video_isVGA */
-- 16 /* orig_video_points */
-- };
-- } else {
-- conswitchp = &dummy_con;
-+ /* newport addresses? */
-+ if (sgi_gfxaddr == 0x1f0f0000 || sgi_gfxaddr == 0x1f4f0000) {
-+ conswitchp = &newport_con;
-+
-+ screen_info = (struct screen_info) {
-+ 0, 0, /* orig-x, orig-y */
-+ 0, /* unused */
-+ 0, /* orig_video_page */
-+ 0, /* orig_video_mode */
-+ 160, /* orig_video_cols */
-+ 0, 0, 0, /* unused, ega_bx, unused */
-+ 64, /* orig_video_lines */
-+ 0, /* orig_video_isVGA */
-+ 16 /* orig_video_points */
-+ };
-+ }
- }
--#else
--#ifdef CONFIG_DUMMY_CONSOLE
-- conswitchp = &dummy_con;
- #endif
-+#ifdef CONFIG_DUMMY_CONSOLE
-+ /* Either if newport console wasn't used or failed to initialize. */
-+ if(conswitchp != &newport_con)
-+ conswitchp = &dummy_con;
- #endif
- #endif
-
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-system.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-system.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-system.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-system.c 2002-12-18 13:11:09.000000000 -0600
-@@ -19,18 +19,37 @@
- int type;
- };
-
--static struct smatch sgi_cputable[] = {
-- { "MIPS-R2000", CPU_R2000 },
-- { "MIPS-R3000", CPU_R3000 },
-- { "MIPS-R3000A", CPU_R3000A },
-- { "MIPS-R4000", CPU_R4000SC },
-- { "MIPS-R4400", CPU_R4400SC },
-- { "MIPS-R4600", CPU_R4600 },
-- { "MIPS-R8000", CPU_R8000 },
-- { "MIPS-R5000", CPU_R5000 },
-- { "MIPS-R5000A", CPU_R5000A },
-- { "MIPS-R10000", CPU_R10000 }
--};
-+static struct smatch sgi_cputable[] = {{
-+ .name = "MIPS-R2000",
-+ .type = CPU_R2000,
-+},{
-+ .name = "MIPS-R3000",
-+ .type = CPU_R3000,
-+},{
-+ .name = "MIPS-R3000A",
-+ .type = CPU_R3000A,
-+},{
-+ .name = "MIPS-4000",
-+ .type = CPU_R4000SC,
-+},{
-+ .name = "MIPS-R4400",
-+ .type = CPU_R4400SC,
-+},{
-+ .name = "MIPS-R4600",
-+ .type = CPU_R4600,
-+},{
-+ .name = "MIPS-R8000",
-+ .type = CPU_R8000,
-+},{
-+ .name = "MIPS-R5000",
-+ .type = CPU_R5000,
-+},{
-+ .name = "MIPS-R5000A",
-+ .type = CPU_R5000A,
-+},{
-+ .name = "MIPS-R10000",
-+ .type = CPU_R10000,
-+}};
-
- static int __init string_to_cpu(char *s)
- {
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/ip22-time.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-time.c
---- linux-2.4.20/arch/mips/sgi-ip22/ip22-time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/ip22-time.c 2003-01-09 07:25:37.000000000 -0600
-@@ -106,14 +106,14 @@
- *tc2p = (SGINT_TCSAMP_COUNTER >> 8);
-
- /* Get initial counter invariant */
-- ct0 = read_32bit_cp0_register(CP0_COUNT);
-+ ct0 = read_c0_count();
-
- /* Latch and spin until top byte of counter2 is zero */
- do {
- *tcwp = (SGINT_TCWORD_CNT2 | SGINT_TCWORD_CLAT);
- lsb = *tc2p;
- msb = *tc2p;
-- ct1 = read_32bit_cp0_register(CP0_COUNT);
-+ ct1 = read_c0_count();
- } while(msb);
-
- /* Stop the counter. */
-@@ -180,14 +180,6 @@
- (int) (r4k_tick / 5000), (int) (r4k_tick % 5000) / 50);
-
- mips_counter_frequency = r4k_tick * HZ;
--
-- /* HACK ALERT! This get's called after traps initialization
-- * We piggyback the initialization of GIO bus here even though
-- * it is technically not related with the timer in any way.
-- * Doing it from ip22_setup wouldn't work since traps aren't
-- * initialized yet.
-- */
-- sgigio_init();
- }
-
- /* Generic SGI handler for (spurious) 8254 interrupts */
-@@ -195,7 +187,7 @@
- {
- int cpu = smp_processor_id();
- int irq = SGI_8254_0_IRQ;
-- long cnt;
-+ ULONG cnt;
- char c;
-
- irq_enter(cpu, irq);
-@@ -230,9 +222,9 @@
- irq->handler = no_action;
-
- /* set time for first interrupt */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- count += mips_counter_frequency / HZ;
-- write_32bit_cp0_register(CP0_COMPARE, count);
-+ write_c0_compare(count);
-
- /* setup irqaction */
- setup_irq(SGI_TIMER_IRQ, irq);
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip22/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/Makefile
---- linux-2.4.20/arch/mips/sgi-ip22/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip22/Makefile 2003-01-09 07:25:37.000000000 -0600
-@@ -14,8 +14,9 @@
-
- all: ip22-kern.o ip22-irq.o
-
--obj-y += ip22-mc.o ip22-hpc.o ip22-int.o ip22-irq.o ip22-time.o ip22-berr.o \
-- ip22-gio.o ip22-rtc.o ip22-reset.o ip22-system.o ip22-setup.o
-+obj-y += ip22-mc.o ip22-hpc.o ip22-int.o ip22-irq.o \
-+ ip22-time.o ip22-berr.o ip22-rtc.o \
-+ ip22-reset.o ip22-system.o ip22-setup.o
-
- obj-$(CONFIG_BOARD_SCACHE) += ip22-sc.o
- obj-$(CONFIG_IP22_EISA) += ip22-eisa.o
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Entries
---- linux-2.4.20/arch/mips/sgi-ip27/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Entries 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.3/Fri Nov 29 02:13:32 2002/-ko/Tlinux_2_4_20
-+/TODO/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-berr.c/1.1.2.3/Sun Sep 15 23:37:48 2002/-ko/Tlinux_2_4_20
-+/ip27-console.c/1.1.2.4/Tue Nov 26 12:39:36 2002/-ko/Tlinux_2_4_20
-+/ip27-init.c/1.1.2.5/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+/ip27-irq-glue.S/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/ip27-irq.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-klconfig.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-klnuma.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-memory.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-nmi.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-pci.c/1.1.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/ip27-reset.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip27-rtc.c/1.1.2.5/Fri Nov 29 02:13:33 2002/-ko/Tlinux_2_4_20
-+/ip27-setup.c/1.1.2.4/Fri Nov 29 00:06:30 2002/-ko/Tlinux_2_4_20
-+/ip27-timer.c/1.1.2.4/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Repository
---- linux-2.4.20/arch/mips/sgi-ip27/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Repository 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sgi-ip27
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Root
---- linux-2.4.20/arch/mips/sgi-ip27/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Root 2005-01-06 23:00:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Tag
---- linux-2.4.20/arch/mips/sgi-ip27/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/CVS/Tag 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/.cvsignore
---- linux-2.4.20/arch/mips/sgi-ip27/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/.cvsignore 2002-07-25 14:31:23.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-berr.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-berr.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-berr.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-berr.c 2002-09-15 18:37:48.000000000 -0500
-@@ -17,9 +17,7 @@
- #include <asm/sn/sn0/hub.h>
- #include <asm/traps.h>
- #include <asm/uaccess.h>
--
--extern void dump_tlb_addr(unsigned long addr);
--extern void dump_tlb_all(void);
-+#include <asm/tlbdebug.h>
-
- static void dump_hub_information(unsigned long errst0, unsigned long errst1)
- {
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-console.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-console.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-console.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-console.c 2002-11-26 06:39:36.000000000 -0600
-@@ -3,25 +3,35 @@
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
-- * Copyright (C) 2001 Ralf Baechle
-+ * Copyright (C) 2001, 2002 Ralf Baechle
- */
- #include <linux/init.h>
- #include <linux/console.h>
- #include <linux/kdev_t.h>
- #include <linux/major.h>
-+#include <linux/serial.h>
-+#include <asm/page.h>
- #include <asm/sn/addrs.h>
- #include <asm/sn/sn0/hub.h>
- #include <asm/sn/klconfig.h>
- #include <asm/sn/ioc3.h>
- #include <asm/sn/sn_private.h>
-
--void prom_putchar(char c)
-+#define IOC3_BAUD (22000000 / (3*16))
-+#define IOC3_COM_FLAGS (ASYNC_BOOT_AUTOCONF | ASYNC_SKIP_TEST)
-+
-+static inline struct ioc3_uartregs *console_uart(void)
- {
- struct ioc3 *ioc3;
-- struct ioc3_uartregs *uart;
-
-- ioc3 = (struct ioc3 *)KL_CONFIG_CH_CONS_INFO(master_nasid)->memory_base;
-- uart = &ioc3->sregs.uarta;
-+ ioc3 = (struct ioc3 *)KL_CONFIG_CH_CONS_INFO(get_nasid())->memory_base;
-+
-+ return &ioc3->sregs.uarta;
-+}
-+
-+void prom_putchar(char c)
-+{
-+ struct ioc3_uartregs *uart = console_uart();
-
- while ((uart->iu_lsr & 0x20) == 0);
- uart->iu_thr = c;
-@@ -32,27 +42,24 @@
- return 0;
- }
-
--static void
--ip27prom_console_write(struct console *con, const char *s, unsigned n)
-+static void inline ioc3_console_probe(void)
- {
-- prom_printf("%s", s);
--}
-+ struct serial_struct req;
-
--static kdev_t
--ip27prom_console_dev(struct console *c)
--{
-- return MKDEV(TTY_MAJOR, 64 + c->index);
--}
-+ /* Register to interrupt zero because we share the interrupt with
-+ the serial driver which we don't properly support yet. */
-+ memset(&req, 0, sizeof(req));
-+ req.irq = 0;
-+ req.flags = IOC3_COM_FLAGS;
-+ req.io_type = SERIAL_IO_MEM;
-+ req.iomem_reg_shift = 0;
-+ req.baud_base = IOC3_BAUD;
-
--static struct console ip27_prom_console = {
-- name: "prom",
-- write: ip27prom_console_write,
-- device: ip27prom_console_dev,
-- flags: CON_PRINTBUFFER,
-- index: -1,
--};
-+ req.iomem_base = (unsigned char *) console_uart();
-+ register_serial(&req);
-+}
-
- __init void ip27_setup_console(void)
- {
-- register_console(&ip27_prom_console);
-+ ioc3_console_probe();
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-init.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-init.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-init.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-init.c 2002-12-01 18:24:51.000000000 -0600
-@@ -193,7 +193,6 @@
- void init_topology_matrix(void);
- void dump_topology(void);
-
--
- master_nasid = get_nasid();
- fine_mode = is_fine_dirmode();
-
-@@ -203,7 +202,7 @@
- */
- CPUMASK_CLRALL(boot_cpumask);
- maxcpus = cpu_node_probe(&boot_cpumask, &numnodes);
-- printk("Discovered %d cpus on %d nodes\n", maxcpus, numnodes);
-+ printk(KERN_INFO "Discovered %d cpus on %d nodes\n", maxcpus, numnodes);
-
- init_topology_matrix();
- dump_topology();
-@@ -364,7 +363,7 @@
- #if 0
- intr_init();
- #endif
-- clear_cp0_status(ST0_IM);
-+ clear_c0_status(ST0_IM);
- per_hub_init(cnode);
- cpu_time_init();
- if (smp_processor_id()) /* master can't do this early, no kmalloc */
-@@ -374,13 +373,8 @@
- #if 0
- install_tlbintr(cpu);
- #endif
-- set_cp0_status(SRB_DEV0 | SRB_DEV1);
-+ set_c0_status(SRB_DEV0 | SRB_DEV1);
- if (is_slave) {
-- clear_cp0_status(ST0_BEV);
-- if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-- set_cp0_status(ST0_XX);
-- set_cp0_status(ST0_KX|ST0_SX|ST0_UX);
-- sti();
- load_mmu();
- atomic_inc(&numstarted);
- } else {
-@@ -422,8 +416,13 @@
-
- static volatile cpumask_t boot_barrier;
-
-+extern atomic_t cpus_booted;
-+
- void __init start_secondary(void)
- {
-+ unsigned int cpu = smp_processor_id();
-+ extern atomic_t smp_commenced;
-+
- CPUMASK_CLRB(boot_barrier, getcpuid()); /* needs atomicity */
- per_cpu_init();
- per_cpu_trap_init();
-@@ -435,7 +434,32 @@
- local_flush_tlb_all();
- flush_cache_l1();
- flush_cache_l2();
-- start_secondary();
-+
-+ local_irq_enable();
-+#if 0
-+ /*
-+ * Get our bogomips.
-+ */
-+ calibrate_delay();
-+ smp_store_cpu_info(cpuid);
-+ prom_smp_finish();
-+#endif
-+ printk("Slave cpu booted successfully\n");
-+ CPUMASK_SETB(cpu_online_map, cpu);
-+ atomic_inc(&cpus_booted);
-+
-+ while (!atomic_read(&smp_commenced));
-+ return cpu_idle();
-+}
-+
-+static int __init fork_by_hand(void)
-+{
-+ struct pt_regs regs;
-+ /*
-+ * don't care about the epc and regs settings since
-+ * we'll never reschedule the forked task.
-+ */
-+ return do_fork(CLONE_VM|CLONE_PID, 0, &regs, 0);
- }
-
- __init void allowboot(void)
-@@ -457,68 +481,79 @@
- boot_barrier = boot_cpumask;
- /* Launch slaves. */
- for (cpu = 0; cpu < maxcpus; cpu++) {
-+ struct task_struct *idle;
-+
- if (cpu == mycpuid) {
- alloc_cpupda(cpu, num_cpus);
- num_cpus++;
- /* We're already started, clear our bit */
-+ CPUMASK_SETB(cpu_online_map, cpu);
- CPUMASK_CLRB(boot_barrier, cpu);
- continue;
- }
-
- /* Skip holes in CPU space */
-- if (CPUMASK_TSTB(boot_cpumask, cpu)) {
-- struct task_struct *p;
-+ if (!CPUMASK_TSTB(boot_cpumask, cpu))
-+ continue;
-
-- /*
-- * The following code is purely to make sure
-- * Linux can schedule processes on this slave.
-- */
-- kernel_thread(0, NULL, CLONE_PID);
-- p = init_task.prev_task;
-- sprintf(p->comm, "%s%d", "Idle", num_cpus);
-- init_tasks[num_cpus] = p;
-- alloc_cpupda(cpu, num_cpus);
-- del_from_runqueue(p);
-- p->processor = num_cpus;
-- p->cpus_runnable = 1 << num_cpus; /* we schedule the first task manually */
-- unhash_process(p);
-- /* Attach to the address space of init_task. */
-- atomic_inc(&init_mm.mm_count);
-- p->active_mm = &init_mm;
-+ /*
-+ * We can't use kernel_thread since we must avoid to
-+ * reschedule the child.
-+ */
-+ if (fork_by_hand() < 0)
-+ panic("failed fork for CPU %d", num_cpus);
-
-- /*
-- * Launch a slave into smp_bootstrap().
-- * It doesn't take an argument, and we
-- * set sp to the kernel stack of the newly
-- * created idle process, gp to the proc struct
-- * (so that current-> works).
-- */
-- LAUNCH_SLAVE(cputonasid(num_cpus),cputoslice(num_cpus),
-- (launch_proc_t)MAPPED_KERN_RW_TO_K0(smp_bootstrap),
-- 0, (void *)((unsigned long)p +
-- KERNEL_STACK_SIZE - 32), (void *)p);
-+ /*
-+ * We remove it from the pidhash and the runqueue
-+ * once we got the process:
-+ */
-+ idle = init_task.prev_task;
-+ if (!idle)
-+ panic("No idle process for CPU %d", num_cpus);
-
-- /*
-- * Now optimistically set the mapping arrays. We
-- * need to wait here, verify the cpu booted up, then
-- * fire up the next cpu.
-- */
-- __cpu_number_map[cpu] = num_cpus;
-- __cpu_logical_map[num_cpus] = cpu;
-- CPUMASK_SETB(cpu_online_map, cpu);
-- num_cpus++;
-- /*
-- * Wait this cpu to start up and initialize its hub,
-- * and discover the io devices it will control.
-- *
-- * XXX: We really want to fire up launch all the CPUs
-- * at once. We have to preserve the order of the
-- * devices on the bridges first though.
-- */
-- while(atomic_read(&numstarted) != num_cpus);
-- }
-- }
-+ idle->processor = num_cpus;
-+ idle->cpus_runnable = 1 << cpu; /* we schedule the first task manually */
-
-+ alloc_cpupda(cpu, num_cpus);
-+
-+ idle->thread.reg31 = (unsigned long) start_secondary;
-+
-+ del_from_runqueue(idle);
-+ unhash_process(idle);
-+ init_tasks[num_cpus] = idle;
-+
-+ /*
-+ * Launch a slave into smp_bootstrap().
-+ * It doesn't take an argument, and we
-+ * set sp to the kernel stack of the newly
-+ * created idle process, gp to the proc struct
-+ * (so that current-> works).
-+ */
-+ LAUNCH_SLAVE(cputonasid(num_cpus),cputoslice(num_cpus),
-+ (launch_proc_t)MAPPED_KERN_RW_TO_K0(smp_bootstrap),
-+ 0, (void *)((unsigned long)idle +
-+ KERNEL_STACK_SIZE - 32), (void *)idle);
-+
-+ /*
-+ * Now optimistically set the mapping arrays. We
-+ * need to wait here, verify the cpu booted up, then
-+ * fire up the next cpu.
-+ */
-+ __cpu_number_map[cpu] = num_cpus;
-+ __cpu_logical_map[num_cpus] = cpu;
-+ CPUMASK_SETB(cpu_online_map, cpu);
-+ num_cpus++;
-+
-+ /*
-+ * Wait this cpu to start up and initialize its hub,
-+ * and discover the io devices it will control.
-+ *
-+ * XXX: We really want to fire up launch all the CPUs
-+ * at once. We have to preserve the order of the
-+ * devices on the bridges first though.
-+ */
-+ while (atomic_read(&numstarted) != num_cpus);
-+ }
-
- #ifdef LATER
- Wait logic goes here.
-@@ -545,7 +580,7 @@
- init_new_context(current, &init_mm);
- current->processor = 0;
- init_idle();
-- smp_tune_scheduling();
-+ /* smp_tune_scheduling(); XXX */
- allowboot();
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-pci.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -70,20 +70,20 @@
- return PCIBIOS_SUCCESSFUL; \
- } while (0)
-
--static int
--pci_conf0_read_config_byte(struct pci_dev *dev, int where, u8 *value)
-+static int pci_conf0_read_config_byte(struct pci_dev *dev, int where,
-+ u8 *value)
- {
- CF0_READ_PCI_CFG(dev,where,value,3,0xff);
- }
-
--static int
--pci_conf0_read_config_word(struct pci_dev *dev, int where, u16 *value)
-+static int pci_conf0_read_config_word(struct pci_dev *dev, int where,
-+ u16 *value)
- {
- CF0_READ_PCI_CFG(dev,where,value,2,0xffff);
- }
-
--static int
--pci_conf0_read_config_dword(struct pci_dev *dev, int where, u32 *value)
-+static int pci_conf0_read_config_dword(struct pci_dev *dev, int where,
-+ u32 *value)
- {
- CF0_READ_PCI_CFG(dev,where,value,0,0xffffffff);
- }
-@@ -115,20 +115,20 @@
- return PCIBIOS_SUCCESSFUL; \
- } while (0)
-
--static int
--pci_conf0_write_config_byte(struct pci_dev *dev, int where, u8 value)
-+static int pci_conf0_write_config_byte(struct pci_dev *dev, int where,
-+ u8 value)
- {
- CF0_WRITE_PCI_CFG(dev,where,value,3,0xff);
- }
-
--static int
--pci_conf0_write_config_word(struct pci_dev *dev, int where, u16 value)
-+static int pci_conf0_write_config_word(struct pci_dev *dev, int where,
-+ u16 value)
- {
- CF0_WRITE_PCI_CFG(dev,where,value,2,0xffff);
- }
-
--static int
--pci_conf0_write_config_dword(struct pci_dev *dev, int where, u32 value)
-+static int pci_conf0_write_config_dword(struct pci_dev *dev, int where,
-+ u32 value)
- {
- CF0_WRITE_PCI_CFG(dev,where,value,0,0xffffffff);
- }
-@@ -157,14 +157,12 @@
- }
- }
-
--static inline u8
--bridge_swizzle(u8 pin, u8 slot)
-+static inline u8 bridge_swizzle(u8 pin, u8 slot)
- {
- return (((pin-1) + slot) % 4) + 1;
- }
-
--static u8 __init
--pci_swizzle(struct pci_dev *dev, u8 *pinp)
-+static u8 __devinit pci_swizzle(struct pci_dev *dev, u8 *pinp)
- {
- u8 pin = *pinp;
-
-@@ -186,8 +184,7 @@
- * A given PCI device, in general, should be able to intr any of the cpus
- * on any one of the hubs connected to its xbow.
- */
--static int __init
--pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
-+static int __devinit pci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
- {
- if ((dev->bus->number >= MAX_PCI_BUSSES)
- || (pin != 1)
-@@ -208,15 +205,13 @@
- return lastirq - 1;
- }
-
--void __init
--pcibios_update_irq(struct pci_dev *dev, int irq)
-+void __init pcibios_update_irq(struct pci_dev *dev, int irq)
- {
- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
- }
-
--void __init
--pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-- struct resource *res, int resource)
-+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-+ struct resource *res, int resource)
- {
- unsigned long where, size;
- u32 reg;
-@@ -228,15 +223,13 @@
- pci_write_config_dword(dev, where, reg);
- }
-
--void __init
--pcibios_fixup_bus(struct pci_bus *b)
-+void __devinit pcibios_fixup_bus(struct pci_bus *b)
- {
- pci_fixup_irqs(pci_swizzle, pci_map_irq);
- }
-
--void __init
--pcibios_fixup_pbus_ranges(struct pci_bus * bus,
-- struct pbus_set_ranges_data * ranges)
-+void __init pcibios_fixup_pbus_ranges(struct pci_bus * bus,
-+ struct pbus_set_ranges_data * ranges)
- {
- ranges->io_start -= bus->resource[0]->start;
- ranges->io_end -= bus->resource[0]->start;
-@@ -244,26 +237,23 @@
- ranges->mem_end -= bus->resource[1]->start;
- }
-
--int __init
--pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- /* Not needed, since we enable all devices at startup. */
- return 0;
- }
-
--void __init
--pcibios_align_resource(void *data, struct resource *res, unsigned long size,
-- unsigned long align)
-+void pcibios_align_resource(void *data, struct resource *res,
-+ unsigned long size, unsigned long align)
- {
- }
-
--unsigned __init int pcibios_assign_all_busses(void)
-+unsigned int pcibios_assign_all_busses(void)
- {
- return 0;
- }
-
--char * __init
--pcibios_setup(char *str)
-+char * __devinit pcibios_setup(char *str)
- {
- /* Nothing to do for now. */
-
-@@ -277,8 +267,7 @@
- * settings.
- */
-
--static void __init
--pci_disable_swapping(struct pci_dev *dev)
-+static void __init pci_disable_swapping(struct pci_dev *dev)
- {
- unsigned int bus_id = (unsigned) dev->bus->number;
- bridge_t *bridge = (bridge_t *) NODE_SWIN_BASE(bus_to_nid[bus_id],
-@@ -290,8 +279,7 @@
- bridge->b_widget.w_tflush; /* Flush */
- }
-
--static void __init
--pci_enable_swapping(struct pci_dev *dev)
-+static void __init pci_enable_swapping(struct pci_dev *dev)
- {
- unsigned int bus_id = (unsigned) dev->bus->number;
- bridge_t *bridge = (bridge_t *) NODE_SWIN_BASE(bus_to_nid[bus_id],
-@@ -303,8 +291,7 @@
- bridge->b_widget.w_tflush; /* Flush */
- }
-
--static void __init
--pci_fixup_ioc3(struct pci_dev *d)
-+static void __init pci_fixup_ioc3(struct pci_dev *d)
- {
- unsigned long bus_id = (unsigned) d->bus->number;
-
-@@ -316,8 +303,7 @@
- pci_disable_swapping(d);
- }
-
--static void __init
--pci_fixup_isp1020(struct pci_dev *d)
-+static void __init pci_fixup_isp1020(struct pci_dev *d)
- {
- unsigned short command;
-
-@@ -341,8 +327,7 @@
- pci_enable_swapping(d);
- }
-
--static void __init
--pci_fixup_isp2x00(struct pci_dev *d)
-+static void __init pci_fixup_isp2x00(struct pci_dev *d)
- {
- unsigned int bus_id = (unsigned) d->bus->number;
- bridge_t *bridge = (bridge_t *) NODE_SWIN_BASE(bus_to_nid[bus_id],
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-rtc.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-rtc.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-rtc.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-rtc.c 2002-11-28 20:13:33.000000000 -0600
-@@ -61,7 +61,6 @@
- #define RTC_TIMER_ON 0x02 /* missed irq timer active */
-
- static unsigned char rtc_status; /* bitmapped status byte. */
--static spinlock_t rtc_status_lock = SPIN_LOCK_UNLOCKED;
- static unsigned long rtc_freq; /* Current periodic IRQ rate */
- static struct m48t35_rtc *rtc;
-
-@@ -92,7 +91,6 @@
- struct rtc_time rtc_tm;
- unsigned char mon, day, hrs, min, sec, leap_yr;
- unsigned int yrs;
-- unsigned long flags;
-
- if (!capable(CAP_SYS_TIME))
- return -EACCES;
-@@ -125,10 +123,7 @@
- if ((yrs -= epoch) > 255) /* They are unsigned */
- return -EINVAL;
-
-- save_flags(flags);
-- cli();
- if (yrs > 169) {
-- restore_flags(flags);
- return -EINVAL;
- }
- if (yrs >= 100)
-@@ -141,7 +136,8 @@
- BIN_TO_BCD(mon);
- BIN_TO_BCD(yrs);
-
-- rtc->control &= ~M48T35_RTC_SET;
-+ spin_lock_irq(&rtc_lock);
-+ rtc->control |= M48T35_RTC_SET;
- rtc->year = yrs;
- rtc->month = mon;
- rtc->date = day;
-@@ -149,8 +145,8 @@
- rtc->min = min;
- rtc->sec = sec;
- rtc->control &= ~M48T35_RTC_SET;
-+ spin_unlock_irq(&rtc_lock);
-
-- restore_flags(flags);
- return 0;
- }
- default:
-@@ -167,15 +163,15 @@
-
- static int rtc_open(struct inode *inode, struct file *file)
- {
-- spin_lock(rtc_status_lock);
-+ spin_lock_irq(&rtc_lock);
-
- if (rtc_status & RTC_IS_OPEN) {
-- spin_unlock(rtc_status_lock);
-+ spin_unlock_irq(&rtc_lock);
- return -EBUSY;
- }
-
- rtc_status |= RTC_IS_OPEN;
-- spin_unlock(rtc_status_lock);
-+ spin_unlock_irq(&rtc_lock);
-
- return 0;
- }
-@@ -183,13 +179,10 @@
- static int rtc_release(struct inode *inode, struct file *file)
- {
- /*
-- * Turn off all interrupts once the device is no longer
-- * in use, and clear the data.
-+ * No need for locking -- nobody else can do anything until this rmw
-+ * is committed, and no timer is running.
- */
--
-- spin_lock(rtc_status_lock);
- rtc_status &= ~RTC_IS_OPEN;
-- spin_unlock(rtc_status_lock);
-
- return 0;
- }
-@@ -199,10 +192,11 @@
- */
-
- static struct file_operations rtc_fops = {
-- owner: THIS_MODULE,
-- ioctl: rtc_ioctl,
-- open: rtc_open,
-- release: rtc_release,
-+ .owner = THIS_MODULE,
-+ .llseek = no_llseek,
-+ .ioctl = rtc_ioctl,
-+ .open = rtc_open,
-+ .release = rtc_release,
- };
-
- static struct miscdevice rtc_dev=
-@@ -214,21 +208,17 @@
-
- static int __init rtc_init(void)
- {
-- unsigned long flags;
- nasid_t nid;
-
- nid = get_nasid();
- rtc = (struct m48t35_rtc *)
-- KL_CONFIG_CH_CONS_INFO(nid)->memory_base + IOC3_BYTEBUS_DEV0;
-+ (KL_CONFIG_CH_CONS_INFO(nid)->memory_base + IOC3_BYTEBUS_DEV0);
-
- printk(KERN_INFO "Real Time Clock Driver v%s\n", RTC_VERSION);
- if (misc_register(&rtc_dev))
- return -ENODEV;
-- create_proc_read_entry ("rtc", 0, NULL, rtc_read_proc, NULL);
-+ create_proc_read_entry("driver/rtc", 0, NULL, rtc_read_proc, NULL);
-
-- save_flags(flags);
-- cli();
-- restore_flags(flags);
- rtc_freq = 1024;
- return 0;
- }
-@@ -291,9 +281,6 @@
-
- static void get_rtc_time(struct rtc_time *rtc_tm)
- {
--
-- unsigned long flags;
--
- /*
- * Do we need to wait for the last update to finish?
- */
-@@ -304,9 +291,8 @@
- * RTC has RTC_DAY_OF_WEEK, we ignore it, as it is only updated
- * by the RTC when initially set to a non-zero value.
- */
-- save_flags(flags);
-- cli();
-- rtc->control |= M48T35_RTC_READ;
-+ spin_lock_irq(&rtc_lock);
-+ rtc->control |= M48T35_RTC_READ;
- rtc_tm->tm_sec = rtc->sec;
- rtc_tm->tm_min = rtc->min;
- rtc_tm->tm_hour = rtc->hour;
-@@ -314,7 +300,7 @@
- rtc_tm->tm_mon = rtc->month;
- rtc_tm->tm_year = rtc->year;
- rtc->control &= ~M48T35_RTC_READ;
-- restore_flags(flags);
-+ spin_unlock_irq(&rtc_lock);
-
- BCD_TO_BIN(rtc_tm->tm_sec);
- BCD_TO_BIN(rtc_tm->tm_min);
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-setup.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-setup.c 2002-11-28 18:06:30.000000000 -0600
-@@ -276,6 +276,7 @@
-
- extern void ip27_setup_console(void);
- extern void ip27_time_init(void);
-+extern void ip27_reboot_setup(void);
-
- void __init ip27_setup(void)
- {
-@@ -283,6 +284,7 @@
- hubreg_t p, e;
-
- ip27_setup_console();
-+ ip27_reboot_setup();
-
- num_bridges = 0;
- /*
-@@ -309,6 +311,6 @@
- ioc3_eth_init();
- per_cpu_init();
-
-- mips_io_port_base = IO_BASE;
-+ set_io_port_base(IO_BASE);
- board_time_init = ip27_time_init;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/ip27-timer.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-timer.c
---- linux-2.4.20/arch/mips/sgi-ip27/ip27-timer.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/ip27-timer.c 2002-12-01 18:24:51.000000000 -0600
-@@ -1,5 +1,5 @@
- /*
-- * Copytight (C) 1999, 2000 Ralf Baechle (ralf@gnu.org)
-+ * Copytight (C) 1999, 2000, 2002 Ralf Baechle (ralf@gnu.org)
- * Copytight (C) 1999, 2000 Silicon Graphics, Inc.
- */
- #include <linux/config.h>
-@@ -55,6 +55,7 @@
- rtc = (struct m48t35_rtc *)(KL_CONFIG_CH_CONS_INFO(nid)->memory_base +
- IOC3_BYTEBUS_DEV0);
-
-+ spin_lock(&rtc_lock);
- rtc->control |= M48T35_RTC_READ;
- cmos_minutes = rtc->min;
- BCD_TO_BIN(cmos_minutes);
-@@ -84,15 +85,18 @@
- cmos_minutes, real_minutes);
- retval = -1;
- }
-+ spin_unlock(&rtc_lock);
-
- return retval;
- }
-
-+#define IP27_TIMER_IRQ 9 /* XXX Assign number */
-+
- void rt_timer_interrupt(struct pt_regs *regs)
- {
- int cpu = smp_processor_id();
- int cpuA = ((cputoslice(cpu)) == 0);
-- int irq = 9; /* XXX Assign number */
-+ int irq = IP27_TIMER_IRQ;
-
- irq_enter(cpu, irq);
- write_lock(&xtime_lock);
-@@ -157,7 +161,7 @@
-
- static __init unsigned long get_m48t35_time(void)
- {
-- unsigned int year, month, date, hour, min, sec;
-+ unsigned int year, month, date, hour, min, sec;
- struct m48t35_rtc *rtc;
- nasid_t nid;
-
-@@ -165,6 +169,7 @@
- rtc = (struct m48t35_rtc *)(KL_CONFIG_CH_CONS_INFO(nid)->memory_base +
- IOC3_BYTEBUS_DEV0);
-
-+ spin_lock(&rtc_lock);
- rtc->control |= M48T35_RTC_READ;
- sec = rtc->sec;
- min = rtc->min;
-@@ -173,17 +178,27 @@
- month = rtc->month;
- year = rtc->year;
- rtc->control &= ~M48T35_RTC_READ;
-+ spin_unlock(&rtc_lock);
-
-- BCD_TO_BIN(sec);
-- BCD_TO_BIN(min);
-- BCD_TO_BIN(hour);
-- BCD_TO_BIN(date);
-- BCD_TO_BIN(month);
-- BCD_TO_BIN(year);
-+ BCD_TO_BIN(sec);
-+ BCD_TO_BIN(min);
-+ BCD_TO_BIN(hour);
-+ BCD_TO_BIN(date);
-+ BCD_TO_BIN(month);
-+ BCD_TO_BIN(year);
-
-- year += 1970;
-+ year += 1970;
-
-- return mktime(year, month, date, hour, min, sec);
-+ return mktime(year, month, date, hour, min, sec);
-+}
-+
-+static void ip27_timer_setup(struct irqaction *irq)
-+{
-+ /* over-write the handler, we use our own way */
-+ irq->handler = no_action;
-+
-+ /* setup irqaction */
-+// setup_irq(IP27_TIMER_IRQ, irq); /* XXX Can't do this yet. */
- }
-
- void __init ip27_time_init(void)
-@@ -192,6 +207,9 @@
- xtime.tv_usec = 0;
-
- do_gettimeoffset = ip27_do_gettimeoffset;
-+
-+ // board_time_init = ip27_time_init;
-+ board_timer_setup = ip27_timer_setup;
- }
-
- void __init cpu_time_init(void)
-@@ -212,7 +230,7 @@
-
- printk("CPU %d clock is %dMHz.\n", smp_processor_id(), cpu->cpu_speed);
-
-- set_cp0_status(SRB_TIMOCLK);
-+ set_c0_status(SRB_TIMOCLK);
- }
-
- void __init hub_rtc_init(cnodeid_t cnode)
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip27/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/Makefile
---- linux-2.4.20/arch/mips/sgi-ip27/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip27/Makefile 2002-11-28 20:13:32.000000000 -0600
-@@ -10,6 +10,6 @@
-
- obj-y := ip27-berr.o ip27-console.o ip27-irq.o ip27-init.o ip27-irq-glue.o \
- ip27-klconfig.o ip27-klnuma.o ip27-memory.o ip27-nmi.o ip27-pci.o \
-- ip27-reset.o ip27-setup.o ip27-timer.o
-+ ip27-reset.o ip27-rtc.o ip27-setup.o ip27-timer.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Entries
---- linux-2.4.20/arch/mips/sgi-ip32/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Entries 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/crime.c/1.1.2.2/Mon Aug 5 23:53:35 2002/-ko/Tlinux_2_4_20
-+/ip32-berr.c/1.1.2.3/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
-+/ip32-irq-glue.S/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/ip32-irq.c/1.1.2.3/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+/ip32-pci.c/1.1.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/ip32-reset.c/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/ip32-rtc.c/1.1.2.1/Thu Jul 25 19:31:23 2002/-ko/Tlinux_2_4_20
-+/ip32-setup.c/1.1.2.2/Sat Sep 21 21:21:28 2002/-ko/Tlinux_2_4_20
-+/ip32-timer.c/1.1.2.3/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Repository
---- linux-2.4.20/arch/mips/sgi-ip32/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Repository 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sgi-ip32
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Root
---- linux-2.4.20/arch/mips/sgi-ip32/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Root 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Tag
---- linux-2.4.20/arch/mips/sgi-ip32/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/CVS/Tag 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/.cvsignore
---- linux-2.4.20/arch/mips/sgi-ip32/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/.cvsignore 2002-07-25 14:31:23.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-berr.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-berr.c
---- linux-2.4.20/arch/mips/sgi-ip32/ip32-berr.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-berr.c 2002-09-28 17:28:38.000000000 -0500
-@@ -13,9 +13,9 @@
- #include <asm/uaccess.h>
- #include <asm/addrspace.h>
- #include <asm/ptrace.h>
-+#include <asm/tlbdebug.h>
-
--int
--be_ip32_handler(struct pt_regs *regs, int is_fixup)
-+int be_ip32_handler(struct pt_regs *regs, int is_fixup)
- {
- int data = regs->cp0_cause & 4;
-
-@@ -29,8 +29,7 @@
- force_sig(SIGBUS, current);
- }
-
--void __init
--bus_error_init(void)
-+void __init bus_error_init(void)
- {
- be_board_handler = be_ip32_handler;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-irq.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-irq.c
---- linux-2.4.20/arch/mips/sgi-ip32/ip32-irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-irq.c 2002-12-01 18:24:51.000000000 -0600
-@@ -124,7 +124,7 @@
-
- static void enable_cpu_irq(unsigned int irq)
- {
-- set_cp0_status(STATUSF_IP7);
-+ set_c0_status(STATUSF_IP7);
- }
-
- static unsigned int startup_cpu_irq(unsigned int irq)
-@@ -135,7 +135,7 @@
-
- static void disable_cpu_irq(unsigned int irq)
- {
-- clear_cp0_status(STATUSF_IP7);
-+ clear_c0_status(STATUSF_IP7);
- }
-
- static void end_cpu_irq(unsigned int irq)
-@@ -447,8 +447,8 @@
-
- printk ("Unknown interrupt occurred!\n");
- printk ("cp0_status: %08x\tcp0_cause: %08x\n",
-- read_32bit_cp0_register (CP0_STATUS),
-- read_32bit_cp0_register (CP0_CAUSE));
-+ read_c0_status(),
-+ read_c0_cause());
- crime = crime_read_64 (CRIME_INT_MASK);
- printk ("CRIME interrupt mask: %016lx\n", crime);
- crime = crime_read_64 (CRIME_INT_STAT);
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-pci.c
---- linux-2.4.20/arch/mips/sgi-ip32/ip32-pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -270,7 +270,7 @@
- * irqs. I suppose a device without a pin A will thank us for doing it
- * right if there exists such a broken piece of crap.
- */
--static int __init macepci_map_irq (struct pci_dev *dev, u8 slot, u8 pin)
-+static int __devinit macepci_map_irq(struct pci_dev *dev, u8 slot, u8 pin)
- {
- chkslot (dev);
- if (pin == 0)
-@@ -326,7 +326,7 @@
- * It's not entirely clear what this does in a system with no bridges.
- * In any case, bridges are not supported by Linux in O2.
- */
--static u8 __init macepci_swizzle (struct pci_dev *dev, u8 *pinp)
-+static u8 __init macepci_swizzle(struct pci_dev *dev, u8 *pinp)
- {
- if (PCI_SLOT (dev->devfn) == 2)
- *pinp = 2;
-@@ -336,39 +336,39 @@
- }
-
- /* All devices are enabled during initialization. */
--int pcibios_enable_device (struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int flags)
- {
- return PCIBIOS_SUCCESSFUL;
--}
-+}
-
- char * __init pcibios_setup (char *str)
- {
- return str;
- }
-
--void __init pcibios_align_resource (void *data, struct resource *res,
-- unsigned long size, unsigned long align)
-+void pcibios_align_resource(void *data, struct resource *res,
-+ unsigned long size, unsigned long align)
- {
- }
-
--void __init pcibios_update_resource (struct pci_dev *dev, struct resource *root,
-- struct resource *res, int resource)
-+void pcibios_update_resource(struct pci_dev *dev, struct resource *root,
-+ struct resource *res, int resource)
- {
- }
-
--void __init pcibios_update_irq (struct pci_dev *dev, int irq)
-+void __init pcibios_update_irq(struct pci_dev *dev, int irq)
- {
- pci_write_config_byte (dev, PCI_INTERRUPT_LINE, irq);
- }
-
--void __init pcibios_fixup_bus (struct pci_bus *b)
-+void __devinit pcibios_fixup_bus (struct pci_bus *b)
- {
- pci_fixup_irqs (macepci_swizzle, macepci_map_irq);
- }
-
- /* XXX anybody know what this is supposed to do? */
- void __init pcibios_fixup_pbus_ranges(struct pci_bus * bus,
-- struct pbus_set_ranges_data * ranges)
-+ struct pbus_set_ranges_data * ranges)
- {
- ranges->io_start -= bus->resource[0]->start;
- ranges->io_end -= bus->resource[0]->start;
-@@ -382,7 +382,8 @@
- * registered on the bridge error irq. It's conceivable that some of these
- * conditions warrant a panic. Anybody care to say which ones?
- */
--void macepci_error (int irq, void *dev, struct pt_regs *regs) {
-+void macepci_error(int irq, void *dev, struct pt_regs *regs)
-+{
- u32 flags, error_addr;
- char space;
-
-@@ -454,7 +455,8 @@
- & ~MACEPCI_ERROR_INTERRUPT_TEST);
- }
- }
--unsigned __init int pcibios_assign_all_busses(void)
-+
-+unsigned int pcibios_assign_all_busses(void)
- {
- return 0;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-setup.c
---- linux-2.4.20/arch/mips/sgi-ip32/ip32-setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-setup.c 2002-09-21 16:21:28.000000000 -0500
-@@ -59,6 +59,7 @@
- #endif
-
- extern void ip32_time_init(void);
-+extern void ip32_reboot_setup(void);
-
- void __init ip32_setup(void)
- {
-@@ -89,6 +90,8 @@
- conswitchp = &dummy_con;
- #endif
-
-+ ip32_reboot_setup();
-+
- rtc_ops = &ip32_rtc_ops;
- board_time_init = ip32_time_init;
-
-diff -urNd -urNd linux-2.4.20/arch/mips/sgi-ip32/ip32-timer.c linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-timer.c
---- linux-2.4.20/arch/mips/sgi-ip32/ip32-timer.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sgi-ip32/ip32-timer.c 2002-12-01 18:24:51.000000000 -0600
-@@ -53,12 +53,12 @@
- printk("Calibrating system timer... ");
-
- crime_time = crime_read_64 (CRIME_TIME) & CRIME_TIME_MASK;
-- cc_tick = read_32bit_cp0_register (CP0_COUNT);
-+ cc_tick = read_c0_count();
-
- while ((crime_read_64 (CRIME_TIME) & CRIME_TIME_MASK) - crime_time
- < WAIT_MS * 1000000 / CRIME_NS_PER_TICK)
- ;
-- cc_tick = read_32bit_cp0_register (CP0_COUNT) - cc_tick;
-+ cc_tick = read_c0_count() - cc_tick;
- cc_interval = cc_tick / HZ * (1000 / WAIT_MS);
- /* The round-off seems unnecessary; in testing, the error of the
- * above procedure is < 100 ticks, which means it gets filtered
-@@ -82,11 +82,11 @@
- * The cycle counter is only 32 bit which is good for about
- * a minute at current count rates of upto 150MHz or so.
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- timerhi += (count < timerlo); /* Wrap around */
- timerlo = count;
-
-- write_32bit_cp0_register (CP0_COMPARE,
-+ write_c0_compare(
- (u32) (count + cc_interval));
- kstat.irqs[0][irq]++;
- do_timer (regs);
-@@ -153,7 +153,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -223,16 +223,16 @@
- xtime.tv_usec = 0;
- write_unlock_irq (&xtime_lock);
-
-- write_32bit_cp0_register(CP0_COUNT, 0);
-+ write_c0_count(0);
- irq0.handler = cc_timer_interrupt;
-
- ip32_timer_setup (&irq0);
-
- #define ALLINTS (IE_IRQ0 | IE_IRQ1 | IE_IRQ2 | IE_IRQ3 | IE_IRQ4 | IE_IRQ5)
- /* Set ourselves up for future interrupts */
-- write_32bit_cp0_register(CP0_COMPARE,
-- read_32bit_cp0_register(CP0_COUNT)
-+ write_c0_compare(
-+ read_c0_count()
- + cc_interval);
-- change_cp0_status(ST0_IM, ALLINTS);
-+ change_c0_status(ST0_IM, ALLINTS);
- sti ();
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.c
---- linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.c 2002-09-27 10:49:09.000000000 -0500
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -17,6 +17,7 @@
- */
-
- /* *********************************************************************
-+ *
- * Broadcom Common Firmware Environment (CFE)
- *
- * Device Function stubs File: cfe_api.c
-@@ -25,196 +26,218 @@
- * call the standard "iocb" interface entry point to CFE).
- * There should be one routine here per iocb function call.
- *
-- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ * Authors: Mitch Lichtenberg, Chris Demetriou
- *
- ********************************************************************* */
-
--
--#include "cfe_xiocb.h"
- #include "cfe_api.h"
-+#include "cfe_api_int.h"
-
--static long cfe_console_handle = -1;
--static int (*cfe_dispfunc)(long handle,cfe_xiocb_t *xiocb) = 0;
--static cfe_xuint_t cfe_handle = 0;
-+/* Cast from a native pointer to a cfe_xptr_t and back. */
-+#define XPTR_FROM_NATIVE(n) ((cfe_xptr_t) (intptr_t) (n))
-+#define NATIVE_FROM_XPTR(x) ((void *) (intptr_t) (x))
-
-+#ifdef CFE_API_IMPL_NAMESPACE
-+#define cfe_iocb_dispatch(a) __cfe_iocb_dispatch(a)
-+#endif
-+int cfe_iocb_dispatch(cfe_xiocb_t * xiocb);
-+
-+#if defined(CFE_API_common) || defined(CFE_API_ALL)
- /*
-- * This macro makes a "signed 64-bit pointer" - basically extending a regular
-- * pointer to its 64-bit compatibility space equivalent.
-+ * Declare the dispatch function with args of "intptr_t".
-+ * This makes sure whatever model we're compiling in
-+ * puts the pointers in a single register. For example,
-+ * combining -mlong64 and -mips1 or -mips2 would lead to
-+ * trouble, since the handle and IOCB pointer will be
-+ * passed in two registers each, and CFE expects one.
- */
--#define BIGPTR(x) (long long) (long) (x)
-
--typedef unsigned long intptr_t;
-+static int (*cfe_dispfunc) (intptr_t handle, intptr_t xiocb) = 0;
-+static cfe_xuint_t cfe_handle = 0;
-
--int cfe_init(cfe_xuint_t handle)
-+int cfe_init(cfe_xuint_t handle, cfe_xuint_t ept)
- {
-- if ((*((unsigned int *) (int) CFE_APISEAL) == CFE_EPTSEAL) ||
-- (*((unsigned int *) (int) CFE_APISEAL_RE) == CFE_EPTSEAL) ||
-- (*((unsigned int *) (int) CFE_APISEAL_OLD) == CFE_EPTSEAL)) {
-- cfe_dispfunc = (cfe_xptr_t) (int) CFE_APIENTRY;
-- if (handle) cfe_handle = handle;
-- return 0;
-- } else {
-- return -1;
-- }
-+ cfe_dispfunc = NATIVE_FROM_XPTR(ept);
-+ cfe_handle = handle;
-+ return 0;
- }
-
--int cfe_iocb_dispatch(cfe_xiocb_t *xiocb);
--int cfe_iocb_dispatch(cfe_xiocb_t *xiocb)
-+int cfe_iocb_dispatch(cfe_xiocb_t * xiocb)
- {
-- if (!cfe_dispfunc) return -1;
-- return (*cfe_dispfunc)(cfe_handle,xiocb);
-+ if (!cfe_dispfunc)
-+ return -1;
-+ return (*cfe_dispfunc) ((intptr_t) cfe_handle, (intptr_t) xiocb);
- }
-+#endif /* CFE_API_common || CFE_API_ALL */
-
--static int cfe_strlen(char *name)
-+#if defined(CFE_API_close) || defined(CFE_API_ALL)
-+int cfe_close(int handle)
- {
-- int count = 0;
-+ cfe_xiocb_t xiocb;
-
-- while (*name) {
-- count++;
-- name++;
-- }
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_CLOSE;
-+ xiocb.xiocb_status = 0;
-+ xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = 0;
-+
-+ cfe_iocb_dispatch(&xiocb);
-+
-+ return xiocb.xiocb_status;
-
-- return count;
- }
-+#endif /* CFE_API_close || CFE_API_ALL */
-
--int cfe_open(char *name)
-+#if defined(CFE_API_cpu_start) || defined(CFE_API_ALL)
-+int cfe_cpu_start(int cpu, void (*fn) (void), long sp, long gp, long a1)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_OPEN;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-- xiocb.plist.xiocb_buffer.buf_offset = 0;
-- xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(name);
-- xiocb.plist.xiocb_buffer.buf_length = cfe_strlen(name);
-+ xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
-+ xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
-+ xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_START;
-+ xiocb.plist.xiocb_cpuctl.gp_val = gp;
-+ xiocb.plist.xiocb_cpuctl.sp_val = sp;
-+ xiocb.plist.xiocb_cpuctl.a1_val = a1;
-+ xiocb.plist.xiocb_cpuctl.start_addr = (long) fn;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.xiocb_handle;
-+ return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_cpu_start || CFE_API_ALL */
-
--int cfe_close(int handle)
-+#if defined(CFE_API_cpu_stop) || defined(CFE_API_ALL)
-+int cfe_cpu_stop(int cpu)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_CLOSE;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_handle = 0;
- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
-+ xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
-+ xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_STOP;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return (xiocb.xiocb_status);
--
-+ return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_cpu_stop || CFE_API_ALL */
-
--int cfe_readblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length)
-+#if defined(CFE_API_enumenv) || defined(CFE_API_ALL)
-+int cfe_enumenv(int idx, char *name, int namelen, char *val, int vallen)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_READ;
-+ xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_handle = 0;
- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-- xiocb.plist.xiocb_buffer.buf_offset = offset;
-- xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(buffer);
-- xiocb.plist.xiocb_buffer.buf_length = length;
-+ xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
-+ xiocb.plist.xiocb_envbuf.enum_idx = idx;
-+ xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name);
-+ xiocb.plist.xiocb_envbuf.name_length = namelen;
-+ xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(val);
-+ xiocb.plist.xiocb_envbuf.val_length = vallen;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.plist.xiocb_buffer.buf_retlen;
--}
--
--int cfe_read(int handle,unsigned char *buffer,int length)
--{
-- return cfe_readblk(handle,0,buffer,length);
-+ return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_enumenv || CFE_API_ALL */
-
--
--int cfe_writeblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length)
-+#if defined(CFE_API_enummem) || defined(CFE_API_ALL)
-+int
-+cfe_enummem(int idx, int flags, cfe_xuint_t * start, cfe_xuint_t * length,
-+ cfe_xuint_t * type)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_WRITE;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_MEMENUM;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = handle;
-- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-- xiocb.plist.xiocb_buffer.buf_offset = offset;
-- xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(buffer);
-- xiocb.plist.xiocb_buffer.buf_length = length;
-+ xiocb.xiocb_handle = 0;
-+ xiocb.xiocb_flags = flags;
-+ xiocb.xiocb_psize = sizeof(xiocb_meminfo_t);
-+ xiocb.plist.xiocb_meminfo.mi_idx = idx;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.plist.xiocb_buffer.buf_retlen;
--}
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-
--int cfe_write(int handle,unsigned char *buffer,int length)
--{
-- return cfe_writeblk(handle,0,buffer,length);
--}
-+ *start = xiocb.plist.xiocb_meminfo.mi_addr;
-+ *length = xiocb.plist.xiocb_meminfo.mi_size;
-+ *type = xiocb.plist.xiocb_meminfo.mi_type;
-
-+ return 0;
-+}
-+#endif /* CFE_API_enummem || CFE_API_ALL */
-
--int cfe_ioctl(int handle,unsigned int ioctlnum,unsigned char *buffer,int length,int *retlen)
-+#if defined(CFE_API_exit) || defined(CFE_API_ALL)
-+int cfe_exit(int warm, int status)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_IOCTL;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_RESTART;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = handle;
-- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-- xiocb.plist.xiocb_buffer.buf_ioctlcmd = (cfe_xint_t) ioctlnum;
-- xiocb.plist.xiocb_buffer.buf_ptr = BIGPTR(buffer);
-- xiocb.plist.xiocb_buffer.buf_length = length;
-+ xiocb.xiocb_handle = 0;
-+ xiocb.xiocb_flags = warm ? CFE_FLG_WARMSTART : 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_exitstat_t);
-+ xiocb.plist.xiocb_exitstat.status = status;
-
- cfe_iocb_dispatch(&xiocb);
-
-- if (retlen) *retlen = xiocb.plist.xiocb_buffer.buf_retlen;
- return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_exit || CFE_API_ALL */
-
--int cfe_inpstat(int handle)
-+#if defined(CFE_API_flushcache) || defined(CFE_API_ALL)
-+int cfe_flushcache(int flg)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_INPSTAT;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_FLUSHCACHE;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = handle;
-- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_inpstat_t);
-- xiocb.plist.xiocb_inpstat.inp_status = 0;
-+ xiocb.xiocb_handle = 0;
-+ xiocb.xiocb_flags = flg;
-+ xiocb.xiocb_psize = 0;
-
- cfe_iocb_dispatch(&xiocb);
-
-- if (xiocb.xiocb_status < 0) return xiocb.xiocb_status;
--
-- return xiocb.plist.xiocb_inpstat.inp_status;
--
-+ return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_flushcache || CFE_API_ALL */
-
--long long cfe_getticks(void)
-+#if defined(CFE_API_getdevinfo) || defined(CFE_API_ALL)
-+int cfe_getdevinfo(char *name)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_FW_GETTIME;
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_GETINFO;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_time_t);
-- xiocb.plist.xiocb_time.ticks = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-+ xiocb.plist.xiocb_buffer.buf_offset = 0;
-+ xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(name);
-+ xiocb.plist.xiocb_buffer.buf_length = cfe_strlen(name);
-
- cfe_iocb_dispatch(&xiocb);
-
-- return xiocb.plist.xiocb_time.ticks;
--
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+ return xiocb.plist.xiocb_buffer.buf_devflags;
- }
-+#endif /* CFE_API_getdevinfo || CFE_API_ALL */
-
--int cfe_getenv(char *name,char *dest,int destlen)
-+#if defined(CFE_API_getenv) || defined(CFE_API_ALL)
-+int cfe_getenv(char *name, char *dest, int destlen)
- {
- cfe_xiocb_t xiocb;
-
-@@ -226,179 +249,254 @@
- xiocb.xiocb_flags = 0;
- xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
- xiocb.plist.xiocb_envbuf.enum_idx = 0;
-- xiocb.plist.xiocb_envbuf.name_ptr = BIGPTR(name);
-+ xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name);
- xiocb.plist.xiocb_envbuf.name_length = cfe_strlen(name);
-- xiocb.plist.xiocb_envbuf.val_ptr = BIGPTR(dest);
-+ xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(dest);
- xiocb.plist.xiocb_envbuf.val_length = destlen;
-
- cfe_iocb_dispatch(&xiocb);
-
- return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_getenv || CFE_API_ALL */
-
--int cfe_setenv(char *name,char *val)
-+#if defined(CFE_API_getfwinfo) || defined(CFE_API_ALL)
-+int cfe_getfwinfo(cfe_fwinfo_t * info)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_GETINFO;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
-- xiocb.plist.xiocb_envbuf.enum_idx = 0;
-- xiocb.plist.xiocb_envbuf.name_ptr = BIGPTR(name);
-- xiocb.plist.xiocb_envbuf.name_length = cfe_strlen(name);
-- xiocb.plist.xiocb_envbuf.val_ptr = BIGPTR(val);
-- xiocb.plist.xiocb_envbuf.val_length = cfe_strlen(val);
-+ xiocb.xiocb_psize = sizeof(xiocb_fwinfo_t);
-
- cfe_iocb_dispatch(&xiocb);
-
-- return xiocb.xiocb_status;
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+
-+ info->fwi_version = xiocb.plist.xiocb_fwinfo.fwi_version;
-+ info->fwi_totalmem = xiocb.plist.xiocb_fwinfo.fwi_totalmem;
-+ info->fwi_flags = xiocb.plist.xiocb_fwinfo.fwi_flags;
-+ info->fwi_boardid = xiocb.plist.xiocb_fwinfo.fwi_boardid;
-+ info->fwi_bootarea_va = xiocb.plist.xiocb_fwinfo.fwi_bootarea_va;
-+ info->fwi_bootarea_pa = xiocb.plist.xiocb_fwinfo.fwi_bootarea_pa;
-+ info->fwi_bootarea_size =
-+ xiocb.plist.xiocb_fwinfo.fwi_bootarea_size;
-+#if 0
-+ info->fwi_reserved1 = xiocb.plist.xiocb_fwinfo.fwi_reserved1;
-+ info->fwi_reserved2 = xiocb.plist.xiocb_fwinfo.fwi_reserved2;
-+ info->fwi_reserved3 = xiocb.plist.xiocb_fwinfo.fwi_reserved3;
-+#endif
-+
-+ return 0;
- }
-+#endif /* CFE_API_getfwinfo || CFE_API_ALL */
-
--int cfe_enummem(long idx, unsigned long long *addr, unsigned long long *size, long *type)
-+#if defined(CFE_API_getstdhandle) || defined(CFE_API_ALL)
-+int cfe_getstdhandle(int flg)
- {
- cfe_xiocb_t xiocb;
-- xiocb.xiocb_fcode = CFE_CMD_FW_MEMENUM;
-+
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_GETHANDLE;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
-- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_meminfo_t);
-- xiocb.plist.xiocb_meminfo.mi_idx = idx;
-+ xiocb.xiocb_flags = flg;
-+ xiocb.xiocb_psize = 0;
-
- cfe_iocb_dispatch(&xiocb);
-
-- (*addr) = xiocb.plist.xiocb_meminfo.mi_addr;
-- (*size) = xiocb.plist.xiocb_meminfo.mi_size;
-- (*type) = xiocb.plist.xiocb_meminfo.mi_type;
--
-- return xiocb.xiocb_status;
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+ return xiocb.xiocb_handle;
- }
-+#endif /* CFE_API_getstdhandle || CFE_API_ALL */
-
--
--int cfe_enumenv(int idx,char *name,int namelen,char *val,int vallen)
-+#if defined(CFE_API_getticks) || defined(CFE_API_ALL)
-+int64_t
-+#ifdef CFE_API_IMPL_NAMESPACE
-+__cfe_getticks(void)
-+#else
-+cfe_getticks(void)
-+#endif
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
-+ xiocb.xiocb_fcode = CFE_CMD_FW_GETTIME;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
-- xiocb.plist.xiocb_envbuf.enum_idx = idx;
-- xiocb.plist.xiocb_envbuf.name_ptr = BIGPTR(name);
-- xiocb.plist.xiocb_envbuf.name_length = namelen;
-- xiocb.plist.xiocb_envbuf.val_ptr = BIGPTR(val);
-- xiocb.plist.xiocb_envbuf.val_length = vallen;
-+ xiocb.xiocb_psize = sizeof(xiocb_time_t);
-+ xiocb.plist.xiocb_time.ticks = 0;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return xiocb.xiocb_status;
-+ return xiocb.plist.xiocb_time.ticks;
-+
- }
-+#endif /* CFE_API_getticks || CFE_API_ALL */
-
--int cfe_exit(int warm, int status)
-+#if defined(CFE_API_inpstat) || defined(CFE_API_ALL)
-+int cfe_inpstat(int handle)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_FW_RESTART;
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_INPSTAT;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = 0;
-- xiocb.xiocb_flags = warm ? CFE_FLG_WARMSTART : 0;
-- xiocb.xiocb_psize = sizeof(xiocb_exitstat_t);
-- xiocb.plist.xiocb_exitstat.status = (cfe_xint_t) status;
-+ xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_inpstat_t);
-+ xiocb.plist.xiocb_inpstat.inp_status = 0;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return (xiocb.xiocb_status);
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+ return xiocb.plist.xiocb_inpstat.inp_status;
- }
-+#endif /* CFE_API_inpstat || CFE_API_ALL */
-
--int cfe_flushcache(int flg)
-+#if defined(CFE_API_ioctl) || defined(CFE_API_ALL)
-+int
-+cfe_ioctl(int handle, unsigned int ioctlnum, unsigned char *buffer,
-+ int length, int *retlen, cfe_xuint_t offset)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_FW_FLUSHCACHE;
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_IOCTL;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = 0;
-- xiocb.xiocb_flags = flg;
-- xiocb.xiocb_psize = 0;
-+ xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-+ xiocb.plist.xiocb_buffer.buf_offset = offset;
-+ xiocb.plist.xiocb_buffer.buf_ioctlcmd = ioctlnum;
-+ xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer);
-+ xiocb.plist.xiocb_buffer.buf_length = length;
-
- cfe_iocb_dispatch(&xiocb);
-
-+ if (retlen)
-+ *retlen = xiocb.plist.xiocb_buffer.buf_retlen;
- return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_ioctl || CFE_API_ALL */
-
--int cfe_getstdhandle(int flg)
-+#if defined(CFE_API_open) || defined(CFE_API_ALL)
-+int cfe_open(char *name)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_DEV_GETHANDLE;
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_OPEN;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
-- xiocb.xiocb_flags = flg;
-- xiocb.xiocb_psize = 0;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-+ xiocb.plist.xiocb_buffer.buf_offset = 0;
-+ xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(name);
-+ xiocb.plist.xiocb_buffer.buf_length = cfe_strlen(name);
-
- cfe_iocb_dispatch(&xiocb);
-
-- return (xiocb.xiocb_status < 0) ? xiocb.xiocb_status : xiocb.xiocb_handle;
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+ return xiocb.xiocb_handle;
-+}
-+#endif /* CFE_API_open || CFE_API_ALL */
-
-+#if defined(CFE_API_read) || defined(CFE_API_ALL)
-+int cfe_read(int handle, unsigned char *buffer, int length)
-+{
-+ return cfe_readblk(handle, 0, buffer, length);
- }
-+#endif /* CFE_API_read || CFE_API_ALL */
-
--int cfe_start_cpu(int cpu, void (*fn)(void), long sp, long gp, long a1)
-+#if defined(CFE_API_readblk) || defined(CFE_API_ALL)
-+int
-+cfe_readblk(int handle, cfe_xint_t offset, unsigned char *buffer,
-+ int length)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_READ;
- xiocb.xiocb_status = 0;
-- xiocb.xiocb_handle = 0;
-- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
-- xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
-- xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_START;
-- xiocb.plist.xiocb_cpuctl.gp_val = gp;
-- xiocb.plist.xiocb_cpuctl.sp_val = sp;
-- xiocb.plist.xiocb_cpuctl.a1_val = a1;
-- xiocb.plist.xiocb_cpuctl.start_addr = (long)fn;
-+ xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-+ xiocb.plist.xiocb_buffer.buf_offset = offset;
-+ xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer);
-+ xiocb.plist.xiocb_buffer.buf_length = length;
-
- cfe_iocb_dispatch(&xiocb);
-
-- return xiocb.xiocb_status;
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+ return xiocb.plist.xiocb_buffer.buf_retlen;
- }
-+#endif /* CFE_API_readblk || CFE_API_ALL */
-
--
--int cfe_stop_cpu(int cpu)
-+#if defined(CFE_API_setenv) || defined(CFE_API_ALL)
-+int cfe_setenv(char *name, char *val)
- {
- cfe_xiocb_t xiocb;
-
-- xiocb.xiocb_fcode = CFE_CMD_FW_CPUCTL;
-+ xiocb.xiocb_fcode = CFE_CMD_ENV_SET;
- xiocb.xiocb_status = 0;
- xiocb.xiocb_handle = 0;
-- xiocb.xiocb_flags = 0;
-- xiocb.xiocb_psize = sizeof(xiocb_cpuctl_t);
-- xiocb.plist.xiocb_cpuctl.cpu_number = cpu;
-- xiocb.plist.xiocb_cpuctl.cpu_command = CFE_CPU_CMD_STOP;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_envbuf_t);
-+ xiocb.plist.xiocb_envbuf.enum_idx = 0;
-+ xiocb.plist.xiocb_envbuf.name_ptr = XPTR_FROM_NATIVE(name);
-+ xiocb.plist.xiocb_envbuf.name_length = cfe_strlen(name);
-+ xiocb.plist.xiocb_envbuf.val_ptr = XPTR_FROM_NATIVE(val);
-+ xiocb.plist.xiocb_envbuf.val_length = cfe_strlen(val);
-
- cfe_iocb_dispatch(&xiocb);
-
- return xiocb.xiocb_status;
- }
-+#endif /* CFE_API_setenv || CFE_API_ALL */
-
--void cfe_open_console()
-+#if (defined(CFE_API_strlen) || defined(CFE_API_ALL)) \
-+ && !defined(CFE_API_STRLEN_CUSTOM)
-+int cfe_strlen(char *name)
- {
-- cfe_console_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
-+ int count = 0;
-+
-+ while (*name++)
-+ count++;
-+
-+ return count;
- }
-+#endif /* CFE_API_strlen || CFE_API_ALL */
-
--void cfe_console_print(const char *str, int len)
-+#if defined(CFE_API_write) || defined(CFE_API_ALL)
-+int cfe_write(int handle, unsigned char *buffer, int length)
- {
-- int res;
--
-- if (cfe_console_handle != -1) {
-- do {
-- res = cfe_writeblk(cfe_console_handle, 0, str, len);
-- if (res < 0)
-- break;
-- str += res;
-- len -= res;
-- } while (len);
-- }
-+ return cfe_writeblk(handle, 0, buffer, length);
- }
-+#endif /* CFE_API_write || CFE_API_ALL */
-+
-+#if defined(CFE_API_writeblk) || defined(CFE_API_ALL)
-+int
-+cfe_writeblk(int handle, cfe_xint_t offset, unsigned char *buffer,
-+ int length)
-+{
-+ cfe_xiocb_t xiocb;
-+
-+ xiocb.xiocb_fcode = CFE_CMD_DEV_WRITE;
-+ xiocb.xiocb_status = 0;
-+ xiocb.xiocb_handle = handle;
-+ xiocb.xiocb_flags = 0;
-+ xiocb.xiocb_psize = sizeof(xiocb_buffer_t);
-+ xiocb.plist.xiocb_buffer.buf_offset = offset;
-+ xiocb.plist.xiocb_buffer.buf_ptr = XPTR_FROM_NATIVE(buffer);
-+ xiocb.plist.xiocb_buffer.buf_length = length;
-
-+ cfe_iocb_dispatch(&xiocb);
-+
-+ if (xiocb.xiocb_status < 0)
-+ return xiocb.xiocb_status;
-+ return xiocb.plist.xiocb_buffer.buf_retlen;
-+}
-+#endif /* CFE_API_writeblk || CFE_API_ALL */
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.h
---- linux-2.4.20/arch/mips/sibyte/cfe/cfe_api.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api.h 2002-09-27 10:49:09.000000000 -0500
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -17,55 +17,169 @@
- */
-
- /* *********************************************************************
-+ *
- * Broadcom Common Firmware Environment (CFE)
- *
- * Device function prototypes File: cfe_api.h
- *
-- * This module contains prototypes for cfe_devfuncs.c, a set
-- * of wrapper routines to the IOCB interface. This file,
-- * along with cfe_api.c, can be incorporated into programs
-- * that need to call CFE.
-+ * This file contains declarations for doing callbacks to
-+ * cfe from an application. It should be the only header
-+ * needed by the application to use this library
- *
-- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ * Authors: Mitch Lichtenberg, Chris Demetriou
- *
- ********************************************************************* */
-
--#include <linux/config.h>
-+#ifndef CFE_API_H
-+#define CFE_API_H
-+
-+/*
-+ * Apply customizations here for different OSes. These need to:
-+ * * typedef uint64_t, int64_t, intptr_t, uintptr_t.
-+ * * define cfe_strlen() if use of an existing function is desired.
-+ * * define CFE_API_IMPL_NAMESPACE if API functions are to use
-+ * names in the implementation namespace.
-+ * Also, optionally, if the build environment does not do so automatically,
-+ * CFE_API_* can be defined here as desired.
-+ */
-+/* Begin customization. */
-+#include <linux/types.h>
-+#include <linux/string.h>
-+
-+typedef long intptr_t;
-+
-+#define cfe_strlen strlen
-
-+#define CFE_API_ALL
-+#define CFE_API_STRLEN_CUSTOM
-+/* End customization. */
-+
-+
-+/* *********************************************************************
-+ * Constants
-+ ********************************************************************* */
-+
-+/* Seal indicating CFE's presence, passed to user program. */
- #define CFE_EPTSEAL 0x43464531
--#ifdef CONFIG_MIPS_UNCACHED
--#define CFE_APIENTRY 0xBFC00500
--#define CFE_APISEAL 0xBFC004E0
--#define CFE_APISEAL_RE 0xBFC004E8
--#define CFE_APISEAL_OLD 0xBFC00508
-+
-+#define CFE_MI_RESERVED 0 /* memory is reserved, do not use */
-+#define CFE_MI_AVAILABLE 1 /* memory is available */
-+
-+#define CFE_FLG_WARMSTART 0x00000001
-+#define CFE_FLG_FULL_ARENA 0x00000001
-+#define CFE_FLG_ENV_PERMANENT 0x00000001
-+
-+#define CFE_CPU_CMD_START 1
-+#define CFE_CPU_CMD_STOP 0
-+
-+#define CFE_STDHANDLE_CONSOLE 0
-+
-+#define CFE_DEV_NETWORK 1
-+#define CFE_DEV_DISK 2
-+#define CFE_DEV_FLASH 3
-+#define CFE_DEV_SERIAL 4
-+#define CFE_DEV_CPU 5
-+#define CFE_DEV_NVRAM 6
-+#define CFE_DEV_CLOCK 7
-+#define CFE_DEV_OTHER 8
-+#define CFE_DEV_MASK 0x0F
-+
-+#define CFE_CACHE_FLUSH_D 1
-+#define CFE_CACHE_INVAL_I 2
-+#define CFE_CACHE_INVAL_D 4
-+#define CFE_CACHE_INVAL_L2 8
-+
-+#define CFE_FWI_64BIT 0x00000001
-+#define CFE_FWI_32BIT 0x00000002
-+#define CFE_FWI_RELOC 0x00000004
-+#define CFE_FWI_UNCACHED 0x00000008
-+#define CFE_FWI_MULTICPU 0x00000010
-+#define CFE_FWI_FUNCSIM 0x00000020
-+#define CFE_FWI_RTLSIM 0x00000040
-+
-+typedef struct {
-+ int64_t fwi_version; /* major, minor, eco version */
-+ int64_t fwi_totalmem; /* total installed mem */
-+ int64_t fwi_flags; /* various flags */
-+ int64_t fwi_boardid; /* board ID */
-+ int64_t fwi_bootarea_va; /* VA of boot area */
-+ int64_t fwi_bootarea_pa; /* PA of boot area */
-+ int64_t fwi_bootarea_size; /* size of boot area */
-+} cfe_fwinfo_t;
-+
-+
-+/*
-+ * cfe_strlen is handled specially: If already defined, it has been
-+ * overridden in this environment with a standard strlen-like function.
-+ */
-+#ifdef cfe_strlen
-+# define CFE_API_STRLEN_CUSTOM
- #else
--#define CFE_APIENTRY 0x9FC00500
--#define CFE_APISEAL 0x9FC004E0
--#define CFE_APISEAL_RE 0x9FC004E8
--#define CFE_APISEAL_OLD 0x9FC00508
-+# ifdef CFE_API_IMPL_NAMESPACE
-+# define cfe_strlen(a) __cfe_strlen(a)
-+# endif
-+int cfe_strlen(char *name);
- #endif
-
--#ifndef __ASSEMBLER__
--int cfe_init(cfe_xuint_t handle);
--int cfe_open(char *name);
-+/*
-+ * Defines and prototypes for functions which take no arguments.
-+ */
-+#ifdef CFE_API_IMPL_NAMESPACE
-+int64_t __cfe_getticks(void);
-+#define cfe_getticks() __cfe_getticks()
-+#else
-+int64_t cfe_getticks(void);
-+#endif
-+
-+/*
-+ * Defines and prototypes for the rest of the functions.
-+ */
-+#ifdef CFE_API_IMPL_NAMESPACE
-+#define cfe_close(a) __cfe_close(a)
-+#define cfe_cpu_start(a,b,c,d,e) __cfe_cpu_start(a,b,c,d,e)
-+#define cfe_cpu_stop(a) __cfe_cpu_stop(a)
-+#define cfe_enumenv(a,b,d,e,f) __cfe_enumenv(a,b,d,e,f)
-+#define cfe_enummem(a,b,c,d,e) __cfe_enummem(a,b,c,d,e)
-+#define cfe_exit(a,b) __cfe_exit(a,b)
-+#define cfe_flushcache(a) __cfe_cacheflush(a)
-+#define cfe_getdevinfo(a) __cfe_getdevinfo(a)
-+#define cfe_getenv(a,b,c) __cfe_getenv(a,b,c)
-+#define cfe_getfwinfo(a) __cfe_getfwinfo(a)
-+#define cfe_getstdhandle(a) __cfe_getstdhandle(a)
-+#define cfe_init(a,b) __cfe_init(a,b)
-+#define cfe_inpstat(a) __cfe_inpstat(a)
-+#define cfe_ioctl(a,b,c,d,e,f) __cfe_ioctl(a,b,c,d,e,f)
-+#define cfe_open(a) __cfe_open(a)
-+#define cfe_read(a,b,c) __cfe_read(a,b,c)
-+#define cfe_readblk(a,b,c,d) __cfe_readblk(a,b,c,d)
-+#define cfe_setenv(a,b) __cfe_setenv(a,b)
-+#define cfe_write(a,b,c) __cfe_write(a,b,c)
-+#define cfe_writeblk(a,b,c,d) __cfe_writeblk(a,b,c,d)
-+#endif /* CFE_API_IMPL_NAMESPACE */
-+
- int cfe_close(int handle);
--int cfe_readblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length);
--int cfe_read(int handle,unsigned char *buffer,int length);
--int cfe_writeblk(int handle,cfe_xint_t offset,unsigned char *buffer,int length);
--int cfe_write(int handle,unsigned char *buffer,int length);
--int cfe_ioctl(int handle,unsigned int ioctlnum,unsigned char *buffer,int length,int *retlen);
--int cfe_inpstat(int handle);
--int cfe_enumenv(int idx,char *name,int namelen,char *val,int vallen);
--int cfe_enummem(long idx, unsigned long long *addr, unsigned long long *size, long *type);
--int cfe_setenv(char *name,char *val);
--int cfe_getenv(char *name,char *dest,int destlen);
--long long cfe_getticks(void);
-+int cfe_cpu_start(int cpu, void (*fn) (void), long sp, long gp, long a1);
-+int cfe_cpu_stop(int cpu);
-+int cfe_enumenv(int idx, char *name, int namelen, char *val, int vallen);
-+int cfe_enummem(int idx, int flags, uint64_t * start, uint64_t * length,
-+ uint64_t * type);
- int cfe_exit(int warm, int status);
- int cfe_flushcache(int flg);
-+int cfe_getdevinfo(char *name);
-+int cfe_getenv(char *name, char *dest, int destlen);
-+int cfe_getfwinfo(cfe_fwinfo_t * info);
- int cfe_getstdhandle(int flg);
--int cfe_start_cpu(int cpu, void (*fn)(void), long sp, long gp, long a1);
--int cfe_stop_cpu(int cpu);
-+int cfe_init(uint64_t handle, uint64_t ept);
-+int cfe_inpstat(int handle);
-+int cfe_ioctl(int handle, unsigned int ioctlnum, unsigned char *buffer,
-+ int length, int *retlen, uint64_t offset);
-+int cfe_open(char *name);
-+int cfe_read(int handle, unsigned char *buffer, int length);
-+int cfe_readblk(int handle, int64_t offset, unsigned char *buffer,
-+ int length);
-+int cfe_setenv(char *name, char *val);
-+int cfe_write(int handle, unsigned char *buffer, int length);
-+int cfe_writeblk(int handle, int64_t offset, unsigned char *buffer,
-+ int length);
-
--void cfe_open_console(void);
--void cfe_console_print(const char *, int);
--#endif
-+#endif /* CFE_API_H */
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_api_int.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api_int.h
---- linux-2.4.20/arch/mips/sibyte/cfe/cfe_api_int.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_api_int.h 2002-09-27 12:20:57.000000000 -0500
-@@ -0,0 +1,152 @@
-+/*
-+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* *********************************************************************
-+ *
-+ * Broadcom Common Firmware Environment (CFE)
-+ *
-+ * Device function prototypes File: cfe_api_int.h
-+ *
-+ * This header defines all internal types and macros for the
-+ * library. This is stuff that's not exported to an app
-+ * using the library.
-+ *
-+ * Authors: Mitch Lichtenberg, Chris Demetriou
-+ *
-+ ********************************************************************* */
-+
-+#ifndef CFE_API_INT_H
-+#define CFE_API_INT_H
-+
-+/* *********************************************************************
-+ * Constants
-+ ********************************************************************* */
-+
-+#define CFE_CMD_FW_GETINFO 0
-+#define CFE_CMD_FW_RESTART 1
-+#define CFE_CMD_FW_BOOT 2
-+#define CFE_CMD_FW_CPUCTL 3
-+#define CFE_CMD_FW_GETTIME 4
-+#define CFE_CMD_FW_MEMENUM 5
-+#define CFE_CMD_FW_FLUSHCACHE 6
-+
-+#define CFE_CMD_DEV_GETHANDLE 9
-+#define CFE_CMD_DEV_ENUM 10
-+#define CFE_CMD_DEV_OPEN 11
-+#define CFE_CMD_DEV_INPSTAT 12
-+#define CFE_CMD_DEV_READ 13
-+#define CFE_CMD_DEV_WRITE 14
-+#define CFE_CMD_DEV_IOCTL 15
-+#define CFE_CMD_DEV_CLOSE 16
-+#define CFE_CMD_DEV_GETINFO 17
-+
-+#define CFE_CMD_ENV_ENUM 20
-+#define CFE_CMD_ENV_GET 22
-+#define CFE_CMD_ENV_SET 23
-+#define CFE_CMD_ENV_DEL 24
-+
-+#define CFE_CMD_MAX 32
-+
-+#define CFE_CMD_VENDOR_USE 0x8000 /* codes above this are for customer use */
-+
-+/* *********************************************************************
-+ * Structures
-+ ********************************************************************* */
-+
-+typedef uint64_t cfe_xuint_t;
-+typedef int64_t cfe_xint_t;
-+typedef int64_t cfe_xptr_t;
-+
-+typedef struct xiocb_buffer_s {
-+ cfe_xuint_t buf_offset; /* offset on device (bytes) */
-+ cfe_xptr_t buf_ptr; /* pointer to a buffer */
-+ cfe_xuint_t buf_length; /* length of this buffer */
-+ cfe_xuint_t buf_retlen; /* returned length (for read ops) */
-+ cfe_xuint_t buf_ioctlcmd; /* IOCTL command (used only for IOCTLs) */
-+} xiocb_buffer_t;
-+
-+#define buf_devflags buf_ioctlcmd /* returned device info flags */
-+
-+typedef struct xiocb_inpstat_s {
-+ cfe_xuint_t inp_status; /* 1 means input available */
-+} xiocb_inpstat_t;
-+
-+typedef struct xiocb_envbuf_s {
-+ cfe_xint_t enum_idx; /* 0-based enumeration index */
-+ cfe_xptr_t name_ptr; /* name string buffer */
-+ cfe_xint_t name_length; /* size of name buffer */
-+ cfe_xptr_t val_ptr; /* value string buffer */
-+ cfe_xint_t val_length; /* size of value string buffer */
-+} xiocb_envbuf_t;
-+
-+typedef struct xiocb_cpuctl_s {
-+ cfe_xuint_t cpu_number; /* cpu number to control */
-+ cfe_xuint_t cpu_command; /* command to issue to CPU */
-+ cfe_xuint_t start_addr; /* CPU start address */
-+ cfe_xuint_t gp_val; /* starting GP value */
-+ cfe_xuint_t sp_val; /* starting SP value */
-+ cfe_xuint_t a1_val; /* starting A1 value */
-+} xiocb_cpuctl_t;
-+
-+typedef struct xiocb_time_s {
-+ cfe_xint_t ticks; /* current time in ticks */
-+} xiocb_time_t;
-+
-+typedef struct xiocb_exitstat_s {
-+ cfe_xint_t status;
-+} xiocb_exitstat_t;
-+
-+typedef struct xiocb_meminfo_s {
-+ cfe_xint_t mi_idx; /* 0-based enumeration index */
-+ cfe_xint_t mi_type; /* type of memory block */
-+ cfe_xuint_t mi_addr; /* physical start address */
-+ cfe_xuint_t mi_size; /* block size */
-+} xiocb_meminfo_t;
-+
-+typedef struct xiocb_fwinfo_s {
-+ cfe_xint_t fwi_version; /* major, minor, eco version */
-+ cfe_xint_t fwi_totalmem; /* total installed mem */
-+ cfe_xint_t fwi_flags; /* various flags */
-+ cfe_xint_t fwi_boardid; /* board ID */
-+ cfe_xint_t fwi_bootarea_va; /* VA of boot area */
-+ cfe_xint_t fwi_bootarea_pa; /* PA of boot area */
-+ cfe_xint_t fwi_bootarea_size; /* size of boot area */
-+ cfe_xint_t fwi_reserved1;
-+ cfe_xint_t fwi_reserved2;
-+ cfe_xint_t fwi_reserved3;
-+} xiocb_fwinfo_t;
-+
-+typedef struct cfe_xiocb_s {
-+ cfe_xuint_t xiocb_fcode; /* IOCB function code */
-+ cfe_xint_t xiocb_status; /* return status */
-+ cfe_xint_t xiocb_handle; /* file/device handle */
-+ cfe_xuint_t xiocb_flags; /* flags for this IOCB */
-+ cfe_xuint_t xiocb_psize; /* size of parameter list */
-+ union {
-+ xiocb_buffer_t xiocb_buffer; /* buffer parameters */
-+ xiocb_inpstat_t xiocb_inpstat; /* input status parameters */
-+ xiocb_envbuf_t xiocb_envbuf; /* environment function parameters */
-+ xiocb_cpuctl_t xiocb_cpuctl; /* CPU control parameters */
-+ xiocb_time_t xiocb_time; /* timer parameters */
-+ xiocb_meminfo_t xiocb_meminfo; /* memory arena info parameters */
-+ xiocb_fwinfo_t xiocb_fwinfo; /* firmware information */
-+ xiocb_exitstat_t xiocb_exitstat; /* Exit Status */
-+ } plist;
-+} cfe_xiocb_t;
-+
-+#endif /* CFE_API_INT_H */
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_error.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_error.h
---- linux-2.4.20/arch/mips/sibyte/cfe/cfe_error.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_error.h 2002-09-27 10:49:09.000000000 -0500
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -17,19 +17,18 @@
- */
-
- /* *********************************************************************
-+ *
- * Broadcom Common Firmware Environment (CFE)
-- *
-+ *
- * Error codes File: cfe_error.h
-- *
-+ *
- * CFE's global error code list is here.
-- *
-- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-- *
-+ *
-+ * Author: Mitch Lichtenberg
-+ *
- ********************************************************************* */
-
-
--
--
- #define CFE_OK 0
- #define CFE_ERR -1 /* generic error */
- #define CFE_ERR_INV_COMMAND -2
-@@ -74,3 +73,13 @@
- #define CFE_ERR_WRONGDEVTYPE -32
- #define CFE_ERR_BBCHECKSUM -33
- #define CFE_ERR_BOOTPROGCHKSUM -34
-+
-+#define CFE_ERR_LDRNOTAVAIL -35
-+
-+#define CFE_ERR_NOTREADY -36
-+
-+#define CFE_ERR_GETMEM -37
-+#define CFE_ERR_SETMEM -38
-+
-+#define CFE_ERR_NOTCONN -39
-+#define CFE_ERR_ADDRINUSE -40
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/cfe_xiocb.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_xiocb.h
---- linux-2.4.20/arch/mips/sibyte/cfe/cfe_xiocb.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/cfe_xiocb.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,177 +0,0 @@
--/*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--/* *********************************************************************
-- * Broadcom Common Firmware Environment (CFE)
-- *
-- * IOCB definitions File: cfe_iocb.h
-- *
-- * This module describes CFE's IOCB structure, the main
-- * data structure used to communicate API requests with CFE.
-- *
-- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-- *
-- ********************************************************************* */
--
--/* *********************************************************************
-- * Constants
-- ********************************************************************* */
--
--#define CFE_CMD_FW_GETINFO 0
--#define CFE_CMD_FW_RESTART 1
--#define CFE_CMD_FW_BOOT 2
--#define CFE_CMD_FW_CPUCTL 3
--#define CFE_CMD_FW_GETTIME 4
--#define CFE_CMD_FW_MEMENUM 5
--#define CFE_CMD_FW_FLUSHCACHE 6
--
--#define CFE_CMD_DEV_GETHANDLE 9
--#define CFE_CMD_DEV_ENUM 10
--#define CFE_CMD_DEV_OPEN 11
--#define CFE_CMD_DEV_INPSTAT 12
--#define CFE_CMD_DEV_READ 13
--#define CFE_CMD_DEV_WRITE 14
--#define CFE_CMD_DEV_IOCTL 15
--#define CFE_CMD_DEV_CLOSE 16
--#define CFE_CMD_DEV_GETINFO 17
--
--#define CFE_CMD_ENV_ENUM 20
--#define CFE_CMD_ENV_GET 22
--#define CFE_CMD_ENV_SET 23
--#define CFE_CMD_ENV_DEL 24
--
--#define CFE_CMD_MAX 32
--
--#define CFE_MI_RESERVED 0 /* memory is reserved, do not use */
--#define CFE_MI_AVAILABLE 1 /* memory is available */
--
--#define CFE_FLG_WARMSTART 0x00000001
--
--#define CFE_FLG_ENV_PERMANENT 0x00000001
--
--#define CFE_CPU_CMD_START 1
--#define CFE_CPU_CMD_STOP 0
--
--#define CFE_STDHANDLE_CONSOLE 0
--
--#define CFE_DEV_NETWORK 1
--#define CFE_DEV_DISK 2
--#define CFE_DEV_FLASH 3
--#define CFE_DEV_SERIAL 4
--#define CFE_DEV_CPU 5
--#define CFE_DEV_NVRAM 6
--#define CFE_DEV_OTHER 7
--#define CFE_DEV_MASK 0x0F
--
--#define CFE_CACHE_FLUSH_D 1
--#define CFE_CACHE_INVAL_I 2
--#define CFE_CACHE_INVAL_D 4
--#define CFE_CACHE_INVAL_L2 8
--
--/* *********************************************************************
-- * Structures
-- ********************************************************************* */
--
--typedef unsigned long long cfe_xuint_t;
--typedef long long cfe_xint_t;
--typedef long long cfe_xptr_t;
--
--typedef struct xiocb_buffer_s {
-- cfe_xuint_t buf_offset; /* offset on device (bytes) */
-- cfe_xptr_t buf_ptr; /* pointer to a buffer */
-- cfe_xuint_t buf_length; /* length of this buffer */
-- cfe_xuint_t buf_retlen; /* returned length (for read ops) */
-- cfe_xuint_t buf_ioctlcmd; /* IOCTL command (used only for IOCTLs) */
--} xiocb_buffer_t;
--
--#define buf_devflags buf_ioctlcmd /* returned device info flags */
--
--typedef struct xiocb_inpstat_s {
-- cfe_xuint_t inp_status; /* 1 means input available */
--} xiocb_inpstat_t;
--
--typedef struct xiocb_envbuf_s {
-- cfe_xint_t enum_idx; /* 0-based enumeration index */
-- cfe_xptr_t name_ptr; /* name string buffer */
-- cfe_xint_t name_length; /* size of name buffer */
-- cfe_xptr_t val_ptr; /* value string buffer */
-- cfe_xint_t val_length; /* size of value string buffer */
--} xiocb_envbuf_t;
--
--typedef struct xiocb_cpuctl_s {
-- cfe_xuint_t cpu_number; /* cpu number to control */
-- cfe_xuint_t cpu_command; /* command to issue to CPU */
-- cfe_xuint_t start_addr; /* CPU start address */
-- cfe_xuint_t gp_val; /* starting GP value */
-- cfe_xuint_t sp_val; /* starting SP value */
-- cfe_xuint_t a1_val; /* starting A1 value */
--} xiocb_cpuctl_t;
--
--typedef struct xiocb_time_s {
-- cfe_xint_t ticks; /* current time in ticks */
--} xiocb_time_t;
--
--typedef struct xiocb_exitstat_s {
-- cfe_xint_t status;
--} xiocb_exitstat_t;
--
--typedef struct xiocb_meminfo_s {
-- cfe_xint_t mi_idx; /* 0-based enumeration index */
-- cfe_xint_t mi_type; /* type of memory block */
-- cfe_xuint_t mi_addr; /* physical start address */
-- cfe_xuint_t mi_size; /* block size */
--} xiocb_meminfo_t;
--
--#define CFE_FWI_64BIT 0x00000001
--#define CFE_FWI_32BIT 0x00000002
--#define CFE_FWI_RELOC 0x00000004
--#define CFE_FWI_UNCACHED 0x00000008
--#define CFE_FWI_MULTICPU 0x00000010
--#define CFE_FWI_FUNCSIM 0x00000020
--#define CFE_FWI_RTLSIM 0x00000040
--
--typedef struct xiocb_fwinfo_s {
-- cfe_xint_t fwi_version; /* major, minor, eco version */
-- cfe_xint_t fwi_totalmem; /* total installed mem */
-- cfe_xint_t fwi_flags; /* various flags */
-- cfe_xint_t fwi_boardid; /* board ID */
-- cfe_xint_t fwi_bootarea_va; /* VA of boot area */
-- cfe_xint_t fwi_bootarea_pa; /* PA of boot area */
-- cfe_xint_t fwi_bootarea_size; /* size of boot area */
-- cfe_xint_t fwi_reserved1;
-- cfe_xint_t fwi_reserved2;
-- cfe_xint_t fwi_reserved3;
--} xiocb_fwinfo_t,cfe_fwinfo_t;
--
--typedef struct cfe_xiocb_s {
-- cfe_xuint_t xiocb_fcode; /* IOCB function code */
-- cfe_xint_t xiocb_status; /* return status */
-- cfe_xint_t xiocb_handle; /* file/device handle */
-- cfe_xuint_t xiocb_flags; /* flags for this IOCB */
-- cfe_xuint_t xiocb_psize; /* size of parameter list */
-- union {
-- xiocb_buffer_t xiocb_buffer; /* buffer parameters */
-- xiocb_inpstat_t xiocb_inpstat; /* input status parameters */
-- xiocb_envbuf_t xiocb_envbuf; /* environment function parameters */
-- xiocb_cpuctl_t xiocb_cpuctl; /* CPU control parameters */
-- xiocb_time_t xiocb_time; /* timer parameters */
-- xiocb_meminfo_t xiocb_meminfo; /* memory arena info parameters */
-- xiocb_fwinfo_t xiocb_fwinfo; /* firmware information */
-- xiocb_exitstat_t xiocb_exitstat; /* Exit status */
-- } plist;
--} cfe_xiocb_t;
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/console.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/console.c
---- linux-2.4.20/arch/mips/sibyte/cfe/console.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/console.c 2003-01-21 23:11:38.000000000 -0600
-@@ -0,0 +1,91 @@
-+#include <linux/init.h>
-+#include <linux/major.h>
-+#include <linux/errno.h>
-+#include <linux/console.h>
-+
-+#include <asm/sibyte/board.h>
-+
-+#include "cfe_api.h"
-+#include "cfe_error.h"
-+
-+extern int cfe_cons_handle;
-+static kdev_t cfe_consdev;
-+
-+#define SB1250_DUART_MINOR_BASE 192
-+
-+static void cfe_console_write(struct console *cons, const char *str,
-+ unsigned int count)
-+{
-+ int i, last, written;
-+
-+ for (i=0,last=0; i<count; i++) {
-+ if (!str[i])
-+ /* XXXKW can/should this ever happen? */
-+ return;
-+ if (str[i] == '\n') {
-+ do {
-+ written = cfe_write(cfe_cons_handle, &str[last], i-last);
-+ if (written < 0)
-+ ;
-+ last += written;
-+ } while (last < i);
-+ while (cfe_write(cfe_cons_handle, "\r", 1) <= 0)
-+ ;
-+ }
-+ }
-+ if (last != count) {
-+ do {
-+ written = cfe_write(cfe_cons_handle, &str[last], count-last);
-+ if (written < 0)
-+ ;
-+ last += written;
-+ } while (last < count);
-+ }
-+
-+}
-+
-+static kdev_t cfe_console_device(struct console *c)
-+{
-+ return cfe_consdev;
-+}
-+
-+static int cfe_console_setup(struct console *cons, char *str)
-+{
-+ char consdev[32];
-+ /* XXXKW think about interaction with 'console=' cmdline arg */
-+ /* If none of the console options are configured, the build will break. */
-+ if (cfe_getenv("BOOT_CONSOLE", consdev, 32) >= 0) {
-+#ifdef CONFIG_SIBYTE_SB1250_DUART
-+ if (!strcmp(consdev, "uart0")) {
-+ setleds("u0cn");
-+ cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 0);
-+#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-+ } else if (!strcmp(consdev, "uart1")) {
-+ setleds("u1cn");
-+ cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 1);
-+#endif
-+#endif
-+#ifdef CONFIG_VGA_CONSOLE
-+ } else if (!strcmp(consdev, "pcconsole0")) {
-+ setleds("pccn");
-+ cfe_consdev = MKDEV(TTY_MAJOR, 0);
-+#endif
-+ } else
-+ return -ENODEV;
-+ }
-+ return 0;
-+}
-+
-+static struct console sb1250_cfe_cons = {
-+ name: "cfe",
-+ write: cfe_console_write,
-+ device: cfe_console_device,
-+ setup: cfe_console_setup,
-+ flags: CON_PRINTBUFFER,
-+ index: -1,
-+};
-+
-+void __init sb1250_cfe_console_init(void)
-+{
-+ register_console(&sb1250_cfe_cons);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Entries
---- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Entries 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.1.2.1/Tue Aug 27 12:00:53 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/cfe_api.c/1.1.2.3/Fri Sep 27 15:49:09 2002/-ko/Tlinux_2_4_20
-+/cfe_api.h/1.1.2.3/Fri Sep 27 15:49:09 2002/-ko/Tlinux_2_4_20
-+/cfe_api_int.h/1.1.2.1/Fri Sep 27 17:20:57 2002/-ko/Tlinux_2_4_20
-+/cfe_error.h/1.1.2.3/Fri Sep 27 15:49:09 2002/-ko/Tlinux_2_4_20
-+/console.c/1.1.2.1/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.6/Tue Jan 28 02:13:58 2003/-ko/Tlinux_2_4_20
-+/smp.c/1.1.2.4/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Repository
---- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Repository 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sibyte/cfe
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Root
---- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Root 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Tag
---- linux-2.4.20/arch/mips/sibyte/cfe/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/CVS/Tag 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/.cvsignore
---- linux-2.4.20/arch/mips/sibyte/cfe/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/.cvsignore 2002-08-27 07:00:53.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/Makefile
---- linux-2.4.20/arch/mips/sibyte/cfe/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/Makefile 2003-01-21 23:11:38.000000000 -0600
-@@ -4,5 +4,6 @@
-
- obj-y = cfe_api.o setup.o
- obj-$(CONFIG_SMP) += smp.o
-+obj-$(CONFIG_SIBYTE_CFE_CONSOLE) += console.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/setup.c
---- linux-2.4.20/arch/mips/sibyte/cfe/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/setup.c 2003-01-27 20:13:58.000000000 -0600
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-+ * Copyright (C) 2000, 2001, 2002 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -23,13 +23,11 @@
- #include <linux/blk.h>
- #include <linux/bootmem.h>
- #include <linux/smp.h>
--#include <linux/console.h>
-
- #include <asm/bootinfo.h>
- #include <asm/reboot.h>
- #include <asm/sibyte/board.h>
-
--#include "cfe_xiocb.h"
- #include "cfe_api.h"
- #include "cfe_error.h"
-
-@@ -48,10 +46,6 @@
- #endif
- #endif
-
--#define SB1250_DUART_MINOR_BASE 192 /* XXXKW put this somewhere sane */
--#define SB1250_PROMICE_MINOR_BASE 191 /* XXXKW put this somewhere sane */
--kdev_t cfe_consdev;
--
- #define SIBYTE_MAX_MEM_REGIONS 8
- phys_t board_mem_region_addrs[SIBYTE_MAX_MEM_REGIONS];
- phys_t board_mem_region_sizes[SIBYTE_MAX_MEM_REGIONS];
-@@ -62,6 +56,8 @@
- quite redundant. But not something to fix just now */
- extern char arcs_cmdline[];
-
-+int cfe_cons_handle;
-+
- #ifdef CONFIG_EMBEDDED_RAMDISK
- /* These are symbols defined by the ramdisk linker script */
- extern unsigned char __rd_start;
-@@ -95,8 +91,8 @@
-
- static __init void prom_meminit(void)
- {
-- u64 addr, size; /* regardless of 64BIT_PHYS_ADDR */
-- long type;
-+ u64 addr, size, type; /* regardless of 64BIT_PHYS_ADDR */
-+ int mem_flags = 0;
- unsigned int idx;
- int rd_flag;
- #ifdef CONFIG_BLK_DEV_INITRD
-@@ -114,8 +110,8 @@
- }
- #endif
-
-- initrd_pstart = __pa(initrd_start);
-- initrd_pend = __pa(initrd_end);
-+ initrd_pstart = CPHYSADDR(initrd_start);
-+ initrd_pend = CPHYSADDR(initrd_end);
- if (initrd_start &&
- ((initrd_pstart > MAX_RAM_SIZE)
- || (initrd_pend > MAX_RAM_SIZE))) {
-@@ -124,7 +120,7 @@
-
- #endif /* INITRD */
-
-- for (idx = 0; cfe_enummem(idx, &addr, &size, &type) != CFE_ERR_NOMORE;
-+ for (idx = 0; cfe_enummem(idx, mem_flags, &addr, &size, &type) != CFE_ERR_NOMORE;
- idx++) {
- rd_flag = 0;
- if (type == CFE_MI_AVAILABLE) {
-@@ -205,13 +201,13 @@
- if (!*tmp) {
- goto fail;
- }
-- initrd_size = simple_strtol(str, &endptr, 16);
-+ initrd_size = simple_strtoul(str, &endptr, 16);
- if (*endptr) {
- *(tmp-1) = '@';
- goto fail;
- }
- *(tmp-1) = '@';
-- initrd_start = simple_strtol(tmp, &endptr, 16);
-+ initrd_start = simple_strtoul(tmp, &endptr, 16);
- if (*endptr) {
- goto fail;
- }
-@@ -232,21 +228,51 @@
- */
- __init int prom_init(int argc, char **argv, char **envp, int *prom_vec)
- {
-+ uint64_t cfe_ept, cfe_handle;
-+ unsigned int cfe_eptseal;
-+
- _machine_restart = (void (*)(char *))cfe_linux_exit;
- _machine_halt = cfe_linux_exit;
- _machine_power_off = cfe_linux_exit;
-
- /*
-- * This should go away. Detect if we're booting
-- * straight from cfe without a loader. If we
-- * are, then we've got a prom vector in a0. Otherwise,
-- * argc (and argv and envp, for that matter) will be 0)
-+ * Check if a loader was used; if NOT, the 4 arguments are
-+ * what CFE gives us (handle, 0, EPT and EPTSEAL)
- */
- if (argc < 0) {
-- prom_vec = (int *)argc;
-+ cfe_handle = (uint64_t)(long)argc;
-+ cfe_ept = (long)envp;
-+ cfe_eptseal = (uint32_t)(unsigned long)prom_vec;
-+ } else {
-+ if ((int32_t)(long)prom_vec < 0) {
-+ /*
-+ * Old loader; all it gives us is the handle,
-+ * so use the "known" entrypoint and assume
-+ * the seal.
-+ */
-+ cfe_handle = (uint64_t)(long)prom_vec;
-+ cfe_ept = (uint64_t)((int32_t)0x9fc00500);
-+ cfe_eptseal = CFE_EPTSEAL;
-+ } else {
-+ /*
-+ * Newer loaders bundle the handle/ept/eptseal
-+ * Note: prom_vec is in the loader's useg
-+ * which is still alive in the TLB.
-+ */
-+ cfe_handle = (uint64_t)((int32_t *)prom_vec)[0];
-+ cfe_ept = (uint64_t)((int32_t *)prom_vec)[2];
-+ cfe_eptseal = (unsigned int)((uint32_t *)prom_vec)[3];
-+ }
- }
-- cfe_init((long)prom_vec);
-- cfe_open_console();
-+ if (cfe_eptseal != CFE_EPTSEAL) {
-+ /* XXXKW what? way too early to panic... */
-+ }
-+ cfe_init(cfe_handle, cfe_ept);
-+ /*
-+ * Get the handle for (at least) prom_putchar, possibly for
-+ * boot console
-+ */
-+ cfe_cons_handle = cfe_getstdhandle(CFE_STDHANDLE_CONSOLE);
- if (cfe_getenv("LINUX_CMDLINE", arcs_cmdline, CL_SIZE) < 0) {
- if (argc < 0) {
- /*
-@@ -311,77 +337,10 @@
- return 0;
- }
-
--#ifdef CONFIG_SIBYTE_CFE_CONSOLE
--
--static void cfe_console_write(struct console *cons, const char *str,
-- unsigned int count)
--{
-- int i, last;
--
-- for (i=0,last=0; i<count; i++) {
-- if (!str[i])
-- /* XXXKW can/should this ever happen? */
-- panic("cfe_console_write with NULL");
-- if (str[i] == '\n') {
-- cfe_console_print(&str[last], i-last);
-- cfe_console_print("\r", 1);
-- last = i;
-- }
-- }
-- if (last != count)
-- cfe_console_print(&str[last], count-last);
--}
--
--static kdev_t cfe_console_device(struct console *c)
--{
-- return cfe_consdev;
--}
--
--static int cfe_console_setup(struct console *cons, char *str)
-+void prom_putchar(char c)
- {
-- char consdev[32];
-- cfe_open_console();
-- /* XXXKW think about interaction with 'console=' cmdline arg */
-- /* If none of the console options are configured, the build will break. */
-- if (cfe_getenv("BOOT_CONSOLE", consdev, 32) >= 0) {
--#ifdef CONFIG_SIBYTE_SB1250_DUART
-- if (!strcmp(consdev, "uart0")) {
-- setleds("u0cn");
-- cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 0);
--#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-- } else if (!strcmp(consdev, "uart1")) {
-- setleds("u1cn");
-- cfe_consdev = MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + 1);
--#endif
--#endif
--#ifdef CONFIG_VGA_CONSOLE
-- } else if (!strcmp(consdev, "pcconsole0")) {
-- setleds("pccn");
-- cfe_consdev = MKDEV(TTY_MAJOR, 0);
--#endif
--#ifdef CONFIG_PROMICE
-- } else if (!strcmp(consdev, "promice0")) {
-- setleds("picn");
-- cfe_consdev = MKDEV(TTY_MAJOR, SB1250_PROMICE_MINOR_BASE);
--#endif
-- } else
-- return -ENODEV;
-- }
-- return 0;
--}
--
--static struct console sb1250_cfe_cons = {
-- name: "cfe",
-- write: cfe_console_write,
-- device: cfe_console_device,
-- setup: cfe_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
--};
-+ int ret;
-
--void __init sb1250_cfe_console_init(void)
--{
-- register_console(&sb1250_cfe_cons);
-+ while ((ret = cfe_write(cfe_cons_handle, &c, 1)) == 0)
-+ ;
- }
--
--#endif /* CONFIG_SIBYTE_CFE_CONSOLE */
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/cfe/smp.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/smp.c
---- linux-2.4.20/arch/mips/sibyte/cfe/smp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/cfe/smp.c 2002-12-01 18:24:51.000000000 -0600
-@@ -21,7 +21,6 @@
-
- #include <asm/mipsregs.h>
-
--#include "cfe_xiocb.h"
- #include "cfe_api.h"
- #include "cfe_error.h"
-
-@@ -32,8 +31,8 @@
- int prom_boot_secondary(int cpu, unsigned long sp, unsigned long gp)
- {
- int retval;
--
-- retval = cfe_start_cpu(cpu, &smp_bootstrap, sp, gp, 0);
-+
-+ retval = cfe_cpu_start(cpu, &smp_bootstrap, sp, gp, 0);
- if (retval != 0) {
- printk("cfe_start_cpu(%i) returned %i\n" , cpu, retval);
- return 0;
-@@ -45,12 +44,12 @@
- void prom_init_secondary(void)
- {
- /* Set up kseg0 to be cachable coherent */
-- clear_cp0_config(CONF_CM_CMASK);
-- set_cp0_config(0x5);
-+ clear_c0_config(CONF_CM_CMASK);
-+ set_c0_config(0x5);
-
- /* Enable interrupts for lines 0-4 */
-- clear_cp0_status(0xe000);
-- set_cp0_status(0x1f01);
-+ clear_c0_status(0xe000);
-+ set_c0_status(0x1f01);
- }
-
- /*
-@@ -64,7 +63,7 @@
-
- /* Use CFE to find out how many CPUs are available */
- for (i=1; i<NR_CPUS; i++) {
-- if (cfe_stop_cpu(i) == 0) {
-+ if (cfe_cpu_stop(i) == 0) {
- num_cpus++;
- }
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Entries
---- linux-2.4.20/arch/mips/sibyte/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Entries 2005-01-06 23:08:19.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.1/Thu Nov 8 01:54:47 2001/-ko/Tlinux_2_4_20
-+D/cfe////
-+D/sb1250////
-+D/swarm////
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Repository
---- linux-2.4.20/arch/mips/sibyte/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Repository 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sibyte
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Root
---- linux-2.4.20/arch/mips/sibyte/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Root 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Tag
---- linux-2.4.20/arch/mips/sibyte/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/CVS/Tag 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/.cvsignore
---- linux-2.4.20/arch/mips/sibyte/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/.cvsignore 2001-11-07 19:54:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1/cache_err_handler.S linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_err_handler.S
---- linux-2.4.20/arch/mips/sibyte/sb1/cache_err_handler.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_err_handler.S 1969-12-31 18:00:00.000000000 -0600
-@@ -1,90 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--#include <linux/config.h>
--
--#include <asm/asm.h>
--#include <asm/regdef.h>
--#include <asm/mipsregs.h>
--#include <asm/sibyte/board.h>
--
-- .text
-- /* Special Cache Error handler for SB1 for now */
-- LEAF(except_vec2_sb1)
-- .set noat
-- .set mips0
-- /*
-- * This is a very bad place to be. Our cache error detection has
-- * triggered. If we have write-back data in the cache, we may not be
-- * able to recover. As a first-order desperate measure, turn off KSEG0
-- * cacheing.
-- */
-- .set push
-- #.set mips64
-- .set mips4
-- .set reorder
--#ifdef CONFIG_SB1_CERR_IGNORE_RECOVERABLE
-- mfc0 k1, $26 # mfc0 k1, $26, 0
-- # check if error was recoverable
-- # XXXKW - count them
-- bltz k1, leave_cerr
--#endif
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- # look for signature of spurious CErr
-- lui k0, 0x4000
-- bne k0, k1, real_cerr
-- .word 0x401Bd801 # mfc0 k1, $27, 1
-- lui k0, 0xffe0
-- and k1, k0, k1
-- lui k0, 0x0200
-- beq k0, k1, leave_cerr
-- # XXXKW - count them
--#endif
--
--real_cerr:
--#ifdef CONFIG_SB1_CERR_SPIN
-- setleds(k0,k1,'C','E','R','R')
--
--1: b 1b
--#else
-- mfc0 k0,CP0_CONFIG
-- li k1,~CONF_CM_CMASK
-- and k0,k0,k1
-- ori k0,k0,CONF_CM_UNCACHED
-- mtc0 k0,CP0_CONFIG
--
-- SSNOP
-- SSNOP
-- SSNOP
-- SSNOP
-- bnezl $0, 1f
--1:
-- j sb1_cache_error
--#endif
--
--#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || defined(CONFIG_SB1_CERR_IGNORE_RECOVERABLE)
--leave_cerr:
-- # clear/unlock the registers
-- mtc0 zero, $26 # mtc0 zero, $26, 0
-- mtc0 zero, $27 # mtc0 zero, $27, 0
-- .word 0x4080d801 # mtc0 zero, $27, 1
-- .word 0x4080d803 # mtc0 zero, $27, 3
-- eret
--#endif
--
-- .set pop
-- END(except_vec2_sb1)
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1/cache_error.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_error.c
---- linux-2.4.20/arch/mips/sibyte/sb1/cache_error.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/cache_error.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,511 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--#include <linux/sched.h>
--#include <asm/mipsregs.h>
--
--/* SB1 definitions */
--
--/* XXX should come from config1 XXX */
--#define SB1_CACHE_INDEX_MASK 0x1fe0
--
--#define CP0_ERRCTL_RECOVERABLE (1 << 31)
--#define CP0_ERRCTL_DCACHE (1 << 30)
--#define CP0_ERRCTL_ICACHE (1 << 29)
--#define CP0_ERRCTL_MULTIBUS (1 << 23)
--#define CP0_ERRCTL_MC_TLB (1 << 15)
--#define CP0_ERRCTL_MC_TIMEOUT (1 << 14)
--
--#define CP0_CERRI_TAG_PARITY (1 << 29)
--#define CP0_CERRI_DATA_PARITY (1 << 28)
--#define CP0_CERRI_EXTERNAL (1 << 26)
--
--#define CP0_CERRI_IDX_VALID(c) (!((c) & CP0_CERRI_EXTERNAL))
--#define CP0_CERRI_DATA (CP0_CERRI_DATA_PARITY)
--
--#define CP0_CERRD_MULTIPLE (1 << 31)
--#define CP0_CERRD_TAG_STATE (1 << 30)
--#define CP0_CERRD_TAG_ADDRESS (1 << 29)
--#define CP0_CERRD_DATA_SBE (1 << 28)
--#define CP0_CERRD_DATA_DBE (1 << 27)
--#define CP0_CERRD_EXTERNAL (1 << 26)
--#define CP0_CERRD_LOAD (1 << 25)
--#define CP0_CERRD_STORE (1 << 24)
--#define CP0_CERRD_FILLWB (1 << 23)
--#define CP0_CERRD_COHERENCY (1 << 22)
--#define CP0_CERRD_DUPTAG (1 << 21)
--
--#define CP0_CERRD_DPA_VALID(c) (!((c) & CP0_CERRD_EXTERNAL))
--#define CP0_CERRD_IDX_VALID(c) \
-- (((c) & (CP0_CERRD_LOAD | CP0_CERRD_STORE)) ? (!((c) & CP0_CERRD_EXTERNAL)) : 0)
--#define CP0_CERRD_CAUSES \
-- (CP0_CERRD_LOAD | CP0_CERRD_STORE | CP0_CERRD_FILLWB | CP0_CERRD_COHERENCY | CP0_CERRD_DUPTAG)
--#define CP0_CERRD_TYPES \
-- (CP0_CERRD_TAG_STATE | CP0_CERRD_TAG_ADDRESS | CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE | CP0_CERRD_EXTERNAL)
--#define CP0_CERRD_DATA (CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE)
--
--static uint32_t extract_ic(unsigned short addr, int data);
--static uint32_t extract_dc(unsigned short addr, int data);
--
--spinlock_t in_cacheerr = SPIN_LOCK_UNLOCKED;
--
--static inline void breakout_errctl(unsigned int val)
--{
-- if (val & CP0_ERRCTL_RECOVERABLE)
-- printk(" recoverable");
-- if (val & CP0_ERRCTL_DCACHE)
-- printk(" dcache");
-- if (val & CP0_ERRCTL_ICACHE)
-- printk(" icache");
-- if (val & CP0_ERRCTL_MULTIBUS)
-- printk(" multiple-buserr");
-- printk("\n");
--}
--
--static inline void breakout_cerri(unsigned int val)
--{
-- if (val & CP0_CERRI_TAG_PARITY)
-- printk(" tag-parity");
-- if (val & CP0_CERRI_DATA_PARITY)
-- printk(" data-parity");
-- if (val & CP0_CERRI_EXTERNAL)
-- printk(" external");
-- printk("\n");
--}
--
--static inline void breakout_cerrd(unsigned int val)
--{
-- switch (val & CP0_CERRD_CAUSES) {
-- case CP0_CERRD_LOAD:
-- printk(" load,");
-- break;
-- case CP0_CERRD_STORE:
-- printk(" store,");
-- break;
-- case CP0_CERRD_FILLWB:
-- printk(" fill/wb,");
-- break;
-- case CP0_CERRD_COHERENCY:
-- printk(" coherency,");
-- break;
-- case CP0_CERRD_DUPTAG:
-- printk(" duptags,");
-- break;
-- default:
-- printk(" NO CAUSE,");
-- break;
-- }
-- if (!(val & CP0_CERRD_TYPES))
-- printk(" NO TYPE");
-- else {
-- if (val & CP0_CERRD_MULTIPLE)
-- printk(" multi-err");
-- if (val & CP0_CERRD_TAG_STATE)
-- printk(" tag-state");
-- if (val & CP0_CERRD_TAG_ADDRESS)
-- printk(" tag-address");
-- if (val & CP0_CERRD_DATA_SBE)
-- printk(" data-SBE");
-- if (val & CP0_CERRD_DATA_DBE)
-- printk(" data-DBE");
-- if (val & CP0_CERRD_EXTERNAL)
-- printk(" external");
-- }
-- printk("\n");
--}
--
--asmlinkage void sb1_cache_error(void)
--{
-- uint64_t cerr_dpa;
-- uint32_t errctl, cerr_i, cerr_d, dpalo, dpahi, eepc, res;
--
-- /* Prevent re-entrance in the SMP case */
-- spin_lock(&in_cacheerr);
-- printk("Cache error exception on CPU %x:\n",
-- (read_32bit_cp0_register(CP0_PRID) >> 25) & 0x7);
-- __asm__ __volatile__ (
-- ".set push\n\t"
-- ".set mips64\n\t"
-- ".set noat\n\t"
-- "mfc0 %0, $26, 0\n\t"
-- "mfc0 %1, $27, 0\n\t"
-- "mfc0 %2, $27, 1\n\t"
-- "dmfc0 $1, $27, 3\n\t"
-- "dsrl32 %3, $1, 0 \n\t"
-- "sll %4, $1, 0 \n\t"
-- "mfc0 %5, $30\n\t"
-- ".set pop\n"
-- : "=r" (errctl), "=r" (cerr_i), "=r" (cerr_d),
-- "=r" (dpahi), "=r" (dpalo), "=r" (eepc));
-- cerr_dpa = (((uint64_t)dpahi) << 32) | dpalo;
-- printk(" cp0_errorepc == %08x\n", eepc);
-- printk(" cp0_errctl == %08x", errctl);
-- breakout_errctl(errctl);
-- if (errctl & CP0_ERRCTL_ICACHE) {
-- printk(" cp0_cerr_i == %08x", cerr_i);
-- breakout_cerri(cerr_i);
-- if (CP0_CERRI_IDX_VALID(cerr_i)) {
-- if ((eepc & SB1_CACHE_INDEX_MASK) != (cerr_i & SB1_CACHE_INDEX_MASK))
-- printk(" cerr_i idx doesn't match eepc\n");
-- else {
-- res = extract_ic(cerr_i & SB1_CACHE_INDEX_MASK,
-- (cerr_i & CP0_CERRI_DATA) != 0);
-- if (!(res & cerr_i))
-- printk("...didn't see indicated icache problem\n");
-- }
-- }
-- }
-- if (errctl & CP0_ERRCTL_DCACHE) {
-- printk(" cp0_cerr_d == %08x", cerr_d);
-- breakout_cerrd(cerr_d);
-- if (CP0_CERRD_DPA_VALID(cerr_d)) {
-- printk(" cp0_cerr_dpa == %010llx\n", cerr_dpa);
-- if (!CP0_CERRD_IDX_VALID(cerr_d)) {
-- res = extract_dc(cerr_dpa & SB1_CACHE_INDEX_MASK,
-- (cerr_d & CP0_CERRD_DATA) != 0);
-- if (!(res & cerr_d))
-- printk("...didn't see indicated dcache problem\n");
-- } else {
-- if ((cerr_dpa & SB1_CACHE_INDEX_MASK) != (cerr_d & SB1_CACHE_INDEX_MASK))
-- printk(" cerr_d idx doesn't match cerr_dpa\n");
-- else {
-- res = extract_dc(cerr_d & SB1_CACHE_INDEX_MASK,
-- (cerr_d & CP0_CERRD_DATA) != 0);
-- if (!(res & cerr_d))
-- printk("...didn't see indicated problem\n");
-- }
-- }
-- }
-- }
--
-- while (1);
-- /*
-- * This tends to make things get really ugly; let's just stall instead.
-- * panic("Can't handle the cache error!");
-- */
--}
--
--
--/* Parity lookup table. */
--static const uint8_t parity[256] = {
-- 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-- 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-- 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-- 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-- 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-- 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-- 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-- 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0
--};
--
--/* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
--static const uint64_t mask_72_64[8] = {
-- 0x0738C808099264FFL,
-- 0x38C808099264FF07L,
-- 0xC808099264FF0738L,
-- 0x08099264FF0738C8L,
-- 0x099264FF0738C808L,
-- 0x9264FF0738C80809L,
-- 0x64FF0738C8080992L,
-- 0xFF0738C808099264L
--};
--
--/* Calculate the parity on a range of bits */
--static char range_parity(uint64_t dword, int max, int min)
--{
-- char parity = 0;
-- int i;
-- dword >>= min;
-- for (i=max-min; i>=0; i--) {
-- if (dword & 0x1)
-- parity = !parity;
-- dword >>= 1;
-- }
-- return parity;
--}
--
--/* Calculate the 4-bit even byte-parity for an instruction */
--static unsigned char inst_parity(uint32_t word)
--{
-- int i, j;
-- char parity = 0;
-- for (j=0; j<4; j++) {
-- char byte_parity = 0;
-- for (i=0; i<8; i++) {
-- if (word & 0x80000000)
-- byte_parity = !byte_parity;
-- word <<= 1;
-- }
-- parity <<= 1;
-- parity |= byte_parity;
-- }
-- return parity;
--}
--
--static uint32_t extract_ic(unsigned short addr, int data)
--{
-- unsigned short way;
-- int valid;
-- uint64_t taglo, va, tlo_tmp;
-- uint32_t taghi, taglolo, taglohi;
-- uint8_t lru;
-- int res = 0;
--
-- printk("Icache index 0x%04x ", addr);
-- for (way = 0; way < 4; way++) {
-- /* Index-load-tag-I */
-- __asm__ __volatile__ (
-- ".set push \n\t"
-- ".set noreorder \n\t"
-- ".set mips64 \n\t"
-- ".set noat \n\t"
-- "cache 4, 0(%3) \n\t"
-- "mfc0 %0, $29, 0\n\t"
-- "dmfc0 $1, $28, 0\n\t"
-- "dsrl32 %1, $1, 0 \n\t"
-- "sll %2, $1, 0 \n\t"
-- ".set pop \n"
-- : "=r" (taghi), "=r" (taglohi),
-- "=r" (taglolo)
-- : "r" ((way << 13) | addr));
-- taglo = ((unsigned long long)taglohi << 32) | taglolo;
-- if (way == 0) {
-- lru = (taghi >> 14) & 0xff;
-- printk("[Bank %d Set 0x%02x] LRU > %d %d %d %d > MRU\n",
-- ((addr >> 5) & 0x3), /* bank */
-- ((addr >> 7) & 0x3f), /* index */
-- (lru & 0x3),
-- ((lru >> 2) & 0x3),
-- ((lru >> 4) & 0x3),
-- ((lru >> 6) & 0x3));
-- }
-- va = (taglo & 0xC0000FFFFFFFE000) | addr;
-- if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
-- va |= 0x3FFFF00000000000;
-- valid = ((taghi >> 29) & 1);
-- if (valid) {
-- tlo_tmp = taglo & 0xfff3ff;
-- if (((taglo >> 10) & 1) ^ range_parity(tlo_tmp, 23, 0)) {
-- printk(" ** bad parity in VTag0/G/ASID\n");
-- res |= CP0_CERRI_TAG_PARITY;
-- }
-- if (((taglo >> 11) & 1) ^ range_parity(taglo, 63, 24)) {
-- printk(" ** bad parity in R/VTag1\n");
-- res |= CP0_CERRI_TAG_PARITY;
-- }
-- }
-- if (valid ^ ((taghi >> 27) & 1)) {
-- printk(" ** bad parity for valid bit\n");
-- res |= CP0_CERRI_TAG_PARITY;
-- }
-- printk(" %d [VA %016llx] [Vld? %d] raw tags: %08X-%016llX\n",
-- way, va, valid, taghi, taglo);
--
-- if (data) {
-- uint32_t datahi, insta, instb;
-- uint8_t predecode;
-- int offset;
--
-- /* (hit all banks and ways) */
-- for (offset = 0; offset < 4; offset++) {
-- /* Index-load-data-I */
-- __asm__ __volatile__ (
-- ".set push \n\t"
-- ".set noreorder \n\t"
-- ".set mips64 \n\t"
-- ".set noat \n\t"
-- "cache 6, 0(%3) \n\t"
-- "mfc0 %0, $29, 1\n\t"
-- "dmfc0 $1, $28, 1\n\t"
-- "dsrl32 %1, $1, 0 \n\t"
-- "sll %2, $1, 0 \n\t"
-- ".set pop \n"
-- : "=r" (datahi), "=r" (insta),
-- "=r" (instb)
-- : "r" ((way << 13) | addr | (offset << 3)));
-- predecode = (datahi >> 8) & 0xff;
-- if (((datahi >> 16) & 1) != (uint32_t)range_parity(predecode, 7, 0)) {
-- printk(" ** bad parity in predecode\n");
-- res |= CP0_CERRI_DATA_PARITY;
-- }
-- /* XXXKW should/could check predecode bits themselves */
-- if (((datahi >> 4) & 0xf) ^ inst_parity(insta)) {
-- printk(" ** bad parity in instruction a\n");
-- res |= CP0_CERRI_DATA_PARITY;
-- }
-- if ((datahi & 0xf) ^ inst_parity(instb)) {
-- printk(" ** bad parity in instruction b\n");
-- res |= CP0_CERRI_DATA_PARITY;
-- }
-- printk(" %05X-%08X%08X", datahi, insta, instb);
-- }
-- printk("\n");
-- }
-- }
-- return res;
--}
--
--/* Compute the ECC for a data doubleword */
--static uint8_t dc_ecc(uint64_t dword)
--{
-- uint64_t t;
-- uint32_t w;
-- uint8_t p;
-- int i;
--
-- p = 0;
-- for (i = 7; i >= 0; i--)
-- {
-- p <<= 1;
-- t = dword & mask_72_64[i];
-- w = (uint32_t)(t >> 32);
-- p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-- ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-- w = (uint32_t)(t & 0xFFFFFFFF);
-- p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-- ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-- }
-- return p;
--}
--
--struct dc_state {
-- unsigned char val;
-- char *name;
--};
--
--static struct dc_state dc_states[] = {
-- { 0x00, "INVALID" },
-- { 0x0f, "COH-SHD" },
-- { 0x13, "NCO-E-C" },
-- { 0x19, "NCO-E-D" },
-- { 0x16, "COH-E-C" },
-- { 0x1c, "COH-E-D" },
-- { 0xff, "*ERROR*" }
--};
--
--#define DC_TAG_VALID(state) \
-- (((state) == 0xf) || ((state) == 0x13) || ((state) == 0x19) || ((state == 0x16)) || ((state) == 0x1c))
--
--static char *dc_state_str(unsigned char state)
--{
-- struct dc_state *dsc = dc_states;
-- while (dsc->val != 0xff) {
-- if (dsc->val == state)
-- break;
-- dsc++;
-- }
-- return dsc->name;
--}
--
--static uint32_t extract_dc(unsigned short addr, int data)
--{
-- int valid, way;
-- unsigned char state;
-- uint64_t taglo, pa;
-- uint32_t taghi, taglolo, taglohi;
-- uint8_t ecc, lru;
-- int res = 0;
--
-- printk("Dcache index 0x%04x ", addr);
-- for (way = 0; way < 4; way++) {
-- /* Index-load-tag-D */
-- __asm__ __volatile__ (
-- ".set push \n\t"
-- ".set noreorder \n\t"
-- ".set mips64 \n\t"
-- ".set noat \n\t"
-- "cache 5, 0(%3) \n\t"
-- "mfc0 %0, $29, 2\n\t"
-- "dmfc0 $1, $28, 2\n\t"
-- "dsrl32 %1, $1, 0 \n\t"
-- "sll %2, $1, 0 \n\t"
-- ".set pop \n"
-- : "=r" (taghi), "=r" (taglohi),
-- "=r" (taglolo)
-- : "r" ((way << 13) | addr));
--
-- taglo = ((unsigned long long)taglohi << 32) | taglolo;
-- pa = (taglo & 0xFFFFFFE000) | addr;
-- if (way == 0) {
-- lru = (taghi >> 14) & 0xff;
-- printk("[Bank %d Set 0x%02x] LRU > %d %d %d %d > MRU\n",
-- ((addr >> 11) & 0x2) | ((addr >> 5) & 1), /* bank */
-- ((addr >> 6) & 0x3f), /* index */
-- (lru & 0x3),
-- ((lru >> 2) & 0x3),
-- ((lru >> 4) & 0x3),
-- ((lru >> 6) & 0x3));
-- }
-- state = (taghi >> 25) & 0x1f;
-- valid = DC_TAG_VALID(state);
-- printk(" %d [PA %010llx] [state %s (%02x)] raw tags: %08X-%016llX\n",
-- way, pa, dc_state_str(state), state, taghi, taglo);
-- if (valid) {
-- if (((taglo >> 11) & 1) ^ range_parity(taglo, 39, 26)) {
-- printk(" ** bad parity in PTag1\n");
-- res |= CP0_CERRD_TAG_ADDRESS;
-- }
-- if (((taglo >> 10) & 1) ^ range_parity(taglo, 25, 13)) {
-- printk(" ** bad parity in PTag0\n");
-- res |= CP0_CERRD_TAG_ADDRESS;
-- }
-- } else {
-- res |= CP0_CERRD_TAG_STATE;
-- }
--
-- if (data) {
-- uint64_t datalo;
-- uint32_t datalohi, datalolo, datahi;
-- int offset;
--
-- for (offset = 0; offset < 4; offset++) {
-- /* Index-load-data-D */
-- __asm__ __volatile__ (
-- ".set push \n\t"
-- ".set noreorder \n\t"
-- ".set mips64 \n\t"
-- ".set noat \n\t"
-- "cache 7, 0(%3) \n\t"
-- "mfc0 %0, $29, 3\n\t"
-- "dmfc0 $1, $28, 3\n\t"
-- "dsrl32 %1, $1, 0 \n\t"
-- "sll %2, $1, 0 \n\t"
-- ".set pop \n"
-- : "=r" (datahi), "=r" (datalohi),
-- "=r" (datalolo)
-- : "r" ((way << 13) | addr | (offset << 3)));
-- datalo = ((unsigned long long)datalohi << 32) | datalolo;
-- ecc = dc_ecc(datalo);
-- if (ecc != datahi) {
-- int bits = 0;
-- printk(" ** bad ECC (%02x %02x) ->",
-- datahi, ecc);
-- ecc ^= datahi;
-- while (ecc) {
-- if (ecc & 1) bits++;
-- ecc >>= 1;
-- }
-- res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
-- }
-- printk(" %02X-%016llX", datahi, datalo);
-- }
-- printk("\n");
-- }
-- }
-- return res;
--}
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/Makefile
---- linux-2.4.20/arch/mips/sibyte/sb1/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1/Makefile 1969-12-31 18:00:00.000000000 -0600
-@@ -1,7 +0,0 @@
--USE_STANDARD_AS_RULE := true
--
--L_TARGET = sb1kern.a
--
--obj-$(CONFIG_SB1_CACHE_ERROR) += cache_err_handler.o cache_error.o
--
--include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.c 2003-02-07 16:00:22.000000000 -0600
-@@ -34,11 +34,11 @@
- #include <asm/sibyte/sb1250_scd.h>
- #include <asm/sibyte/sb1250_int.h>
- #include <asm/sibyte/64bit.h>
--#include "bcm1250_tbprof.h"
-+#include <asm/sibyte/trace_prof.h>
-
--#define DEVNAME "sb1250_tbprof"
-+static struct sbprof_tb sbp;
-
--static struct sbprof_tb *sbp;
-+#define TB_FULL (sbp.next_tb_sample == MAX_TB_SAMPLES)
-
- /************************************************************************
- * Support for ZBbus sampling using the trace buffer
-@@ -53,13 +53,13 @@
- *
- ************************************************************************/
-
--/* 100 samples per second on a 500 Mhz 1250 */
--#define TB_PERIOD 2500000ULL
-+/* 100 samples per second on a 500 Mhz 1250 (default) */
-+static u_int64_t tb_period = 2500000ULL;
-
- static void arm_tb(void)
- {
-- unsigned long long scdperfcnt;
-- unsigned long long next = (1ULL << 40) - TB_PERIOD;
-+ u_int64_t scdperfcnt;
-+ u_int64_t next = (1ULL << 40) - tb_period;
- /* Generate an SCD_PERFCNT interrupt in TB_PERIOD Zclks to
- trigger start of trace. XXX vary sampling period */
- out64(0, KSEG1 + A_SCD_PERF_CNT_1);
-@@ -75,17 +75,22 @@
- out64(next, KSEG1 + A_SCD_PERF_CNT_1);
- /* Reset the trace buffer */
- out64(M_SCD_TRACE_CFG_RESET, KSEG1 + A_SCD_TRACE_CFG);
-- out64(M_SCD_TRACE_CFG_FREEZE_FULL, KSEG1 + A_SCD_TRACE_CFG);
-- sbp->tb_armed = 1;
-+ out64(M_SCD_TRACE_CFG_FREEZE_FULL
-+#if 0 && defined(M_SCD_TRACE_CFG_FORCECNT)
-+ /* XXXKW may want to expose control to the data-collector */
-+ | M_SCD_TRACE_CFG_FORCECNT
-+#endif
-+ , KSEG1 + A_SCD_TRACE_CFG);
-+ sbp.tb_armed = 1;
- }
-
- static void sbprof_tb_intr(int irq, void *dev_id, struct pt_regs *regs)
- {
- int i;
- DBG(printk(DEVNAME ": tb_intr\n"));
-- if (sbp->next_tb_sample < MAX_TB_SAMPLES) {
-+ if (sbp.next_tb_sample < MAX_TB_SAMPLES) {
- /* XXX should use XKPHYS to make writes bypass L2 */
-- unsigned long long *p = sbp->sbprof_tbbuf[sbp->next_tb_sample++];
-+ u_int64_t *p = sbp.sbprof_tbbuf[sbp.next_tb_sample++];
- /* Read out trace */
- out64(M_SCD_TRACE_CFG_START_READ, KSEG1 + A_SCD_TRACE_CFG);
- __asm__ __volatile__ ("sync" : : : "memory");
-@@ -100,11 +105,11 @@
- p[i-5] = in64(KSEG1 + A_SCD_TRACE_READ); // read t0 hi
- p[i-6] = in64(KSEG1 + A_SCD_TRACE_READ); // read t0 lo
- }
-- if (!sbp->tb_enable) {
-+ if (!sbp.tb_enable) {
- DBG(printk(DEVNAME ": tb_intr shutdown\n"));
- out64(M_SCD_TRACE_CFG_RESET, KSEG1 + A_SCD_TRACE_CFG);
-- sbp->tb_armed = 0;
-- wake_up(&sbp->tb_sync);
-+ sbp.tb_armed = 0;
-+ wake_up(&sbp.tb_sync);
- } else {
- arm_tb(); // knock down current interrupt and get another one later
- }
-@@ -112,36 +117,51 @@
- /* No more trace buffer samples */
- DBG(printk(DEVNAME ": tb_intr full\n"));
- out64(M_SCD_TRACE_CFG_RESET, KSEG1 + A_SCD_TRACE_CFG);
-- sbp->tb_armed = 0;
-- if (!sbp->tb_enable) {
-- wake_up(&sbp->tb_sync);
-+ sbp.tb_armed = 0;
-+ if (!sbp.tb_enable) {
-+ wake_up(&sbp.tb_sync);
- }
-+ wake_up(&sbp.tb_read);
- }
- }
-
- static void sbprof_pc_intr(int irq, void *dev_id, struct pt_regs *regs)
- {
-- panic(DEVNAME ": pc_intr");
-+ printk(DEVNAME ": unexpected pc_intr");
- }
-
- static int sbprof_zbprof_start(struct file *filp)
- {
-- if (sbp->tb_enable)
-+ u_int64_t scdperfcnt;
-+
-+ if (sbp.tb_enable)
- return -EBUSY;
-
- DBG(printk(DEVNAME ": starting\n"));
-
-- sbp->tb_enable = 1;
-- sbp->next_tb_sample = 0;
-+ sbp.tb_enable = 1;
-+ sbp.next_tb_sample = 0;
- filp->f_pos = 0;
-
- if (request_irq
-- (K_INT_TRACE_FREEZE, sbprof_tb_intr, 0, "sbprof_tb trace freeze", sbp)) {
-+ (K_INT_TRACE_FREEZE, sbprof_tb_intr, 0, DEVNAME " trace freeze", &sbp)) {
- return -EBUSY;
- }
-+ /* Make sure there isn't a perf-cnt interrupt waiting */
-+ scdperfcnt = in64(KSEG1 + A_SCD_PERF_CNT_CFG);
-+ /* Disable and clear counters, override SRC_1 */
-+ out64((scdperfcnt & ~(M_SPC_CFG_SRC1 | M_SPC_CFG_ENABLE)) |
-+ M_SPC_CFG_ENABLE |
-+ M_SPC_CFG_CLEAR |
-+ V_SPC_CFG_SRC1(1),
-+ KSEG1 + A_SCD_PERF_CNT_CFG);
-+
-+ /* We grab this interrupt to prevent others from trying to use
-+ it, even though we don't want to service the interrupts
-+ (they only feed into the trace-on-interrupt mechanism) */
- if (request_irq
-- (K_INT_PERF_CNT, sbprof_pc_intr, 0, "sbprof_tb scd perfcnt", sbp)) {
-- free_irq(K_INT_TRACE_FREEZE, sbp);
-+ (K_INT_PERF_CNT, sbprof_pc_intr, 0, DEVNAME " scd perfcnt", &sbp)) {
-+ free_irq(K_INT_TRACE_FREEZE, &sbp);
- return -EBUSY;
- }
-
-@@ -206,18 +226,18 @@
- {
- DBG(printk(DEVNAME ": stopping\n"));
-
-- if (sbp->tb_enable) {
-- sbp->tb_enable = 0;
-+ if (sbp.tb_enable) {
-+ sbp.tb_enable = 0;
- /* XXXKW there is a window here where the intr handler
- may run, see the disable, and do the wake_up before
- this sleep happens. */
-- if (sbp->tb_armed) {
-+ if (sbp.tb_armed) {
- DBG(printk(DEVNAME ": wait for disarm\n"));
-- interruptible_sleep_on(&sbp->tb_sync);
-+ interruptible_sleep_on(&sbp.tb_sync);
- DBG(printk(DEVNAME ": disarm complete\n"));
- }
-- free_irq(K_INT_TRACE_FREEZE, sbp);
-- free_irq(K_INT_PERF_CNT, sbp);
-+ free_irq(K_INT_TRACE_FREEZE, &sbp);
-+ free_irq(K_INT_PERF_CNT, &sbp);
- }
-
- DBG(printk(DEVNAME ": done stopping\n"));
-@@ -233,24 +253,19 @@
- if (minor != 0) {
- return -ENODEV;
- }
-- if (sbp != NULL) {
-+ if (sbp.open) {
- return -EBUSY;
- }
-
-- /* XXXKW spinlock? */
-- sbp = kmalloc(sizeof(struct sbprof_tb), GFP_KERNEL);
-- if (!sbp) {
-- return -ENOMEM;
-- }
-- memset(sbp, 0, sizeof(struct sbprof_tb));
-- sbp->sbprof_tbbuf = vmalloc(MAX_TBSAMPLE_BYTES);
-- if (!sbp->sbprof_tbbuf) {
-- kfree(sbp);
-- sbp = NULL;
-+ memset(&sbp, 0, sizeof(struct sbprof_tb));
-+ sbp.sbprof_tbbuf = vmalloc(MAX_TBSAMPLE_BYTES);
-+ if (!sbp.sbprof_tbbuf) {
- return -ENOMEM;
- }
-- memset(sbp->sbprof_tbbuf, 0, MAX_TBSAMPLE_BYTES);
-- init_waitqueue_head(&sbp->tb_sync);
-+ memset(sbp.sbprof_tbbuf, 0, MAX_TBSAMPLE_BYTES);
-+ init_waitqueue_head(&sbp.tb_sync);
-+ init_waitqueue_head(&sbp.tb_read);
-+ sbp.open = 1;
-
- return 0;
- }
-@@ -260,23 +275,22 @@
- int minor;
-
- minor = MINOR(inode->i_rdev);
-- if (minor != 0 || sbp == NULL) {
-+ if (minor != 0 || !sbp.open) {
- return -ENODEV;
- }
-
-- if (sbp->tb_armed || sbp->tb_enable) {
-+ if (sbp.tb_armed || sbp.tb_enable) {
- sbprof_zbprof_stop();
- }
-
-- vfree(sbp->sbprof_tbbuf);
-- kfree(sbp);
-- sbp = NULL;
-+ vfree(sbp.sbprof_tbbuf);
-+ sbp.open = 0;
-
- return 0;
- }
-
- static ssize_t sbprof_tb_read(struct file *filp, char *buf,
-- size_t size, loff_t *offp)
-+ size_t size, loff_t *offp)
- {
- int cur_sample, sample_off, cur_count, sample_left;
- char *src;
-@@ -288,9 +302,9 @@
- cur_sample = cur_off / TB_SAMPLE_SIZE;
- sample_off = cur_off % TB_SAMPLE_SIZE;
- sample_left = TB_SAMPLE_SIZE - sample_off;
-- while (size && (cur_sample < sbp->next_tb_sample)) {
-+ while (size && (cur_sample < sbp.next_tb_sample)) {
- cur_count = size < sample_left ? size : sample_left;
-- src = (char *)(((long)sbp->sbprof_tbbuf[cur_sample])+sample_off);
-+ src = (char *)(((long)sbp.sbprof_tbbuf[cur_sample])+sample_off);
- copy_to_user(dest, src, cur_count);
- DBG(printk(DEVNAME ": read from sample %d, %d bytes\n", cur_sample, cur_count));
- size -= cur_count;
-@@ -311,17 +325,12 @@
- return count;
- }
-
--#define SBPROF_ZBSTART _IOW('s', 0, int)
--#define SBPROF_ZBSTOP _IOW('s', 1, int)
--#define SBPROF_ZBFULL _IOW('s', 2, int)
--
- static int sbprof_tb_ioctl(struct inode *inode,
-- struct file *filp,
-- unsigned int command,
-- unsigned long arg)
-+ struct file *filp,
-+ unsigned int command,
-+ unsigned long arg)
- {
- int error = 0;
-- int full;
-
- switch (command) {
- case SBPROF_ZBSTART:
-@@ -330,9 +339,10 @@
- case SBPROF_ZBSTOP:
- error = sbprof_zbprof_stop();
- break;
-- case SBPROF_ZBFULL:
-- full = (sbp->next_tb_sample == MAX_TB_SAMPLES);
-- return put_user(full, (int *) arg);
-+ case SBPROF_ZBWAITFULL:
-+ interruptible_sleep_on(&sbp.tb_read);
-+ /* XXXKW check if interrupted? */
-+ return put_user(TB_FULL, (int *) arg);
- default:
- error = -EINVAL;
- break;
-@@ -342,18 +352,56 @@
- }
-
- static struct file_operations sbprof_tb_fops = {
-- owner: THIS_MODULE,
-- open: sbprof_tb_open,
-- release: sbprof_tb_release,
-- read: sbprof_tb_read,
-- ioctl: sbprof_tb_ioctl,
-- mmap: NULL,
-+ .owner = THIS_MODULE,
-+ .open = sbprof_tb_open,
-+ .release = sbprof_tb_release,
-+ .read = sbprof_tb_read,
-+ .ioctl = sbprof_tb_ioctl,
-+ .mmap = NULL,
- };
-
- static devfs_handle_t devfs_handle;
-
-+#define UNDEF 0
-+static unsigned long long pll_div_to_mhz[32] = {
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ 200,
-+ 250,
-+ 300,
-+ 350,
-+ 400,
-+ 450,
-+ 500,
-+ 550,
-+ 600,
-+ 650,
-+ 700,
-+ 750,
-+ 800,
-+ 850,
-+ 900,
-+ 950,
-+ 1000,
-+ 1050,
-+ 1100,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF,
-+ UNDEF
-+};
-+
- static int __init sbprof_tb_init(void)
- {
-+ unsigned int pll_div;
-+
- if (devfs_register_chrdev(SBPROF_TB_MAJOR, DEVNAME, &sbprof_tb_fops)) {
- printk(KERN_WARNING DEVNAME ": initialization failed (dev %d)\n",
- SBPROF_TB_MAJOR);
-@@ -363,8 +411,14 @@
- DEVFS_FL_DEFAULT, SBPROF_TB_MAJOR, 0,
- S_IFCHR | S_IRUGO | S_IWUGO,
- &sbprof_tb_fops, NULL);
-- sbp = NULL;
-- printk(KERN_INFO DEVNAME ": initialized\n");
-+ sbp.open = 0;
-+ pll_div = pll_div_to_mhz[G_SYS_PLL_DIV(in64(KSEG1 + A_SCD_SYSTEM_CFG))];
-+ if (pll_div != UNDEF) {
-+ tb_period = (pll_div / 2) * 10000;
-+ } else {
-+ printk(KERN_INFO DEVNAME ": strange PLL divide\n");
-+ }
-+ printk(KERN_INFO DEVNAME ": initialized - tb_period = %lld\n", tb_period);
- return 0;
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.h
---- linux-2.4.20/arch/mips/sibyte/sb1250/bcm1250_tbprof.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bcm1250_tbprof.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,100 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--#ifndef BCM1250_TBPROF_H
--
--#if SBPROF_TB_DEBUG
--#define DBG(a) a
--#else
--#define DBG(a)
--#endif
--
--#define SBPROF_TB_MAJOR 240
--
--typedef u_int64_t tb_sample_t[6*256];
--
--struct sbprof_tb {
-- tb_sample_t *sbprof_tbbuf;
-- int next_tb_sample;
--
-- volatile int tb_enable;
-- volatile int tb_armed;
--
-- wait_queue_head_t tb_sync;
--};
--
--#define MAX_SAMPLE_BYTES (24*1024*1024)
--#define MAX_TBSAMPLE_BYTES (12*1024*1024)
--
--#define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t))
--#define TB_SAMPLE_SIZE (sizeof(tb_sample_t))
--#define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE)
--
--/***************************************************************************
-- * Routines for gathering ZBbus profiles using trace buffer
-- ***************************************************************************/
--
--/* Requires: Already called zclk_timer_init with a value that won't
-- saturate 40 bits. No subsequent use of SCD performance counters
-- or trace buffer.
-- Effect: Starts gathering random ZBbus profiles using trace buffer. */
--static int sbprof_zbprof_start(struct file *filp);
--
--/* Effect: Stops collection of ZBbus profiles */
--static int sbprof_zbprof_stop(void);
--
--
--/***************************************************************************
-- * Routines for using 40-bit SCD cycle counter
-- *
-- * Client responsible for either handling interrupts or making sure
-- * the cycles counter never saturates, e.g., by doing
-- * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs.
-- ***************************************************************************/
--
--/* Configures SCD counter 0 to count ZCLKs starting from val;
-- Configures SCD counters1,2,3 to count nothing.
-- Must not be called while gathering ZBbus profiles.
--
--unsigned long long val; */
--#define zclk_timer_init(val) \
-- __asm__ __volatile__ (".set push;" \
-- ".set mips64;" \
-- "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-- "sd %0, 0x10($8);" /* write val to counter0 */ \
-- "sd %1, 0($8);" /* config counter0 for zclks*/ \
-- ".set pop" \
-- : /* no outputs */ \
-- /* enable, counter0 */ \
-- : /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \
-- : /* modifies */ "$8" )
--
--
--/* Reads SCD counter 0 and puts result in value
-- unsigned long long val; */
--#define zclk_get(val) \
-- __asm__ __volatile__ (".set push;" \
-- ".set mips64;" \
-- "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-- "ld %0, 0x10($8);" /* write val to counter0 */ \
-- ".set pop" \
-- : /* outputs */ "=r"(val) \
-- : /* inputs */ \
-- : /* modifies */ "$8" )
--
--#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/bus_watcher.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bus_watcher.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/bus_watcher.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/bus_watcher.c 2003-02-06 10:37:54.000000000 -0600
-@@ -0,0 +1,233 @@
-+/*
-+ * Copyright (C) 2002,2003 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/*
-+ * The Bus Watcher monitors internal bus transactions and maintains
-+ * counts of transactions with error status, logging details and
-+ * causing one of several interrupts. This driver provides a handler
-+ * for those interrupts which aggregates the counts (to avoid
-+ * saturating the 8-bit counters) and provides a presence in
-+ * /proc/bus_watcher if PROC_FS is on.
-+ */
-+
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/proc_fs.h>
-+#include <asm/system.h>
-+
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_regs.h>
-+#include <asm/sibyte/sb1250_int.h>
-+#include <asm/sibyte/sb1250_scd.h>
-+#include <asm/sibyte/64bit.h>
-+
-+
-+struct bw_stats_struct {
-+ uint64_t status;
-+ uint32_t l2_err;
-+ uint32_t memio_err;
-+ int status_printed;
-+ unsigned long l2_cor_d;
-+ unsigned long l2_bad_d;
-+ unsigned long l2_cor_t;
-+ unsigned long l2_bad_t;
-+ unsigned long mem_cor_d;
-+ unsigned long mem_bad_d;
-+ unsigned long bus_error;
-+} bw_stats;
-+
-+
-+static void print_summary(uint32_t status, uint32_t l2_err,
-+ uint32_t memio_err)
-+{
-+ printk("Bus watcher error counters: %08x %08x\n", l2_err, memio_err);
-+ printk("\nLast recorded signature:\n");
-+ printk("Request %02x from %d, answered by %d with Dcode %d\n",
-+ (unsigned int)(G_SCD_BERR_TID(status) & 0x3f),
-+ (int)(G_SCD_BERR_TID(status) >> 6),
-+ (int)G_SCD_BERR_RID(status),
-+ (int)G_SCD_BERR_DCODE(status));
-+}
-+
-+/*
-+ * check_bus_watcher is exported for use in situations where we want
-+ * to see the most recent status of the bus watcher, which might have
-+ * already been destructively read out of the registers.
-+ *
-+ * notes: this is currently used by the cache error handler
-+ * should provide locking against the interrupt handler
-+ */
-+void check_bus_watcher(void)
-+{
-+ u32 status, l2_err, memio_err;
-+ unsigned long flags;
-+
-+#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-+ /* Destructive read, clears register and interrupt */
-+ status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
-+#else
-+ /* Use non-destructive register */
-+ status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS_DEBUG);
-+#endif
-+ if (!(status & 0x7fffffff)) {
-+ printk("Using last values reaped by bus watcher driver\n");
-+ status = bw_stats.status;
-+ l2_err = bw_stats.l2_err;
-+ memio_err = bw_stats.memio_err;
-+ } else {
-+ l2_err = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
-+ memio_err = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
-+ }
-+ if (status & ~(1UL << 31))
-+ print_summary(status, l2_err, memio_err);
-+ else
-+ printk("Bus watcher indicates no error\n");
-+}
-+
-+static int bw_print_buffer(char *page, struct bw_stats_struct *stats)
-+{
-+ int len;
-+
-+ len = sprintf(page, "SiByte Bus Watcher statistics\n");
-+ len += sprintf(page+len, "-----------------------------\n");
-+ len += sprintf(page+len, "L2-d-cor %8ld\nL2-d-bad %8ld\n",
-+ stats->l2_cor_d, stats->l2_bad_d);
-+ len += sprintf(page+len, "L2-t-cor %8ld\nL2-t-bad %8ld\n",
-+ stats->l2_cor_t, stats->l2_bad_t);
-+ len += sprintf(page+len, "MC-d-cor %8ld\nMC-d-bad %8ld\n",
-+ stats->mem_cor_d, stats->mem_bad_d);
-+ len += sprintf(page+len, "IO-err %8ld\n", stats->bus_error);
-+ len += sprintf(page+len, "\nLast recorded signature:\n");
-+ len += sprintf(page+len, "Request %02x from %d, answered by %d with Dcode %d\n",
-+ (unsigned int)(G_SCD_BERR_TID(stats->status) & 0x3f),
-+ (int)(G_SCD_BERR_TID(stats->status) >> 6),
-+ (int)G_SCD_BERR_RID(stats->status),
-+ (int)G_SCD_BERR_DCODE(stats->status));
-+ /* XXXKW indicate multiple errors between printings, or stats
-+ collection (or both)? */
-+ if (stats->status & M_SCD_BERR_MULTERRS)
-+ len += sprintf(page+len, "Multiple errors observed since last check.\n");
-+ if (stats->status_printed) {
-+ len += sprintf(page+len, "(no change since last printing)\n");
-+ } else {
-+ stats->status_printed = 1;
-+ }
-+
-+ return len;
-+}
-+
-+#ifdef CONFIG_PROC_FS
-+
-+/* For simplicity, I want to assume a single read is required each
-+ time */
-+static int bw_read_proc(char *page, char **start, off_t off,
-+ int count, int *eof, void *data)
-+{
-+ int len;
-+
-+ if (off == 0) {
-+ len = bw_print_buffer(page, data);
-+ *start = page;
-+ } else {
-+ len = 0;
-+ *eof = 1;
-+ }
-+ return len;
-+}
-+
-+static void create_proc_decoder(struct bw_stats_struct *stats)
-+{
-+ struct proc_dir_entry *ent;
-+
-+ ent = create_proc_read_entry("bus_watcher", S_IWUSR | S_IRUGO, NULL,
-+ bw_read_proc, stats);
-+ if (!ent) {
-+ printk(KERN_INFO "Unable to initialize bus_watcher /proc entry\n");
-+ return;
-+ }
-+}
-+
-+#endif /* CONFIG_PROC_FS */
-+
-+/*
-+ * sibyte_bw_int - handle bus watcher interrupts and accumulate counts
-+ *
-+ * notes: possible re-entry due to multiple sources
-+ * should check/indicate saturation
-+ */
-+static void sibyte_bw_int(int irq, void *data, struct pt_regs *regs)
-+{
-+ struct bw_stats_struct *stats = data;
-+ unsigned long cntr;
-+#ifndef CONFIG_PROC_FS
-+ char bw_buf[1024];
-+#endif
-+
-+ /* Destructive read, clears register and interrupt */
-+ stats->status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
-+ stats->status_printed = 0;
-+
-+ stats->l2_err = cntr = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
-+ stats->l2_cor_d += G_SCD_L2ECC_CORR_D(cntr);
-+ stats->l2_bad_d += G_SCD_L2ECC_BAD_D(cntr);
-+ stats->l2_cor_t += G_SCD_L2ECC_CORR_T(cntr);
-+ stats->l2_bad_t += G_SCD_L2ECC_BAD_T(cntr);
-+ csr_out32(0, IO_SPACE_BASE | A_BUS_L2_ERRORS);
-+
-+ stats->memio_err = cntr = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
-+ stats->mem_cor_d += G_SCD_MEM_ECC_CORR(cntr);
-+ stats->mem_bad_d += G_SCD_MEM_ECC_BAD(cntr);
-+ stats->bus_error += G_SCD_MEM_BUSERR(cntr);
-+ csr_out32(0, IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
-+
-+#ifndef CONFIG_PROC_FS
-+ bw_print_buffer(bw_buf, stats);
-+ printk(bw_buf);
-+#endif
-+}
-+
-+int __init sibyte_bus_watcher(void)
-+{
-+ memset(&bw_stats, 0, sizeof(struct bw_stats_struct));
-+ bw_stats.status_printed = 1;
-+
-+ if (request_irq(K_INT_BAD_ECC, sibyte_bw_int, 0, "Bus watcher", &bw_stats)) {
-+ printk("Failed to register bus watcher BAD_ECC irq\n");
-+ return -1;
-+ }
-+ if (request_irq(K_INT_COR_ECC, sibyte_bw_int, 0, "Bus watcher", &bw_stats)) {
-+ free_irq(K_INT_BAD_ECC, &bw_stats);
-+ printk("Failed to register bus watcher COR_ECC irq\n");
-+ return -1;
-+ }
-+ if (request_irq(K_INT_IO_BUS, sibyte_bw_int, 0, "Bus watcher", &bw_stats)) {
-+ free_irq(K_INT_BAD_ECC, &bw_stats);
-+ free_irq(K_INT_COR_ECC, &bw_stats);
-+ printk("Failed to register bus watcher IO_BUS irq\n");
-+ return -1;
-+ }
-+
-+#ifdef CONFIG_PROC_FS
-+ create_proc_decoder(&bw_stats);
-+#endif
-+
-+ return 0;
-+}
-+
-+__initcall(sibyte_bus_watcher);
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Entries
---- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Entries 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Thu Nov 8 01:54:47 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.7/Fri Feb 7 22:00:22 2003/-ko/Tlinux_2_4_20
-+/bcm1250_tbprof.c/1.2.2.4/Fri Feb 7 22:00:22 2003/-ko/Tlinux_2_4_20
-+/bus_watcher.c/1.1.2.1/Thu Feb 6 16:37:54 2003/-ko/Tlinux_2_4_20
-+/ide.c/1.1.2.1/Fri Feb 7 20:53:26 2003//Tlinux_2_4_20
-+/irq.c/1.4.2.13/Fri Feb 7 15:42:12 2003/-ko/Tlinux_2_4_20
-+/irq_handler.S/1.4.2.6/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/pci.c/1.3.2.9/Thu Feb 6 21:34:14 2003/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.2/Mon Sep 2 22:14:42 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/smp.c/1.2.2.7/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/time.c/1.2.2.8/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Repository
---- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Repository 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sibyte/sb1250
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Root
---- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Root 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Tag
---- linux-2.4.20/arch/mips/sibyte/sb1250/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/CVS/Tag 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/.cvsignore
---- linux-2.4.20/arch/mips/sibyte/sb1250/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/.cvsignore 2001-11-07 19:54:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/ide.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/ide.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/ide.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/ide.c 2003-02-07 14:53:26.000000000 -0600
-@@ -0,0 +1,251 @@
-+/*
-+ * Copyright (C) 2001, 2002, 2003 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+/* Derived loosely from ide-pmac.c, so:
-+ *
-+ * Copyright (C) 1998 Paul Mackerras.
-+ * Copyright (C) 1995-1998 Mark Lord
-+ */
-+#include <linux/kernel.h>
-+#include <linux/ide.h>
-+
-+#include <asm/sibyte/board.h>
-+
-+extern struct ide_ops std_ide_ops;
-+unsigned long ide_base;
-+
-+#ifdef CONFIG_BLK_DEV_IDE_SIBYTE
-+extern ide_hwif_t *sb_ide_hwif;
-+static inline int is_sibyte_ide(ide_ioreg_t from)
-+{
-+ return ((sb_ide_hwif &&
-+ ((from == sb_ide_hwif->io_ports[IDE_DATA_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_ERROR_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_NSECTOR_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_SECTOR_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_LCYL_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_HCYL_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_SELECT_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_STATUS_OFFSET]) ||
-+ (from == sb_ide_hwif->io_ports[IDE_CONTROL_OFFSET]))));
-+}
-+#else
-+#define is_sibyte_ide(f) (0)
-+#endif
-+
-+/*
-+ * We are limiting the number of PCI-IDE devices to leave room for
-+ * GenBus IDE (and possibly PCMCIA/CF?)
-+ */
-+static int sibyte_ide_default_irq(ide_ioreg_t base)
-+{
-+ return 0;
-+}
-+
-+static ide_ioreg_t sibyte_ide_default_io_base(int index)
-+{
-+ return 0;
-+}
-+
-+static void sibyte_ide_init_hwif_ports (hw_regs_t *hw, ide_ioreg_t data_port,
-+ ide_ioreg_t ctrl_port, int *irq)
-+{
-+ std_ide_ops.ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
-+}
-+
-+static int sibyte_ide_request_irq(unsigned int irq,
-+ void (*handler)(int,void *, struct pt_regs *),
-+ unsigned long flags, const char *device,
-+ void *dev_id)
-+{
-+ return request_irq(irq, handler, flags, device, dev_id);
-+}
-+
-+static void sibyte_ide_free_irq(unsigned int irq, void *dev_id)
-+{
-+ free_irq(irq, dev_id);
-+}
-+
-+static int sibyte_ide_check_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ /* Figure out if it's the SiByte IDE; if so, don't do anything
-+ since our I/O space is in a weird place. */
-+ if (is_sibyte_ide(from))
-+ return 0;
-+ else
-+#ifdef CONFIG_BLK_DEV_IDE
-+ return std_ide_ops.ide_check_region(from, extent);
-+#else
-+ return 0;
-+#endif
-+}
-+
-+static void sibyte_ide_request_region(ide_ioreg_t from, unsigned int extent,
-+ const char *name)
-+{
-+#ifdef CONFIG_BLK_DEV_IDE
-+ if (!is_sibyte_ide(from))
-+ std_ide_ops.ide_request_region(from, extent, name);
-+#endif
-+}
-+
-+static void sibyte_ide_release_region(ide_ioreg_t from, unsigned int extent)
-+{
-+#ifdef CONFIG_BLK_DEV_IDE
-+ if (!is_sibyte_ide(from))
-+ std_ide_ops.ide_release_region(from, extent);
-+#endif
-+}
-+
-+struct ide_ops sibyte_ide_ops = {
-+ &sibyte_ide_default_irq,
-+ &sibyte_ide_default_io_base,
-+ &sibyte_ide_init_hwif_ports,
-+ &sibyte_ide_request_irq,
-+ &sibyte_ide_free_irq,
-+ &sibyte_ide_check_region,
-+ &sibyte_ide_request_region,
-+ &sibyte_ide_release_region
-+};
-+
-+/*
-+ * I/O operations. The FPGA for SiByte generic bus IDE deals with
-+ * byte-swapping for us, so we can't share the I/O macros with other
-+ * IDE (e.g. PCI-IDE) devices.
-+ */
-+
-+#define sibyte_outb(val,port) \
-+do { \
-+ *(volatile u8 *)(mips_io_port_base + (port)) = val; \
-+} while(0)
-+
-+#define sibyte_outw(val,port) \
-+do { \
-+ *(volatile u16 *)(mips_io_port_base + (port)) = val; \
-+} while(0)
-+
-+#define sibyte_outl(val,port) \
-+do { \
-+ *(volatile u32 *)(mips_io_port_base + (port)) = val; \
-+} while(0)
-+
-+static inline unsigned char sibyte_inb(unsigned long port)
-+{
-+ return (*(volatile u8 *)(mips_io_port_base + (port)));
-+}
-+
-+static inline unsigned short sibyte_inw(unsigned long port)
-+{
-+ return (*(volatile u16 *)(mips_io_port_base + (port)));
-+}
-+
-+static inline unsigned int sibyte_inl(unsigned long port)
-+{
-+ return (*(volatile u32 *)(mips_io_port_base + (port)));
-+}
-+
-+
-+static inline void sibyte_outsb(unsigned long port, void *addr, unsigned int count)
-+{
-+ while (count--) {
-+ sibyte_outb(*(u8 *)addr, port);
-+ addr++;
-+ }
-+}
-+
-+static inline void sibyte_insb(unsigned long port, void *addr, unsigned int count)
-+{
-+ while (count--) {
-+ *(u8 *)addr = sibyte_inb(port);
-+ addr++;
-+ }
-+}
-+
-+static inline void sibyte_outsw(unsigned long port, void *addr, unsigned int count)
-+{
-+ while (count--) {
-+ sibyte_outw(*(u16 *)addr, port);
-+ addr += 2;
-+ }
-+}
-+
-+static inline void sibyte_insw(unsigned long port, void *addr, unsigned int count)
-+{
-+ while (count--) {
-+ *(u16 *)addr = sibyte_inw(port);
-+ addr += 2;
-+ }
-+}
-+
-+static inline void sibyte_outsl(unsigned long port, void *addr, unsigned int count)
-+{
-+ while (count--) {
-+ sibyte_outl(*(u32 *)addr, port);
-+ addr += 4;
-+ }
-+}
-+
-+static inline void sibyte_insl(unsigned long port, void *addr, unsigned int count)
-+{
-+ while (count--) {
-+ *(u32 *)addr = sibyte_inl(port);
-+ addr += 4;
-+ }
-+}
-+
-+void sibyte_ideproc(ide_ide_action_t action, ide_drive_t *drive,
-+ void *buffer, unsigned int count)
-+{
-+ /* slow? vlb_sync? */
-+ switch (action) {
-+ case ideproc_ide_input_data:
-+ if (drive->io_32bit) {
-+ sibyte_insl(IDE_DATA_REG, buffer, count);
-+ } else {
-+ sibyte_insw(IDE_DATA_REG, buffer, count<<1);
-+ }
-+ break;
-+ case ideproc_ide_output_data:
-+ if (drive->io_32bit) {
-+ sibyte_outsl(IDE_DATA_REG, buffer, count);
-+ } else {
-+ sibyte_outsw(IDE_DATA_REG, buffer, count<<1);
-+ }
-+ break;
-+ case ideproc_atapi_input_bytes:
-+ count++;
-+ if (drive->io_32bit) {
-+ sibyte_insl(IDE_DATA_REG, buffer, count>>2);
-+ } else {
-+ sibyte_insw(IDE_DATA_REG, buffer, count>>1);
-+ }
-+ if ((count & 3) >= 2)
-+ sibyte_insw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
-+ break;
-+ case ideproc_atapi_output_bytes:
-+ count++;
-+ if (drive->io_32bit) {
-+ sibyte_outsl(IDE_DATA_REG, buffer, count>>2);
-+ } else {
-+ sibyte_outsw(IDE_DATA_REG, buffer, count>>1);
-+ }
-+ if ((count & 3) >= 2)
-+ sibyte_outsw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
-+ break;
-+ }
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq.c 2003-02-07 09:42:12.000000000 -0600
-@@ -50,6 +50,13 @@
- static void disable_sb1250_irq(unsigned int irq);
- static unsigned int startup_sb1250_irq(unsigned int irq);
- static void ack_sb1250_irq(unsigned int irq);
-+#ifdef CONFIG_SMP
-+static void sb1250_set_affinity(unsigned int irq, unsigned long mask);
-+#endif
-+
-+#ifdef CONFIG_SIBYTE_HAS_LDT
-+extern unsigned long ldt_eoi_space;
-+#endif
-
- #ifdef CONFIG_REMOTE_DEBUG
- extern void breakpoint(void);
-@@ -64,8 +71,6 @@
- __setup("nokgdb", nokgdb);
- #endif
-
--#define NR_IRQS 64
--
- static struct hw_interrupt_type sb1250_irq_type = {
- "SB1250-IMR",
- startup_sb1250_irq,
-@@ -74,9 +79,16 @@
- disable_sb1250_irq,
- ack_sb1250_irq,
- end_sb1250_irq,
-+#ifdef CONFIG_SMP
-+ sb1250_set_affinity
-+#else
- NULL
-+#endif
- };
-
-+/* Store the CPU id (not the logical number) */
-+int sb1250_irq_owner[SB1250_NR_IRQS];
-+
- spinlock_t sb1250_imr_lock = SPIN_LOCK_UNLOCKED;
-
- void sb1250_mask_irq(int cpu, int irq)
-@@ -85,9 +97,9 @@
- u64 cur_ints;
-
- spin_lock_irqsave(&sb1250_imr_lock, flags);
-- cur_ints = in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
-+ cur_ints = __in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
- cur_ints |= (((u64) 1) << irq);
-- out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
-+ __out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
- spin_unlock_irqrestore(&sb1250_imr_lock, flags);
- }
-
-@@ -97,12 +109,61 @@
- u64 cur_ints;
-
- spin_lock_irqsave(&sb1250_imr_lock, flags);
-- cur_ints = in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
-+ cur_ints = __in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
- cur_ints &= ~(((u64) 1) << irq);
-- out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
-+ __out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
- spin_unlock_irqrestore(&sb1250_imr_lock, flags);
- }
-
-+#ifdef CONFIG_SMP
-+static void sb1250_set_affinity(unsigned int irq, unsigned long mask)
-+{
-+ int i = 0, old_cpu, cpu, int_on;
-+ u64 cur_ints;
-+ irq_desc_t *desc = irq_desc + irq;
-+ unsigned int flags;
-+
-+ while (mask) {
-+ if (mask & 1) {
-+ mask >>= 1;
-+ break;
-+ }
-+ mask >>= 1;
-+ i++;
-+ }
-+
-+ if (mask) {
-+ printk("attempted to set irq affinity for irq %d to multiple CPUs\n", irq);
-+ return;
-+ }
-+
-+ /* Convert logical CPU to physical CPU */
-+ cpu = cpu_logical_map(i);
-+
-+ /* Protect against other affinity changers and IMR manipulation */
-+ spin_lock_irqsave(&desc->lock, flags);
-+ spin_lock(&sb1250_imr_lock);
-+
-+ /* Swizzle each CPU's IMR (but leave the IP selection alone) */
-+ old_cpu = sb1250_irq_owner[irq];
-+ cur_ints = __in64(KSEG1 + A_IMR_MAPPER(old_cpu) + R_IMR_INTERRUPT_MASK);
-+ int_on = !(cur_ints & (((u64) 1) << irq));
-+ if (int_on) {
-+ /* If it was on, mask it */
-+ cur_ints |= (((u64) 1) << irq);
-+ __out64(cur_ints, KSEG1 + A_IMR_MAPPER(old_cpu) + R_IMR_INTERRUPT_MASK);
-+ }
-+ sb1250_irq_owner[irq] = cpu;
-+ if (int_on) {
-+ /* unmask for the new CPU */
-+ cur_ints = __in64(KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
-+ cur_ints &= ~(((u64) 1) << irq);
-+ __out64(cur_ints, KSEG1 + A_IMR_MAPPER(cpu) + R_IMR_INTERRUPT_MASK);
-+ }
-+ spin_unlock(&sb1250_imr_lock);
-+ spin_unlock_irqrestore(&desc->lock, flags);
-+}
-+#endif
-
-
- /* Defined in arch/mips/sibyte/sb1250/irq_handler.S */
-@@ -112,7 +173,7 @@
-
- static unsigned int startup_sb1250_irq(unsigned int irq)
- {
-- sb1250_unmask_irq(0, irq);
-+ sb1250_unmask_irq(sb1250_irq_owner[irq], irq);
-
- return 0; /* never anything pending */
- }
-@@ -120,36 +181,58 @@
-
- static void disable_sb1250_irq(unsigned int irq)
- {
-- sb1250_mask_irq(0, irq);
-+ sb1250_mask_irq(sb1250_irq_owner[irq], irq);
- }
-
- static void enable_sb1250_irq(unsigned int irq)
- {
-- sb1250_unmask_irq(0, irq);
-+ sb1250_unmask_irq(sb1250_irq_owner[irq], irq);
- }
-
-
- static void ack_sb1250_irq(unsigned int irq)
- {
-+#ifdef CONFIG_SIBYTE_HAS_LDT
- u64 pending;
-
- /*
-- * If the interrupt was an LDT interrupt, now is the time
-- * to clear it.
-+ * If the interrupt was an HT interrupt, now is the time to
-+ * clear it. NOTE: we assume the HT bridge was set up to
-+ * deliver the interrupts to all CPUs (which makes affinity
-+ * changing easier for us)
- */
-- pending = in64(KSEG1 + A_IMR_REGISTER(0,R_IMR_LDT_INTERRUPT));
-+ pending = in64(KSEG1 + A_IMR_REGISTER(sb1250_irq_owner[irq],
-+ R_IMR_LDT_INTERRUPT));
- pending &= ((u64)1 << (irq));
-- if (pending)
-- out64(pending, KSEG1+A_IMR_REGISTER(0,R_IMR_LDT_INTERRUPT_CLR));
-+ if (pending) {
-+ int i;
-+ for (i=0; i<smp_num_cpus; i++) {
-+ /*
-+ * Clear for all CPUs so an affinity switch
-+ * doesn't find an old status
-+ */
-+ out64(pending,
-+ KSEG1+A_IMR_REGISTER(cpu_logical_map(i),
-+ R_IMR_LDT_INTERRUPT_CLR));
-+ }
-
-- sb1250_mask_irq(0, irq);
-+ /*
-+ * Generate EOI. For Pass 1 parts, EOI is a nop. For
-+ * Pass 2, the LDT world may be edge-triggered, but
-+ * this EOI shouldn't hurt. If they are
-+ * level-sensitive, the EOI is required.
-+ */
-+ *(uint32_t *)(ldt_eoi_space+(irq<<16)+(7<<2)) = 0;
-+ }
-+#endif
-+ sb1250_mask_irq(sb1250_irq_owner[irq], irq);
- }
-
-
- static void end_sb1250_irq(unsigned int irq)
- {
- if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS))) {
-- sb1250_unmask_irq(0, irq);
-+ sb1250_unmask_irq(sb1250_irq_owner[irq], irq);
- }
- }
-
-@@ -162,7 +245,12 @@
- irq_desc[i].status = IRQ_DISABLED;
- irq_desc[i].action = 0;
- irq_desc[i].depth = 1;
-- irq_desc[i].handler = &sb1250_irq_type;
-+ if (i < SB1250_NR_IRQS) {
-+ irq_desc[i].handler = &sb1250_irq_type;
-+ sb1250_irq_owner[i] = 0;
-+ } else {
-+ irq_desc[i].handler = &no_irq_type;
-+ }
- }
- }
-
-@@ -172,12 +260,12 @@
- }
-
- static struct irqaction sb1250_dummy_action = {
-- handler: sb1250_dummy_handler,
-- flags: 0,
-- mask: 0,
-- name: "sb1250-private",
-- next: NULL,
-- dev_id: 0
-+ .handler = sb1250_dummy_handler,
-+ .flags = 0,
-+ .mask = 0,
-+ .name = "sb1250-private",
-+ .next = NULL,
-+ .dev_id = 0
- };
-
- int sb1250_steal_irq(int irq)
-@@ -186,7 +274,7 @@
- unsigned long flags;
- int retval = 0;
-
-- if (irq >= NR_IRQS)
-+ if (irq >= SB1250_NR_IRQS)
- return -EINVAL;
-
- spin_lock_irqsave(&desc->lock,flags);
-@@ -198,6 +286,7 @@
- desc->depth = 0;
- }
- spin_unlock_irqrestore(&desc->lock,flags);
-+ return 0;
- }
-
- /*
-@@ -235,7 +324,7 @@
- STATUSF_IP1 | STATUSF_IP0;
-
- /* Default everything to IP2 */
-- for (i = 0; i < NR_IRQS; i++) { /* was I0 */
-+ for (i = 0; i < SB1250_NR_IRQS; i++) { /* was I0 */
- out64(IMR_IP2_VAL,
- KSEG1 + A_IMR_REGISTER(0,
- R_IMR_INTERRUPT_MAP_BASE) +
-@@ -283,7 +372,7 @@
- imask |= STATUSF_IP6;
- #endif
- /* Enable necessary IPs, disable the rest */
-- change_cp0_status(ST0_IM, imask);
-+ change_c0_status(ST0_IM, imask);
- set_except_vector(0, sb1250_irq_handler);
-
- #ifdef CONFIG_REMOTE_DEBUG
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/irq_handler.S linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq_handler.S
---- linux-2.4.20/arch/mips/sibyte/sb1250/irq_handler.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/irq_handler.S 2003-01-21 23:11:38.000000000 -0600
-@@ -100,7 +100,7 @@
- /* Mailbox interrupt is routed to IP[3] */
- andi t1, s0, CAUSEF_IP3
- beqz t1, 2f
-- nop
-+ nop
- jal sb1250_mailbox_interrupt
- move a0, sp
- j ret_from_irq
-@@ -127,8 +127,14 @@
- /*
- * Default...we've hit an IP[2] interrupt, which means we've got to
- * check the 1250 interrupt registers to figure out what to do
-+ * Need to detect which CPU we're on, now that smp_affinity is supported.
- */
- la v0, KSEG1 + A_IMR_CPU0_BASE
-+#ifdef CONFIG_SMP
-+ lw t1, TASK_PROCESSOR($28)
-+ sll t1, IMR_REGISTER_SPACING_SHIFT
-+ addu v0, t1
-+#endif
- ld s0, R_IMR_INTERRUPT_STATUS_BASE(v0) /* read IP[2] status */
-
- beqz s0, 4f /* No interrupts. Return */
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.h linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.h
---- linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.h 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,81 +0,0 @@
--/*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-- * Copyright (C) 2002 Ralf Baechle
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--#ifndef _LIB_HSSUBR_H
--#define _LIB_HSSUBR_H
--
--#include <linux/config.h>
--#include <asm/addrspace.h>
--
--typedef long hsaddr_t;
--
--#ifdef CONFIG_MIPS64
--
--static inline void hs_write8(hsaddr_t a, uint8_t b)
--{
-- *(volatile uint8_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
--}
--
--static inline void hs_write16(hsaddr_t a, uint16_t b)
--{
-- *(volatile uint16_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
--}
--
--static inline void hs_write32(hsaddr_t a, uint32_t b)
--{
-- *(volatile uint32_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
--}
--
--static inline void hs_write64(hsaddr_t a, uint64_t b)
--{
-- *(volatile uint32_t *) a = PHYS_TO_XKSEG_UNCACHED(b);
--}
--
--static inline uint8_t hs_read8(hsaddr_t a)
--{
-- return *(volatile uint8_t *) a;
--}
--
--static inline uint16_t hs_read16(hsaddr_t a)
--{
-- return *(volatile uint16_t *) a;
--}
--
--static inline uint32_t hs_read32(hsaddr_t a)
--{
-- return *(volatile uint32_t *) a;
--}
--
--static inline uint64_t hs_read64(hsaddr_t a)
--{
-- return *(volatile uint64_t *) a;
--}
--
--#else /* just CONFIG_MIPS32 */
--
--extern void hs_write8(hsaddr_t a, uint8_t b);
--extern void hs_write16(hsaddr_t a, uint16_t b);
--extern void hs_write32(hsaddr_t a, uint32_t b);
--extern void hs_write64(hsaddr_t a, uint64_t b);
--extern uint8_t hs_read8(hsaddr_t a);
--extern uint16_t hs_read16(hsaddr_t a);
--extern uint32_t hs_read32(hsaddr_t a);
--extern uint64_t hs_read64(hsaddr_t a);
--#endif
--
--#endif /* _LIB_HSSUBR_H */
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.S linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.S
---- linux-2.4.20/arch/mips/sibyte/sb1250/lib_hssubr.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/lib_hssubr.S 1969-12-31 18:00:00.000000000 -0600
-@@ -1,198 +0,0 @@
--/*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--#include <asm/asm.h>
--#include <asm/addrspace.h>
--#include <asm/mipsregs.h>
--#include <asm/regdef.h>
--
-- .set mips64
--
--#define HAZARD SSNOP ; SSNOP ; SSNOP ; SSNOP ; SSNOP ; SSNOP ; SSNOP
--
--
--/* *********************************************************************
-- * hs_read8 - read 8-bit bytes
-- ********************************************************************* */
--
--
--LEAF(hs_read8)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0,v0
-- lb v0, (a0)
-- and v0, 0xFF
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_read8)
--
--/* *********************************************************************
-- * hs_read16 - read 16-bit shorts
-- ********************************************************************* */
--
--LEAF(hs_read16)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- lh v0, (a0)
-- and v0, 0xFFFF
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_read16)
--
--/* *********************************************************************
-- * hs_read32 - read 32-bit ints
-- ********************************************************************* */
--
--LEAF(hs_read32)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- lw v0, (a0)
-- and v0, 0xFFFFFFFF
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_read32)
--
--/* *********************************************************************
-- * hs_read64 - read 64-bit longs
-- ********************************************************************* */
--
--LEAF(hs_read64)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- ld v0, (a0)
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_read64)
--
--/* *********************************************************************
-- * hs_write8 - write 8-bit bytes
-- ********************************************************************* */
--
--LEAF(hs_write8)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- sb a1, (a0)
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_write8)
--
--/* *********************************************************************
-- * hs_write16 - write 16-bit shorts
-- ********************************************************************* */
--
--LEAF(hs_write16)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- sh a1, (a0)
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_write16)
--
--/* *********************************************************************
-- * hs_write32 - write 32-bit longs
-- ********************************************************************* */
--
--LEAF(hs_write32)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- sw a1, (a0)
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_write32)
--
--/* *********************************************************************
-- * hs_write64 - write 64-bit longs
-- ********************************************************************* */
--
--LEAF(hs_write64)
-- mfc0 t2, CP0_STATUS
-- or t1, t2, ST0_KX
-- mtc0 t1, CP0_STATUS
-- HAZARD
--
-- dli v0, PHYS_TO_XKSEG_UNCACHED(0)
-- dsll a0, a0, 32
-- dsrl a0, a0, 32
-- or a0, a0, v0
-- sd a1, (a0)
--
-- mtc0 t2, CP0_STATUS
-- HAZARD
-- j ra
--END(hs_write64)
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/Makefile
---- linux-2.4.20/arch/mips/sibyte/sb1250/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/Makefile 2003-02-07 16:00:22.000000000 -0600
-@@ -4,10 +4,11 @@
-
- obj-y := setup.o irq.o irq_handler.o time.o
-
--obj-$(CONFIG_PCI) += pci.o
--obj-$(CONFIG_SMP) += smp.o
--obj-$(CONFIG_BCM1250_TBPROF) += bcm1250_tbprof.o
--obj-$(CONFIG_MIPS32) += lib_hssubr.o
--obj-$(CONFIG_SIBYTE_STANDALONE) += prom.o
-+obj-$(CONFIG_PCI) += pci.o
-+obj-$(CONFIG_BLK_DEV_IDE) += ide.o
-+obj-$(CONFIG_SMP) += smp.o
-+obj-$(CONFIG_SIBYTE_TBPROF) += bcm1250_tbprof.o
-+obj-$(CONFIG_SIBYTE_STANDALONE) += prom.o
-+obj-$(CONFIG_SIBYTE_BUS_WATCHER) += bus_watcher.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/pci.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/pci.c 2003-02-06 15:34:14.000000000 -0600
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2001 Broadcom Corporation
-+ * Copyright (C) 2001,2002 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -24,17 +24,10 @@
- * configuration space, and set up the translation for I/O
- * space accesses.
- *
-- * To access configuration space, we call some assembly-level
-- * stubs that flip the KX bit on and off in the status
-- * register, and do XKSEG addressed memory accesses there.
-- * It's slow (7 SSNOPs to guarantee that KX is set!) but
-- * fortunately, config space accesses are rare.
-- *
-- * We could use the ioremap functionality for the confguration
-- * space as well as I/O space, but I'm not sure of the
-- * implications of setting aside 16MB of KSEG2 for something
-- * that is used so rarely (how much space in the page tables?)
-- *
-+ * To access configuration space, we use ioremap. In the 32-bit
-+ * kernel, this consumes either 4 or 8 page table pages, and 16MB of
-+ * kernel mapped memory. Hopefully neither of these should be a huge
-+ * problem.
- */
- #include <linux/types.h>
- #include <linux/pci.h>
-@@ -48,56 +41,74 @@
- #include <asm/sibyte/sb1250_scd.h>
- #include <asm/io.h>
-
--#include "lib_hssubr.h"
--
- /*
-- * This macro calculates the offset into config space where
-- * a given bus, device/function, and offset live on the sb1250
-+ * Macros for calculating offsets into config space given a device
-+ * structure or dev/fun/reg
- */
--
- #define CFGOFFSET(bus,devfn,where) (((bus)<<16)+((devfn)<<8)+(where))
-+#define CFGADDR(dev,where) CFGOFFSET((dev)->bus->number,(dev)->devfn,where)
-
-+static void *cfg_space;
-+
-+#define PCI_BUS_ENABLED 1
-+#define LDT_BUS_ENABLED 2
-+#define PCI_DEVICE_MODE 4
-+
-+static int sb1250_bus_status = 0;
-+
-+#define PCI_BRIDGE_DEVICE 0
-+#define LDT_BRIDGE_DEVICE 1
-+
-+#ifdef CONFIG_SIBYTE_HAS_LDT
- /*
-- * Using the above offset, this macro calcuates the physical address in the
-- * config space.
-+ * HT's level-sensitive interrupts require EOI, which is generated
-+ * through a 4MB memory-mapped region
- */
--#define CFGADDR(dev,where) (A_PHYS_LDTPCI_CFG_MATCH_BITS + \
-- CFGOFFSET(dev->bus->number,dev->devfn,where))
-+unsigned long ldt_eoi_space;
-+#endif
-
- /*
- * Read/write 32-bit values in config space.
- */
- static inline u32 READCFG32(u32 addr)
- {
-- hs_read32(addr & ~3);
-+ return *(u32 *)(cfg_space + (addr&~3));
- }
-
- static inline void WRITECFG32(u32 addr, u32 data)
- {
-- return hs_write32(addr & ~3,(data));
-+ *(u32 *)(cfg_space + (addr & ~3)) = data;
- }
-
- /*
-- * This variable is the KSEG2 (kernel virtual) mapping of the ISA/PCI I/O
-- * space area. We map 64K here and the offsets from this address get treated
-- * with "match bytes" policy to make everything look little-endian. So, you
-- * need to also set CONFIG_SWAP_IO_SPACE, but this is the combination that
-- * works correctly with most of Linux's drivers.
-+ * Some checks before doing config cycles:
-+ * In PCI Device Mode, hide everything on bus 0 except the LDT host
-+ * bridge. Otherwise, access is controlled by bridge MasterEn bits.
- */
-+static int
-+sb1250_pci_can_access(struct pci_dev *dev)
-+{
-+ u32 devno;
-
--#define PCI_BUS_ENABLED 1
--#define LDT_BUS_ENABLED 2
--
--static int sb1250_bus_status = 0;
--
--#define MATCH_BITS 0x20000000 /* really belongs in an include file */
-+ if (!(sb1250_bus_status & (PCI_BUS_ENABLED | PCI_DEVICE_MODE)))
-+ return 0;
-
--#define LDT_BRIDGE_START ((A_PCI_TYPE01_HEADER|MATCH_BITS)+0x00)
--#define LDT_BRIDGE_END ((A_PCI_TYPE01_HEADER|MATCH_BITS)+0x20)
-+ if (dev->bus->number == 0) {
-+ devno = PCI_SLOT(dev->devfn);
-+ if (devno == LDT_BRIDGE_DEVICE)
-+ return (sb1250_bus_status & LDT_BUS_ENABLED) != 0;
-+ else if (sb1250_bus_status & PCI_DEVICE_MODE)
-+ return 0;
-+ else
-+ return 1;
-+ } else
-+ return 1;
-+}
-
- /*
- * Read/write access functions for various sizes of values
-- * in config space.
-+ * in config space. Return all 1's for disallowed accesses
-+ * for a kludgy but adequate simulation of master aborts.
- */
-
- static int
-@@ -106,23 +117,16 @@
- u32 data = 0;
- u32 cfgaddr = CFGADDR(dev, where);
-
-- data = READCFG32(cfgaddr);
--
-- /*
-- * If the LDT was not configured, make it look like the bridge
-- * header is not there.
-- */
-- if (!(sb1250_bus_status & LDT_BUS_ENABLED) &&
-- (cfgaddr >= LDT_BRIDGE_START) && (cfgaddr < LDT_BRIDGE_END)) {
-+ if (sb1250_pci_can_access(dev))
-+ data = READCFG32(cfgaddr);
-+ else
- data = 0xFFFFFFFF;
-- }
-
- *val = (data >> ((where & 3) << 3)) & 0xff;
-
- return PCIBIOS_SUCCESSFUL;
- }
-
--
- static int
- sb1250_pci_read_config_word(struct pci_dev *dev, int where, u16 * val)
- {
-@@ -132,16 +136,10 @@
- if (where & 1)
- return PCIBIOS_BAD_REGISTER_NUMBER;
-
-- data = READCFG32(cfgaddr);
--
-- /*
-- * If the LDT was not configured, make it look like the bridge
-- * header is not there.
-- */
-- if (!(sb1250_bus_status & LDT_BUS_ENABLED) &&
-- (cfgaddr >= LDT_BRIDGE_START) && (cfgaddr < LDT_BRIDGE_END)) {
-+ if (sb1250_pci_can_access(dev))
-+ data = READCFG32(cfgaddr);
-+ else
- data = 0xFFFFFFFF;
-- }
-
- *val = (data >> ((where & 3) << 3)) & 0xffff;
-
-@@ -157,16 +155,10 @@
- if (where & 3)
- return PCIBIOS_BAD_REGISTER_NUMBER;
-
-- data = READCFG32(cfgaddr);
--
-- /*
-- * If the LDT was not configured, make it look like the bridge
-- * header is not there.
-- */
-- if (!(sb1250_bus_status & LDT_BUS_ENABLED) &&
-- (cfgaddr >= LDT_BRIDGE_START) && (cfgaddr < LDT_BRIDGE_END)) {
-+ if (sb1250_pci_can_access(dev))
-+ data = READCFG32(cfgaddr);
-+ else
- data = 0xFFFFFFFF;
-- }
-
- *val = data;
-
-@@ -180,12 +172,14 @@
- u32 data = 0;
- u32 cfgaddr = CFGADDR(dev, where);
-
-- data = READCFG32(cfgaddr);
-+ if (sb1250_pci_can_access(dev)) {
-+ data = READCFG32(cfgaddr);
-
-- data = (data & ~(0xff << ((where & 3) << 3))) |
-- (val << ((where & 3) << 3));
-+ data = (data & ~(0xff << ((where & 3) << 3))) |
-+ (val << ((where & 3) << 3));
-
-- WRITECFG32(cfgaddr, data);
-+ WRITECFG32(cfgaddr, data);
-+ }
-
- return PCIBIOS_SUCCESSFUL;
- }
-@@ -199,12 +193,14 @@
- if (where & 1)
- return PCIBIOS_BAD_REGISTER_NUMBER;
-
-- data = READCFG32(cfgaddr);
-+ if (sb1250_pci_can_access(dev)) {
-+ data = READCFG32(cfgaddr);
-
-- data = (data & ~(0xffff << ((where & 3) << 3))) |
-- (val << ((where & 3) << 3));
-+ data = (data & ~(0xffff << ((where & 3) << 3))) |
-+ (val << ((where & 3) << 3));
-
-- WRITECFG32(cfgaddr, data);
-+ WRITECFG32(cfgaddr, data);
-+ }
-
- return PCIBIOS_SUCCESSFUL;
- }
-@@ -217,7 +213,8 @@
- if (where & 3)
- return PCIBIOS_BAD_REGISTER_NUMBER;
-
-- WRITECFG32(cfgaddr, val);
-+ if (sb1250_pci_can_access(dev))
-+ WRITECFG32(cfgaddr, val);
-
- return PCIBIOS_SUCCESSFUL;
- }
-@@ -237,48 +234,60 @@
- uint32_t cmdreg;
- uint64_t reg;
-
-+ cfg_space = ioremap(A_PHYS_LDTPCI_CFG_MATCH_BITS, 16*1024*1024);
-+
- /*
- * See if the PCI bus has been configured by the firmware.
- */
--
-- cmdreg = READCFG32((A_PCI_TYPE00_HEADER | MATCH_BITS) +
-- PCI_COMMAND);
--
-- if (!(cmdreg & PCI_COMMAND_MASTER)) {
-- printk
-- ("PCI: Skipping PCI probe. Bus is not initialized.\n");
-- return;
-- }
--
- reg = *((volatile uint64_t *) KSEG1ADDR(A_SCD_SYSTEM_CFG));
- if (!(reg & M_SYS_PCI_HOST)) {
-- printk("PCI: Skipping PCI probe. Processor is in PCI device mode.\n");
-- return;
-+ sb1250_bus_status |= PCI_DEVICE_MODE;
-+ } else {
-+ cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(PCI_BRIDGE_DEVICE, 0),
-+ PCI_COMMAND));
-+ if (!(cmdreg & PCI_COMMAND_MASTER)) {
-+ printk
-+ ("PCI: Skipping PCI probe. Bus is not initialized.\n");
-+ iounmap(cfg_space);
-+ return;
-+ }
-+ sb1250_bus_status |= PCI_BUS_ENABLED;
- }
-
-- sb1250_bus_status |= PCI_BUS_ENABLED;
--
- /*
-- * Establish a mapping from KSEG2 (kernel virtual) to PCI I/O space
-- * Use "match bytes", even though this exposes endianness.
-- * big-endian Linuxes will have CONFIG_SWAP_IO_SPACE set.
-+ * Establish mappings in KSEG2 (kernel virtual) to PCI I/O
-+ * space. Use "match bytes" policy to make everything look
-+ * little-endian. So, you need to also set
-+ * CONFIG_SWAP_IO_SPACE, but this is the combination that
-+ * works correctly with most of Linux's drivers.
-+ * XXX ehs: Should this happen in PCI Device mode?
- */
-
-- set_io_port_base(ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536));
-+ set_io_port_base((unsigned long)
-+ ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES, 65536));
- isa_slot_offset = (unsigned long)
- ioremap(A_PHYS_LDTPCI_IO_MATCH_BYTES_32, 1024*1024);
-
-+#ifdef CONFIG_SIBYTE_HAS_LDT
- /*
- * Also check the LDT bridge's enable, just in case we didn't
- * initialize that one.
- */
-
-- cmdreg = READCFG32((A_PCI_TYPE01_HEADER | MATCH_BITS) +
-- PCI_COMMAND);
--
-+ cmdreg = READCFG32(CFGOFFSET(0, PCI_DEVFN(LDT_BRIDGE_DEVICE, 0),
-+ PCI_COMMAND));
- if (cmdreg & PCI_COMMAND_MASTER) {
- sb1250_bus_status |= LDT_BUS_ENABLED;
-+
-+ /*
-+ * Need bits 23:16 to convey vector number. Note that
-+ * this consumes 4MB of kernel-mapped memory
-+ * (Kseg2/Kseg3) for 32-bit kernel.
-+ */
-+ ldt_eoi_space = (unsigned long)
-+ ioremap(A_PHYS_LDT_SPECIAL_MATCH_BYTES, 4*1024*1024);
- }
-+#endif
-
- /* Probe for PCI hardware */
-
-@@ -290,7 +299,7 @@
- #endif
- }
-
--int pcibios_enable_device(struct pci_dev *dev)
-+int pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- /* Not needed, since we enable all devices at startup. */
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/setup.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/setup.c 2003-01-21 23:11:38.000000000 -0600
-@@ -16,39 +16,146 @@
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- */
-
-+#include <linux/kernel.h>
-+#include <linux/reboot.h>
-+#include <linux/string.h>
-+
-+#include <asm/bootinfo.h>
-+#include <asm/mipsregs.h>
-+#include <asm/io.h>
- #include <asm/sibyte/sb1250.h>
- #include <asm/sibyte/sb1250_regs.h>
- #include <asm/sibyte/sb1250_scd.h>
- #include <asm/sibyte/64bit.h>
-
-+extern void prom_printf(char *fmt, ...);
-+
- /* Setup code likely to be common to all BCM1250 platforms */
-
--unsigned int sb1250_pass;
-+static inline const char *soc_type_string(unsigned int soc_type)
-+{
-+ switch (soc_type) {
-+ case K_SYS_SOC_TYPE_BCM1250:
-+ return "BCM1250";
-+ case K_SYS_SOC_TYPE_BCM1120:
-+ return "BCM1120";
-+ case K_SYS_SOC_TYPE_BCM1125:
-+ return "BCM1125";
-+ case K_SYS_SOC_TYPE_BCM1125H:
-+ return "BCM1125H";
-+ default:
-+ return "unknown SOC";
-+ }
-+}
-+
-+static inline const char *soc_pass_string(unsigned int soc_type, unsigned int soc_pass)
-+{
-+ switch (soc_type) {
-+ case K_SYS_SOC_TYPE_BCM1250:
-+ switch (soc_pass) {
-+ case K_SYS_REVISION_BCM1250_PASS1:
-+ return "Pass 1";
-+ case 11:
-+ return "A8/A10";
-+ case K_SYS_REVISION_BCM1250_PASS2_2:
-+ return "B1";
-+ default:
-+ if (soc_pass < K_SYS_REVISION_BCM1250_PASS2_2)
-+ return "pre-A8";
-+ else
-+ return "unknown rev";
-+ }
-+ case K_SYS_SOC_TYPE_BCM1120:
-+ case K_SYS_SOC_TYPE_BCM1125:
-+ case K_SYS_SOC_TYPE_BCM1125H:
-+ switch (soc_pass) {
-+ case K_SYS_REVISION_BCM112x_A1:
-+ return "A1";
-+ case K_SYS_REVISION_BCM112x_A2:
-+ return "A2";
-+ default:
-+ return "unknown rev";
-+ }
-+ default:
-+ return "";
-+ }
-+}
-+
-+unsigned int sb1_pass;
-+unsigned int soc_pass;
-+unsigned int soc_type;
-
- void sb1250_setup(void)
- {
-+ uint64_t sys_rev;
- int bad_config = 0;
-+ unsigned int soc_war_pass;
-
-- sb1250_pass = G_SYS_REVISION(in64(IO_SPACE_BASE | A_SCD_SYSTEM_REVISION));
-- /* sb1250_pass is more specific than "1", "2" etc. There are
-- many revision numbers corresponding to "Pass 2". */
-- switch(sb1250_pass) {
-- case 1:
-+ sys_rev = in64(IO_SPACE_BASE | A_SCD_SYSTEM_REVISION);
-+ soc_type = SYS_SOC_TYPE(sys_rev);
-+ soc_pass = G_SYS_REVISION(sys_rev);
-+ soc_war_pass = soc_pass;
-+
-+ switch (soc_type) {
-+ case K_SYS_SOC_TYPE_BCM1250:
-+ /* Combine pass2 variants. */
-+ if ((soc_pass > K_SYS_REVISION_BCM1250_PASS1) &&
-+ (soc_pass < K_SYS_REVISION_BCM1250_PASS2_2))
-+ soc_war_pass = K_SYS_REVISION_BCM1250_PASS2;
-+ break;
-+
-+ case K_SYS_SOC_TYPE_BCM1120:
-+ case K_SYS_SOC_TYPE_BCM1125:
-+ case K_SYS_SOC_TYPE_BCM1125H:
-+ /* First silicon seems to not have the revid set */
-+ if (soc_pass == 0)
-+ soc_war_pass = K_SYS_REVISION_BCM112x_A1;
-+ break;
-+ }
-+ sb1_pass = read_c0_prid() & 0xff;
-+
-+ /* XXXKW translate the soc_pass into "customer" terminology */
-+ prom_printf("SiByte %s %s (SB1 rev %d)\n",
-+ soc_type_string(soc_type),
-+ soc_pass_string(soc_type, soc_pass),
-+ sb1_pass);
-+ prom_printf("Board type: %s\n", get_system_type());
-+
-+ switch(soc_war_pass) {
-+ case K_SYS_REVISION_BCM1250_PASS1:
- #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
-- printk("@@@@ This is a pass 1 board, and the kernel doesn't have the proper workarounds compiled in. @@@@");
-+ prom_printf("@@@@ This is a BCM1250 A0-A2 (Pass 1) board, and the kernel doesn't have the proper workarounds compiled in. @@@@\n");
- bad_config = 1;
- #endif
- break;
-- default:
--#if defined(CONFIG_CPU_HAS_PREFETCH) || !defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
-- printk("@@@@ This is a pass 2 board, and the kernel doesn't have the proper workarounds compiled in. @@@@");
-- printk("@@@@ Prefetches are enabled in this kernel, but are buggy on this board. @@@@");
-+ case K_SYS_REVISION_BCM1250_PASS2:
-+ /* Pass 2 - easiest as default for now - so many numbers */
-+#ifndef CONFIG_SB1_PASS_2_WORKAROUNDS
-+ prom_printf("@@@@ This is a BCM1250 A3-A10 board, and the kernel doesn't have the proper workarounds compiled in. @@@@\n");
-+ bad_config = 1;
-+#endif
-+#ifdef CONFIG_CPU_HAS_PREFETCH
-+ prom_printf("@@@@ Prefetches may be enabled in this kernel, but are buggy on this board. @@@@\n");
- bad_config = 1;
- #endif
- break;
-+ case K_SYS_REVISION_BCM1250_PASS2_2:
-+#ifndef CONFIG_SB1_PASS_2_WORKAROUNDS
-+ prom_printf("@@@@ This is a BCM1250 B1. board, and the kernel doesn't have the proper workarounds compiled in. @@@@\n");
-+ bad_config = 1;
-+#endif
-+ break;
-+ case K_SYS_REVISION_BCM112x_A1:
-+ case K_SYS_REVISION_BCM112x_A2:
-+ /* No workarounds yet */
-+ break;
-+ default:
-+ prom_printf("@@@ This is an unknown SOC pass. @@@@\n");
-+ bad_config = 1;
-+ break;
- }
-- /* XXXKW this is too early for panic/printk to actually do much! */
- if (bad_config) {
-- panic("Invalid configuration for this pass.");
-+ prom_printf("Invalid configuration for this chip.\n");
-+ machine_restart(NULL);
- }
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/smp.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/smp.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/smp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/smp.c 2003-01-21 23:11:38.000000000 -0600
-@@ -108,6 +108,9 @@
- CPUMASK_SETB(cpu_online_map, 0);
- atomic_set(&cpus_booted, 1); /* Master CPU is already booted... */
- init_idle();
-+ __cpu_number_map[0] = 0;
-+ __cpu_logical_map[0] = 0;
-+ /* smp_tune_scheduling(); XXX */
-
- /*
- * This loop attempts to compensate for "holes" in the CPU
-@@ -128,9 +131,6 @@
- p->processor = i;
- p->cpus_runnable = 1 << i; /* we schedule the first task manually */
-
-- /* Attach to the address space of init_task. */
-- atomic_inc(&init_mm.mm_count);
-- p->active_mm = &init_mm;
- init_tasks[i] = p;
-
- del_from_runqueue(p);
-@@ -144,6 +144,8 @@
- (unsigned long)p);
- } while (!retval && (cur_cpu < NR_CPUS));
- if (retval) {
-+ __cpu_number_map[cur_cpu] = i;
-+ __cpu_logical_map[i] = cur_cpu;
- i++;
- } else {
- panic("CPU discovery disaster");
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/sb1250/time.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/time.c
---- linux-2.4.20/arch/mips/sibyte/sb1250/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/sb1250/time.c 2003-01-21 23:11:38.000000000 -0600
-@@ -52,6 +52,7 @@
- void sb1250_time_init(void)
- {
- int cpu = smp_processor_id();
-+ int irq = K_INT_TIMER_0+cpu;
-
- /* Only have 4 general purpose timers */
- if (cpu > 3) {
-@@ -63,11 +64,11 @@
- do_gettimeoffset = sb1250_gettimeoffset;
- }
-
-- sb1250_mask_irq(cpu, K_INT_TIMER_0 + cpu);
-+ sb1250_mask_irq(cpu, irq);
-
- /* Map the timer interrupt to ip[4] of this cpu */
- out64(IMR_IP4_VAL, KSEG1 + A_IMR_REGISTER(cpu, R_IMR_INTERRUPT_MAP_BASE)
-- + ((K_INT_TIMER_0 + cpu)<<3));
-+ + (irq<<3));
-
- /* the general purpose timer ticks at 1 Mhz independent if the rest of the system */
- /* Disable the timer and set up the count */
-@@ -84,8 +85,8 @@
- out64(M_SCD_TIMER_ENABLE|M_SCD_TIMER_MODE_CONTINUOUS,
- KSEG1 + A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
-
-- sb1250_unmask_irq(cpu, K_INT_TIMER_0 + cpu);
-- sb1250_steal_irq(K_INT_TIMER_0 + cpu);
-+ sb1250_unmask_irq(cpu, irq);
-+ sb1250_steal_irq(irq);
- /*
- * This interrupt is "special" in that it doesn't use the request_irq
- * way to hook the irq line. The timer interrupt is initialized early
-@@ -99,8 +100,9 @@
- void sb1250_timer_interrupt(struct pt_regs *regs)
- {
- int cpu = smp_processor_id();
-+ int irq = K_INT_TIMER_0+cpu;
-
-- kstat.irqs[cpu][K_INT_TIMER_0+cpu]++;
-+ kstat.irqs[cpu][irq]++;
- /* Reset the timer */
- out64(M_SCD_TIMER_ENABLE|M_SCD_TIMER_MODE_CONTINUOUS,
- KSEG1 + A_SCD_TIMER_REGISTER(cpu, R_SCD_TIMER_CFG));
-@@ -109,13 +111,13 @@
- * CPU 0 handles the global timer interrupt job
- */
- if (cpu == 0) {
-- ll_timer_interrupt(0, regs);
-+ ll_timer_interrupt(irq, regs);
- }
-
- /*
- * every CPU should do profiling and process accouting
- */
-- ll_local_timer_interrupt(0, regs);
-+ ll_local_timer_interrupt(irq, regs);
- }
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Entries
---- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Entries 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.1/Thu Nov 8 01:54:47 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.5/Fri Feb 7 21:06:07 2003/-ko/Tlinux_2_4_20
-+/cmdline.c/1.2.2.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.1.2.1/Thu Apr 11 22:10:54 2002/-ko/Tlinux_2_4_20
-+/rtc_m41t81.c/1.1.2.1/Fri Feb 7 18:02:30 2003/-ko/Tlinux_2_4_20
-+/rtc_xicor1241.c/1.1.2.3/Fri Feb 7 18:02:30 2003/-ko/Tlinux_2_4_20
-+/setup.c/1.3.2.18/Fri Feb 7 21:06:07 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Repository
---- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Repository 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sibyte/swarm
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Root
---- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Root 2005-01-06 23:00:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Tag
---- linux-2.4.20/arch/mips/sibyte/swarm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/.cvsignore
---- linux-2.4.20/arch/mips/sibyte/swarm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/.cvsignore 2001-11-07 19:54:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/Makefile
---- linux-2.4.20/arch/mips/sibyte/swarm/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/Makefile 2003-02-07 15:06:07.000000000 -0600
-@@ -2,27 +2,12 @@
-
- all: sbswarm.a
-
--OBJS-y = setup.o cmdline.o rtc_xicor1241.o
-+OBJS-y = setup.o cmdline.o rtc_xicor1241.o rtc_m41t81.o
-
--OBJS-$(CONFIG_L3DEMO) += procl3switch.o l3procbootstrap.o l3proc.o
- OBJS-$(CONFIG_REMOTE_DEBUG) += dbg_io.o
-
--#XMITTER=1
--
--ifdef XMITTER
--l3proc.bin: xmitter
-- ln xmitter l3proc.bin
--else
--l3proc.bin: l3proc
-- ln l3proc l3proc.bin
--endif
--
--l3proc.o: l3proc.bin
-- mips-linux-ld -Tl3proc.lds -bbinary -o l3proc.o l3proc.bin
--
- sbswarm.a: $(OBJS-y)
- $(AR) rcs sbswarm.a $^
-- rm -f l3proc.o l3proc.bin
-
- include $(TOPDIR)/Rules.make
-
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/rtc_m41t81.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_m41t81.c
---- linux-2.4.20/arch/mips/sibyte/swarm/rtc_m41t81.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_m41t81.c 2003-02-07 12:02:30.000000000 -0600
-@@ -0,0 +1,225 @@
-+/*
-+ * Copyright (C) 2000, 2001 Broadcom Corporation
-+ *
-+ * Copyright (C) 2002 MontaVista Software Inc.
-+ * Author: jsun@mvista.com or jsun@junsun.net
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ */
-+
-+#include <linux/types.h>
-+#include <linux/time.h>
-+
-+#include <asm/time.h>
-+#include <asm/addrspace.h>
-+
-+#include <asm/sibyte/64bit.h>
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_regs.h>
-+#include <asm/sibyte/sb1250_smbus.h>
-+
-+
-+/* M41T81 definitions */
-+
-+/*
-+ * Register bits
-+ */
-+
-+#define M41T81REG_SC_ST 0x80 /* stop bit */
-+#define M41T81REG_HR_CB 0x40 /* century bit */
-+#define M41T81REG_HR_CEB 0x80 /* century enable bit */
-+#define M41T81REG_CTL_S 0x20 /* sign bit */
-+#define M41T81REG_CTL_FT 0x40 /* frequency test bit */
-+#define M41T81REG_CTL_OUT 0x80 /* output level */
-+#define M41T81REG_WD_RB0 0x01 /* watchdog resolution bit 0 */
-+#define M41T81REG_WD_RB1 0x02 /* watchdog resolution bit 1 */
-+#define M41T81REG_WD_BMB0 0x04 /* watchdog multiplier bit 0 */
-+#define M41T81REG_WD_BMB1 0x08 /* watchdog multiplier bit 1 */
-+#define M41T81REG_WD_BMB2 0x10 /* watchdog multiplier bit 2 */
-+#define M41T81REG_WD_BMB3 0x20 /* watchdog multiplier bit 3 */
-+#define M41T81REG_WD_BMB4 0x40 /* watchdog multiplier bit 4 */
-+#define M41T81REG_AMO_ABE 0x20 /* alarm in "battery back-up mode" enable bit */
-+#define M41T81REG_AMO_SQWE 0x40 /* square wave enable */
-+#define M41T81REG_AMO_AFE 0x80 /* alarm flag enable flag */
-+#define M41T81REG_ADT_RPT5 0x40 /* alarm repeat mode bit 5 */
-+#define M41T81REG_ADT_RPT4 0x80 /* alarm repeat mode bit 4 */
-+#define M41T81REG_AHR_RPT3 0x80 /* alarm repeat mode bit 3 */
-+#define M41T81REG_AHR_HT 0x40 /* halt update bit */
-+#define M41T81REG_AMN_RPT2 0x80 /* alarm repeat mode bit 2 */
-+#define M41T81REG_ASC_RPT1 0x80 /* alarm repeat mode bit 1 */
-+#define M41T81REG_FLG_AF 0x40 /* alarm flag (read only) */
-+#define M41T81REG_FLG_WDF 0x80 /* watchdog flag (read only) */
-+#define M41T81REG_SQW_RS0 0x10 /* sqw frequency bit 0 */
-+#define M41T81REG_SQW_RS1 0x20 /* sqw frequency bit 1 */
-+#define M41T81REG_SQW_RS2 0x40 /* sqw frequency bit 2 */
-+#define M41T81REG_SQW_RS3 0x80 /* sqw frequency bit 3 */
-+
-+
-+/*
-+ * Register numbers
-+ */
-+
-+#define M41T81REG_TSC 0x00 /* tenths/hundredths of second */
-+#define M41T81REG_SC 0x01 /* seconds */
-+#define M41T81REG_MN 0x02 /* minute */
-+#define M41T81REG_HR 0x03 /* hour/century */
-+#define M41T81REG_DY 0x04 /* day of week */
-+#define M41T81REG_DT 0x05 /* date of month */
-+#define M41T81REG_MO 0x06 /* month */
-+#define M41T81REG_YR 0x07 /* year */
-+#define M41T81REG_CTL 0x08 /* control */
-+#define M41T81REG_WD 0x09 /* watchdog */
-+#define M41T81REG_AMO 0x0A /* alarm: month */
-+#define M41T81REG_ADT 0x0B /* alarm: date */
-+#define M41T81REG_AHR 0x0C /* alarm: hour */
-+#define M41T81REG_AMN 0x0D /* alarm: minute */
-+#define M41T81REG_ASC 0x0E /* alarm: second */
-+#define M41T81REG_FLG 0x0F /* flags */
-+#define M41T81REG_SQW 0x13 /* square wave register */
-+
-+#define M41T81_CCR_ADDRESS 0x68
-+#define SMB_CSR(reg) (KSEG1 | A_SMB_REGISTER(1, reg))
-+
-+static int m41t81_read(uint8_t addr)
-+{
-+ while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
-+ ;
-+
-+ out64(addr & 0xff, SMB_CSR(R_SMB_CMD));
-+ out64((V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_WR1BYTE), SMB_CSR(R_SMB_START));
-+
-+ while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
-+ ;
-+
-+ out64((V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_RD1BYTE), SMB_CSR(R_SMB_START));
-+
-+ while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
-+ ;
-+
-+ if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
-+ /* Clear error bit by writing a 1 */
-+ out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
-+ return -1;
-+ }
-+
-+ return (in64(SMB_CSR(R_SMB_DATA)) & 0xff);
-+}
-+
-+static int m41t81_write(uint8_t addr, int b)
-+{
-+ while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
-+ ;
-+
-+ out64((addr & 0xFF), SMB_CSR(R_SMB_CMD));
-+ out64((b & 0xff), SMB_CSR(R_SMB_DATA));
-+ out64(V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_WR2BYTE,
-+ SMB_CSR(R_SMB_START));
-+
-+ while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
-+ ;
-+
-+ if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) {
-+ /* Clear error bit by writing a 1 */
-+ out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS));
-+ return -1;
-+ }
-+
-+ /* read the same byte again to make sure it is written */
-+ out64(V_SMB_ADDR(M41T81_CCR_ADDRESS) | V_SMB_TT_RD1BYTE,
-+ SMB_CSR(R_SMB_START));
-+
-+ while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY)
-+ ;
-+
-+ return 0;
-+}
-+
-+#define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10)
-+#define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
-+
-+int m41t81_set_time(unsigned long t)
-+{
-+ struct rtc_time tm;
-+
-+ to_tm(t, &tm);
-+
-+ /*
-+ * Note the write order matters as it ensures the correctness.
-+ * When we write sec, 10th sec is clear. It is reasonable to
-+ * believe we should finish writing min within a second.
-+ */
-+
-+ BIN_TO_BCD(tm.tm_sec);
-+ m41t81_write(M41T81REG_SC, tm.tm_sec);
-+
-+ BIN_TO_BCD(tm.tm_min);
-+ m41t81_write(M41T81REG_MN, tm.tm_min);
-+
-+ BIN_TO_BCD(tm.tm_hour);
-+ tm.tm_hour = (tm.tm_hour & 0x3f) | (m41t81_read(M41T81REG_HR) & 0xc0);
-+ m41t81_write(M41T81REG_HR, tm.tm_hour);
-+
-+ /* tm_wday starts from 0 to 6 */
-+ if (tm.tm_wday == 0) tm.tm_wday = 7;
-+ BIN_TO_BCD(tm.tm_wday);
-+ m41t81_write(M41T81REG_DY, tm.tm_wday);
-+
-+ BIN_TO_BCD(tm.tm_mday);
-+ m41t81_write(M41T81REG_DT, tm.tm_mday);
-+
-+ /* tm_mon starts from 0, *ick* */
-+ tm.tm_mon ++;
-+ BIN_TO_BCD(tm.tm_mon);
-+ m41t81_write(M41T81REG_MO, tm.tm_mon);
-+
-+ /* we don't do century, everything is beyond 2000 */
-+ tm.tm_year %= 100;
-+ BIN_TO_BCD(tm.tm_year);
-+ m41t81_write(M41T81REG_YR, tm.tm_year);
-+
-+ return 0;
-+}
-+
-+unsigned long m41t81_get_time(void)
-+{
-+ unsigned int year, mon, day, hour, min, sec;
-+
-+ /*
-+ * min is valid if two reads of sec are the same.
-+ */
-+ for (;;) {
-+ sec = m41t81_read(M41T81REG_SC);
-+ min = m41t81_read(M41T81REG_MN);
-+ if (sec == m41t81_read(M41T81REG_SC)) break;
-+ }
-+ hour = m41t81_read(M41T81REG_HR) & 0x3f;
-+ day = m41t81_read(M41T81REG_DT);
-+ mon = m41t81_read(M41T81REG_MO);
-+ year = m41t81_read(M41T81REG_YR);
-+
-+ BCD_TO_BIN(sec);
-+ BCD_TO_BIN(min);
-+ BCD_TO_BIN(hour);
-+ BCD_TO_BIN(day);
-+ BCD_TO_BIN(mon);
-+ BCD_TO_BIN(year);
-+
-+ year += 2000;
-+
-+ return mktime(year, mon, day, hour, min, sec);
-+}
-+
-+int m41t81_probe(void)
-+{
-+ unsigned int tmp;
-+
-+ /* enable chip if it is not enabled yet */
-+ tmp = m41t81_read(M41T81REG_SC);
-+ m41t81_write(M41T81REG_SC, tmp & 0x7f);
-+
-+ return (m41t81_read(M41T81REG_SC) != -1);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/rtc_xicor1241.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_xicor1241.c
---- linux-2.4.20/arch/mips/sibyte/swarm/rtc_xicor1241.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/rtc_xicor1241.c 2003-02-07 12:02:30.000000000 -0600
-@@ -181,15 +181,14 @@
- hour = (hour & 0xf) + 0x12;
- }
-
-- BCD_TO_BIN(sec);
-- BCD_TO_BIN(min);
-- BCD_TO_BIN(hour);
--
- day = xicor_read(X1241REG_DT);
- mon = xicor_read(X1241REG_MO);
- year = xicor_read(X1241REG_YR);
- y2k = xicor_read(X1241REG_Y2K);
-
-+ BCD_TO_BIN(sec);
-+ BCD_TO_BIN(min);
-+ BCD_TO_BIN(hour);
- BCD_TO_BIN(day);
- BCD_TO_BIN(mon);
- BCD_TO_BIN(year);
-@@ -200,3 +199,7 @@
- return mktime(year, mon, day, hour, min, sec);
- }
-
-+int xicor_probe(void)
-+{
-+ return (xicor_read(X1241REG_SC) != -1);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/sibyte/swarm/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/setup.c
---- linux-2.4.20/arch/mips/sibyte/swarm/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sibyte/swarm/setup.c 2003-02-07 15:06:07.000000000 -0600
-@@ -37,29 +37,18 @@
- #include <asm/sibyte/sb1250_regs.h>
- #include <asm/sibyte/sb1250_genbus.h>
- #include <asm/sibyte/64bit.h>
--#include <asm/sibyte/swarm.h>
-+#include <asm/sibyte/board.h>
-
- extern struct rtc_ops *rtc_ops;
- extern struct rtc_ops swarm_rtc_ops;
-
- #ifdef CONFIG_BLK_DEV_IDE
--extern struct ide_ops std_ide_ops;
--#ifdef CONFIG_BLK_DEV_IDE_SIBYTE
- extern struct ide_ops sibyte_ide_ops;
- #endif
--#endif
--
--#ifdef CONFIG_L3DEMO
--extern void *l3info;
--#endif
--
--static unsigned char *led_ptr;
--#define LED_BASE_ADDR (A_IO_EXT_REG(R_IO_EXT_REG(R_IO_EXT_START_ADDR, LEDS_CS)))
--#define setled(index, c) led_ptr[(3-((index)&3)) << 3] = (c)
-
- const char *get_system_type(void)
- {
-- return "SiByte Swarm";
-+ return "SiByte " SIBYTE_BOARD_NAME;
- }
-
-
-@@ -78,9 +67,15 @@
- sb1250_time_init();
- }
-
-+extern void sb1250_setup(void);
-+
-+extern int xicor_probe(void);
- extern int xicor_set_time(unsigned long);
- extern unsigned long xicor_get_time(void);
--extern void sb1250_setup(void);
-+
-+extern int m41t81_probe(void);
-+extern int m41t81_set_time(unsigned long);
-+extern unsigned long m41t81_get_time(void);
-
- void __init swarm_setup(void)
- {
-@@ -90,16 +85,20 @@
-
- panic_timeout = 5; /* For debug. */
-
-- board_timer_setup = swarm_timer_setup;
--
-- rtc_get_time = xicor_get_time;
-- rtc_set_time = xicor_set_time;
-+ board_timer_setup = swarm_timer_setup;
-
--#ifdef CONFIG_L3DEMO
-- if (l3info != NULL) {
-- printk("\n");
-+ if (xicor_probe()) {
-+ printk("swarm setup: Xicor 1241 RTC detected.\n");
-+ rtc_get_time = xicor_get_time;
-+ rtc_set_time = xicor_set_time;
- }
--#endif
-+
-+ if (m41t81_probe()) {
-+ printk("swarm setup: M41T81 RTC detected.\n");
-+ rtc_get_time = m41t81_get_time;
-+ rtc_set_time = m41t81_set_time;
-+ }
-+
- printk("This kernel optimized for "
- #ifdef CONFIG_SIMULATION
- "simulation"
-@@ -115,23 +114,8 @@
- " CFE\n");
-
- #ifdef CONFIG_BLK_DEV_IDE
--#ifdef CONFIG_BLK_DEV_IDE_SIBYTE
- ide_ops = &sibyte_ide_ops;
--#else
-- ide_ops = &std_ide_ops;
--#endif
--#endif
--
-- /* Set up the LED base address */
--#ifdef __MIPSEL__
-- /* Pass1 workaround (bug 1624) */
-- if (sb1250_pass == K_SYS_REVISION_PASS1)
-- led_ptr = (unsigned char *)
-- ((unsigned long)(KSEG1 | (G_IO_START_ADDR(csr_in32(4+(KSEG1|LED_BASE_ADDR))) << S_IO_ADDRBASE))+0x20);
-- else
- #endif
-- led_ptr = (unsigned char *)
-- ((unsigned long)(KSEG1 | (G_IO_START_ADDR(csr_in32(KSEG1|LED_BASE_ADDR)) << S_IO_ADDRBASE))+0x20);
-
- #ifdef CONFIG_VT
- #ifdef CONFIG_DUMMY_CONSOLE
-@@ -152,60 +136,25 @@
- #endif
- }
-
-+#ifdef LEDS_PHYS
-+
-+#ifdef CONFIG_SIBYTE_CARMEL
-+/* XXXKW need to detect Monterey/LittleSur/etc */
-+#undef LEDS_PHYS
-+#define LEDS_PHYS MLEDS_PHYS
-+#endif
-+
-+#define setled(index, c) \
-+ ((unsigned char *)(LEDS_PHYS|IO_SPACE_BASE|0x20))[(3-(index))<<3] = (c)
- void setleds(char *str)
- {
- int i;
- for (i = 0; i < 4; i++) {
- if (!str[i]) {
-- for (; i < 4; i++) {
-- setled(' ', str[i]);
-- }
-+ setled(i, ' ');
- } else {
- setled(i, str[i]);
- }
- }
- }
--
--#include <linux/timer.h>
--
--static struct timer_list led_timer;
--static unsigned char default_led_msg[] =
-- "Today: the CSWARM. Tomorrow: the WORLD!!!! ";
--static unsigned char *led_msg = default_led_msg;
--static unsigned char *led_msg_ptr = default_led_msg;
--
--void set_led_msg(char *new_msg)
--{
-- led_msg = new_msg;
-- led_msg_ptr = new_msg;
-- setleds(" ");
--}
--
--static void move_leds(unsigned long arg)
--{
-- int i;
-- unsigned char *tmp = led_msg_ptr;
-- for (i = 0; i < 4; i++) {
-- setled(i, *tmp);
-- tmp++;
-- if (!*tmp) {
-- tmp = led_msg;
-- }
-- }
-- led_msg_ptr++;
-- if (!*led_msg_ptr) {
-- led_msg_ptr = led_msg;
-- }
-- del_timer(&led_timer);
-- led_timer.expires = jiffies + (HZ/8);
-- add_timer(&led_timer);
--}
--
--void hack_leds(void)
--{
-- init_timer(&led_timer);
-- led_timer.expires = jiffies + (HZ/8);
-- led_timer.data = 0;
-- led_timer.function = move_leds;
-- add_timer(&led_timer);
--}
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Entries
---- linux-2.4.20/arch/mips/sni/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Entries 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:43 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.1/Tue Jun 25 15:47:00 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.7.2.1/Tue Aug 20 00:32:39 2002/-ko/Tlinux_2_4_20
-+/io.c/1.6/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.3.2.1/Mon Dec 17 20:14:47 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.12.2.4/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/pcimt_scache.c/1.8/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/reset.c/1.1.1.1/Sun Jun 1 03:16:41 1997/-ko/Tlinux_2_4_20
-+/setup.c/1.21.2.1/Wed Jun 26 12:22:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Repository
---- linux-2.4.20/arch/mips/sni/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/sni
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Root
---- linux-2.4.20/arch/mips/sni/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Tag
---- linux-2.4.20/arch/mips/sni/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/sni/.cvsignore
---- linux-2.4.20/arch/mips/sni/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/.cvsignore 1998-03-17 16:07:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/int-handler.S linux-2.4.20-mipscvs-20050106/arch/mips/sni/int-handler.S
---- linux-2.4.20/arch/mips/sni/int-handler.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/int-handler.S 2002-08-19 19:32:39.000000000 -0500
-@@ -47,7 +47,7 @@
- bnez t1, _hwint0
- nop
-
-- j restore_all # spurious interrupt
-+ j ret_from_irq # spurious interrupt
- nop
-
- ##############################################################################
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/sni/Makefile
---- linux-2.4.20/arch/mips/sni/Makefile 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/Makefile 2002-06-25 10:47:00.000000000 -0500
-@@ -6,10 +6,7 @@
- # unless it's something special (ie not a .c file).
- #
-
--.S.s:
-- $(CPP) $(CFLAGS) $< -o $*.s
--.S.o:
-- $(CC) $(CFLAGS) -c $< -o $*.o
-+USE_STANDARD_AS_RULE := true
-
- all: sni.o int-handler.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/pci.c linux-2.4.20-mipscvs-20050106/arch/mips/sni/pci.c
---- linux-2.4.20/arch/mips/sni/pci.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/pci.c 2003-01-11 11:53:10.000000000 -0600
-@@ -40,7 +40,7 @@
- */
- if (dev->devfn == PCI_DEVFN(1, 0)) {
- /* Evil hack ... */
-- set_cp0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NO_WA);
-+ set_c0_config(CONF_CM_CMASK, CONF_CM_CACHABLE_NO_WA);
- dev->irq = PCIMT_IRQ_SCSI;
- continue;
- }
-@@ -175,7 +175,7 @@
- /* Somebody might have asked allocation of a non-standard resource */
- return;
- }
--
-+
- pci_write_config_dword(dev, reg, new);
- pci_read_config_dword(dev, reg, &check);
- if ((new ^ check) & ((new & PCI_BASE_ADDRESS_SPACE_IO) ? PCI_BASE_ADDRESS_IO_MASK : PCI_BASE_ADDRESS_MEM_MASK)) {
-@@ -192,7 +192,7 @@
- pci_scan_bus(0, ops, NULL);
- }
-
--int __init pcibios_enable_device(struct pci_dev *dev)
-+int __init pcibios_enable_device(struct pci_dev *dev, int mask)
- {
- /* Not needed, since we enable all devices at startup. */
- return 0;
-diff -urNd -urNd linux-2.4.20/arch/mips/sni/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/sni/setup.c
---- linux-2.4.20/arch/mips/sni/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/sni/setup.c 2002-06-26 07:22:42.000000000 -0500
-@@ -31,6 +31,7 @@
- #include <asm/reboot.h>
- #include <asm/sni.h>
- #include <asm/time.h>
-+#include <asm/traps.h>
-
- extern void sni_machine_restart(char *command);
- extern void sni_machine_halt(void);
-@@ -49,6 +50,10 @@
- setup_irq(0, irq);
- }
-
-+
-+void __init bus_error_init(void) { /* nothing */ }
-+
-+
- extern unsigned char sni_map_isa_cache;
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Entries
---- linux-2.4.20/arch/mips/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Entries 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.2/Tue Mar 17 22:07:44 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.3/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/offset.c/1.16.4.6/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Repository
---- linux-2.4.20/arch/mips/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/tools
-diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Root
---- linux-2.4.20/arch/mips/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Tag
---- linux-2.4.20/arch/mips/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/tools/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/tools/.cvsignore
---- linux-2.4.20/arch/mips/tools/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/.cvsignore 1998-03-17 16:07:44.000000000 -0600
-@@ -0,0 +1,3 @@
-+.depend
-+.*.flags
-+offset.s offset.h
-diff -urNd -urNd linux-2.4.20/arch/mips/tools/offset.c linux-2.4.20-mipscvs-20050106/arch/mips/tools/offset.c
---- linux-2.4.20/arch/mips/tools/offset.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/tools/offset.c 2002-11-04 13:39:56.000000000 -0600
-@@ -151,7 +151,6 @@
- offset("#define SC_MDLO ", struct sigcontext, sc_mdlo);
- offset("#define SC_PC ", struct sigcontext, sc_pc);
- offset("#define SC_STATUS ", struct sigcontext, sc_status);
-- offset("#define SC_OWNEDFP ", struct sigcontext, sc_ownedfp);
- offset("#define SC_FPC_CSR ", struct sigcontext, sc_fpc_csr);
- offset("#define SC_FPC_EIR ", struct sigcontext, sc_fpc_eir);
- offset("#define SC_CAUSE ", struct sigcontext, sc_cause);
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Entries
---- linux-2.4.20/arch/mips/vr4181/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Entries 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1/Mon Nov 5 20:15:26 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Tue Jun 25 15:47:01 2002/-ko/Tlinux_2_4_20
-+/int_handler.S/1.1/Tue Oct 2 23:27:11 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.4.2.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/serial.c/1.2.2.1/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.3/Sun Dec 1 21:20:14 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Repository
---- linux-2.4.20/arch/mips/vr4181/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr4181/common
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Root
---- linux-2.4.20/arch/mips/vr4181/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Tag
---- linux-2.4.20/arch/mips/vr4181/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/.cvsignore
---- linux-2.4.20/arch/mips/vr4181/common/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/.cvsignore 2001-11-05 14:15:26.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/irq.c
---- linux-2.4.20/arch/mips/vr4181/common/irq.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/irq.c 2002-08-05 18:53:36.000000000 -0500
-@@ -7,7 +7,7 @@
- *
- * Credits to Bradley D. LaRonde and Michael Klar for writing the original
- * irq.c file which was derived from the common irq.c file.
-- *
-+ *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
-@@ -180,9 +180,9 @@
- extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
- extern void mips_cpu_irq_init(u32 irq_base);
-
--static struct irqaction cascade =
-+static struct irqaction cascade =
- { no_action, SA_INTERRUPT, 0, "cascade", NULL, NULL };
--static struct irqaction reserved =
-+static struct irqaction reserved =
- { no_action, SA_INTERRUPT, 0, "cascade", NULL, NULL };
-
- void __init init_IRQ(void)
-@@ -216,7 +216,7 @@
- /* Default all ICU IRQs to off ... */
- *VR4181_MSYSINT1REG = 0;
- *VR4181_MSYSINT2REG = 0;
--
-+
- /* We initialize the level 2 ICU registers to all bits disabled. */
- *VR4181_MPIUINTREG = 0;
- *VR4181_MAIUINTREG = 0;
-@@ -229,7 +229,7 @@
- setup_irq(VR4181_IRQ_INT0, &cascade);
- setup_irq(VR4181_IRQ_GIU, &cascade);
-
-- /*
-+ /*
- * RTC interrupts are interesting. They have two destinations.
- * One is at sys irq controller, and the other is at CPU IP3 and IP4.
- * RTC timer is used as system timer.
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/serial.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/serial.c
---- linux-2.4.20/arch/mips/vr4181/common/serial.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/serial.c 2002-08-05 18:53:36.000000000 -0500
-@@ -14,7 +14,7 @@
-
- /*
- * [jsun, 010925]
-- * You need to make sure rs_table has at least one element in
-+ * You need to make sure rs_table has at least one element in
- * drivers/char/serial.c file. There is no good way to do it right
- * now. A workaround is to include CONFIG_SERIAL_MANY_PORTS in your
- * configure file, which would gives you 64 ports and wastes 11K ram.
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/common/time.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/time.c
---- linux-2.4.20/arch/mips/vr4181/common/time.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/common/time.c 2002-12-01 15:20:14.000000000 -0600
-@@ -2,7 +2,7 @@
- * Copyright 2001 MontaVista Software Inc.
- * Author: jsun@mvista.com or jsun@junsun.net
- *
-- * rtc and time ops for vr4181. Part of code is drived from
-+ * rtc and time ops for vr4181. Part of code is drived from
- * linux-vr, originally written by Bradley D. LaRonde & Michael Klar.
- *
- * This program is free software; you can redistribute it and/or modify it
-@@ -29,10 +29,10 @@
- * RTC ops
- */
-
--spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
-+extern spinlock_t rtc_lock;
-
- /* per VR41xx docs, bad data can be read if between 2 counts */
--static inline unsigned short
-+static inline unsigned short
- read_time_reg(volatile unsigned short *reg)
- {
- unsigned short value;
-@@ -43,7 +43,7 @@
- return value;
- }
-
--static unsigned long
-+static unsigned long
- vr4181_rtc_get_time(void)
- {
- unsigned short regh, regm, regl;
-@@ -60,7 +60,7 @@
- return ((regh << 17) | (regm << 1) | (regl >> 15));
- }
-
--static int
-+static int
- vr4181_rtc_set_time(unsigned long timeval)
- {
- unsigned short intreg;
-@@ -82,13 +82,13 @@
- }
-
-
--/*
-+/*
- * timer interrupt routine (wrapper)
- *
- * we need our own interrupt routine because we need to clear
- * RTC1 interrupt.
- */
--static void
-+static void
- vr4181_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
- /* Clear the interrupt. */
-@@ -115,7 +115,7 @@
-
- extern int setup_irq(unsigned int irq, struct irqaction *irqaction);
-
--static void
-+static void
- vr4181_timer_setup(struct irqaction *irq)
- {
- /* over-write the handler to be our own one */
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Entries
---- linux-2.4.20/arch/mips/vr4181/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Entries 2005-01-06 23:08:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+D/common////
-+D/osprey////
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Repository
---- linux-2.4.20/arch/mips/vr4181/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr4181
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Root
---- linux-2.4.20/arch/mips/vr4181/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Tag
---- linux-2.4.20/arch/mips/vr4181/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Entries
---- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Entries 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1/Mon Nov 5 20:15:27 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Tue Jun 25 15:47:01 2002/-ko/Tlinux_2_4_20
-+/dbg_io.c/1.1.2.1/Sat Feb 2 21:33:52 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.3/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1.2.2/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.2.2.2/Sun Dec 1 21:17:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Repository
---- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr4181/osprey
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Root
---- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Tag
---- linux-2.4.20/arch/mips/vr4181/osprey/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/.cvsignore
---- linux-2.4.20/arch/mips/vr4181/osprey/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/.cvsignore 2001-11-05 14:15:27.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/prom.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/prom.c
---- linux-2.4.20/arch/mips/vr4181/osprey/prom.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/prom.c 2002-08-05 18:53:36.000000000 -0500
-@@ -26,7 +26,7 @@
- return "NEC_Vr41xx Osprey";
- }
-
--/*
-+/*
- * [jsun] right now we assume it is the nec debug monitor, which does
- * not pass any arguments.
- */
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/reset.c
---- linux-2.4.20/arch/mips/vr4181/osprey/reset.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/reset.c 2002-12-01 18:24:51.000000000 -0600
-@@ -18,10 +18,10 @@
-
- void nec_osprey_restart(char *command)
- {
-- set_cp0_status(ST0_ERL);
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ set_c0_status(ST0_ERL);
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
- __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/vr4181/osprey/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/setup.c
---- linux-2.4.20/arch/mips/vr4181/osprey/setup.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr4181/osprey/setup.c 2002-12-01 15:17:02.000000000 -0600
-@@ -32,6 +32,10 @@
- extern void vr4181_init_serial(void);
- extern void vr4181_init_time(void);
-
-+void __init bus_error_init(void)
-+{
-+}
-+
- void __init nec_osprey_setup(void)
- {
- set_io_port_base(VR4181_PORT_BASE);
-@@ -43,7 +47,7 @@
- #ifdef CONFIG_FB
- conswitchp = &dummy_con;
- #endif
--
-+
- _machine_restart = nec_osprey_restart;
- _machine_halt = nec_osprey_halt;
- _machine_power_off = nec_osprey_power_off;
-@@ -64,7 +68,7 @@
- // *VR4181_GPMD0REG = 0x00c0;
- // *VR4181_GPINTEN = 1<<6;
-
-- /* [jsun] I believe this will get the interrupt type right
-+ /* [jsun] I believe this will get the interrupt type right
- * for the ether port.
- */
- *VR4181_GPINTTYPL = 0x3000;
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Entries 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
-+/ide-e55.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/casio-e55
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/.cvsignore
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/.cvsignore 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/ide-e55.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/ide-e55.c
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/ide-e55.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/ide-e55.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,99 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * IDE routines for typical pc-like standard configurations
-+ * for the CASIO CASSIOPEIA E-55/65.
-+ *
-+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
-+ */
-+/*
-+ * Changes:
-+ * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> Sun, 24 Feb 2002
-+ * - Added CASIO CASSIOPEIA E-55/65 support.
-+ */
-+#include <linux/sched.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+#include <linux/hdreg.h>
-+#include <asm/ptrace.h>
-+#include <asm/hdreg.h>
-+
-+static int e55_ide_default_irq(ide_ioreg_t base)
-+{
-+ return 40;
-+}
-+
-+static ide_ioreg_t e55_ide_default_io_base(int index)
-+{
-+ switch (index) {
-+ case 0: return 0xc1f0;
-+ case 1: return 0xc170;
-+ case 2: return 0xc1e8;
-+ case 3: return 0xc168;
-+ case 4: return 0xc1e0;
-+ case 5: return 0xc160;
-+ }
-+ return 0;
-+}
-+
-+static void e55_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-+ ide_ioreg_t ctrl_port, int *irq)
-+{
-+ ide_ioreg_t reg = data_port;
-+ int i;
-+
-+ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
-+ hw->io_ports[i] = reg;
-+ reg += 1;
-+ }
-+ if (ctrl_port) {
-+ hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
-+ } else {
-+ hw->io_ports[IDE_CONTROL_OFFSET] = hw->io_ports[IDE_DATA_OFFSET] + 0x206;
-+ }
-+ if (irq != NULL)
-+ *irq = 0;
-+ hw->io_ports[IDE_IRQ_OFFSET] = 0;
-+}
-+
-+static int e55_ide_request_irq(unsigned int irq,
-+ void (*handler)(int,void *, struct pt_regs *),
-+ unsigned long flags, const char *device,
-+ void *dev_id)
-+{
-+ return request_irq(irq, handler, flags, device, dev_id);
-+}
-+
-+static void e55_ide_free_irq(unsigned int irq, void *dev_id)
-+{
-+ free_irq(irq, dev_id);
-+}
-+
-+static int e55_ide_check_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ return check_region(from, extent);
-+}
-+
-+static void e55_ide_request_region(ide_ioreg_t from, unsigned int extent,
-+ const char *name)
-+{
-+ request_region(from, extent, name);
-+}
-+
-+static void e55_ide_release_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ release_region(from, extent);
-+}
-+
-+struct ide_ops e55_ide_ops = {
-+ &e55_ide_default_irq,
-+ &e55_ide_default_io_base,
-+ &e55_ide_init_hwif_ports,
-+ &e55_ide_request_irq,
-+ &e55_ide_free_irq,
-+ &e55_ide_check_region,
-+ &e55_ide_request_region,
-+ &e55_ide_release_region
-+};
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/init.c
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/init.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/init.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,53 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/casio-e55/init.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Initialisation code for the CASIO CASSIOPEIA E-55/65.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+
-+#include <asm/bootinfo.h>
-+
-+char arcs_cmdline[CL_SIZE];
-+
-+const char *get_system_type(void)
-+{
-+ return "CASIO CASSIOPEIA E-11/15/55/65";
-+}
-+
-+void __init bus_error_init(void)
-+{
-+}
-+
-+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
-+{
-+ int i;
-+
-+ /*
-+ * collect args and prepare cmd_line
-+ */
-+ for (i = 1; i < argc; i++) {
-+ strcat(arcs_cmdline, argv[i]);
-+ if (i < (argc - 1))
-+ strcat(arcs_cmdline, " ");
-+ }
-+
-+ mips_machgroup = MACH_GROUP_NEC_VR41XX;
-+ mips_machtype = MACH_CASIO_E55;
-+}
-+
-+void __init prom_free_prom_memory (void)
-+{
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/Makefile
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/Makefile 2002-11-13 04:00:14.000000000 -0600
-@@ -0,0 +1,19 @@
-+#
-+# Makefile for the CASIO CASSIOPEIA E-55/65 specific parts of the kernel
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET := e55.o
-+
-+all: e55.o
-+
-+obj-y := init.o setup.o
-+
-+obj-$(CONFIG_IDE) += ide-e55.o
-+
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/casio-e55/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/setup.c
---- linux-2.4.20/arch/mips/vr41xx/casio-e55/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/casio-e55/setup.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,69 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/casio-e55/setup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Setup for the CASIO CASSIOPEIA E-11/15/55/65.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/console.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+
-+#include <asm/reboot.h>
-+#include <asm/time.h>
-+#include <asm/vr41xx/e55.h>
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+extern unsigned long initrd_start, initrd_end;
-+extern void * __rd_start, * __rd_end;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+extern struct ide_ops e55_ide_ops;
-+#endif
-+
-+void __init casio_e55_setup(void)
-+{
-+ set_io_port_base(IO_PORT_BASE);
-+ ioport_resource.start = IO_PORT_RESOURCE_START;
-+ ioport_resource.end = IO_PORT_RESOURCE_END;
-+ iomem_resource.start = IO_MEM_RESOURCE_START;
-+ iomem_resource.end = IO_MEM_RESOURCE_END;
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ initrd_start = (unsigned long)&__rd_start;
-+ initrd_end = (unsigned long)&__rd_end;
-+#endif
-+
-+ _machine_restart = vr41xx_restart;
-+ _machine_halt = vr41xx_halt;
-+ _machine_power_off = vr41xx_power_off;
-+
-+ board_time_init = vr41xx_time_init;
-+ board_timer_setup = vr41xx_timer_setup;
-+
-+#ifdef CONFIG_FB
-+ conswitchp = &dummy_con;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+ ide_ops = &e55_ide_ops;
-+#endif
-+
-+ vr41xx_bcu_init();
-+
-+ vr41xx_cmu_init(0);
-+
-+ vr41xx_siu_init(SIU_RS232C, 0);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+/bcu.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/cmu.c/1.1.2.2/Wed Jul 31 02:18:39 2002/-ko/Tlinux_2_4_20
-+/giu.c/1.1.2.3/Fri Feb 21 14:23:25 2003/-ko/Tlinux_2_4_20
-+/icu.c/1.1.2.3/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/int-handler.S/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/pciu.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/pciu.h/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1.2.2/Mon Dec 2 00:24:51 2002/-ko/Tlinux_2_4_20
-+/serial.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.2/Mon Dec 2 00:24:52 2002/-ko/Tlinux_2_4_20
-+/vrc4173.c/1.1.2.1/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/common
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/.cvsignore
---- linux-2.4.20/arch/mips/vr41xx/common/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/.cvsignore 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/giu.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/giu.c
---- linux-2.4.20/arch/mips/vr41xx/common/giu.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/giu.c 2003-02-21 08:23:25.000000000 -0600
-@@ -89,7 +89,7 @@
- return res;
- }
-
--void vr41xx_enable_giuint(u8 pin)
-+void vr41xx_enable_giuint(int pin)
- {
- if (pin < 16)
- set_giuint(GIUINTENL, (u16)1 << pin);
-@@ -97,7 +97,7 @@
- set_giuint(GIUINTENH, (u16)1 << (pin - 16));
- }
-
--void vr41xx_disable_giuint(u8 pin)
-+void vr41xx_disable_giuint(int pin)
- {
- if (pin < 16)
- clear_giuint(GIUINTENL, (u16)1 << pin);
-@@ -105,15 +105,15 @@
- clear_giuint(GIUINTENH, (u16)1 << (pin - 16));
- }
-
--void vr41xx_clear_giuint(u8 pin)
-+void vr41xx_clear_giuint(int pin)
- {
- if (pin < 16)
-- write_giuint(GIUINTSTATL, (u16)1 << pin);
-+ write_giuint((u16)1 << pin, GIUINTSTATL);
- else
-- write_giuint(GIUINTSTATH, (u16)1 << (pin - 16));
-+ write_giuint((u16)1 << (pin - 16), GIUINTSTATH);
- }
-
--void vr41xx_set_irq_trigger(u8 pin, u8 trigger, u8 hold)
-+void vr41xx_set_irq_trigger(int pin, int trigger, int hold)
- {
- u16 mask;
-
-@@ -146,7 +146,7 @@
- vr41xx_clear_giuint(pin);
- }
-
--void vr41xx_set_irq_level(u8 pin, u8 level)
-+void vr41xx_set_irq_level(int pin, int level)
- {
- u16 mask;
-
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/icu.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/icu.c
---- linux-2.4.20/arch/mips/vr41xx/common/icu.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/icu.c 2002-10-03 11:58:02.000000000 -0500
-@@ -224,13 +224,9 @@
-
- /*=======================================================================*/
-
--extern void vr41xx_enable_giuint(u8 pin);
--extern void vr41xx_disable_giuint(u8 pin);
--extern void vr41xx_clear_giuint(u8 pin);
--
- static void enable_giuint_irq(unsigned int irq)
- {
-- u8 pin;
-+ int pin;
-
- pin = irq - GIUINT_IRQ_BASE;
- if (pin < 16)
-@@ -243,7 +239,7 @@
-
- static void disable_giuint_irq(unsigned int irq)
- {
-- u8 pin;
-+ int pin;
-
- pin = irq - GIUINT_IRQ_BASE;
- vr41xx_disable_giuint(pin);
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/Makefile
---- linux-2.4.20/arch/mips/vr41xx/common/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/Makefile 2002-12-11 19:10:09.000000000 -0600
-@@ -14,8 +14,11 @@
-
- obj-y := bcu.o cmu.o giu.o icu.o int-handler.o reset.o
-
-+export-objs := vrc4173.o
-+
- obj-$(CONFIG_PCI) += pciu.o
- obj-$(CONFIG_SERIAL) += serial.o
- obj-$(CONFIG_VR41XX_TIME_C) += time.o
-+obj-$(CONFIG_VRC4173) += vrc4173.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/reset.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/reset.c
---- linux-2.4.20/arch/mips/vr41xx/common/reset.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/reset.c 2002-12-01 18:24:51.000000000 -0600
-@@ -18,10 +18,10 @@
-
- void vr41xx_restart(char *command)
- {
-- change_cp0_status((ST0_BEV | ST0_ERL), (ST0_BEV | ST0_ERL));
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
-+ change_c0_status((ST0_BEV | ST0_ERL), (ST0_BEV | ST0_ERL));
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_UNCACHED);
- flush_cache_all();
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_wired(0);
- __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000));
- }
-
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/time.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/time.c
---- linux-2.4.20/arch/mips/vr41xx/common/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/time.c 2002-12-01 18:24:52.000000000 -0600
-@@ -89,6 +89,6 @@
-
- setup_irq(MIPS_COUNTER_TIMER_IRQ, irq);
-
-- count = read_32bit_cp0_register(CP0_COUNT);
-- write_32bit_cp0_register (CP0_COMPARE, count + (mips_counter_frequency / HZ));
-+ count = read_c0_count();
-+ write_c0_compare(count + (mips_counter_frequency / HZ));
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/common/vrc4173.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/vrc4173.c
---- linux-2.4.20/arch/mips/vr41xx/common/vrc4173.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/common/vrc4173.c 2002-12-11 19:10:09.000000000 -0600
-@@ -0,0 +1,279 @@
-+/*
-+ * FILE NAME
-+ * drivers/char/vrc4173.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * NEC VRC4173 driver for NEC VR4122/VR4131.
-+ *
-+ * Author: Yoichi Yuasa
-+ * yyuasa@mvista.com or source@mvista.com
-+ *
-+ * Copyright 2001,2002 MontaVista Software Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/interrupt.h>
-+#include <linux/irq.h>
-+#include <linux/pci.h>
-+#include <linux/types.h>
-+
-+#include <asm/vr41xx/vr41xx.h>
-+#include <asm/vr41xx/vrc4173.h>
-+
-+MODULE_DESCRIPTION("NEC VRC4173 driver for NEC VR4122/4131");
-+MODULE_AUTHOR("Yoichi Yuasa <yyuasa@mvista.com>");
-+MODULE_LICENSE("GPL");
-+
-+#define VRC4173_CMUCLKMSK 0x040
-+#define VRC4173_CMUSRST 0x042
-+
-+#define VRC4173_SELECTREG 0x09e
-+
-+#define VRC4173_SYSINT1REG 0x060
-+#define VRC4173_MSYSINT1REG 0x06c
-+
-+static struct pci_device_id vrc4173_table[] __devinitdata = {
-+ {PCI_VENDOR_ID_NEC, PCI_DEVICE_ID_NEC_VRC4173, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0},
-+ {0, }
-+};
-+
-+unsigned long vrc4173_io_offset = 0;
-+
-+EXPORT_SYMBOL(vrc4173_io_offset);
-+
-+static u16 vrc4173_cmuclkmsk;
-+static int vrc4173_initialized;
-+
-+void vrc4173_clock_supply(u16 mask)
-+{
-+ if (vrc4173_initialized) {
-+ vrc4173_cmuclkmsk |= mask;
-+ vrc4173_outw(vrc4173_cmuclkmsk, VRC4173_CMUCLKMSK);
-+ }
-+}
-+
-+void vrc4173_clock_mask(u16 mask)
-+{
-+ if (vrc4173_initialized) {
-+ vrc4173_cmuclkmsk &= ~mask;
-+ vrc4173_outw(vrc4173_cmuclkmsk, VRC4173_CMUCLKMSK);
-+ }
-+}
-+
-+static inline void vrc4173_cmu_init(void)
-+{
-+ vrc4173_cmuclkmsk = vrc4173_inw(VRC4173_CMUCLKMSK);
-+}
-+
-+EXPORT_SYMBOL(vrc4173_clock_supply);
-+EXPORT_SYMBOL(vrc4173_clock_mask);
-+
-+void vrc4173_select_function(int func)
-+{
-+ u16 val;
-+
-+ if (vrc4173_initialized) {
-+ val = vrc4173_inw(VRC4173_SELECTREG);
-+ switch(func) {
-+ case PS2CH1_SELECT:
-+ val |= 0x0004;
-+ break;
-+ case PS2CH2_SELECT:
-+ val |= 0x0002;
-+ break;
-+ case TOUCHPANEL_SELECT:
-+ val &= 0x0007;
-+ break;
-+ case KIU8_SELECT:
-+ val &= 0x000e;
-+ break;
-+ case KIU10_SELECT:
-+ val &= 0x000c;
-+ break;
-+ case KIU12_SELECT:
-+ val &= 0x0008;
-+ break;
-+ case GPIO_SELECT:
-+ val |= 0x0008;
-+ break;
-+ }
-+ vrc4173_outw(val, VRC4173_SELECTREG);
-+ }
-+}
-+
-+EXPORT_SYMBOL(vrc4173_select_function);
-+
-+static void enable_vrc4173_irq(unsigned int irq)
-+{
-+ u16 val;
-+
-+ val = vrc4173_inw(VRC4173_MSYSINT1REG);
-+ val |= (u16)1 << (irq - VRC4173_IRQ_BASE);
-+ vrc4173_outw(val, VRC4173_MSYSINT1REG);
-+}
-+
-+static void disable_vrc4173_irq(unsigned int irq)
-+{
-+ u16 val;
-+
-+ val = vrc4173_inw(VRC4173_MSYSINT1REG);
-+ val &= ~((u16)1 << (irq - VRC4173_IRQ_BASE));
-+ vrc4173_outw(val, VRC4173_MSYSINT1REG);
-+}
-+
-+static unsigned int startup_vrc4173_irq(unsigned int irq)
-+{
-+ enable_vrc4173_irq(irq);
-+ return 0; /* never anything pending */
-+}
-+
-+#define shutdown_vrc4173_irq disable_vrc4173_irq
-+#define ack_vrc4173_irq disable_vrc4173_irq
-+
-+static void end_vrc4173_irq(unsigned int irq)
-+{
-+ if (!(irq_desc[irq].status & (IRQ_DISABLED | IRQ_INPROGRESS)))
-+ enable_vrc4173_irq(irq);
-+}
-+
-+static struct hw_interrupt_type vrc4173_irq_type = {
-+ "VRC4173",
-+ startup_vrc4173_irq,
-+ shutdown_vrc4173_irq,
-+ enable_vrc4173_irq,
-+ disable_vrc4173_irq,
-+ ack_vrc4173_irq,
-+ end_vrc4173_irq,
-+ NULL
-+};
-+
-+static int vrc4173_get_irq_number(int irq)
-+{
-+ u16 status, mask;
-+ int i;
-+
-+ status = vrc4173_inw(VRC4173_SYSINT1REG);
-+ mask = vrc4173_inw(VRC4173_MSYSINT1REG);
-+
-+ status &= mask;
-+ if (status) {
-+ for (i = 0; i < 16; i++)
-+ if (status & (0x0001 << i))
-+ return VRC4173_IRQ_BASE + i;
-+ }
-+
-+ return -EINVAL;
-+}
-+
-+static inline void vrc4173_icu_init(int cascade_irq)
-+{
-+ int i;
-+
-+ if (cascade_irq < GIU_IRQ(0) || cascade_irq > GIU_IRQ(15))
-+ return;
-+
-+ vrc4173_outw(0, VRC4173_MSYSINT1REG);
-+
-+ vr41xx_set_irq_trigger(cascade_irq - GIU_IRQ(0), TRIGGER_LEVEL, SIGNAL_THROUGH);
-+ vr41xx_set_irq_level(cascade_irq - GIU_IRQ(0), LEVEL_LOW);
-+
-+ for (i = VRC4173_IRQ_BASE; i <= VRC4173_IRQ_LAST; i++)
-+ irq_desc[i].handler = &vrc4173_irq_type;
-+}
-+
-+static int __devinit vrc4173_probe(struct pci_dev *pdev,
-+ const struct pci_device_id *ent)
-+{
-+ unsigned long start, flags;
-+ int err;
-+
-+ if ((err = pci_enable_device(pdev)) < 0) {
-+ printk(KERN_ERR "vrc4173: failed to enable device -- err=%d\n", err);
-+ return err;
-+ }
-+
-+ pci_set_master(pdev);
-+
-+ start = pci_resource_start(pdev, 0);
-+ if (!start) {
-+ printk(KERN_ERR "vrc4173:No PCI I/O resources, aborting\n");
-+ return -ENODEV;
-+ }
-+
-+ if (!start || (((flags = pci_resource_flags(pdev, 0)) & IORESOURCE_IO) == 0)) {
-+ printk(KERN_ERR "vrc4173: No PCI I/O resources, aborting\n");
-+ return -ENODEV;
-+ }
-+
-+ if ((err = pci_request_regions(pdev, "NEC VRC4173")) < 0) {
-+ printk(KERN_ERR "vrc4173: PCI resources are busy, aborting\n");
-+ return err;
-+ }
-+
-+ set_vrc4173_io_offset(start);
-+
-+ vrc4173_cmu_init();
-+
-+ vrc4173_icu_init(pdev->irq);
-+
-+ if ((err = vr41xx_cascade_irq(pdev->irq, vrc4173_get_irq_number)) < 0) {
-+ printk(KERN_ERR
-+ "vrc4173: IRQ resource %d is busy, aborting\n", pdev->irq);
-+ return err;
-+ }
-+
-+ printk(KERN_INFO
-+ "NEC VRC4173 at 0x%#08lx, IRQ is cascaded to %d\n", start, pdev->irq);
-+
-+ return 0;
-+}
-+
-+static struct pci_driver vrc4173_driver = {
-+ name: "NEC VRC4173",
-+ probe: vrc4173_probe,
-+ remove: NULL,
-+ id_table: vrc4173_table,
-+};
-+
-+static int __devinit vrc4173_init(void)
-+{
-+ int err;
-+
-+ if ((err = pci_module_init(&vrc4173_driver)) < 0)
-+ return err;
-+
-+ vrc4173_initialized = 1;
-+
-+ return 0;
-+}
-+
-+static void __devexit vrc4173_exit(void)
-+{
-+ vrc4173_initialized = 0;
-+
-+ pci_unregister_driver(&vrc4173_driver);
-+}
-+
-+module_init(vrc4173_init);
-+module_exit(vrc4173_exit);
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Entries 2005-01-06 23:08:19.000000000 -0600
-@@ -0,0 +1,7 @@
-+D/casio-e55////
-+D/common////
-+D/ibm-workpad////
-+D/nec-eagle////
-+D/tanbac-tb0226////
-+D/victor-mpc30x////
-+D/zao-capcella////
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Repository 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Root 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/CVS/Tag 2005-01-06 23:00:11.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Nov 13 10:00:14 2002/-ko/Tlinux_2_4_20
-+/ide-workpad.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/ibm-workpad
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/.cvsignore
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/.cvsignore 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/ide-workpad.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/ide-workpad.c
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/ide-workpad.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/ide-workpad.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,98 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * IDE routines for typical pc-like standard configurations for the IBM WorkPad z50.
-+ *
-+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
-+ */
-+/*
-+ * Changes:
-+ * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> Sun, 24 Feb 2002
-+ * - Added IBM WorkPad z50 support.
-+ */
-+#include <linux/sched.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+#include <linux/hdreg.h>
-+#include <asm/ptrace.h>
-+#include <asm/hdreg.h>
-+
-+static int workpad_ide_default_irq(ide_ioreg_t base)
-+{
-+ return 49;
-+}
-+
-+static ide_ioreg_t workpad_ide_default_io_base(int index)
-+{
-+ switch (index) {
-+ case 0: return 0x1f0;
-+ case 1: return 0x170;
-+ case 2: return 0x1e8;
-+ case 3: return 0x168;
-+ case 4: return 0x1e0;
-+ case 5: return 0x160;
-+ }
-+ return 0;
-+}
-+
-+static void workpad_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-+ ide_ioreg_t ctrl_port, int *irq)
-+{
-+ ide_ioreg_t reg = data_port;
-+ int i;
-+
-+ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
-+ hw->io_ports[i] = reg;
-+ reg += 1;
-+ }
-+ if (ctrl_port) {
-+ hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
-+ } else {
-+ hw->io_ports[IDE_CONTROL_OFFSET] = hw->io_ports[IDE_DATA_OFFSET] + 0x206;
-+ }
-+ if (irq != NULL)
-+ *irq = 0;
-+ hw->io_ports[IDE_IRQ_OFFSET] = 0;
-+}
-+
-+static int workpad_ide_request_irq(unsigned int irq,
-+ void (*handler)(int,void *, struct pt_regs *),
-+ unsigned long flags, const char *device,
-+ void *dev_id)
-+{
-+ return request_irq(irq, handler, SA_SHIRQ, device, dev_id);
-+}
-+
-+static void workpad_ide_free_irq(unsigned int irq, void *dev_id)
-+{
-+ free_irq(irq, dev_id);
-+}
-+
-+static int workpad_ide_check_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ return check_region(from, extent);
-+}
-+
-+static void workpad_ide_request_region(ide_ioreg_t from, unsigned int extent,
-+ const char *name)
-+{
-+ request_region(from, extent, name);
-+}
-+
-+static void workpad_ide_release_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ release_region(from, extent);
-+}
-+
-+struct ide_ops workpad_ide_ops = {
-+ &workpad_ide_default_irq,
-+ &workpad_ide_default_io_base,
-+ &workpad_ide_init_hwif_ports,
-+ &workpad_ide_request_irq,
-+ &workpad_ide_free_irq,
-+ &workpad_ide_check_region,
-+ &workpad_ide_request_region,
-+ &workpad_ide_release_region
-+};
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/init.c
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/init.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/init.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,53 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/ibm-workpad/init.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Initialisation code for the IBM WorkPad z50.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+
-+#include <asm/bootinfo.h>
-+
-+char arcs_cmdline[CL_SIZE];
-+
-+const char *get_system_type(void)
-+{
-+ return "IBM WorkPad z50";
-+}
-+
-+void __init bus_error_init(void)
-+{
-+}
-+
-+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
-+{
-+ int i;
-+
-+ /*
-+ * collect args and prepare cmd_line
-+ */
-+ for (i = 1; i < argc; i++) {
-+ strcat(arcs_cmdline, argv[i]);
-+ if (i < (argc - 1))
-+ strcat(arcs_cmdline, " ");
-+ }
-+
-+ mips_machgroup = MACH_GROUP_NEC_VR41XX;
-+ mips_machtype = MACH_IBM_WORKPAD;
-+}
-+
-+void __init prom_free_prom_memory (void)
-+{
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/Makefile
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/Makefile 2002-11-13 04:00:14.000000000 -0600
-@@ -0,0 +1,19 @@
-+#
-+# Makefile for the IBM WorkPad z50 specific parts of the kernel
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET := workpad.o
-+
-+all: workpad.o
-+
-+obj-y := init.o setup.o
-+
-+obj-$(CONFIG_IDE) += ide-workpad.o
-+
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/ibm-workpad/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/setup.c
---- linux-2.4.20/arch/mips/vr41xx/ibm-workpad/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/ibm-workpad/setup.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,69 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/workpad/setup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Setup for the IBM WorkPad z50.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/console.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+
-+#include <asm/reboot.h>
-+#include <asm/time.h>
-+#include <asm/vr41xx/workpad.h>
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+extern unsigned long initrd_start, initrd_end;
-+extern void * __rd_start, * __rd_end;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+extern struct ide_ops workpad_ide_ops;
-+#endif
-+
-+void __init ibm_workpad_setup(void)
-+{
-+ set_io_port_base(IO_PORT_BASE);
-+ ioport_resource.start = IO_PORT_RESOURCE_START;
-+ ioport_resource.end = IO_PORT_RESOURCE_END;
-+ iomem_resource.start = IO_MEM_RESOURCE_START;
-+ iomem_resource.end = IO_MEM_RESOURCE_END;
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ initrd_start = (unsigned long)&__rd_start;
-+ initrd_end = (unsigned long)&__rd_end;
-+#endif
-+
-+ _machine_restart = vr41xx_restart;
-+ _machine_halt = vr41xx_halt;
-+ _machine_power_off = vr41xx_power_off;
-+
-+ board_time_init = vr41xx_time_init;
-+ board_timer_setup = vr41xx_timer_setup;
-+
-+#ifdef CONFIG_FB
-+ conswitchp = &dummy_con;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+ ide_ops = &workpad_ide_ops;
-+#endif
-+
-+ vr41xx_bcu_init();
-+
-+ vr41xx_cmu_init(0);
-+
-+ vr41xx_siu_init(SIU_RS232C, 0);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+/ide-eagle.c/1.1.2.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.3/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.3/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+/vrc4173.c/1.1.2.1/Thu Dec 12 01:10:09 2002//Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/nec-eagle
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/.cvsignore
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/.cvsignore 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/irq.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/irq.c
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/irq.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/irq.c 2002-12-11 19:10:09.000000000 -0600
-@@ -164,9 +164,6 @@
- writeb(0, NEC_EAGLE_SDBINTMSK);
- writeb(0, NEC_EAGLE_PCIINTMSKREG);
-
-- vr41xx_set_irq_trigger(VRC4173_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH);
-- vr41xx_set_irq_level(VRC4173_PIN, LEVEL_LOW);
--
- vr41xx_set_irq_trigger(PCISLOT_PIN, TRIGGER_LEVEL, SIGNAL_THROUGH);
- vr41xx_set_irq_level(PCISLOT_PIN, LEVEL_HIGH);
-
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/Makefile
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/Makefile 2002-12-11 19:10:09.000000000 -0600
-@@ -20,6 +20,6 @@
- obj-y := init.o irq.o setup.o
-
- obj-$(CONFIG_IDE) += ide-eagle.o
--obj-$(CONFIG_PCI) += pci_fixup.o
-+obj-$(CONFIG_PCI) += pci_fixup.o vrc4173.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/pci_fixup.c
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/pci_fixup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/pci_fixup.c 2002-12-11 19:10:09.000000000 -0600
-@@ -47,9 +47,7 @@
- #include <linux/pci.h>
-
- #include <asm/vr41xx/eagle.h>
--#ifdef CONFIG_VRC4173
- #include <asm/vr41xx/vrc4173.h>
--#endif
-
- void __init pcibios_fixup_resources(struct pci_dev *dev)
- {
-@@ -119,41 +117,44 @@
- break;
- }
- break;
--#ifdef CONFIG_VRC4173
- case 12:
-- dev->irq = VRC4173_CARDU1_IRQ;
-+ dev->irq = VRC4173_PCMCIA1_IRQ;
- break;
- case 13:
-- dev->irq = VRC4173_CARDU2_IRQ;
-- break;
-- case 24:
-- dev->irq = VRC4173_CARDU1_IRQ;
-- break;
-- case 25:
-- dev->irq = VRC4173_CARDU2_IRQ;
-+ dev->irq = VRC4173_PCMCIA2_IRQ;
- break;
--#endif
- case 28:
- dev->irq = LANINTA_IRQ;
- break;
- case 29:
-- dev->irq = PCISLOT_IRQ;
-+ switch (pin) {
-+ case 1:
-+ dev->irq = PCISLOT_IRQ;
-+ break;
-+ case 2:
-+ dev->irq = CP_INTB_IRQ;
-+ break;
-+ case 3:
-+ dev->irq = CP_INTC_IRQ;
-+ break;
-+ case 4:
-+ dev->irq = CP_INTD_IRQ;
-+ break;
-+ }
- break;
--#ifdef CONFIG_VRC4173
- case 30:
- switch (func) {
- case 0:
-- dev->irq = VRC4173_IRQ;
-+ dev->irq = VRC4173_CASCADE_IRQ;
- break;
- case 1:
-- dev->irq = VRC4173_AC97U_IRQ;
-+ dev->irq = VRC4173_AC97_IRQ;
- break;
- case 2:
-- dev->irq = VRC4173_USBU_IRQ;
-+ dev->irq = VRC4173_USB_IRQ;
- break;
- }
- break;
--#endif
- }
-
- pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/setup.c
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/setup.c 2002-12-11 19:10:09.000000000 -0600
-@@ -62,6 +62,9 @@
- extern void eagle_irq_init(void);
-
- #ifdef CONFIG_PCI
-+
-+extern void vrc4173_preinit(void);
-+
- static struct resource vr41xx_pci_io_resource = {
- "PCI I/O space",
- VR41XX_PCI_IO_START,
-@@ -143,14 +146,14 @@
-
- vr41xx_cmu_init(0);
-
-+#ifdef CONFIG_SERIAL
- vr41xx_dsiu_init();
- vr41xx_siu_init(SIU_RS232C, 0);
-+#endif
-
- #ifdef CONFIG_PCI
- vr41xx_pciu_init(&pci_address_map);
--#endif
-
--#ifdef CONFIG_VRC4173
-- vrc4173_init();
-+ vrc4173_preinit();
- #endif
- }
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/nec-eagle/vrc4173.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/vrc4173.c
---- linux-2.4.20/arch/mips/vr41xx/nec-eagle/vrc4173.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/nec-eagle/vrc4173.c 2002-12-11 19:10:09.000000000 -0600
-@@ -0,0 +1,126 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/nec-eagle/vrc4173.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Pre-setup for NEC VRC4173.
-+ *
-+ * Author: Yoichi Yuasa
-+ * yyuasa@mvista.com or source@mvista.com
-+ *
-+ * Copyright 2001,2002 MontaVista Software Inc.
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+#include <linux/config.h>
-+
-+#ifdef CONFIG_PCI
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+#include <linux/module.h>
-+
-+#include <asm/io.h>
-+#include <asm/vr41xx/eagle.h>
-+#include <asm/vr41xx/vrc4173.h>
-+
-+#define PCI_CONFIG_ADDR KSEG1ADDR(0x0f000c18)
-+#define PCI_CONFIG_DATA KSEG1ADDR(0x0f000c14)
-+
-+static inline void config_writeb(u8 reg, u8 val)
-+{
-+ u32 data;
-+ int shift;
-+
-+ writel((1UL << 0x1e) | (reg & 0xfc), PCI_CONFIG_ADDR);
-+ data = readl(PCI_CONFIG_DATA);
-+
-+ shift = (reg & 3) << 3;
-+ data &= ~(0xff << shift);
-+ data |= (((u32)val) << shift);
-+
-+ writel(data, PCI_CONFIG_DATA);
-+}
-+
-+static inline u16 config_readw(u8 reg)
-+{
-+ u32 data;
-+
-+ writel(((1UL << 30) | (reg & 0xfc)) , PCI_CONFIG_ADDR);
-+ data = readl(PCI_CONFIG_DATA);
-+
-+ return (u16)(data >> ((reg & 2) << 3));
-+}
-+
-+static inline u32 config_readl(u8 reg)
-+{
-+ writel(((1UL << 30) | (reg & 0xfc)) , PCI_CONFIG_ADDR);
-+
-+ return readl(PCI_CONFIG_DATA);
-+}
-+
-+static inline void config_writel(u8 reg, u32 val)
-+{
-+ writel((1UL << 0x1e) | (reg & 0xfc), PCI_CONFIG_ADDR);
-+ writel(val, PCI_CONFIG_DATA);
-+}
-+
-+void __init vrc4173_preinit(void)
-+{
-+ u32 cmdsts, base;
-+ u16 cmu_mask;
-+
-+
-+ if ((config_readw(PCI_VENDOR_ID) == PCI_VENDOR_ID_NEC) &&
-+ (config_readw(PCI_DEVICE_ID) == PCI_DEVICE_ID_NEC_VRC4173)) {
-+ /*
-+ * Initialized NEC VRC4173 Bus Control Unit
-+ */
-+ cmdsts = config_readl(PCI_COMMAND);
-+ config_writel(PCI_COMMAND,
-+ cmdsts |
-+ PCI_COMMAND_IO |
-+ PCI_COMMAND_MEMORY |
-+ PCI_COMMAND_MASTER);
-+
-+ config_writeb(PCI_LATENCY_TIMER, 0x80);
-+
-+ config_writel(PCI_BASE_ADDRESS_0, VR41XX_PCI_IO_START);
-+ base = config_readl(PCI_BASE_ADDRESS_0);
-+ base &= PCI_BASE_ADDRESS_IO_MASK;
-+ config_writeb(0x40, 0x01);
-+
-+ /* CARDU1 IDSEL = AD12, CARDU2 IDSEL = AD13 */
-+ config_writeb(0x41, 0);
-+
-+ cmu_mask = 0x1000;
-+ outw(cmu_mask, base + 0x040);
-+ cmu_mask |= 0x0800;
-+ outw(cmu_mask, base + 0x040);
-+
-+ outw(0x000f, base + 0x042); /* Soft reset of CMU */
-+ cmu_mask |= 0x05e0;
-+ outw(cmu_mask, base + 0x040);
-+ cmu_mask = inw(base + 0x040); /* dummy read */
-+ outw(0x0000, base + 0x042);
-+ }
-+}
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.1.2.1/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.1/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.1/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/tanbac-tb0226
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/init.c
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/init.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/init.c 2003-02-04 06:43:06.000000000 -0600
-@@ -0,0 +1,68 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/tanbac-tb0226/init.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Initialisation code for the TANBAC TB0226.
-+ *
-+ * Copyright 2002,2003 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+
-+#include <asm/bootinfo.h>
-+#include <asm/cpu.h>
-+#include <asm/mipsregs.h>
-+#include <asm/vr41xx/vr41xx.h>
-+
-+char arcs_cmdline[CL_SIZE];
-+
-+const char *get_system_type(void)
-+{
-+ return "TANBAC TB0226";
-+}
-+
-+void __init bus_error_init(void)
-+{
-+}
-+
-+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
-+{
-+ u32 config;
-+ int i;
-+
-+ /*
-+ * collect args and prepare cmd_line
-+ */
-+ for (i = 1; i < argc; i++) {
-+ strcat(arcs_cmdline, argv[i]);
-+ if (i < (argc - 1))
-+ strcat(arcs_cmdline, " ");
-+ }
-+
-+ mips_machgroup = MACH_GROUP_NEC_VR41XX;
-+ mips_machtype = MACH_TANBAC_TB0226;
-+
-+ switch (mips_cpu.processor_id) {
-+ case PRID_VR4131_REV1_2:
-+ config = read_c0_config();
-+ config &= ~0x00000030UL;
-+ config |= 0x00410000UL;
-+ write_c0_config(config);
-+ break;
-+ default:
-+ break;
-+ }
-+}
-+
-+void __init prom_free_prom_memory (void)
-+{
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/Makefile
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/Makefile 2003-02-04 06:43:06.000000000 -0600
-@@ -0,0 +1,19 @@
-+#
-+# Makefile for the TANBAC TB0226 specific parts of the kernel
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET := tb0226.o
-+
-+all: tb0226.o
-+
-+obj-y := init.o setup.o
-+
-+obj-$(CONFIG_PCI) += pci_fixup.o
-+
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c 2003-02-04 06:43:06.000000000 -0600
-@@ -0,0 +1,87 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/tanbac-tb0226/pci_fixup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * The TANBAC TB0226 specific PCI fixups.
-+ *
-+ * Copyright 2002,2003 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+
-+#include <asm/vr41xx/tb0226.h>
-+
-+void __init pcibios_fixup_resources(struct pci_dev *dev)
-+{
-+}
-+
-+void __init pcibios_fixup(void)
-+{
-+}
-+
-+void __init pcibios_fixup_irqs(void)
-+{
-+ struct pci_dev *dev;
-+ u8 slot, pin;
-+
-+ pci_for_each_dev(dev) {
-+ slot = PCI_SLOT(dev->devfn);
-+ dev->irq = 0;
-+
-+ switch (slot) {
-+ case 12:
-+ vr41xx_set_irq_trigger(GD82559_1_PIN, TRIGGER_LEVEL,
-+ SIGNAL_THROUGH);
-+ vr41xx_set_irq_level(GD82559_1_PIN, LEVEL_LOW);
-+ dev->irq = GD82559_1_IRQ;
-+ break;
-+ case 13:
-+ vr41xx_set_irq_trigger(GD82559_2_PIN, TRIGGER_LEVEL,
-+ SIGNAL_THROUGH);
-+ vr41xx_set_irq_level(GD82559_2_PIN, LEVEL_LOW);
-+ dev->irq = GD82559_2_IRQ;
-+ break;
-+ case 14:
-+ pci_read_config_byte(dev, PCI_INTERRUPT_PIN, &pin);
-+ switch (pin) {
-+ case 1:
-+ vr41xx_set_irq_trigger(UPD720100_INTA_PIN,
-+ TRIGGER_LEVEL,
-+ SIGNAL_THROUGH);
-+ vr41xx_set_irq_level(UPD720100_INTA_PIN, LEVEL_LOW);
-+ dev->irq = UPD720100_INTA_IRQ;
-+ break;
-+ case 2:
-+ vr41xx_set_irq_trigger(UPD720100_INTB_PIN,
-+ TRIGGER_LEVEL,
-+ SIGNAL_THROUGH);
-+ vr41xx_set_irq_level(UPD720100_INTB_PIN, LEVEL_LOW);
-+ dev->irq = UPD720100_INTB_IRQ;
-+ break;
-+ case 3:
-+ vr41xx_set_irq_trigger(UPD720100_INTC_PIN,
-+ TRIGGER_LEVEL,
-+ SIGNAL_THROUGH);
-+ vr41xx_set_irq_level(UPD720100_INTC_PIN, LEVEL_LOW);
-+ dev->irq = UPD720100_INTC_IRQ;
-+ break;
-+ }
-+ break;
-+ }
-+
-+ pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-+ }
-+}
-+
-+unsigned int pcibios_assign_all_busses(void)
-+{
-+ return 0;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/setup.c
---- linux-2.4.20/arch/mips/vr41xx/tanbac-tb0226/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/tanbac-tb0226/setup.c 2003-02-04 06:43:06.000000000 -0600
-@@ -0,0 +1,113 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/tanbac-tb0226/setup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Setup for the TANBAC TB0226.
-+ *
-+ * Copyright 2002,2003 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/console.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+
-+#include <asm/pci_channel.h>
-+#include <asm/reboot.h>
-+#include <asm/time.h>
-+#include <asm/vr41xx/tb0226.h>
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+extern unsigned long initrd_start, initrd_end;
-+extern void * __rd_start, * __rd_end;
-+#endif
-+
-+#ifdef CONFIG_PCI
-+static struct resource vr41xx_pci_io_resource = {
-+ "PCI I/O space",
-+ VR41XX_PCI_IO_START,
-+ VR41XX_PCI_IO_END,
-+ IORESOURCE_IO
-+};
-+
-+static struct resource vr41xx_pci_mem_resource = {
-+ "PCI memory space",
-+ VR41XX_PCI_MEM_START,
-+ VR41XX_PCI_MEM_END,
-+ IORESOURCE_MEM
-+};
-+
-+extern struct pci_ops vr41xx_pci_ops;
-+
-+struct pci_channel mips_pci_channels[] = {
-+ {&vr41xx_pci_ops, &vr41xx_pci_io_resource, &vr41xx_pci_mem_resource, 0, 256},
-+ {NULL, NULL, NULL, 0, 0}
-+};
-+
-+struct vr41xx_pci_address_space vr41xx_pci_mem1 = {
-+ VR41XX_PCI_MEM1_BASE,
-+ VR41XX_PCI_MEM1_MASK,
-+ IO_MEM1_RESOURCE_START
-+};
-+
-+struct vr41xx_pci_address_space vr41xx_pci_mem2 = {
-+ VR41XX_PCI_MEM2_BASE,
-+ VR41XX_PCI_MEM2_MASK,
-+ IO_MEM2_RESOURCE_START
-+};
-+
-+struct vr41xx_pci_address_space vr41xx_pci_io = {
-+ VR41XX_PCI_IO_BASE,
-+ VR41XX_PCI_IO_MASK,
-+ IO_PORT_RESOURCE_START
-+};
-+
-+static struct vr41xx_pci_address_map pci_address_map = {
-+ &vr41xx_pci_mem1,
-+ &vr41xx_pci_mem2,
-+ &vr41xx_pci_io
-+};
-+#endif
-+
-+void __init tanbac_tb0226_setup(void)
-+{
-+ set_io_port_base(IO_PORT_BASE);
-+ ioport_resource.start = IO_PORT_RESOURCE_START;
-+ ioport_resource.end = IO_PORT_RESOURCE_END;
-+ iomem_resource.start = IO_MEM1_RESOURCE_START;
-+ iomem_resource.end = IO_MEM2_RESOURCE_END;
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ initrd_start = (unsigned long)&__rd_start;
-+ initrd_end = (unsigned long)&__rd_end;
-+#endif
-+
-+ _machine_restart = vr41xx_restart;
-+ _machine_halt = vr41xx_halt;
-+ _machine_power_off = vr41xx_power_off;
-+
-+ board_time_init = vr41xx_time_init;
-+ board_timer_setup = vr41xx_timer_setup;
-+
-+#ifdef CONFIG_FB
-+ conswitchp = &dummy_con;
-+#endif
-+
-+ vr41xx_bcu_init();
-+
-+ vr41xx_cmu_init(0);
-+
-+ vr41xx_siu_init(SIU_RS232C, 0);
-+
-+#ifdef CONFIG_PCI
-+ vr41xx_pciu_init(&pci_address_map);
-+#endif
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/ide-mpc30x.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.2/Thu Dec 12 01:10:09 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/victor-mpc30x
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/.cvsignore
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/.cvsignore 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/ide-mpc30x.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,91 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * IDE routines for typical pc-like standard configurations
-+ * for the ZAO Networks Capcella.
-+ *
-+ * Copyright (C) 1998, 1999, 2001 by Ralf Baechle
-+ */
-+/*
-+ * Changes:
-+ * Yoichi Yuasa <yuasa@hh.iij4u.or.jp> Fri, 23 Aug 2002
-+ * - Added Victor MP-C303/304 support.
-+ */
-+#include <linux/sched.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+#include <linux/hdreg.h>
-+#include <asm/ptrace.h>
-+#include <asm/hdreg.h>
-+
-+static int mpc30x_ide_default_irq(ide_ioreg_t base)
-+{
-+ return 0;
-+}
-+
-+static ide_ioreg_t mpc30x_ide_default_io_base(int index)
-+{
-+ return 0;
-+}
-+
-+static void mpc30x_ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-+ ide_ioreg_t ctrl_port, int *irq)
-+{
-+ ide_ioreg_t reg = data_port;
-+ int i;
-+
-+ for (i = IDE_DATA_OFFSET; i <= IDE_STATUS_OFFSET; i++) {
-+ hw->io_ports[i] = reg;
-+ reg += 1;
-+ }
-+ if (ctrl_port) {
-+ hw->io_ports[IDE_CONTROL_OFFSET] = ctrl_port;
-+ } else {
-+ hw->io_ports[IDE_CONTROL_OFFSET] = hw->io_ports[IDE_DATA_OFFSET] + 0x206;
-+ }
-+ if (irq != NULL)
-+ *irq = 0;
-+ hw->io_ports[IDE_IRQ_OFFSET] = 0;
-+}
-+
-+static int mpc30x_ide_request_irq(unsigned int irq,
-+ void (*handler)(int,void *, struct pt_regs *),
-+ unsigned long flags, const char *device,
-+ void *dev_id)
-+{
-+ return request_irq(irq, handler, flags, device, dev_id);
-+}
-+
-+static void mpc30x_ide_free_irq(unsigned int irq, void *dev_id)
-+{
-+ free_irq(irq, dev_id);
-+}
-+
-+static int mpc30x_ide_check_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ return check_region(from, extent);
-+}
-+
-+static void mpc30x_ide_request_region(ide_ioreg_t from, unsigned int extent,
-+ const char *name)
-+{
-+ request_region(from, extent, name);
-+}
-+
-+static void mpc30x_ide_release_region(ide_ioreg_t from, unsigned int extent)
-+{
-+ release_region(from, extent);
-+}
-+
-+struct ide_ops mpc30x_ide_ops = {
-+ &mpc30x_ide_default_irq,
-+ &mpc30x_ide_default_io_base,
-+ &mpc30x_ide_init_hwif_ports,
-+ &mpc30x_ide_request_irq,
-+ &mpc30x_ide_free_irq,
-+ &mpc30x_ide_check_region,
-+ &mpc30x_ide_request_region,
-+ &mpc30x_ide_release_region
-+};
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/init.c
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/init.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/init.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,58 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/victor-mpc30x/init.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Initialisation code for the Victor MP-C303/304.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+
-+#include <asm/bootinfo.h>
-+#include <asm/cpu.h>
-+#include <asm/mipsregs.h>
-+#include <asm/vr41xx/vr41xx.h>
-+
-+char arcs_cmdline[CL_SIZE];
-+
-+const char *get_system_type(void)
-+{
-+ return "Victor MP-C303/304";
-+}
-+
-+void __init bus_error_init(void)
-+{
-+}
-+
-+void __init prom_init(int argc, char **argv, unsigned long magic, int *prom_vec)
-+{
-+ int i;
-+
-+ /*
-+ * collect args and prepare cmd_line
-+ */
-+ for (i = 1; i < argc; i++) {
-+ strcat(arcs_cmdline, argv[i]);
-+ if (i < (argc - 1))
-+ strcat(arcs_cmdline, " ");
-+ }
-+
-+ mips_machgroup = MACH_GROUP_NEC_VR41XX;
-+ mips_machtype = MACH_VICTOR_MPC30X;
-+
-+ add_memory_region(0, 32 << 20, BOOT_MEM_RAM);
-+}
-+
-+void __init prom_free_prom_memory (void)
-+{
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/Makefile linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/Makefile
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/Makefile 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/Makefile 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,20 @@
-+#
-+# Makefile for the Victor MP-C303/304 specific parts of the kernel
-+#
-+# Note! Dependencies are done automagically by 'make dep', which also
-+# removes any old dependencies. DON'T put your own dependencies here
-+# unless it's something special (ie not a .c file).
-+#
-+
-+USE_STANDARD_AS_RULE := true
-+
-+O_TARGET := mpc30x.o
-+
-+all: mpc30x.o
-+
-+obj-y := init.o setup.o
-+
-+obj-$(CONFIG_IDE) += ide-mpc30x.o
-+obj-$(CONFIG_PCI) += pci_fixup.o
-+
-+include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/pci_fixup.c 2002-12-11 19:10:09.000000000 -0600
-@@ -0,0 +1,73 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/victor-mpc30x/pci_fixup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * The Victor MP-C303/304 specific PCI fixups.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/pci.h>
-+
-+#include <asm/vr41xx/vrc4173.h>
-+#include <asm/vr41xx/mpc30x.h>
-+
-+void __init pcibios_fixup_resources(struct pci_dev *dev)
-+{
-+}
-+
-+void __init pcibios_fixup(void)
-+{
-+}
-+
-+void __init pcibios_fixup_irqs(void)
-+{
-+ struct pci_dev *dev;
-+ u8 slot, func;
-+
-+ pci_for_each_dev(dev) {
-+ slot = PCI_SLOT(dev->devfn);
-+ func = PCI_FUNC(dev->devfn);
-+ dev->irq = 0;
-+
-+ switch (slot) {
-+ case 12: /* NEC VRC4173 CARDU1 */
-+ dev->irq = VRC4173_PCMCIA1_IRQ;
-+ break;
-+ case 13: /* NEC VRC4173 CARDU2 */
-+ dev->irq = VRC4173_PCMCIA2_IRQ;
-+ break;
-+ case 29: /* mediaQ MQ-200 */
-+ dev->irq = MQ200_IRQ;
-+ break;
-+ case 30:
-+ switch (func) {
-+ case 0: /* NEC VRC4173 */
-+ dev->irq = VRC4173_CASCADE_IRQ;
-+ break;
-+ case 1: /* NEC VRC4173 AC97U */
-+ dev->irq = VRC4173_AC97_IRQ;
-+ break;
-+ case 2: /* NEC VRC4173 USBU */
-+ dev->irq = VRC4173_USB_IRQ;
-+ break;
-+ }
-+ break;
-+ }
-+
-+ pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq);
-+ }
-+}
-+
-+unsigned int pcibios_assign_all_busses(void)
-+{
-+ return 0;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/setup.c
---- linux-2.4.20/arch/mips/vr41xx/victor-mpc30x/setup.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/victor-mpc30x/setup.c 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,121 @@
-+/*
-+ * FILE NAME
-+ * arch/mips/vr41xx/victor-mpc30x/setup.c
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Setup for the Victor MP-C303/304.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/console.h>
-+#include <linux/ide.h>
-+#include <linux/ioport.h>
-+
-+#include <asm/pci_channel.h>
-+#include <asm/reboot.h>
-+#include <asm/time.h>
-+#include <asm/vr41xx/mpc30x.h>
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+extern unsigned long initrd_start, initrd_end;
-+extern void * __rd_start, * __rd_end;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+extern struct ide_ops mpc30x_ide_ops;
-+#endif
-+
-+#ifdef CONFIG_PCI
-+static struct resource vr41xx_pci_io_resource = {
-+ "PCI I/O space",
-+ VR41XX_PCI_IO_START,
-+ VR41XX_PCI_IO_END,
-+ IORESOURCE_IO
-+};
-+
-+static struct resource vr41xx_pci_mem_resource = {
-+ "PCI memory space",
-+ VR41XX_PCI_MEM_START,
-+ VR41XX_PCI_MEM_END,
-+ IORESOURCE_MEM
-+};
-+
-+extern struct pci_ops vr41xx_pci_ops;
-+
-+struct pci_channel mips_pci_channels[] = {
-+ {&vr41xx_pci_ops, &vr41xx_pci_io_resource, &vr41xx_pci_mem_resource, 0, 256},
-+ {NULL, NULL, NULL, 0, 0}
-+};
-+
-+struct vr41xx_pci_address_space vr41xx_pci_mem1 = {
-+ VR41XX_PCI_MEM1_BASE,
-+ VR41XX_PCI_MEM1_MASK,
-+ IO_MEM1_RESOURCE_START
-+};
-+
-+struct vr41xx_pci_address_space vr41xx_pci_mem2 = {
-+ VR41XX_PCI_MEM2_BASE,
-+ VR41XX_PCI_MEM2_MASK,
-+ IO_MEM2_RESOURCE_START
-+};
-+
-+struct vr41xx_pci_address_space vr41xx_pci_io = {
-+ VR41XX_PCI_IO_BASE,
-+ VR41XX_PCI_IO_MASK,
-+ IO_PORT_RESOURCE_START
-+};
-+
-+static struct vr41xx_pci_address_map pci_address_map = {
-+ &vr41xx_pci_mem1,
-+ &vr41xx_pci_mem2,
-+ &vr41xx_pci_io
-+};
-+#endif
-+
-+void __init victor_mpc30x_setup(void)
-+{
-+ set_io_port_base(IO_PORT_BASE);
-+ ioport_resource.start = IO_PORT_RESOURCE_START;
-+ ioport_resource.end = IO_PORT_RESOURCE_END;
-+ iomem_resource.start = IO_MEM1_RESOURCE_START;
-+ iomem_resource.end = IO_MEM2_RESOURCE_END;
-+
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ initrd_start = (unsigned long)&__rd_start;
-+ initrd_end = (unsigned long)&__rd_end;
-+#endif
-+
-+ _machine_restart = vr41xx_restart;
-+ _machine_halt = vr41xx_halt;
-+ _machine_power_off = vr41xx_power_off;
-+
-+ board_time_init = vr41xx_time_init;
-+ board_timer_setup = vr41xx_timer_setup;
-+
-+#ifdef CONFIG_FB
-+ conswitchp = &dummy_con;
-+#endif
-+
-+#ifdef CONFIG_BLK_DEV_IDE
-+ ide_ops = &mpc30x_ide_ops;
-+#endif
-+
-+ vr41xx_bcu_init();
-+
-+ vr41xx_cmu_init(0);
-+
-+ vr41xx_siu_init(SIU_RS232C, 0);
-+
-+#ifdef CONFIG_PCI
-+ vr41xx_pciu_init(&pci_address_map);
-+#endif
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Entries
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/ide-capcella.c/1.1.2.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.2/Mon Dec 2 00:24:52 2002/-ko/Tlinux_2_4_20
-+/pci_fixup.c/1.1.2.1/Mon Jul 15 00:02:56 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.2/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Repository
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips/vr41xx/zao-capcella
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Root
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Tag
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/.cvsignore
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/.cvsignore 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/init.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/init.c
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/init.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/init.c 2002-12-01 18:24:52.000000000 -0600
-@@ -53,10 +53,10 @@
-
- switch (mips_cpu.processor_id) {
- case PRID_VR4131_REV1_2:
-- config = read_32bit_cp0_register(CP0_CONFIG);
-+ config = read_c0_config();
- config &= ~0x00000030UL;
- config |= 0x00410000UL;
-- write_32bit_cp0_register(CP0_CONFIG, config);
-+ write_c0_config(config);
- break;
- default:
- break;
-diff -urNd -urNd linux-2.4.20/arch/mips/vr41xx/zao-capcella/setup.c linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/setup.c
---- linux-2.4.20/arch/mips/vr41xx/zao-capcella/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips/vr41xx/zao-capcella/setup.c 2002-10-03 11:58:02.000000000 -0500
-@@ -114,6 +114,7 @@
- vr41xx_cmu_init(0x0102);
-
- vr41xx_siu_init(SIU_RS232C, 0);
-+ vr41xx_dsiu_init();
-
- #ifdef CONFIG_PCI
- vr41xx_pciu_init(&pci_address_map);
-diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Entries
---- linux-2.4.20/arch/mips64/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Entries 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1,2 @@
-+/Makefile/1.5.2.2/Fri Jan 10 19:14:35 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Repository
---- linux-2.4.20/arch/mips64/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips64/boot
-diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Root
---- linux-2.4.20/arch/mips64/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Tag
---- linux-2.4.20/arch/mips64/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips64/boot/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/boot/Makefile
---- linux-2.4.20/arch/mips64/boot/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/boot/Makefile 2003-01-10 13:14:35.000000000 -0600
-@@ -22,11 +22,11 @@
- vmlinux.ecoff: $(CONFIGURE) elf2ecoff $(TOPDIR)/vmlinux
- ./elf2ecoff $(TOPDIR)/vmlinux vmlinux.ecoff $(E2EFLAGS)
-
--elf2ecoff: elf2ecoff.c
-- $(HOSTCC) -o $@ $^
-+elf2ecoff: $(TOPDIR)/arch/mips/boot/elf2ecoff.c
-+ $(HOSTCC) -I$(TOPDIR)/arch/mips/boot -I- -o $@ $^
-
--addinitrd: addinitrd.c
-- $(HOSTCC) -o $@ $^
-+addinitrd: $(TOPDIR)/arch/mips/boot/addinitrd.c
-+ $(HOSTCC) -I$(TOPDIR)/arch/mips/boot -I- -o $@ $^
-
- # Don't build dependencies, this may die if $(CC) isn't gcc
- dep:
-diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Entries
---- linux-2.4.20/arch/mips64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Entries 2005-01-06 23:08:19.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.1/Mon Oct 2 20:32:46 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.22.2.26/Thu Feb 20 18:53:40 2003/-ko/Tlinux_2_4_20
-+/config.in/1.50.2.15/Thu Jul 25 18:48:47 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.73.2.30/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-atlas/1.1.2.32/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-decstation/1.1.2.5/Fri Feb 7 23:39:40 2003//Tlinux_2_4_20
-+/defconfig-ip22/1.56.2.36/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ip27/1.67.2.30/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-ip32/1.10.2.33/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-malta/1.1.2.30/Fri Feb 14 18:48:04 2003/-ko/Tlinux_2_4_20
-+/defconfig-sb1250-swarm/1.6.2.39/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/defconfig-sead/1.1.2.20/Mon Feb 24 21:17:03 2003/-ko/Tlinux_2_4_20
-+/ld.script.elf32.S/1.5.2.4/Thu Oct 3 01:27:58 2002//Tlinux_2_4_20
-+/ld.script.elf64/1.8.2.4/Thu Oct 3 01:27:58 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/mm////
-diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Repository
---- linux-2.4.20/arch/mips64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips64
-diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Root
---- linux-2.4.20/arch/mips64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Tag
---- linux-2.4.20/arch/mips64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/CVS/Tag 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips64/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/.cvsignore
---- linux-2.4.20/arch/mips64/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/.cvsignore 2000-10-02 15:32:46.000000000 -0500
-@@ -0,0 +1 @@
-+ld.script.elf32
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig
---- linux-2.4.20/arch/mips64/defconfig 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -52,20 +57,23 @@
- # CONFIG_MAPPED_KERNEL is not set
- # CONFIG_REPLICATE_KTEXT is not set
- # CONFIG_REPLICATE_EXHANDLERS is not set
--CONFIG_SMP=y
-+CONFIG_SMP_CAPABLE=y
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_BOOT_ELF64=y
- CONFIG_ARC64=y
-+CONFIG_L1_CACHE_SHIFT=7
-+CONFIG_NEW_TIME_C=y
- CONFIG_PCI=y
- CONFIG_QL_ISP_A64=y
--CONFIG_L1_CACHE_SHIFT=7
- # CONFIG_MIPS_AU1000 is not set
-
- #
-@@ -87,6 +95,7 @@
- CONFIG_CPU_R10000=y
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
-+CONFIG_SMP=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -119,6 +128,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -438,6 +449,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -467,8 +479,8 @@
- # CONFIG_BEFS_FS is not set
- # CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
--# CONFIG_EXT3_FS is not set
--# CONFIG_JBD is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_JBD=y
- # CONFIG_JBD_DEBUG is not set
- # CONFIG_FAT_FS is not set
- # CONFIG_MSDOS_FS is not set
-@@ -578,9 +590,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
-
- #
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-atlas linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-atlas
---- linux-2.4.20/arch/mips64/defconfig-atlas 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-atlas 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- CONFIG_MIPS_ATLAS=y
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,18 +54,20 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_BOOT_ELF32=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PCI=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- # CONFIG_MIPS_AU1000 is not set
-
- #
-@@ -82,7 +89,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -114,6 +120,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -450,6 +458,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -575,9 +584,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-decstation linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-decstation
---- linux-2.4.20/arch/mips64/defconfig-decstation 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-decstation 2003-02-07 17:39:40.000000000 -0600
-@@ -0,0 +1,609 @@
-+#
-+# Automatically generated make config: don't edit
-+#
-+CONFIG_MIPS=y
-+# CONFIG_MIPS32 is not set
-+CONFIG_MIPS64=y
-+
-+#
-+# Code maturity level options
-+#
-+CONFIG_EXPERIMENTAL=y
-+
-+#
-+# Loadable module support
-+#
-+# CONFIG_MODULES is not set
-+
-+#
-+# Machine selection
-+#
-+# CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
-+# CONFIG_MIPS_PB1000 is not set
-+# CONFIG_MIPS_PB1100 is not set
-+# CONFIG_MIPS_PB1500 is not set
-+# CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
-+# CONFIG_MIPS_COBALT is not set
-+CONFIG_DECSTATION=y
-+# CONFIG_MIPS_EV64120 is not set
-+# CONFIG_MIPS_EV96100 is not set
-+# CONFIG_MIPS_IVR is not set
-+# CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
-+# CONFIG_MIPS_ITE8172 is not set
-+# CONFIG_MIPS_ATLAS is not set
-+# CONFIG_MIPS_MAGNUM_4000 is not set
-+# CONFIG_MIPS_MALTA is not set
-+# CONFIG_MIPS_SEAD is not set
-+# CONFIG_MOMENCO_OCELOT is not set
-+# CONFIG_MOMENCO_OCELOT_G is not set
-+# CONFIG_DDB5074 is not set
-+# CONFIG_DDB5476 is not set
-+# CONFIG_DDB5477 is not set
-+# CONFIG_NEC_OSPREY is not set
-+# CONFIG_NEC_EAGLE is not set
-+# CONFIG_OLIVETTI_M700 is not set
-+# CONFIG_NINO is not set
-+# CONFIG_SGI_IP22 is not set
-+# CONFIG_SGI_IP27 is not set
-+# CONFIG_SGI_IP32 is not set
-+# CONFIG_SIBYTE_SB1xxx_SOC is not set
-+# CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
-+# CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
-+# CONFIG_ZAO_CAPCELLA is not set
-+# CONFIG_HIGHMEM is not set
-+CONFIG_RWSEM_GENERIC_SPINLOCK=y
-+# CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
-+CONFIG_BOOT_ELF32=y
-+CONFIG_IRQ_CPU=y
-+CONFIG_L1_CACHE_SHIFT=4
-+CONFIG_NONCOHERENT_IO=y
-+# CONFIG_MIPS_AU1000 is not set
-+
-+#
-+# CPU selection
-+#
-+# CONFIG_CPU_MIPS32 is not set
-+# CONFIG_CPU_MIPS64 is not set
-+# CONFIG_CPU_R3000 is not set
-+# CONFIG_CPU_TX39XX is not set
-+# CONFIG_CPU_VR41XX is not set
-+# CONFIG_CPU_R4300 is not set
-+CONFIG_CPU_R4X00=y
-+# CONFIG_CPU_TX49XX is not set
-+# CONFIG_CPU_R5000 is not set
-+# CONFIG_CPU_R5432 is not set
-+# CONFIG_CPU_R6000 is not set
-+# CONFIG_CPU_NEVADA is not set
-+# CONFIG_CPU_R8000 is not set
-+# CONFIG_CPU_R10000 is not set
-+# CONFIG_CPU_RM7000 is not set
-+# CONFIG_CPU_SB1 is not set
-+# CONFIG_64BIT_PHYS_ADDR is not set
-+# CONFIG_CPU_ADVANCED is not set
-+CONFIG_CPU_HAS_LLSC=y
-+CONFIG_CPU_HAS_LLDSCD=y
-+# CONFIG_CPU_HAS_WB is not set
-+CONFIG_CPU_HAS_SYNC=y
-+
-+#
-+# General setup
-+#
-+CONFIG_CPU_LITTLE_ENDIAN=y
-+CONFIG_NET=y
-+# CONFIG_PCI is not set
-+# CONFIG_ISA is not set
-+# CONFIG_EISA is not set
-+CONFIG_TC=y
-+# CONFIG_MCA is not set
-+# CONFIG_SBUS is not set
-+# CONFIG_HOTPLUG is not set
-+# CONFIG_PCMCIA is not set
-+# CONFIG_HOTPLUG_PCI is not set
-+CONFIG_SYSVIPC=y
-+# CONFIG_BSD_PROCESS_ACCT is not set
-+CONFIG_SYSCTL=y
-+CONFIG_KCORE_ELF=y
-+# CONFIG_KCORE_AOUT is not set
-+# CONFIG_BINFMT_AOUT is not set
-+CONFIG_BINFMT_ELF=y
-+CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
-+CONFIG_BINFMT_ELF32=y
-+# CONFIG_BINFMT_MISC is not set
-+# CONFIG_PM is not set
-+
-+#
-+# Memory Technology Devices (MTD)
-+#
-+# CONFIG_MTD is not set
-+
-+#
-+# Parallel port support
-+#
-+# CONFIG_PARPORT is not set
-+
-+#
-+# Plug and Play configuration
-+#
-+# CONFIG_PNP is not set
-+# CONFIG_ISAPNP is not set
-+
-+#
-+# Block devices
-+#
-+# CONFIG_BLK_DEV_FD is not set
-+# CONFIG_BLK_DEV_XD is not set
-+# CONFIG_PARIDE is not set
-+# CONFIG_BLK_CPQ_DA is not set
-+# CONFIG_BLK_CPQ_CISS_DA is not set
-+# CONFIG_CISS_SCSI_TAPE is not set
-+# CONFIG_BLK_DEV_DAC960 is not set
-+# CONFIG_BLK_DEV_UMEM is not set
-+# CONFIG_BLK_DEV_LOOP is not set
-+# CONFIG_BLK_DEV_NBD is not set
-+# CONFIG_BLK_DEV_RAM is not set
-+# CONFIG_BLK_DEV_INITRD is not set
-+# CONFIG_BLK_STATS is not set
-+
-+#
-+# Multi-device support (RAID and LVM)
-+#
-+# CONFIG_MD is not set
-+# CONFIG_BLK_DEV_MD is not set
-+# CONFIG_MD_LINEAR is not set
-+# CONFIG_MD_RAID0 is not set
-+# CONFIG_MD_RAID1 is not set
-+# CONFIG_MD_RAID5 is not set
-+# CONFIG_MD_MULTIPATH is not set
-+# CONFIG_BLK_DEV_LVM is not set
-+
-+#
-+# Networking options
-+#
-+CONFIG_PACKET=y
-+# CONFIG_PACKET_MMAP is not set
-+# CONFIG_NETLINK_DEV is not set
-+# CONFIG_NETFILTER is not set
-+# CONFIG_FILTER is not set
-+CONFIG_UNIX=y
-+CONFIG_INET=y
-+# CONFIG_IP_MULTICAST is not set
-+# CONFIG_IP_ADVANCED_ROUTER is not set
-+CONFIG_IP_PNP=y
-+# CONFIG_IP_PNP_DHCP is not set
-+CONFIG_IP_PNP_BOOTP=y
-+# CONFIG_IP_PNP_RARP is not set
-+# CONFIG_NET_IPIP is not set
-+# CONFIG_NET_IPGRE is not set
-+# CONFIG_ARPD is not set
-+# CONFIG_INET_ECN is not set
-+# CONFIG_SYN_COOKIES is not set
-+# CONFIG_IPV6 is not set
-+# CONFIG_KHTTPD is not set
-+# CONFIG_ATM is not set
-+# CONFIG_VLAN_8021Q is not set
-+
-+#
-+#
-+#
-+# CONFIG_IPX is not set
-+# CONFIG_ATALK is not set
-+
-+#
-+# Appletalk devices
-+#
-+# CONFIG_DEV_APPLETALK is not set
-+# CONFIG_DECNET is not set
-+# CONFIG_BRIDGE is not set
-+# CONFIG_X25 is not set
-+# CONFIG_LAPB is not set
-+# CONFIG_LLC is not set
-+# CONFIG_NET_DIVERT is not set
-+# CONFIG_ECONET is not set
-+# CONFIG_WAN_ROUTER is not set
-+# CONFIG_NET_FASTROUTE is not set
-+# CONFIG_NET_HW_FLOWCONTROL is not set
-+
-+#
-+# QoS and/or fair queueing
-+#
-+# CONFIG_NET_SCHED is not set
-+
-+#
-+# Network testing
-+#
-+# CONFIG_NET_PKTGEN is not set
-+
-+#
-+# Telephony Support
-+#
-+# CONFIG_PHONE is not set
-+# CONFIG_PHONE_IXJ is not set
-+# CONFIG_PHONE_IXJ_PCMCIA is not set
-+
-+#
-+# ATA/IDE/MFM/RLL support
-+#
-+# CONFIG_IDE is not set
-+# CONFIG_BLK_DEV_IDE_MODES is not set
-+# CONFIG_BLK_DEV_HD is not set
-+
-+#
-+# SCSI support
-+#
-+CONFIG_SCSI=y
-+
-+#
-+# SCSI support type (disk, tape, CD-ROM)
-+#
-+CONFIG_BLK_DEV_SD=y
-+CONFIG_SD_EXTRA_DEVS=40
-+# CONFIG_CHR_DEV_ST is not set
-+# CONFIG_CHR_DEV_OSST is not set
-+# CONFIG_BLK_DEV_SR is not set
-+# CONFIG_CHR_DEV_SG is not set
-+
-+#
-+# Some SCSI devices (e.g. CD jukebox) support multiple LUNs
-+#
-+# CONFIG_SCSI_DEBUG_QUEUES is not set
-+# CONFIG_SCSI_MULTI_LUN is not set
-+CONFIG_SCSI_CONSTANTS=y
-+# CONFIG_SCSI_LOGGING is not set
-+
-+#
-+# SCSI low-level drivers
-+#
-+CONFIG_SCSI_DECNCR=y
-+# CONFIG_SCSI_DECSII is not set
-+# CONFIG_SCSI_7000FASST is not set
-+# CONFIG_SCSI_ACARD is not set
-+# CONFIG_SCSI_AHA152X is not set
-+# CONFIG_SCSI_AHA1542 is not set
-+# CONFIG_SCSI_AHA1740 is not set
-+# CONFIG_SCSI_AACRAID is not set
-+# CONFIG_SCSI_AIC7XXX is not set
-+# CONFIG_SCSI_AIC7XXX_OLD is not set
-+# CONFIG_SCSI_DPT_I2O is not set
-+# CONFIG_SCSI_ADVANSYS is not set
-+# CONFIG_SCSI_IN2000 is not set
-+# CONFIG_SCSI_AM53C974 is not set
-+# CONFIG_SCSI_MEGARAID is not set
-+# CONFIG_SCSI_BUSLOGIC is not set
-+# CONFIG_SCSI_DMX3191D is not set
-+# CONFIG_SCSI_DTC3280 is not set
-+# CONFIG_SCSI_EATA is not set
-+# CONFIG_SCSI_EATA_DMA is not set
-+# CONFIG_SCSI_EATA_PIO is not set
-+# CONFIG_SCSI_FUTURE_DOMAIN is not set
-+# CONFIG_SCSI_GDTH is not set
-+# CONFIG_SCSI_GENERIC_NCR5380 is not set
-+# CONFIG_SCSI_INITIO is not set
-+# CONFIG_SCSI_INIA100 is not set
-+# CONFIG_SCSI_NCR53C406A is not set
-+# CONFIG_SCSI_NCR53C7xx is not set
-+# CONFIG_SCSI_PAS16 is not set
-+# CONFIG_SCSI_PCI2000 is not set
-+# CONFIG_SCSI_PCI2220I is not set
-+# CONFIG_SCSI_PSI240I is not set
-+# CONFIG_SCSI_QLOGIC_FAS is not set
-+# CONFIG_SCSI_SIM710 is not set
-+# CONFIG_SCSI_SYM53C416 is not set
-+# CONFIG_SCSI_T128 is not set
-+# CONFIG_SCSI_U14_34F is not set
-+# CONFIG_SCSI_DEBUG is not set
-+
-+#
-+# Network device support
-+#
-+CONFIG_NETDEVICES=y
-+
-+#
-+# ARCnet devices
-+#
-+# CONFIG_ARCNET is not set
-+# CONFIG_DUMMY is not set
-+# CONFIG_BONDING is not set
-+# CONFIG_EQUALIZER is not set
-+# CONFIG_TUN is not set
-+# CONFIG_ETHERTAP is not set
-+
-+#
-+# Ethernet (10 or 100Mbit)
-+#
-+CONFIG_NET_ETHERNET=y
-+# CONFIG_SUNLANCE is not set
-+# CONFIG_SUNBMAC is not set
-+# CONFIG_SUNQE is not set
-+# CONFIG_SUNGEM is not set
-+# CONFIG_NET_VENDOR_3COM is not set
-+# CONFIG_LANCE is not set
-+# CONFIG_NET_VENDOR_SMC is not set
-+# CONFIG_NET_VENDOR_RACAL is not set
-+# CONFIG_NET_ISA is not set
-+# CONFIG_NET_PCI is not set
-+# CONFIG_NET_POCKET is not set
-+CONFIG_DECLANCE=y
-+
-+#
-+# Ethernet (1000 Mbit)
-+#
-+# CONFIG_ACENIC is not set
-+# CONFIG_DL2K is not set
-+# CONFIG_E1000 is not set
-+# CONFIG_MYRI_SBUS is not set
-+# CONFIG_NS83820 is not set
-+# CONFIG_HAMACHI is not set
-+# CONFIG_YELLOWFIN is not set
-+# CONFIG_SK98LIN is not set
-+# CONFIG_TIGON3 is not set
-+# CONFIG_FDDI is not set
-+# CONFIG_HIPPI is not set
-+# CONFIG_PLIP is not set
-+# CONFIG_PPP is not set
-+# CONFIG_SLIP is not set
-+
-+#
-+# Wireless LAN (non-hamradio)
-+#
-+# CONFIG_NET_RADIO is not set
-+
-+#
-+# Token Ring devices
-+#
-+# CONFIG_TR is not set
-+# CONFIG_NET_FC is not set
-+# CONFIG_RCPCI is not set
-+# CONFIG_SHAPER is not set
-+
-+#
-+# Wan interfaces
-+#
-+# CONFIG_WAN is not set
-+
-+#
-+# Amateur Radio support
-+#
-+# CONFIG_HAMRADIO is not set
-+
-+#
-+# IrDA (infrared) support
-+#
-+# CONFIG_IRDA is not set
-+
-+#
-+# ISDN subsystem
-+#
-+# CONFIG_ISDN is not set
-+
-+#
-+# Input core support
-+#
-+# CONFIG_INPUT is not set
-+# CONFIG_INPUT_KEYBDEV is not set
-+# CONFIG_INPUT_MOUSEDEV is not set
-+# CONFIG_INPUT_JOYDEV is not set
-+# CONFIG_INPUT_EVDEV is not set
-+
-+#
-+# Character devices
-+#
-+# CONFIG_VT is not set
-+# CONFIG_SERIAL is not set
-+# CONFIG_SERIAL_EXTENDED is not set
-+CONFIG_SERIAL_NONSTANDARD=y
-+# CONFIG_COMPUTONE is not set
-+# CONFIG_ROCKETPORT is not set
-+# CONFIG_CYCLADES is not set
-+# CONFIG_DIGIEPCA is not set
-+# CONFIG_DIGI is not set
-+# CONFIG_ESPSERIAL is not set
-+# CONFIG_MOXA_INTELLIO is not set
-+# CONFIG_MOXA_SMARTIO is not set
-+# CONFIG_SYNCLINK is not set
-+# CONFIG_SYNCLINKMP is not set
-+# CONFIG_N_HDLC is not set
-+# CONFIG_RISCOM8 is not set
-+# CONFIG_SPECIALIX is not set
-+# CONFIG_SX is not set
-+# CONFIG_RIO is not set
-+# CONFIG_STALDRV is not set
-+# CONFIG_SERIAL_TX3912 is not set
-+# CONFIG_SERIAL_TX3912_CONSOLE is not set
-+# CONFIG_TXX927_SERIAL is not set
-+CONFIG_SERIAL_DEC=y
-+CONFIG_SERIAL_DEC_CONSOLE=y
-+# CONFIG_DZ is not set
-+CONFIG_ZS=y
-+CONFIG_UNIX98_PTYS=y
-+CONFIG_UNIX98_PTY_COUNT=256
-+
-+#
-+# I2C support
-+#
-+# CONFIG_I2C is not set
-+
-+#
-+# Mice
-+#
-+# CONFIG_BUSMOUSE is not set
-+# CONFIG_MOUSE is not set
-+
-+#
-+# Joysticks
-+#
-+# CONFIG_INPUT_GAMEPORT is not set
-+
-+#
-+# Input core support is needed for gameports
-+#
-+
-+#
-+# Input core support is needed for joysticks
-+#
-+# CONFIG_QIC02_TAPE is not set
-+
-+#
-+# Watchdog Cards
-+#
-+# CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
-+# CONFIG_NVRAM is not set
-+# CONFIG_RTC is not set
-+# CONFIG_DTLK is not set
-+# CONFIG_R3964 is not set
-+# CONFIG_APPLICOM is not set
-+
-+#
-+# Ftape, the floppy tape device driver
-+#
-+# CONFIG_FTAPE is not set
-+# CONFIG_AGP is not set
-+# CONFIG_DRM is not set
-+
-+#
-+# File systems
-+#
-+# CONFIG_QUOTA is not set
-+# CONFIG_AUTOFS_FS is not set
-+# CONFIG_AUTOFS4_FS is not set
-+# CONFIG_REISERFS_FS is not set
-+# CONFIG_REISERFS_CHECK is not set
-+# CONFIG_REISERFS_PROC_INFO is not set
-+# CONFIG_ADFS_FS is not set
-+# CONFIG_ADFS_FS_RW is not set
-+# CONFIG_AFFS_FS is not set
-+# CONFIG_HFS_FS is not set
-+# CONFIG_BEFS_FS is not set
-+# CONFIG_BEFS_DEBUG is not set
-+# CONFIG_BFS_FS is not set
-+# CONFIG_EXT3_FS is not set
-+# CONFIG_JBD is not set
-+# CONFIG_JBD_DEBUG is not set
-+# CONFIG_FAT_FS is not set
-+# CONFIG_MSDOS_FS is not set
-+# CONFIG_UMSDOS_FS is not set
-+# CONFIG_VFAT_FS is not set
-+# CONFIG_EFS_FS is not set
-+# CONFIG_JFFS_FS is not set
-+# CONFIG_JFFS2_FS is not set
-+# CONFIG_CRAMFS is not set
-+# CONFIG_TMPFS is not set
-+CONFIG_RAMFS=y
-+# CONFIG_ISO9660_FS is not set
-+# CONFIG_JOLIET is not set
-+# CONFIG_ZISOFS is not set
-+# CONFIG_JFS_FS is not set
-+# CONFIG_JFS_DEBUG is not set
-+# CONFIG_JFS_STATISTICS is not set
-+# CONFIG_MINIX_FS is not set
-+# CONFIG_VXFS_FS is not set
-+# CONFIG_NTFS_FS is not set
-+# CONFIG_NTFS_RW is not set
-+# CONFIG_HPFS_FS is not set
-+CONFIG_PROC_FS=y
-+# CONFIG_DEVFS_FS is not set
-+# CONFIG_DEVFS_MOUNT is not set
-+# CONFIG_DEVFS_DEBUG is not set
-+CONFIG_DEVPTS_FS=y
-+# CONFIG_QNX4FS_FS is not set
-+# CONFIG_QNX4FS_RW is not set
-+# CONFIG_ROMFS_FS is not set
-+CONFIG_EXT2_FS=y
-+# CONFIG_SYSV_FS is not set
-+# CONFIG_UDF_FS is not set
-+# CONFIG_UDF_RW is not set
-+# CONFIG_UFS_FS is not set
-+# CONFIG_UFS_FS_WRITE is not set
-+
-+#
-+# Network File Systems
-+#
-+# CONFIG_CODA_FS is not set
-+# CONFIG_INTERMEZZO_FS is not set
-+# CONFIG_NFS_FS is not set
-+# CONFIG_NFS_V3 is not set
-+# CONFIG_ROOT_NFS is not set
-+# CONFIG_NFSD is not set
-+# CONFIG_NFSD_V3 is not set
-+# CONFIG_NFSD_TCP is not set
-+# CONFIG_SUNRPC is not set
-+# CONFIG_LOCKD is not set
-+# CONFIG_SMB_FS is not set
-+# CONFIG_NCP_FS is not set
-+# CONFIG_NCPFS_PACKET_SIGNING is not set
-+# CONFIG_NCPFS_IOCTL_LOCKING is not set
-+# CONFIG_NCPFS_STRONG is not set
-+# CONFIG_NCPFS_NFS_NS is not set
-+# CONFIG_NCPFS_OS2_NS is not set
-+# CONFIG_NCPFS_SMALLDOS is not set
-+# CONFIG_NCPFS_NLS is not set
-+# CONFIG_NCPFS_EXTRAS is not set
-+# CONFIG_ZISOFS_FS is not set
-+
-+#
-+# Partition Types
-+#
-+CONFIG_PARTITION_ADVANCED=y
-+# CONFIG_ACORN_PARTITION is not set
-+CONFIG_OSF_PARTITION=y
-+# CONFIG_AMIGA_PARTITION is not set
-+# CONFIG_ATARI_PARTITION is not set
-+# CONFIG_MAC_PARTITION is not set
-+CONFIG_MSDOS_PARTITION=y
-+# CONFIG_BSD_DISKLABEL is not set
-+# CONFIG_MINIX_SUBPARTITION is not set
-+# CONFIG_SOLARIS_X86_PARTITION is not set
-+# CONFIG_UNIXWARE_DISKLABEL is not set
-+# CONFIG_LDM_PARTITION is not set
-+# CONFIG_SGI_PARTITION is not set
-+CONFIG_ULTRIX_PARTITION=y
-+# CONFIG_SUN_PARTITION is not set
-+# CONFIG_EFI_PARTITION is not set
-+# CONFIG_SMB_NLS is not set
-+# CONFIG_NLS is not set
-+
-+#
-+# Multimedia devices
-+#
-+# CONFIG_VIDEO_DEV is not set
-+
-+#
-+# Sound
-+#
-+# CONFIG_SOUND is not set
-+
-+#
-+# USB support
-+#
-+# CONFIG_USB is not set
-+
-+#
-+# Bluetooth support
-+#
-+# CONFIG_BLUEZ is not set
-+
-+#
-+# Kernel hacking
-+#
-+CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_MAGIC_SYSRQ is not set
-+# CONFIG_MIPS_UNCACHED is not set
-+
-+#
-+# Library routines
-+#
-+# CONFIG_ZLIB_INFLATE is not set
-+# CONFIG_ZLIB_DEFLATE is not set
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-ip22 linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip22
---- linux-2.4.20/arch/mips64/defconfig-ip22 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip22 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -51,21 +56,22 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_ARC32=y
--CONFIG_ARC_CONSOLE=y
- CONFIG_ARC_MEMORY=y
-+CONFIG_ARC_PROMLIB=y
- CONFIG_BOARD_SCACHE=y
- CONFIG_BOOT_ELF32=y
--CONFIG_SWAP_IO_SPACE=y
-+# CONFIG_SWAP_IO_SPACE_W is not set
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_IRQ_CPU=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NONCOHERENT_IO=y
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
-@@ -91,7 +97,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -125,6 +130,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -464,6 +471,7 @@
- # CONFIG_MACHZ_WDT is not set
- CONFIG_INDYDOG=y
- # CONFIG_AMD7XX_TCO is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -610,8 +618,8 @@
- #
- # SGI devices
- #
--CONFIG_SGI_SERIAL=y
--# CONFIG_SERIAL_CONSOLE is not set
-+CONFIG_IP22_SERIAL=y
-+# CONFIG_IP22_SERIAL_CONSOLE is not set
- CONFIG_SGI_DS1286=y
- # CONFIG_SGI_NEWPORT_GFX is not set
-
-@@ -630,6 +638,8 @@
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-ip27 linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip27
---- linux-2.4.20/arch/mips64/defconfig-ip27 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip27 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -52,20 +57,23 @@
- # CONFIG_MAPPED_KERNEL is not set
- # CONFIG_REPLICATE_KTEXT is not set
- # CONFIG_REPLICATE_EXHANDLERS is not set
--CONFIG_SMP=y
-+CONFIG_SMP_CAPABLE=y
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_BOOT_ELF64=y
- CONFIG_ARC64=y
-+CONFIG_L1_CACHE_SHIFT=7
-+CONFIG_NEW_TIME_C=y
- CONFIG_PCI=y
- CONFIG_QL_ISP_A64=y
--CONFIG_L1_CACHE_SHIFT=7
- # CONFIG_MIPS_AU1000 is not set
-
- #
-@@ -87,6 +95,7 @@
- CONFIG_CPU_R10000=y
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
-+CONFIG_SMP=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -119,6 +128,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -438,6 +449,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -467,8 +479,8 @@
- # CONFIG_BEFS_FS is not set
- # CONFIG_BEFS_DEBUG is not set
- # CONFIG_BFS_FS is not set
--# CONFIG_EXT3_FS is not set
--# CONFIG_JBD is not set
-+CONFIG_EXT3_FS=y
-+CONFIG_JBD=y
- # CONFIG_JBD_DEBUG is not set
- # CONFIG_FAT_FS is not set
- # CONFIG_MSDOS_FS is not set
-@@ -578,9 +590,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
-
- #
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-ip32 linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip32
---- linux-2.4.20/arch/mips64/defconfig-ip32 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-ip32 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,15 +54,21 @@
- CONFIG_SGI_IP32=y
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_ARC_MEMORY=y
-+CONFIG_ARC_PROMLIB=y
- CONFIG_ARC32=y
-+CONFIG_BOARD_SCACHE=y
-+CONFIG_R5000_CPU_SCACHE=y
- CONFIG_BOOT_ELF32=y
- CONFIG_L1_CACHE_SHIFT=5
-+CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- CONFIG_PC_KEYB=y
- CONFIG_PCI=y
-@@ -82,7 +93,6 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- # CONFIG_CPU_SB1 is not set
--CONFIG_BOARD_SCACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
- CONFIG_CPU_HAS_LLSC=y
-@@ -115,6 +125,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- CONFIG_BINFMT_MISC=y
- # CONFIG_PM is not set
-@@ -460,6 +472,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -596,9 +609,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- CONFIG_MAGIC_SYSRQ=y
- CONFIG_MIPS_UNCACHED=y
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-malta linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-malta
---- linux-2.4.20/arch/mips64/defconfig-malta 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-malta 2003-02-14 12:48:04.000000000 -0600
-@@ -13,23 +13,30 @@
- #
- # Loadable module support
- #
--# CONFIG_MODULES is not set
-+CONFIG_MODULES=y
-+# CONFIG_MODVERSIONS is not set
-+CONFIG_KMOD=y
-
- #
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,7 +56,9 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
-@@ -58,10 +67,10 @@
- CONFIG_HAVE_STD_PC_SERIAL_PORT=y
- CONFIG_I8259=y
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_PC_KEYB=y
- CONFIG_PCI=y
- # CONFIG_MIPS_AU1000 is not set
-@@ -114,6 +123,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -176,8 +187,8 @@
- # CONFIG_IP_MULTICAST is not set
- # CONFIG_IP_ADVANCED_ROUTER is not set
- CONFIG_IP_PNP=y
--# CONFIG_IP_PNP_DHCP is not set
--# CONFIG_IP_PNP_BOOTP is not set
-+CONFIG_IP_PNP_DHCP=y
-+CONFIG_IP_PNP_BOOTP=y
- # CONFIG_IP_PNP_RARP is not set
- # CONFIG_NET_IPIP is not set
- # CONFIG_NET_IPGRE is not set
-@@ -449,6 +460,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- CONFIG_RTC=y
- # CONFIG_DTLK is not set
-@@ -523,13 +535,14 @@
- # CONFIG_CODA_FS is not set
- # CONFIG_INTERMEZZO_FS is not set
- CONFIG_NFS_FS=y
--# CONFIG_NFS_V3 is not set
-+CONFIG_NFS_V3=y
- CONFIG_ROOT_NFS=y
--# CONFIG_NFSD is not set
--# CONFIG_NFSD_V3 is not set
-+CONFIG_NFSD=y
-+CONFIG_NFSD_V3=y
- # CONFIG_NFSD_TCP is not set
- CONFIG_SUNRPC=y
- CONFIG_LOCKD=y
-+CONFIG_LOCKD_V4=y
- # CONFIG_SMB_FS is not set
- # CONFIG_NCP_FS is not set
- # CONFIG_NCPFS_PACKET_SIGNING is not set
-@@ -574,9 +587,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-sb1250-swarm linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sb1250-swarm
---- linux-2.4.20/arch/mips64/defconfig-sb1250-swarm 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sb1250-swarm 2003-02-24 15:17:03.000000000 -0600
-@@ -21,17 +21,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -50,25 +55,38 @@
- # CONFIG_SGI_IP27 is not set
- # CONFIG_SGI_IP32 is not set
- CONFIG_SIBYTE_SB1xxx_SOC=y
-+CONFIG_SIBYTE_SWARM=y
-+# CONFIG_SIBYTE_SENTOSA is not set
-+# CONFIG_SIBYTE_CRHINE is not set
-+# CONFIG_SIBYTE_CARMEL is not set
-+# CONFIG_SIBYTE_CRHONE is not set
-+# CONFIG_SIBYTE_RHONE is not set
-+# CONFIG_SIBYTE_UNKNOWN is not set
-+CONFIG_SIBYTE_BOARD=y
- CONFIG_SIBYTE_SB1250=y
--# CONFIG_SIMULATION is not set
-+CONFIG_CPU_SB1_PASS_1=y
-+# CONFIG_CPU_SB1_PASS_2 is not set
-+# CONFIG_CPU_SB1_PASS_2_2 is not set
- CONFIG_SIBYTE_CFE=y
- # CONFIG_SIBYTE_CFE_CONSOLE is not set
-+# CONFIG_SIBYTE_BUS_WATCHER is not set
- # CONFIG_SIBYTE_SB1250_PROF is not set
--# CONFIG_BCM1250_TBPROF is not set
--CONFIG_SMP=y
-+# CONFIG_SIBYTE_TBPROF is not set
- # CONFIG_PCI is not set
--CONFIG_SIBYTE_SWARM=y
-+CONFIG_SIBYTE_GENBUS_IDE=y
-+CONFIG_SMP_CAPABLE=y
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_DUMMY_KEYB=y
--CONFIG_SWAP_IO_SPACE=y
-+CONFIG_SWAP_IO_SPACE_W=y
-+CONFIG_SWAP_IO_SPACE_L=y
- CONFIG_BOOT_ELF32=y
- # CONFIG_MIPS_AU1000 is not set
-
-@@ -91,14 +109,9 @@
- # CONFIG_CPU_R10000 is not set
- # CONFIG_CPU_RM7000 is not set
- CONFIG_CPU_SB1=y
--CONFIG_CPU_SB1_PASS_1=y
--# CONFIG_CPU_SB1_PASS_2 is not set
--# CONFIG_CPU_SB1_PASS_2_2 is not set
-+CONFIG_SMP=y
- CONFIG_SB1_PASS_1_WORKAROUNDS=y
- CONFIG_CPU_HAS_PREFETCH=y
--CONFIG_SB1_CACHE_ERROR=y
--CONFIG_SB1_CERR_IGNORE_RECOVERABLE=y
--# CONFIG_SB1_CERR_SPIN is not set
- CONFIG_VTAG_ICACHE=y
- # CONFIG_64BIT_PHYS_ADDR is not set
- # CONFIG_CPU_ADVANCED is not set
-@@ -130,8 +143,10 @@
- # CONFIG_KCORE_AOUT is not set
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
--# CONFIG_MIPS32_COMPAT is not set
--# CONFIG_BINFMT_ELF32 is not set
-+CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
-+CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-
-@@ -183,8 +198,9 @@
- #
- # Networking options
- #
--# CONFIG_PACKET is not set
--# CONFIG_NETLINK_DEV is not set
-+CONFIG_PACKET=y
-+CONFIG_PACKET_MMAP=y
-+CONFIG_NETLINK_DEV=y
- # CONFIG_NETFILTER is not set
- # CONFIG_FILTER is not set
- CONFIG_UNIX=y
-@@ -374,8 +390,6 @@
- CONFIG_SIBYTE_SB1250_DUART=y
- CONFIG_SIBYTE_SB1250_DUART_CONSOLE=y
- CONFIG_SERIAL_CONSOLE=y
--CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE=1024
--# CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 is not set
- CONFIG_UNIX98_PTYS=y
- CONFIG_UNIX98_PTY_COUNT=256
-
-@@ -408,6 +422,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -535,6 +550,9 @@
- #
- CONFIG_CROSSCOMPILE=y
- # CONFIG_DEBUG is not set
-+# CONFIG_REMOTE_DEBUG is not set
-+# CONFIG_GDB_CONSOLE is not set
-+# CONFIG_SB1XXX_CORELIS is not set
- # CONFIG_MAGIC_SYSRQ is not set
-
- #
-diff -urNd -urNd linux-2.4.20/arch/mips64/defconfig-sead linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sead
---- linux-2.4.20/arch/mips64/defconfig-sead 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/defconfig-sead 2003-02-24 15:17:03.000000000 -0600
-@@ -19,17 +19,22 @@
- # Machine selection
- #
- # CONFIG_ACER_PICA_61 is not set
-+# CONFIG_MIPS_DB1000 is not set
-+# CONFIG_MIPS_DB1100 is not set
-+# CONFIG_MIPS_DB1500 is not set
- # CONFIG_MIPS_PB1000 is not set
- # CONFIG_MIPS_PB1100 is not set
- # CONFIG_MIPS_PB1500 is not set
--# CONFIG_ALGOR_P4032 is not set
- # CONFIG_BAGET_MIPS is not set
-+# CONFIG_CASIO_E55 is not set
- # CONFIG_MIPS_COBALT is not set
- # CONFIG_DECSTATION is not set
- # CONFIG_MIPS_EV64120 is not set
- # CONFIG_MIPS_EV96100 is not set
- # CONFIG_MIPS_IVR is not set
- # CONFIG_HP_LASERJET is not set
-+# CONFIG_IBM_WORKPAD is not set
-+# CONFIG_LASAT is not set
- # CONFIG_MIPS_ITE8172 is not set
- # CONFIG_MIPS_ATLAS is not set
- # CONFIG_MIPS_MAGNUM_4000 is not set
-@@ -49,13 +54,14 @@
- # CONFIG_SGI_IP32 is not set
- # CONFIG_SIBYTE_SB1xxx_SOC is not set
- # CONFIG_SNI_RM200_PCI is not set
-+# CONFIG_TANBAC_TB0226 is not set
- # CONFIG_TOSHIBA_JMR3927 is not set
-+# CONFIG_VICTOR_MPC30X is not set
- # CONFIG_ZAO_CAPCELLA is not set
- # CONFIG_HIGHMEM is not set
- CONFIG_RWSEM_GENERIC_SPINLOCK=y
- # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set
- CONFIG_L1_CACHE_SHIFT=5
--CONFIG_NEW_IRQ=y
- CONFIG_NEW_TIME_C=y
- CONFIG_NONCOHERENT_IO=y
- # CONFIG_PCI is not set
-@@ -109,6 +115,8 @@
- # CONFIG_BINFMT_AOUT is not set
- CONFIG_BINFMT_ELF=y
- CONFIG_MIPS32_COMPAT=y
-+CONFIG_MIPS32_O32=y
-+# CONFIG_MIPS32_N32 is not set
- CONFIG_BINFMT_ELF32=y
- # CONFIG_BINFMT_MISC is not set
- # CONFIG_PM is not set
-@@ -236,6 +244,7 @@
- # Watchdog Cards
- #
- # CONFIG_WATCHDOG is not set
-+# CONFIG_AMD_PM768 is not set
- # CONFIG_NVRAM is not set
- # CONFIG_RTC is not set
- # CONFIG_DTLK is not set
-@@ -348,9 +357,9 @@
- # Kernel hacking
- #
- CONFIG_CROSSCOMPILE=y
-+# CONFIG_DEBUG is not set
- # CONFIG_REMOTE_DEBUG is not set
- # CONFIG_GDB_CONSOLE is not set
--# CONFIG_DEBUG is not set
- # CONFIG_MAGIC_SYSRQ is not set
- # CONFIG_MIPS_UNCACHED is not set
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/binfmt_elf32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elf32.c
---- linux-2.4.20/arch/mips64/kernel/binfmt_elf32.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elf32.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,118 +0,0 @@
--/*
-- * Support for 32-bit Linux/MIPS ELF binaries.
-- *
-- * Copyright (C) 1999, 2001 Ralf Baechle
-- * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
-- *
-- * Heavily inspired by the 32-bit Sparc compat code which is
-- * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com)
-- * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek (jj@ultra.linux.cz)
-- */
--
--#define ELF_ARCH EM_MIPS
--#define ELF_CLASS ELFCLASS32
--#ifdef __MIPSEB__
--#define ELF_DATA ELFDATA2MSB;
--#else /* __MIPSEL__ */
--#define ELF_DATA ELFDATA2LSB;
--#endif
--
--/* ELF register definitions */
--#define ELF_NGREG 45
--#define ELF_NFPREG 33
--
--typedef unsigned int elf_greg_t;
--typedef elf_greg_t elf_gregset_t[ELF_NGREG];
--
--typedef double elf_fpreg_t;
--typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
--
--/*
-- * This is used to ensure we don't load something for the wrong architecture.
-- */
--#define elf_check_arch(hdr) \
--({ \
-- int __res = 1; \
-- struct elfhdr *__h = (hdr); \
-- \
-- if (__h->e_machine != EM_MIPS) \
-- __res = 0; \
-- if (__h->e_ident[EI_CLASS] != ELFCLASS32) \
-- __res = 0; \
-- if ((__h->e_flags & EF_MIPS_ABI2) != 0) \
-- __res = 0; \
-- if (((__h->e_flags & EF_MIPS_ABI) != 0) && \
-- ((__h->e_flags & EF_MIPS_ABI) != EF_MIPS_ABI_O32)) \
-- __res = 0; \
-- \
-- __res; \
--})
--
--#define TASK32_SIZE 0x80000000UL
--#undef ELF_ET_DYN_BASE
--#define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
--
--#include <asm/processor.h>
--#include <linux/module.h>
--#include <linux/config.h>
--#include <linux/elfcore.h>
--
--struct timeval32
--{
-- int tv_sec, tv_usec;
--};
--
--#define elf_prstatus elf_prstatus32
--struct elf_prstatus32
--{
-- struct elf_siginfo pr_info; /* Info associated with signal */
-- short pr_cursig; /* Current signal */
-- unsigned int pr_sigpend; /* Set of pending signals */
-- unsigned int pr_sighold; /* Set of held signals */
-- pid_t pr_pid;
-- pid_t pr_ppid;
-- pid_t pr_pgrp;
-- pid_t pr_sid;
-- struct timeval32 pr_utime; /* User time */
-- struct timeval32 pr_stime; /* System time */
-- struct timeval32 pr_cutime; /* Cumulative user time */
-- struct timeval32 pr_cstime; /* Cumulative system time */
-- elf_gregset_t pr_reg; /* GP registers */
-- int pr_fpvalid; /* True if math co-processor being used. */
--};
--
--#define elf_prpsinfo elf_prpsinfo32
--struct elf_prpsinfo32
--{
-- char pr_state; /* numeric process state */
-- char pr_sname; /* char for pr_state */
-- char pr_zomb; /* zombie */
-- char pr_nice; /* nice val */
-- unsigned int pr_flag; /* flags */
-- u16 pr_uid;
-- u16 pr_gid;
-- pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
-- /* Lots missing */
-- char pr_fname[16]; /* filename of executable */
-- char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
--};
--
--#define elf_addr_t u32
--#define elf_caddr_t u32
--#define init_elf_binfmt init_elf32_binfmt
--#undef CONFIG_BINFMT_ELF
--#ifdef CONFIG_BINFMT_ELF32
--#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32
--#endif
--#undef CONFIG_BINFMT_ELF_MODULE
--#ifdef CONFIG_BINFMT_ELF32_MODULE
--#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE
--#endif
--
--MODULE_DESCRIPTION("Binary format loader for compatibility with 32bit Linux/MIPS binaries");
--MODULE_AUTHOR("Ralf Baechle (ralf@oss.sgi.com)");
--
--#undef MODULE_DESCRIPTION
--#undef MODULE_AUTHOR
--
--#include "../../../fs/binfmt_elf.c"
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/binfmt_elfn32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfn32.c
---- linux-2.4.20/arch/mips64/kernel/binfmt_elfn32.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfn32.c 2002-12-19 18:48:16.000000000 -0600
-@@ -0,0 +1,119 @@
-+/*
-+ * Support for n32 Linux/MIPS ELF binaries.
-+ *
-+ * Copyright (C) 1999, 2001 Ralf Baechle
-+ * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
-+ *
-+ * Heavily inspired by the 32-bit Sparc compat code which is
-+ * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com)
-+ * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek (jj@ultra.linux.cz)
-+ */
-+
-+#define ELF_ARCH EM_MIPS
-+#define ELF_CLASS ELFCLASS32
-+#ifdef __MIPSEB__
-+#define ELF_DATA ELFDATA2MSB;
-+#else /* __MIPSEL__ */
-+#define ELF_DATA ELFDATA2LSB;
-+#endif
-+
-+/* ELF register definitions */
-+#define ELF_NGREG 45
-+#define ELF_NFPREG 33
-+
-+typedef unsigned long elf_greg_t;
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+
-+typedef double elf_fpreg_t;
-+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-+
-+/*
-+ * This is used to ensure we don't load something for the wrong architecture.
-+ */
-+#define elf_check_arch(hdr) \
-+({ \
-+ int __res = 1; \
-+ struct elfhdr *__h = (hdr); \
-+ \
-+ if (__h->e_machine != EM_MIPS) \
-+ __res = 0; \
-+ if (__h->e_ident[EI_CLASS] != ELFCLASS32) \
-+ __res = 0; \
-+ if (((__h->e_flags & EF_MIPS_ABI2) == 0) || \
-+ ((__h->e_flags & EF_MIPS_ABI) != 0)) \
-+ __res = 0; \
-+ \
-+ __res; \
-+})
-+
-+#define TASK32_SIZE 0x7fff8000UL
-+#undef ELF_ET_DYN_BASE
-+#define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
-+
-+#include <asm/processor.h>
-+#include <linux/module.h>
-+#include <linux/config.h>
-+#include <linux/elfcore.h>
-+
-+struct timeval32
-+{
-+ int tv_sec, tv_usec;
-+};
-+
-+#define elf_prstatus elf_prstatus32
-+struct elf_prstatus32
-+{
-+ struct elf_siginfo pr_info; /* Info associated with signal */
-+ short pr_cursig; /* Current signal */
-+ unsigned int pr_sigpend; /* Set of pending signals */
-+ unsigned int pr_sighold; /* Set of held signals */
-+ pid_t pr_pid;
-+ pid_t pr_ppid;
-+ pid_t pr_pgrp;
-+ pid_t pr_sid;
-+ struct timeval32 pr_utime; /* User time */
-+ struct timeval32 pr_stime; /* System time */
-+ struct timeval32 pr_cutime; /* Cumulative user time */
-+ struct timeval32 pr_cstime; /* Cumulative system time */
-+ elf_gregset_t pr_reg; /* GP registers */
-+ int pr_fpvalid; /* True if math co-processor being used. */
-+};
-+
-+#define elf_prpsinfo elf_prpsinfo32
-+struct elf_prpsinfo32
-+{
-+ char pr_state; /* numeric process state */
-+ char pr_sname; /* char for pr_state */
-+ char pr_zomb; /* zombie */
-+ char pr_nice; /* nice val */
-+ unsigned int pr_flag; /* flags */
-+ __kernel_uid_t pr_uid;
-+ __kernel_gid_t pr_gid;
-+ pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
-+ /* Lots missing */
-+ char pr_fname[16]; /* filename of executable */
-+ char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
-+};
-+
-+#define elf_addr_t u32
-+#define elf_caddr_t u32
-+#define init_elf_binfmt init_elfn32_binfmt
-+
-+#define ELF_CORE_EFLAGS EF_MIPS_ABI2
-+
-+#undef CONFIG_BINFMT_ELF
-+#ifdef CONFIG_BINFMT_ELF32
-+#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32
-+#endif
-+#undef CONFIG_BINFMT_ELF_MODULE
-+#ifdef CONFIG_BINFMT_ELF32_MODULE
-+#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE
-+#endif
-+
-+MODULE_DESCRIPTION("Binary format loader for compatibility with n32 Linux/MIPS binaries");
-+MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)");
-+
-+#undef MODULE_DESCRIPTION
-+#undef MODULE_AUTHOR
-+
-+#include "../../../fs/binfmt_elf.c"
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/binfmt_elfo32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfo32.c
---- linux-2.4.20/arch/mips64/kernel/binfmt_elfo32.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/binfmt_elfo32.c 2002-12-03 08:23:05.000000000 -0600
-@@ -0,0 +1,140 @@
-+/*
-+ * Support for o32 Linux/MIPS ELF binaries.
-+ *
-+ * Copyright (C) 1999, 2001 Ralf Baechle
-+ * Copyright (C) 1999, 2001 Silicon Graphics, Inc.
-+ *
-+ * Heavily inspired by the 32-bit Sparc compat code which is
-+ * Copyright (C) 1995, 1996, 1997, 1998 David S. Miller (davem@redhat.com)
-+ * Copyright (C) 1995, 1996, 1997, 1998 Jakub Jelinek (jj@ultra.linux.cz)
-+ */
-+
-+#define ELF_ARCH EM_MIPS
-+#define ELF_CLASS ELFCLASS32
-+#ifdef __MIPSEB__
-+#define ELF_DATA ELFDATA2MSB;
-+#else /* __MIPSEL__ */
-+#define ELF_DATA ELFDATA2LSB;
-+#endif
-+
-+/* ELF register definitions */
-+#define ELF_NGREG 45
-+#define ELF_NFPREG 33
-+
-+typedef unsigned int elf_greg_t;
-+typedef elf_greg_t elf_gregset_t[ELF_NGREG];
-+
-+typedef double elf_fpreg_t;
-+typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
-+
-+/*
-+ * This is used to ensure we don't load something for the wrong architecture.
-+ */
-+#define elf_check_arch(hdr) \
-+({ \
-+ int __res = 1; \
-+ struct elfhdr *__h = (hdr); \
-+ \
-+ if (__h->e_machine != EM_MIPS) \
-+ __res = 0; \
-+ if (__h->e_ident[EI_CLASS] != ELFCLASS32) \
-+ __res = 0; \
-+ if ((__h->e_flags & EF_MIPS_ABI2) != 0) \
-+ __res = 0; \
-+ if (((__h->e_flags & EF_MIPS_ABI) != 0) && \
-+ ((__h->e_flags & EF_MIPS_ABI) != EF_MIPS_ABI_O32)) \
-+ __res = 0; \
-+ \
-+ __res; \
-+})
-+
-+#define TASK32_SIZE 0x7fff8000UL
-+#undef ELF_ET_DYN_BASE
-+#define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
-+
-+#include <asm/processor.h>
-+#include <linux/module.h>
-+#include <linux/config.h>
-+#include <linux/elfcore.h>
-+
-+struct timeval32
-+{
-+ int tv_sec, tv_usec;
-+};
-+
-+#define elf_prstatus elf_prstatus32
-+struct elf_prstatus32
-+{
-+ struct elf_siginfo pr_info; /* Info associated with signal */
-+ short pr_cursig; /* Current signal */
-+ unsigned int pr_sigpend; /* Set of pending signals */
-+ unsigned int pr_sighold; /* Set of held signals */
-+ pid_t pr_pid;
-+ pid_t pr_ppid;
-+ pid_t pr_pgrp;
-+ pid_t pr_sid;
-+ struct timeval32 pr_utime; /* User time */
-+ struct timeval32 pr_stime; /* System time */
-+ struct timeval32 pr_cutime; /* Cumulative user time */
-+ struct timeval32 pr_cstime; /* Cumulative system time */
-+ elf_gregset_t pr_reg; /* GP registers */
-+ int pr_fpvalid; /* True if math co-processor being used. */
-+};
-+
-+#define elf_prpsinfo elf_prpsinfo32
-+struct elf_prpsinfo32
-+{
-+ char pr_state; /* numeric process state */
-+ char pr_sname; /* char for pr_state */
-+ char pr_zomb; /* zombie */
-+ char pr_nice; /* nice val */
-+ unsigned int pr_flag; /* flags */
-+ __kernel_uid_t pr_uid;
-+ __kernel_gid_t pr_gid;
-+ pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid;
-+ /* Lots missing */
-+ char pr_fname[16]; /* filename of executable */
-+ char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */
-+};
-+
-+#define elf_addr_t u32
-+#define elf_caddr_t u32
-+#define init_elf_binfmt init_elf32_binfmt
-+
-+
-+#undef ELF_CORE_COPY_REGS
-+#define ELF_CORE_COPY_REGS(_dest,_regs) elf32_core_copy_regs(_dest,_regs);
-+
-+void elf32_core_copy_regs(elf_gregset_t _dest, struct pt_regs *_regs)
-+{
-+ int i;
-+
-+ memset(_dest, 0, sizeof(elf_gregset_t));
-+
-+ /* XXXKW the 6 is from EF_REG0 in gdb/gdb/mips-linux-tdep.c, include/asm-mips/reg.h */
-+ for (i=6; i<38; i++)
-+ _dest[i] = (elf_greg_t) _regs->regs[i-6];
-+ _dest[i++] = (elf_greg_t) _regs->lo;
-+ _dest[i++] = (elf_greg_t) _regs->hi;
-+ _dest[i++] = (elf_greg_t) _regs->cp0_epc;
-+ _dest[i++] = (elf_greg_t) _regs->cp0_badvaddr;
-+ _dest[i++] = (elf_greg_t) _regs->cp0_status;
-+ _dest[i++] = (elf_greg_t) _regs->cp0_cause;
-+}
-+
-+#undef CONFIG_BINFMT_ELF
-+#ifdef CONFIG_BINFMT_ELF32
-+#define CONFIG_BINFMT_ELF CONFIG_BINFMT_ELF32
-+#endif
-+#undef CONFIG_BINFMT_ELF_MODULE
-+#ifdef CONFIG_BINFMT_ELF32_MODULE
-+#define CONFIG_BINFMT_ELF_MODULE CONFIG_BINFMT_ELF32_MODULE
-+#endif
-+
-+MODULE_DESCRIPTION("Binary format loader for compatibility with o32 Linux/MIPS binaries");
-+MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)");
-+
-+#undef MODULE_DESCRIPTION
-+#undef MODULE_AUTHOR
-+
-+#include "../../../fs/binfmt_elf.c"
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/branch.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/branch.c
---- linux-2.4.20/arch/mips64/kernel/branch.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/branch.c 2003-01-10 06:18:00.000000000 -0600
-@@ -167,7 +167,7 @@
- if (!(mips_cpu.options & MIPS_CPU_FPU))
- fcr31 = current->thread.fpu.soft.sr;
- else
-- asm("cfc1\t%0,$31":"=r" (fcr31));
-+ asm volatile("cfc1\t%0,$31" : "=r" (fcr31));
- bit = (insn.i_format.rt >> 2);
- bit += (bit != 0);
- bit += 23;
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/cpu-probe.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/cpu-probe.c
---- linux-2.4.20/arch/mips64/kernel/cpu-probe.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/cpu-probe.c 2003-02-03 11:11:41.000000000 -0600
-@@ -1,9 +1,27 @@
-+/*
-+ * arch/mips64/kernel/cpu-probe.c
-+ *
-+ * Processor capabilities determination functions.
-+ *
-+ * Copyright (C) xxxx the Anonymous
-+ * Copyright (C) 2003 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+
- #include <linux/init.h>
- #include <linux/kernel.h>
-+#include <linux/ptrace.h>
- #include <linux/stddef.h>
-+
- #include <asm/bugs.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/mipsregs.h>
-+#include <asm/system.h>
-
- /*
- * Not all of the MIPS CPUs have the "wait" instruction available. Moreover,
-@@ -16,14 +34,14 @@
-
- static void r3081_wait(void)
- {
-- unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, cfg|CONF_HALT);
-+ unsigned long cfg = read_c0_conf();
-+ write_c0_conf(cfg | CONF_HALT);
- }
-
- static void r39xx_wait(void)
- {
-- unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-- write_32bit_cp0_register(CP0_CONF, cfg|TX39_CONF_HALT);
-+ unsigned long cfg = read_c0_conf();
-+ write_c0_conf(cfg | TX39_CONF_HALT);
- }
-
- static void r4k_wait(void)
-@@ -89,9 +107,231 @@
- }
- }
-
-+static inline void check_mult_sh(void)
-+{
-+ unsigned long flags;
-+ int m1, m2;
-+ long p, s, v;
-+
-+ /* Instead of clobbers; for egcs 1.1.2 sake. */
-+ long __d0, __d1, __d2;
-+
-+ printk("Checking for the multiply/shift bug... ");
-+
-+ local_irq_save(flags);
-+ /*
-+ * The following code leads to a wrong result of dsll32 when
-+ * executed on R4000 rev. 2.2 or 3.0.
-+ *
-+ * See "MIPS R4000PC/SC Errata, Processor Revision 2.2 and
-+ * 3.0" by MIPS Technologies, Inc., errata #16 and #28 for
-+ * details. I got no permission to duplicate them here,
-+ * sigh... --macro
-+ */
-+ asm volatile(
-+ ".set push\n\t"
-+ ".set noat\n\t"
-+ ".set noreorder\n\t"
-+ ".set nomacro\n\t"
-+ "mult %4, %5\n\t"
-+ "dsll32 %0, %6, %7\n\t"
-+ "mflo $0\n\t"
-+ ".set pop"
-+ : "=r" (v), "=&h" (__d0), "=&l" (__d1), "=&a" (__d2)
-+ : "r" (5), "r" (8), "r" (5), "I" (0));
-+ local_irq_restore(flags);
-+
-+ if (v == 5L << 32) {
-+ printk("no.\n");
-+ return;
-+ }
-+
-+ printk("yes, workaround... ");
-+ local_irq_save(flags);
-+ /*
-+ * We want the multiply and the shift to be isolated from the
-+ * rest of the code to disable gcc optimizations. Hence the
-+ * asm statements that execute nothing, but make gcc not know
-+ * what the values of m1, m2 and s are and what v and p are
-+ * used for.
-+ *
-+ * We have to use single integers for m1 and m2 and a double
-+ * one for p to be sure the mulsidi3 gcc's RTL multiplication
-+ * instruction has the workaround applied. Older versions of
-+ * gcc have correct mulsi3, but other multiplication variants
-+ * lack the workaround.
-+ */
-+ asm volatile(
-+ ""
-+ : "=r" (m1), "=r" (m2), "=r" (s)
-+ : "0" (5), "1" (8), "2" (5));
-+ p = m1 * m2;
-+ v = s << 32;
-+ asm volatile(
-+ ""
-+ : "=r" (v)
-+ : "0" (v), "r" (p));
-+ local_irq_restore(flags);
-+
-+ if (v == 5L << 32) {
-+ printk("yes.\n");
-+ return;
-+ }
-+
-+ printk("no.\n");
-+ panic("Reliable operation impossible!\n"
-+#ifndef CONFIG_CPU_R4000
-+ "Configure for R4000 to enable the workaround."
-+#else
-+ "Please report to <linux-mips@linux-mips.org>."
-+#endif
-+ );
-+}
-+
-+static volatile int daddi_ov __initdata = 0;
-+
-+asmlinkage void __init do_daddi_ov(struct pt_regs *regs)
-+{
-+ daddi_ov = 1;
-+ regs->cp0_epc += 4;
-+}
-+
-+static inline void check_daddi(void)
-+{
-+ extern asmlinkage void handle_daddi_ov(void);
-+ unsigned long flags;
-+ void *handler;
-+ long v;
-+
-+ printk("Checking for the daddi bug... ");
-+
-+ local_irq_save(flags);
-+ handler = set_except_vector(12, handle_daddi_ov);
-+ /*
-+ * The following code fails to trigger an overflow exception
-+ * when executed on R4000 rev. 2.2 or 3.0.
-+ *
-+ * See "MIPS R4000PC/SC Errata, Processor Revision 2.2 and
-+ * 3.0" by MIPS Technologies, Inc., erratum #23 for details.
-+ * I got no permission to duplicate it here, sigh... --macro
-+ */
-+ asm volatile(
-+ ".set push\n\t"
-+ ".set noat\n\t"
-+ ".set noreorder\n\t"
-+ ".set nomacro\n\t"
-+#ifdef HAVE_AS_SET_DADDI
-+ ".set daddi\n\t"
-+#endif
-+ "daddi %0, %1, %2\n\t"
-+ ".set pop"
-+ : "=r" (v)
-+ : "r" (0x7fffffffffffedcd), "I" (0x1234));
-+ set_except_vector(12, handler);
-+ local_irq_restore(flags);
-+
-+ if (daddi_ov) {
-+ printk("no.\n");
-+ return;
-+ }
-+
-+ printk("yes, workaround... ");
-+
-+ local_irq_save(flags);
-+ handler = set_except_vector(12, handle_daddi_ov);
-+ asm volatile(
-+ "daddi %0, %1, %2"
-+ : "=r" (v)
-+ : "r" (0x7fffffffffffedcd), "I" (0x1234));
-+ set_except_vector(12, handler);
-+ local_irq_restore(flags);
-+
-+ if (daddi_ov) {
-+ printk("yes.\n");
-+ return;
-+ }
-+
-+ printk("no.\n");
-+ panic("Reliable operation impossible!\n"
-+#if !defined(CONFIG_CPU_R4000) && !defined(CONFIG_CPU_R4400)
-+ "Configure for R4000 or R4400 to enable the workaround."
-+#else
-+ "Please report to <linux-mips@linux-mips.org>."
-+#endif
-+ );
-+}
-+
-+static inline void check_daddiu(void)
-+{
-+ long v, w;
-+
-+ printk("Checking for the daddiu bug... ");
-+
-+ /*
-+ * The following code leads to a wrong result of daddiu when
-+ * executed on R4400 rev. 1.0.
-+ *
-+ * See "MIPS R4400PC/SC Errata, Processor Revision 1.0" by
-+ * MIPS Technologies, Inc., erratum #7 for details.
-+ *
-+ * According to "MIPS R4000PC/SC Errata, Processor Revision
-+ * 2.2 and 3.0" by MIPS Technologies, Inc., erratum #41 this
-+ * problem affects R4000 rev. 2.2 and 3.0, too. Testing
-+ * failed to trigger it so far.
-+ *
-+ * I got no permission to duplicate the errata here, sigh...
-+ * --macro
-+ */
-+ asm volatile(
-+ ".set push\n\t"
-+ ".set noat\n\t"
-+ ".set noreorder\n\t"
-+ ".set nomacro\n\t"
-+#ifdef HAVE_AS_SET_DADDI
-+ ".set daddi\n\t"
-+#endif
-+ "daddiu %0, %2, %3\n\t"
-+ "addiu %1, $0, %3\n\t"
-+ "daddu %1, %2\n\t"
-+ ".set pop"
-+ : "=&r" (v), "=&r" (w)
-+ : "r" (0x7fffffffffffedcd), "I" (0x1234));
-+
-+ if (v == w) {
-+ printk("no.\n");
-+ return;
-+ }
-+
-+ printk("yes, workaround... ");
-+
-+ asm volatile(
-+ "daddiu %0, %2, %3\n\t"
-+ "addiu %1, $0, %3\n\t"
-+ "daddu %1, %2"
-+ : "=&r" (v), "=&r" (w)
-+ : "r" (0x7fffffffffffedcd), "I" (0x1234));
-+
-+ if (v == w) {
-+ printk("yes.\n");
-+ return;
-+ }
-+
-+ printk("no.\n");
-+ panic("Reliable operation impossible!\n"
-+#if !defined(CONFIG_CPU_R4000) && !defined(CONFIG_CPU_R4400)
-+ "Configure for R4000 or R4400 to enable the workaround."
-+#else
-+ "Please report to <linux-mips@linux-mips.org>."
-+#endif
-+ );
-+}
-+
- void __init check_bugs(void)
- {
- check_wait();
-+ check_mult_sh();
-+ check_daddi();
-+ check_daddiu();
- }
-
- /*
-@@ -104,12 +344,12 @@
- #ifdef CONFIG_CPU_R3000
- extern unsigned long r3k_cache_size(unsigned long);
- unsigned long size1, size2;
-- unsigned long cfg = read_32bit_cp0_register(CP0_CONF);
-+ unsigned long cfg = read_c0_conf();
-
- size1 = r3k_cache_size(ST0_ISC);
-- write_32bit_cp0_register(CP0_CONF, cfg^CONF_AC);
-+ write_c0_conf(cfg ^ CONF_AC);
- size2 = r3k_cache_size(ST0_ISC);
-- write_32bit_cp0_register(CP0_CONF, cfg);
-+ write_c0_conf(cfg);
- return size1 != size2;
- #else
- return 0;
-@@ -123,10 +363,10 @@
- {
- unsigned long tmp, fpu_id;
-
-- tmp = read_32bit_cp0_register(CP0_STATUS);
-+ tmp = read_c0_status();
- __enable_fpu();
- fpu_id = read_32bit_cp1_register(CP1_REVISION);
-- write_32bit_cp0_register(CP0_STATUS, tmp);
-+ write_c0_status(tmp);
- return fpu_id;
- }
-
-@@ -140,9 +380,9 @@
-
- /* declaration of the global struct */
- struct mips_cpu mips_cpu = {
-- processor_id: PRID_IMP_UNKNOWN,
-- fpu_id: FPIR_IMP_NONE,
-- cputype: CPU_UNKNOWN
-+ .processor_id = PRID_IMP_UNKNOWN,
-+ .fpu_id = FPIR_IMP_NONE,
-+ .cputype = CPU_UNKNOWN
- };
-
- /* Shortcut for assembler access to mips_cpu.options */
-@@ -154,14 +394,14 @@
- __init void cpu_probe(void)
- {
- #if defined(CONFIG_CPU_MIPS32) || defined(CONFIG_CPU_MIPS64)
-- unsigned long config0 = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config0 = read_c0_config();
- unsigned long config1;
-
- if (config0 & (1 << 31)) {
- /* MIPS32 or MIPS64 compliant CPU. Read Config 1 register. */
- mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
- MIPS_CPU_4KTLB | MIPS_CPU_COUNTER | MIPS_CPU_DIVEC;
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
- if (config1 & (1 << 3))
- mips_cpu.options |= MIPS_CPU_WATCH;
- if (config1 & (1 << 2))
-@@ -177,7 +417,7 @@
- mips_cpu.scache.flags = MIPS_CACHE_NOT_PRESENT;
- }
- #endif
-- mips_cpu.processor_id = read_32bit_cp0_register(CP0_PRID);
-+ mips_cpu.processor_id = read_c0_prid();
- switch (mips_cpu.processor_id & 0xff0000) {
- case PRID_COMP_LEGACY:
- switch (mips_cpu.processor_id & 0xff00) {
-@@ -204,7 +444,7 @@
- mips_cpu.tlbsize = 64;
- break;
- case PRID_IMP_R4000:
-- if ((mips_cpu.processor_id & 0xff) == PRID_REV_R4400)
-+ if ((mips_cpu.processor_id & 0xff) >= PRID_REV_R4400)
- mips_cpu.cputype = CPU_R4400SC;
- else
- mips_cpu.cputype = CPU_R4000SC;
-@@ -372,7 +612,7 @@
- * 29 1 => 64 entry JTLB
- * 0 => 48 entry JTLB
- */
-- mips_cpu.tlbsize = (get_info() & (1 << 29)) ? 64 : 48;
-+ mips_cpu.tlbsize = (read_c0_info() & (1 << 29)) ? 64 : 48;
- break;
- case PRID_IMP_R8000:
- mips_cpu.cputype = CPU_R8000;
-@@ -463,7 +703,7 @@
- mips_cpu.isa_level = MIPS_CPU_ISA_M64;
- mips_cpu.options = MIPS_CPU_TLB | MIPS_CPU_4KEX |
- MIPS_CPU_COUNTER | MIPS_CPU_DIVEC |
-- MIPS_CPU_MCHECK;
-+ MIPS_CPU_MCHECK | MIPS_CPU_EJTAG;
- #ifndef CONFIG_SB1_PASS_1_WORKAROUNDS
- /* FPU in pass1 is known to have issues. */
- mips_cpu.options |= MIPS_CPU_FPU;
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Entries
---- linux-2.4.20/arch/mips64/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Entries 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1,37 @@
-+/.cvsignore/1.1/Sat Aug 21 22:19:14 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.11.2.16/Mon Jan 20 20:21:42 2003/-ko/Tlinux_2_4_20
-+/binfmt_elfn32.c/1.1.2.2/Fri Dec 20 00:48:16 2002/-ko/Tlinux_2_4_20
-+/binfmt_elfo32.c/1.1.2.1/Tue Dec 3 14:23:05 2002/-ko/Tlinux_2_4_20
-+/branch.c/1.4.2.1/Fri Jan 10 12:18:00 2003/-ko/Tlinux_2_4_20
-+/cpu-probe.c/1.1.2.13/Mon Feb 3 17:11:41 2003/-ko/Tlinux_2_4_20
-+/entry.S/1.11.2.9/Thu Jan 9 19:25:46 2003/-ko/Tlinux_2_4_20
-+/head.S/1.34.2.10/Fri Nov 29 04:02:31 2002/-ko/Tlinux_2_4_20
-+/i8259.c/1.1.2.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/init_task.c/1.4/Fri Oct 19 01:23:38 2001/-ko/Tlinux_2_4_20
-+/ioctl32.c/1.10.2.9/Fri Feb 7 22:00:22 2003//Tlinux_2_4_20
-+/irq.c/1.1.2.11/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
-+/irq_cpu.c/1.1.2.3/Mon Dec 2 00:24:52 2002/-ko/Tlinux_2_4_20
-+/linux32.c/1.42.2.24/Fri Feb 21 02:57:51 2003/-ko/Tlinux_2_4_20
-+/mips64_ksyms.c/1.19.2.6/Wed Sep 11 20:04:00 2002/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.1.2.6/Sat Sep 28 22:28:38 2002/-ko/Tlinux_2_4_20
-+/proc.c/1.10.2.9/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/process.c/1.18.2.12/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
-+/ptrace.c/1.15.2.5/Mon Jan 27 18:14:34 2003/-ko/Tlinux_2_4_20
-+/r4k_cache.S/1.2/Mon Jul 9 00:25:37 2001/-ko/Tlinux_2_4_20
-+/r4k_fpu.S/1.3.2.1/Wed Jul 31 02:41:21 2002/-ko/Tlinux_2_4_20
-+/r4k_genex.S/1.7.2.10/Thu Jan 16 14:40:58 2003/-ko/Tlinux_2_4_20
-+/r4k_switch.S/1.5.2.10/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/reset.c/1.1.2.1/Thu Jan 24 23:14:25 2002/-ko/Tlinux_2_4_20
-+/scall_64.S/1.20.2.12/Tue Dec 3 14:23:05 2002/-ko/Tlinux_2_4_20
-+/scall_n32.S/1.2.2.5/Thu Dec 5 03:03:43 2002/-ko/Tlinux_2_4_20
-+/scall_o32.S/1.48.2.23/Thu Jan 23 02:12:59 2003/-ko/Tlinux_2_4_20
-+/semaphore.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.31.2.26/Fri Feb 21 03:26:16 2003/-ko/Tlinux_2_4_20
-+/signal.c/1.19.2.7/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
-+/signal32.c/1.20.2.11/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.26.2.19/Thu Nov 28 23:29:37 2002/-ko/Tlinux_2_4_20
-+/syscall.c/1.16.2.8/Fri Dec 20 02:57:03 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.8/Mon Dec 2 00:24:52 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.30.2.44/Mon Feb 10 22:50:48 2003/-ko/Tlinux_2_4_20
-+/unaligned.c/1.6.2.16/Fri Feb 21 01:09:19 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Repository
---- linux-2.4.20/arch/mips64/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Repository 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips64/kernel
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Root
---- linux-2.4.20/arch/mips64/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Root 2005-01-06 23:00:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Tag
---- linux-2.4.20/arch/mips64/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/CVS/Tag 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/.cvsignore
---- linux-2.4.20/arch/mips64/kernel/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/.cvsignore 1999-08-21 17:19:14.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/entry.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/entry.S
---- linux-2.4.20/arch/mips64/kernel/entry.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/entry.S 2003-01-09 13:25:46.000000000 -0600
-@@ -18,7 +18,7 @@
- #define KU_USER 0x10
-
- .text
-- .align 4
-+ .align 5
- FEXPORT(ret_from_fork)
- move a0, v0 # prev
- jal schedule_tail
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/head.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/head.S
---- linux-2.4.20/arch/mips64/kernel/head.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/head.S 2002-11-28 22:02:31.000000000 -0600
-@@ -168,13 +168,10 @@
-
- declare_saved_sp
-
--#undef PAGE_SIZE
--#define PAGE_SIZE 0x1000
--
- .macro page name, order=0
- .globl \name
--\name: .size \name, (PAGE_SIZE << \order)
-- .org . + (PAGE_SIZE << \order)
-+\name: .size \name, (_PAGE_SIZE << \order)
-+ .org . + (_PAGE_SIZE << \order)
- .type \name, @object
- .endm
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/ioctl32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ioctl32.c
---- linux-2.4.20/arch/mips64/kernel/ioctl32.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ioctl32.c 2003-02-07 16:00:22.000000000 -0600
-@@ -4,6 +4,7 @@
- * Copyright (C) 2000 Silicon Graphics, Inc.
- * Written by Ulf Carlsson (ulfc@engr.sgi.com)
- * Copyright (C) 2000 Ralf Baechle
-+ * Copyright (C) 2002 Maciej W. Rozycki
- *
- * Mostly stolen from the sparc64 ioctl32 implementation.
- */
-@@ -22,6 +23,7 @@
- #include <linux/if_pppox.h>
- #include <linux/cdrom.h>
- #include <linux/loop.h>
-+#include <linux/fb.h>
- #include <linux/vt.h>
- #include <linux/kd.h>
- #include <linux/netdevice.h>
-@@ -31,6 +33,7 @@
- #include <linux/blkdev.h>
- #include <linux/elevator.h>
- #include <linux/auto_fs.h>
-+#include <linux/auto_fs4.h>
- #include <linux/ext2_fs.h>
- #include <linux/raid/md_u.h>
-
-@@ -38,11 +41,17 @@
- #undef __KERNEL__ /* This file was born to be ugly ... */
- #include <scsi/scsi_ioctl.h>
- #define __KERNEL__
-+#include <scsi/sg.h>
-+
- #include <asm/types.h>
- #include <asm/uaccess.h>
-
- #include <linux/rtc.h>
-
-+#ifdef CONFIG_SIBYTE_TBPROF
-+#include <asm/sibyte/trace_prof.h>
-+#endif
-+
- long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg);
-
- static int w_long(unsigned int fd, unsigned int cmd, unsigned long arg)
-@@ -77,6 +86,166 @@
-
- #define A(__x) ((unsigned long)(__x))
-
-+
-+#ifdef CONFIG_FB
-+
-+struct fb_fix_screeninfo32 {
-+ char id[16]; /* identification string eg "TT Builtin" */
-+ __u32 smem_start; /* Start of frame buffer mem */
-+ /* (physical address) */
-+ __u32 smem_len; /* Length of frame buffer mem */
-+ __u32 type; /* see FB_TYPE_* */
-+ __u32 type_aux; /* Interleave for interleaved Planes */
-+ __u32 visual; /* see FB_VISUAL_* */
-+ __u16 xpanstep; /* zero if no hardware panning */
-+ __u16 ypanstep; /* zero if no hardware panning */
-+ __u16 ywrapstep; /* zero if no hardware ywrap */
-+ __u32 line_length; /* length of a line in bytes */
-+ __u32 mmio_start; /* Start of Memory Mapped I/O */
-+ /* (physical address) */
-+ __u32 mmio_len; /* Length of Memory Mapped I/O */
-+ __u32 accel; /* Type of acceleration available */
-+ __u16 reserved[3]; /* Reserved for future compatibility */
-+};
-+
-+static int do_fbioget_fscreeninfo_ioctl(unsigned int fd, unsigned int cmd,
-+ unsigned long arg)
-+{
-+ mm_segment_t old_fs = get_fs();
-+ struct fb_fix_screeninfo fix;
-+ struct fb_fix_screeninfo32 *fix32 = (struct fb_fix_screeninfo32 *)arg;
-+ int err;
-+
-+ set_fs(KERNEL_DS);
-+ err = sys_ioctl(fd, cmd, (unsigned long)&fix);
-+ set_fs(old_fs);
-+
-+ if (err == 0) {
-+ err = __copy_to_user((char *)fix32->id, (char *)fix.id,
-+ sizeof(fix.id));
-+ err |= __put_user((__u32)(unsigned long)fix.smem_start,
-+ &fix32->smem_start);
-+ err |= __put_user(fix.smem_len, &fix32->smem_len);
-+ err |= __put_user(fix.type, &fix32->type);
-+ err |= __put_user(fix.type_aux, &fix32->type_aux);
-+ err |= __put_user(fix.visual, &fix32->visual);
-+ err |= __put_user(fix.xpanstep, &fix32->xpanstep);
-+ err |= __put_user(fix.ypanstep, &fix32->ypanstep);
-+ err |= __put_user(fix.ywrapstep, &fix32->ywrapstep);
-+ err |= __put_user(fix.line_length, &fix32->line_length);
-+ err |= __put_user((__u32)(unsigned long)fix.mmio_start,
-+ &fix32->mmio_start);
-+ err |= __put_user(fix.mmio_len, &fix32->mmio_len);
-+ err |= __put_user(fix.accel, &fix32->accel);
-+ err |= __copy_to_user((char *)fix32->reserved,
-+ (char *)fix.reserved,
-+ sizeof(fix.reserved));
-+ if (err)
-+ err = -EFAULT;
-+ }
-+
-+ return err;
-+}
-+
-+struct fb_cmap32 {
-+ __u32 start; /* First entry */
-+ __u32 len; /* Number of entries */
-+ __u32 red; /* Red values */
-+ __u32 green;
-+ __u32 blue;
-+ __u32 transp; /* transparency, can be NULL */
-+};
-+
-+static int do_fbiocmap_ioctl(unsigned int fd, unsigned int cmd,
-+ unsigned long arg)
-+{
-+ mm_segment_t old_fs = get_fs();
-+ u32 red = 0, green = 0, blue = 0, transp = 0;
-+ struct fb_cmap cmap;
-+ struct fb_cmap32 *cmap32 = (struct fb_cmap32 *)arg;
-+ int err;
-+
-+ memset(&cmap, 0, sizeof(cmap));
-+
-+ err = __get_user(cmap.start, &cmap32->start);
-+ err |= __get_user(cmap.len, &cmap32->len);
-+ err |= __get_user(red, &cmap32->red);
-+ err |= __get_user(green, &cmap32->green);
-+ err |= __get_user(blue, &cmap32->blue);
-+ err |= __get_user(transp, &cmap32->transp);
-+ if (err)
-+ return -EFAULT;
-+
-+ err = -ENOMEM;
-+ cmap.red = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-+ if (!cmap.red)
-+ goto out;
-+ cmap.green = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-+ if (!cmap.green)
-+ goto out;
-+ cmap.blue = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-+ if (!cmap.blue)
-+ goto out;
-+ if (transp) {
-+ cmap.transp = kmalloc(cmap.len * sizeof(__u16), GFP_KERNEL);
-+ if (!cmap.transp)
-+ goto out;
-+ }
-+
-+ if (cmd == FBIOPUTCMAP) {
-+ err = __copy_from_user(cmap.red, (char *)A(red),
-+ cmap.len * sizeof(__u16));
-+ err |= __copy_from_user(cmap.green, (char *)A(green),
-+ cmap.len * sizeof(__u16));
-+ err |= __copy_from_user(cmap.blue, (char *)A(blue),
-+ cmap.len * sizeof(__u16));
-+ if (cmap.transp)
-+ err |= __copy_from_user(cmap.transp, (char *)A(transp),
-+ cmap.len * sizeof(__u16));
-+ if (err) {
-+ err = -EFAULT;
-+ goto out;
-+ }
-+ }
-+
-+ set_fs(KERNEL_DS);
-+ err = sys_ioctl(fd, cmd, (unsigned long)&cmap);
-+ set_fs(old_fs);
-+ if (err)
-+ goto out;
-+
-+ if (cmd == FBIOGETCMAP) {
-+ err = __copy_to_user((char *)A(red), cmap.red,
-+ cmap.len * sizeof(__u16));
-+ err |= __copy_to_user((char *)A(green), cmap.blue,
-+ cmap.len * sizeof(__u16));
-+ err |= __copy_to_user((char *)A(blue), cmap.blue,
-+ cmap.len * sizeof(__u16));
-+ if (cmap.transp)
-+ err |= __copy_to_user((char *)A(transp), cmap.transp,
-+ cmap.len * sizeof(__u16));
-+ if (err) {
-+ err = -EFAULT;
-+ goto out;
-+ }
-+ }
-+
-+out:
-+ if (cmap.red)
-+ kfree(cmap.red);
-+ if (cmap.green)
-+ kfree(cmap.green);
-+ if (cmap.blue)
-+ kfree(cmap.blue);
-+ if (cmap.transp)
-+ kfree(cmap.transp);
-+
-+ return err;
-+}
-+
-+#endif /* CONFIG_FB */
-+
-+
- struct timeval32 {
- int tv_sec;
- int tv_usec;
-@@ -630,6 +799,16 @@
- IOCTL32_DEFAULT(FIONBIO),
- IOCTL32_DEFAULT(FIONREAD),
-
-+#ifdef CONFIG_FB
-+ /* Big F */
-+ IOCTL32_DEFAULT(FBIOGET_VSCREENINFO),
-+ IOCTL32_DEFAULT(FBIOPUT_VSCREENINFO),
-+ IOCTL32_HANDLER(FBIOGET_FSCREENINFO, do_fbioget_fscreeninfo_ioctl),
-+ IOCTL32_HANDLER(FBIOGETCMAP, do_fbiocmap_ioctl),
-+ IOCTL32_HANDLER(FBIOPUTCMAP, do_fbiocmap_ioctl),
-+ IOCTL32_DEFAULT(FBIOPAN_DISPLAY),
-+#endif /* CONFIG_FB */
-+
- /* Big K */
- IOCTL32_DEFAULT(PIO_FONT),
- IOCTL32_DEFAULT(GIO_FONT),
-@@ -651,6 +830,7 @@
- IOCTL32_DEFAULT(KDSKBSENT),
- IOCTL32_DEFAULT(KDGKBDIACR),
- IOCTL32_DEFAULT(KDSKBDIACR),
-+ IOCTL32_DEFAULT(KDKBDREP),
- IOCTL32_DEFAULT(KDGKBLED),
- IOCTL32_DEFAULT(KDSKBLED),
- IOCTL32_DEFAULT(KDGETLED),
-@@ -915,6 +1095,12 @@
- IOCTL32_DEFAULT(RESTART_ARRAY_RW),
- #endif /* CONFIG_MD */
-
-+#ifdef CONFIG_SIBYTE_TBPROF
-+ IOCTL32_DEFAULT(SBPROF_ZBSTART),
-+ IOCTL32_DEFAULT(SBPROF_ZBSTOP),
-+ IOCTL32_DEFAULT(SBPROF_ZBWAITFULL),
-+#endif /* CONFIG_SIBYTE_TBPROF */
-+
- IOCTL32_DEFAULT(MTIOCTOP), /* mtio.h ioctls */
- IOCTL32_HANDLER(MTIOCGET32, mt_ioctl_trans),
- IOCTL32_HANDLER(MTIOCPOS32, mt_ioctl_trans),
-@@ -933,6 +1119,7 @@
- IOCTL32_DEFAULT(AUTOFS_IOC_PROTOVER),
- IOCTL32_HANDLER(AUTOFS_IOC_SETTIMEOUT32, ioc_settimeout),
- IOCTL32_DEFAULT(AUTOFS_IOC_EXPIRE),
-+ IOCTL32_DEFAULT(AUTOFS_IOC_EXPIRE_MULTI),
-
- /* Little p (/dev/rtc, /dev/envctrl, etc.) */
- IOCTL32_DEFAULT(_IOR('p', 20, int[7])), /* RTCGET */
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/irq_cpu.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/irq_cpu.c
---- linux-2.4.20/arch/mips64/kernel/irq_cpu.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/irq_cpu.c 2002-12-01 18:24:52.000000000 -0600
-@@ -35,13 +35,13 @@
-
- static inline void unmask_mips_irq(unsigned int irq)
- {
-- clear_cp0_cause(0x100 << (irq - mips_cpu_irq_base));
-- set_cp0_status(0x100 << (irq - mips_cpu_irq_base));
-+ clear_c0_cause(0x100 << (irq - mips_cpu_irq_base));
-+ set_c0_status(0x100 << (irq - mips_cpu_irq_base));
- }
-
- static inline void mask_mips_irq(unsigned int irq)
- {
-- clear_cp0_status(0x100 << (irq - mips_cpu_irq_base));
-+ clear_c0_status(0x100 << (irq - mips_cpu_irq_base));
- }
-
- static inline void mips_cpu_irq_enable(unsigned int irq)
-@@ -78,7 +78,7 @@
- static void mips_cpu_irq_ack(unsigned int irq)
- {
- /* Only necessary for soft interrupts */
-- clear_cp0_cause(1 << (irq - mips_cpu_irq_base + 8));
-+ clear_c0_cause(1 << (irq - mips_cpu_irq_base + 8));
-
- mask_mips_irq(irq);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/linux32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/linux32.c
---- linux-2.4.20/arch/mips64/kernel/linux32.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/linux32.c 2003-02-20 20:57:51.000000000 -0600
-@@ -13,7 +13,6 @@
- #include <linux/highuid.h>
- #include <linux/dirent.h>
- #include <linux/resource.h>
--#include <linux/filter.h>
- #include <linux/highmem.h>
- #include <linux/time.h>
- #include <linux/poll.h>
-@@ -32,6 +31,7 @@
- #include <linux/dnotify.h>
- #include <linux/module.h>
- #include <net/sock.h>
-+#include <net/scm.h>
-
- #include <asm/uaccess.h>
- #include <asm/mman.h>
-@@ -179,7 +179,32 @@
- return err;
- }
-
--asmlinkage int sys_mmap2(void) {return 0;}
-+asmlinkage unsigned long
-+sys32_mmap2(unsigned long addr, size_t len, unsigned long prot,
-+ unsigned long flags, unsigned long fd, unsigned long pgoff)
-+{
-+ struct file * file = NULL;
-+ unsigned long error;
-+
-+ error = -EINVAL;
-+ if (!(flags & MAP_ANONYMOUS)) {
-+ error = -EBADF;
-+ file = fget(fd);
-+ if (!file)
-+ goto out;
-+ }
-+ flags &= ~(MAP_EXECUTABLE | MAP_DENYWRITE);
-+
-+ down_write(&current->mm->mmap_sem);
-+ error = do_mmap_pgoff(file, addr, len, prot, flags, pgoff);
-+ up_write(&current->mm->mmap_sem);
-+ if (file)
-+ fput(file);
-+
-+out:
-+ return error;
-+}
-+
-
- asmlinkage long sys_truncate(const char * path, unsigned long length);
-
-@@ -427,10 +452,10 @@
- /* egcs is stupid */
- if (!access_ok(VERIFY_READ, arg, sizeof (unsigned int)))
- return -EFAULT;
-- if (IS_ERR(ret = __get_user((long)ptr,(int *)A(arg))))
-+ if ((ret = __get_user((long)ptr,(int *)A(arg))))
- return ret;
- if (ap) /* no access_ok needed, we allocated */
-- if (IS_ERR(ret = __put_user(ptr, ap++)))
-+ if ((ret = __put_user(ptr, ap++)))
- return ret;
- arg += sizeof(unsigned int);
- n++;
-@@ -451,19 +476,20 @@
- char * filename;
-
- na = nargs(argv, NULL);
-- if (IS_ERR(na))
-- return(na);
-+ if (na < 0)
-+ return na;
- ne = nargs(envp, NULL);
-- if (IS_ERR(ne))
-- return(ne);
-+ if (ne < 0)
-+ return ne;
- len = (na + ne + 2) * sizeof(*av);
-+
- /*
- * kmalloc won't work because the `sys_exec' code will attempt
- * to do a `get_user' on the arg list and `get_user' will fail
- * on a kernel address (simplifies `get_user'). Instead we
- * do an mmap to get a user address. Note that since a successful
- * `execve' frees all current memory we only have to do an
-- * `munmap' if the `execve' failes.
-+ * `munmap' if the `execve' fails.
- */
- down_write(&current->mm->mmap_sem);
- av = (char **) do_mmap_pgoff(0, 0, len, PROT_READ | PROT_WRITE,
-@@ -473,13 +499,15 @@
- if (IS_ERR(av))
- return (long) av;
- ae = av + na + 1;
-- if (IS_ERR(r = __put_user(0, (av + na))))
-- goto out;
-- if (IS_ERR(r = __put_user(0, (ae + ne))))
-+ r = __put_user(0, (av + na));
-+ r |= __put_user(0, (ae + ne));
-+ if (r)
- goto out;
-- if (IS_ERR(r = nargs(argv, av)))
-+ r = nargs(argv, av);
-+ if (r < 0)
- goto out;
-- if (IS_ERR(r = nargs(envp, ae)))
-+ r = nargs(envp, ae);
-+ if (r < 0)
- goto out;
- filename = getname((char *) (long)regs.regs[4]);
- r = PTR_ERR(filename);
-@@ -488,10 +516,10 @@
-
- r = do_execve(filename, av, ae, &regs);
- putname(filename);
-- if (IS_ERR(r))
-+ if (r)
- out:
- sys_munmap((unsigned long)av, len);
-- return(r);
-+ return r ;
- }
- #endif
-
-@@ -635,6 +663,52 @@
- return sys32_wait4(pid, stat_addr, options, NULL);
- }
-
-+struct sysinfo32 {
-+ s32 uptime;
-+ u32 loads[3];
-+ u32 totalram;
-+ u32 freeram;
-+ u32 sharedram;
-+ u32 bufferram;
-+ u32 totalswap;
-+ u32 freeswap;
-+ u16 procs;
-+ u32 totalhigh;
-+ u32 freehigh;
-+ u32 mem_unit;
-+ char _f[8];
-+};
-+
-+extern asmlinkage int sys_sysinfo(struct sysinfo *info);
-+
-+asmlinkage int sys32_sysinfo(struct sysinfo32 *info)
-+{
-+ struct sysinfo s;
-+ int ret, err;
-+ mm_segment_t old_fs = get_fs ();
-+
-+ set_fs (KERNEL_DS);
-+ ret = sys_sysinfo(&s);
-+ set_fs (old_fs);
-+ err = put_user (s.uptime, &info->uptime);
-+ err |= __put_user (s.loads[0], &info->loads[0]);
-+ err |= __put_user (s.loads[1], &info->loads[1]);
-+ err |= __put_user (s.loads[2], &info->loads[2]);
-+ err |= __put_user (s.totalram, &info->totalram);
-+ err |= __put_user (s.freeram, &info->freeram);
-+ err |= __put_user (s.sharedram, &info->sharedram);
-+ err |= __put_user (s.bufferram, &info->bufferram);
-+ err |= __put_user (s.totalswap, &info->totalswap);
-+ err |= __put_user (s.freeswap, &info->freeswap);
-+ err |= __put_user (s.procs, &info->procs);
-+ err |= __put_user (s.totalhigh, &info->totalhigh);
-+ err |= __put_user (s.freehigh, &info->freehigh);
-+ err |= __put_user (s.mem_unit, &info->mem_unit);
-+ if (err)
-+ return -EFAULT;
-+ return ret;
-+}
-+
- #define RLIM_INFINITY32 0x7fffffff
- #define RESOURCE32(x) ((x > RLIM_INFINITY32) ? RLIM_INFINITY32 : x)
-
-@@ -725,12 +799,17 @@
- int ret;
- struct statfs s;
- mm_segment_t old_fs = get_fs();
--
-- set_fs (KERNEL_DS);
-- ret = sys_statfs((const char *)path, &s);
-- set_fs (old_fs);
-- if (put_statfs(buf, &s))
-- return -EFAULT;
-+ char *pth;
-+
-+ pth = getname (path);
-+ ret = PTR_ERR(pth);
-+ if (!IS_ERR(pth)) {
-+ set_fs (KERNEL_DS);
-+ ret = sys_statfs((const char *)path, &s);
-+ set_fs (old_fs);
-+ if (!ret && put_statfs(buf, &s))
-+ return -EFAULT;
-+ }
- return ret;
- }
-
-@@ -751,6 +830,38 @@
- return ret;
- }
-
-+#ifdef __MIPSEB__
-+asmlinkage long sys32_truncate64(const char * path, unsigned long __dummy,
-+ int length_hi, int length_lo)
-+#endif
-+#ifdef __MIPSEL__
-+asmlinkage long sys32_truncate64(const char * path, unsigned long __dummy,
-+ int length_lo, int length_hi)
-+#endif
-+{
-+ loff_t length;
-+
-+ length = ((unsigned long) length_hi << 32) | (unsigned int) length_lo;
-+
-+ return sys_truncate(path, length);
-+}
-+
-+#ifdef __MIPSEB__
-+asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy,
-+ int length_hi, int length_lo)
-+#endif
-+#ifdef __MIPSEL__
-+asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy,
-+ int length_lo, int length_hi)
-+#endif
-+{
-+ loff_t length;
-+
-+ length = ((unsigned long) length_hi << 32) | (unsigned int) length_lo;
-+
-+ return sys_ftruncate(fd, length);
-+}
-+
- extern asmlinkage int
- sys_getrusage(int who, struct rusage *ru);
-
-@@ -1572,6 +1683,15 @@
- unsigned short sem_nsems; /* no. of semaphores in array */
- };
-
-+struct semid64_ds32 {
-+ struct ipc64_perm32 sem_perm;
-+ __kernel_time_t32 sem_otime;
-+ __kernel_time_t32 sem_ctime;
-+ unsigned int sem_nsems;
-+ unsigned int __unused1;
-+ unsigned int __unused2;
-+};
-+
- struct msqid_ds32
- {
- struct ipc_perm32 msg_perm;
-@@ -1617,6 +1737,19 @@
- unsigned short shm_nattch;
- };
-
-+struct shmid64_ds32 {
-+ struct ipc64_perm32 shm_perm;
-+ __kernel_size_t32 shm_segsz;
-+ __kernel_time_t32 shm_atime;
-+ __kernel_time_t32 shm_dtime;
-+ __kernel_time_t32 shm_ctime;
-+ __kernel_pid_t32 shm_cpid;
-+ __kernel_pid_t32 shm_lpid;
-+ unsigned int shm_nattch;
-+ unsigned int __unused1;
-+ unsigned int __unused2;
-+};
-+
- struct ipc_kludge32 {
- u32 msgp;
- s32 msgtyp;
-@@ -1629,7 +1762,6 @@
- u32 pad;
- int err, err2;
- struct semid64_ds s;
-- struct semid_ds32 *usp;
- mm_segment_t old_fs;
-
- if (!uptr)
-@@ -1642,7 +1774,6 @@
- else
- fourth.__pad = (void *)A(pad);
- switch (third & ~IPC_64) {
--
- case IPC_INFO:
- case IPC_RMID:
- case IPC_SET:
-@@ -1659,34 +1790,60 @@
-
- case IPC_STAT:
- case SEM_STAT:
-- usp = (struct semid_ds32 *)A(pad);
- fourth.__pad = &s;
- old_fs = get_fs ();
- set_fs (KERNEL_DS);
- err = sys_semctl (first, second, third, fourth);
- set_fs (old_fs);
-- err2 = put_user(s.sem_perm.key, &usp->sem_perm.key);
-- err2 |= __put_user(s.sem_perm.uid, &usp->sem_perm.uid);
-- err2 |= __put_user(s.sem_perm.gid, &usp->sem_perm.gid);
-- err2 |= __put_user(s.sem_perm.cuid,
-- &usp->sem_perm.cuid);
-- err2 |= __put_user (s.sem_perm.cgid,
-- &usp->sem_perm.cgid);
-- err2 |= __put_user (s.sem_perm.mode,
-- &usp->sem_perm.mode);
-- err2 |= __put_user (s.sem_perm.seq, &usp->sem_perm.seq);
-- err2 |= __put_user (s.sem_otime, &usp->sem_otime);
-- err2 |= __put_user (s.sem_ctime, &usp->sem_ctime);
-- err2 |= __put_user (s.sem_nsems, &usp->sem_nsems);
-+
-+ if (third & IPC_64) {
-+ struct semid64_ds32 *usp64 = (struct semid64_ds32 *) A(pad);
-+
-+ if (!access_ok(VERIFY_WRITE, usp64, sizeof(*usp64))) {
-+ err = -EFAULT;
-+ break;
-+ }
-+ err2 = __put_user(s.sem_perm.key, &usp64->sem_perm.key);
-+ err2 |= __put_user(s.sem_perm.uid, &usp64->sem_perm.uid);
-+ err2 |= __put_user(s.sem_perm.gid, &usp64->sem_perm.gid);
-+ err2 |= __put_user(s.sem_perm.cuid, &usp64->sem_perm.cuid);
-+ err2 |= __put_user(s.sem_perm.cgid, &usp64->sem_perm.cgid);
-+ err2 |= __put_user(s.sem_perm.mode, &usp64->sem_perm.mode);
-+ err2 |= __put_user(s.sem_perm.seq, &usp64->sem_perm.seq);
-+ err2 |= __put_user(s.sem_otime, &usp64->sem_otime);
-+ err2 |= __put_user(s.sem_ctime, &usp64->sem_ctime);
-+ err2 |= __put_user(s.sem_nsems, &usp64->sem_nsems);
-+ } else {
-+ struct semid_ds32 *usp32 = (struct semid_ds32 *) A(pad);
-+
-+ if (!access_ok(VERIFY_WRITE, usp32, sizeof(*usp32))) {
-+ err = -EFAULT;
-+ break;
-+ }
-+ err2 = __put_user(s.sem_perm.key, &usp32->sem_perm.key);
-+ err2 |= __put_user(s.sem_perm.uid, &usp32->sem_perm.uid);
-+ err2 |= __put_user(s.sem_perm.gid, &usp32->sem_perm.gid);
-+ err2 |= __put_user(s.sem_perm.cuid, &usp32->sem_perm.cuid);
-+ err2 |= __put_user(s.sem_perm.cgid, &usp32->sem_perm.cgid);
-+ err2 |= __put_user(s.sem_perm.mode, &usp32->sem_perm.mode);
-+ err2 |= __put_user(s.sem_perm.seq, &usp32->sem_perm.seq);
-+ err2 |= __put_user(s.sem_otime, &usp32->sem_otime);
-+ err2 |= __put_user(s.sem_ctime, &usp32->sem_ctime);
-+ err2 |= __put_user(s.sem_nsems, &usp32->sem_nsems);
-+ }
- if (err2)
- err = -EFAULT;
- break;
-
-+ default:
-+ err = - EINVAL;
-+ break;
- }
-
- return err;
- }
-
-+static int
- do_sys32_msgsnd (int first, int second, int third, void *uptr)
- {
- struct msgbuf32 *up = (struct msgbuf32 *)uptr;
-@@ -1886,7 +2043,8 @@
- int err = -EFAULT, err2;
- struct shmid_ds s;
- struct shmid64_ds s64;
-- struct shmid_ds32 *up = (struct shmid_ds32 *)uptr;
-+ struct shmid_ds32 *up32 = (struct shmid_ds32 *)uptr;
-+ struct shmid64_ds32 *up64 = (struct shmid64_ds32 *)uptr;
- mm_segment_t old_fs;
- struct shm_info32 {
- int used_ids;
-@@ -1895,18 +2053,24 @@
- } *uip = (struct shm_info32 *)uptr;
- struct shm_info si;
-
-- switch (second) {
--
-+ switch (second & ~IPC_64) {
- case IPC_INFO:
-+ second = IPC_INFO; /* So that we don't have to translate it */
- case IPC_RMID:
- case SHM_LOCK:
- case SHM_UNLOCK:
- err = sys_shmctl (first, second, (struct shmid_ds *)uptr);
- break;
- case IPC_SET:
-- err = get_user (s.shm_perm.uid, &up->shm_perm.uid);
-- err |= __get_user (s.shm_perm.gid, &up->shm_perm.gid);
-- err |= __get_user (s.shm_perm.mode, &up->shm_perm.mode);
-+ if (second & IPC_64) {
-+ err = get_user(s.shm_perm.uid, &up64->shm_perm.uid);
-+ err |= get_user(s.shm_perm.gid, &up64->shm_perm.gid);
-+ err |= get_user(s.shm_perm.mode, &up64->shm_perm.mode);
-+ } else {
-+ err = get_user(s.shm_perm.uid, &up32->shm_perm.uid);
-+ err |= get_user(s.shm_perm.gid, &up32->shm_perm.gid);
-+ err |= get_user(s.shm_perm.mode, &up32->shm_perm.mode);
-+ }
- if (err)
- break;
- old_fs = get_fs ();
-@@ -1923,23 +2087,45 @@
- set_fs (old_fs);
- if (err < 0)
- break;
-- err2 = put_user (s64.shm_perm.key, &up->shm_perm.key);
-- err2 |= __put_user (s64.shm_perm.uid, &up->shm_perm.uid);
-- err2 |= __put_user (s64.shm_perm.gid, &up->shm_perm.gid);
-- err2 |= __put_user (s64.shm_perm.cuid,
-- &up->shm_perm.cuid);
-- err2 |= __put_user (s64.shm_perm.cgid,
-- &up->shm_perm.cgid);
-- err2 |= __put_user (s64.shm_perm.mode,
-- &up->shm_perm.mode);
-- err2 |= __put_user (s64.shm_perm.seq, &up->shm_perm.seq);
-- err2 |= __put_user (s64.shm_atime, &up->shm_atime);
-- err2 |= __put_user (s64.shm_dtime, &up->shm_dtime);
-- err2 |= __put_user (s64.shm_ctime, &up->shm_ctime);
-- err2 |= __put_user (s64.shm_segsz, &up->shm_segsz);
-- err2 |= __put_user (s64.shm_nattch, &up->shm_nattch);
-- err2 |= __put_user (s64.shm_cpid, &up->shm_cpid);
-- err2 |= __put_user (s64.shm_lpid, &up->shm_lpid);
-+ if (second & IPC_64) {
-+ if (!access_ok(VERIFY_WRITE, up64, sizeof(*up64))) {
-+ err = -EFAULT;
-+ break;
-+ }
-+ err2 = __put_user(s64.shm_perm.key, &up64->shm_perm.key);
-+ err2 |= __put_user(s64.shm_perm.uid, &up64->shm_perm.uid);
-+ err2 |= __put_user(s64.shm_perm.gid, &up64->shm_perm.gid);
-+ err2 |= __put_user(s64.shm_perm.cuid, &up64->shm_perm.cuid);
-+ err2 |= __put_user(s64.shm_perm.cgid, &up64->shm_perm.cgid);
-+ err2 |= __put_user(s64.shm_perm.mode, &up64->shm_perm.mode);
-+ err2 |= __put_user(s64.shm_perm.seq, &up64->shm_perm.seq);
-+ err2 |= __put_user(s64.shm_atime, &up64->shm_atime);
-+ err2 |= __put_user(s64.shm_dtime, &up64->shm_dtime);
-+ err2 |= __put_user(s64.shm_ctime, &up64->shm_ctime);
-+ err2 |= __put_user(s64.shm_segsz, &up64->shm_segsz);
-+ err2 |= __put_user(s64.shm_nattch, &up64->shm_nattch);
-+ err2 |= __put_user(s64.shm_cpid, &up64->shm_cpid);
-+ err2 |= __put_user(s64.shm_lpid, &up64->shm_lpid);
-+ } else {
-+ if (!access_ok(VERIFY_WRITE, up32, sizeof(*up32))) {
-+ err = -EFAULT;
-+ break;
-+ }
-+ err2 = __put_user(s64.shm_perm.key, &up32->shm_perm.key);
-+ err2 |= __put_user(s64.shm_perm.uid, &up32->shm_perm.uid);
-+ err2 |= __put_user(s64.shm_perm.gid, &up32->shm_perm.gid);
-+ err2 |= __put_user(s64.shm_perm.cuid, &up32->shm_perm.cuid);
-+ err2 |= __put_user(s64.shm_perm.cgid, &up32->shm_perm.cgid);
-+ err2 |= __put_user(s64.shm_perm.mode, &up32->shm_perm.mode);
-+ err2 |= __put_user(s64.shm_perm.seq, &up32->shm_perm.seq);
-+ err2 |= __put_user(s64.shm_atime, &up32->shm_atime);
-+ err2 |= __put_user(s64.shm_dtime, &up32->shm_dtime);
-+ err2 |= __put_user(s64.shm_ctime, &up32->shm_ctime);
-+ err2 |= __put_user(s64.shm_segsz, &up32->shm_segsz);
-+ err2 |= __put_user(s64.shm_nattch, &up32->shm_nattch);
-+ err2 |= __put_user(s64.shm_cpid, &up32->shm_cpid);
-+ err2 |= __put_user(s64.shm_lpid, &up32->shm_lpid);
-+ }
- if (err2)
- err = -EFAULT;
- break;
-@@ -1963,7 +2149,11 @@
- err = -EFAULT;
- break;
-
-+ default:
-+ err = - EINVAL;
-+ break;
- }
-+
- return err;
- }
-
-@@ -2037,83 +2227,55 @@
- unsigned int __unused[4];
- };
-
--asmlinkage long sys32_sysctl(struct sysctl_args32 *uargs32)
--{
-- struct __sysctl_args kargs;
-- struct sysctl_args32 kargs32;
-- mm_segment_t old_fs;
-- int name[CTL_MAXNAME];
-- size_t oldlen[1];
-- int err, ret;
--
-- ret = -EFAULT;
--
-- memset(&kargs, 0, sizeof (kargs));
--
-- err = get_user(kargs32.name, &uargs32->name);
-- err |= __get_user(kargs32.nlen, &uargs32->nlen);
-- err |= __get_user(kargs32.oldval, &uargs32->oldval);
-- err |= __get_user(kargs32.oldlenp, &uargs32->oldlenp);
-- err |= __get_user(kargs32.newval, &uargs32->newval);
-- err |= __get_user(kargs32.newlen, &uargs32->newlen);
-- if (err)
-- goto out;
-+#ifdef CONFIG_SYSCTL
-
-- if (kargs32.nlen == 0 || kargs32.nlen >= CTL_MAXNAME) {
-- ret = -ENOTDIR;
-- goto out;
-- }
-+asmlinkage long sys32_sysctl(struct sysctl_args32 *args)
-+{
-+ struct sysctl_args32 tmp;
-+ int error;
-+ size_t oldlen, *oldlenp = NULL;
-+ unsigned long addr = (((long)&args->__unused[0]) + 7) & ~7;
-
-- kargs.name = name;
-- kargs.nlen = kargs32.nlen;
-- if (copy_from_user(kargs.name, (int *)A(kargs32.name),
-- kargs32.nlen * sizeof(name) / sizeof(name[0])))
-- goto out;
-+ if (copy_from_user(&tmp, args, sizeof(tmp)))
-+ return -EFAULT;
-
-- if (kargs32.oldval) {
-- if (!kargs32.oldlenp || get_user(oldlen[0],
-- (int *)A(kargs32.oldlenp)))
-+ if (tmp.oldval && tmp.oldlenp) {
-+ /* Duh, this is ugly and might not work if sysctl_args
-+ is in read-only memory, but do_sysctl does indirectly
-+ a lot of uaccess in both directions and we'd have to
-+ basically copy the whole sysctl.c here, and
-+ glibc's __sysctl uses rw memory for the structure
-+ anyway. */
-+ if (get_user(oldlen, (u32 *)A(tmp.oldlenp)) ||
-+ put_user(oldlen, (size_t *)addr))
- return -EFAULT;
-- kargs.oldlenp = oldlen;
-- kargs.oldval = kmalloc(oldlen[0], GFP_KERNEL);
-- if (!kargs.oldval) {
-- ret = -ENOMEM;
-- goto out;
-- }
-+ oldlenp = (size_t *)addr;
- }
-
-- if (kargs32.newval && kargs32.newlen) {
-- kargs.newval = kmalloc(kargs32.newlen, GFP_KERNEL);
-- if (!kargs.newval) {
-- ret = -ENOMEM;
-- goto out;
-+ lock_kernel();
-+ error = do_sysctl((int *)A(tmp.name), tmp.nlen, (void *)A(tmp.oldval),
-+ oldlenp, (void *)A(tmp.newval), tmp.newlen);
-+ unlock_kernel();
-+ if (oldlenp) {
-+ if (!error) {
-+ if (get_user(oldlen, (size_t *)addr) ||
-+ put_user(oldlen, (u32 *)A(tmp.oldlenp)))
-+ error = -EFAULT;
- }
-- if (copy_from_user(kargs.newval, (int *)A(kargs32.newval),
-- kargs32.newlen))
-- goto out;
-+ copy_to_user(args->__unused, tmp.__unused, sizeof(tmp.__unused));
- }
-+ return error;
-+}
-
-- old_fs = get_fs(); set_fs (KERNEL_DS);
-- ret = sys_sysctl(&kargs);
-- set_fs (old_fs);
--
-- if (ret)
-- goto out;
-+#else /* CONFIG_SYSCTL */
-
-- if (kargs.oldval) {
-- if (put_user(oldlen[0], (int *)A(kargs32.oldlenp)) ||
-- copy_to_user((int *)A(kargs32.oldval), kargs.oldval,
-- oldlen[0]))
-- ret = -EFAULT;
-- }
--out:
-- if (kargs.oldval)
-- kfree(kargs.oldval);
-- if (kargs.newval)
-- kfree(kargs.newval);
-- return ret;
-+asmlinkage long sys32_sysctl(struct sysctl_args32 *args)
-+{
-+ return -ENOSYS;
- }
-
-+#endif /* CONFIG_SYSCTL */
-+
- asmlinkage long sys32_newuname(struct new_utsname * name)
- {
- int ret = 0;
-@@ -2219,7 +2381,7 @@
- /*
- * Declare the 32-bit version of the msghdr
- */
--
-+
- struct msghdr32 {
- unsigned int msg_name; /* Socket name */
- int msg_namelen; /* Length of name */
-@@ -2230,74 +2392,132 @@
- unsigned msg_flags;
- };
-
--static inline int
--shape_msg(struct msghdr *mp, struct msghdr32 *mp32)
-+struct cmsghdr32 {
-+ __kernel_size_t32 cmsg_len;
-+ int cmsg_level;
-+ int cmsg_type;
-+};
-+
-+/* Bleech... */
-+#define __CMSG32_NXTHDR(ctl, len, cmsg, cmsglen) __cmsg32_nxthdr((ctl),(len),(cmsg),(cmsglen))
-+#define CMSG32_NXTHDR(mhdr, cmsg, cmsglen) cmsg32_nxthdr((mhdr), (cmsg), (cmsglen))
-+
-+#define CMSG32_ALIGN(len) ( ((len)+sizeof(int)-1) & ~(sizeof(int)-1) )
-+
-+#define CMSG32_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG32_ALIGN(sizeof(struct cmsghdr32))))
-+#define CMSG32_SPACE(len) (CMSG32_ALIGN(sizeof(struct cmsghdr32)) + CMSG32_ALIGN(len))
-+#define CMSG32_LEN(len) (CMSG32_ALIGN(sizeof(struct cmsghdr32)) + (len))
-+
-+#define __CMSG32_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr32) ? \
-+ (struct cmsghdr32 *)(ctl) : \
-+ (struct cmsghdr32 *)NULL)
-+#define CMSG32_FIRSTHDR(msg) __CMSG32_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
-+
-+__inline__ struct cmsghdr32 *__cmsg32_nxthdr(void *__ctl, __kernel_size_t __size,
-+ struct cmsghdr32 *__cmsg, int __cmsg_len)
- {
-- int ret;
-- unsigned int i;
-+ struct cmsghdr32 * __ptr;
-
-- if (!access_ok(VERIFY_READ, mp32, sizeof(*mp32)))
-- return(-EFAULT);
-- ret = __get_user(i, &mp32->msg_name);
-- mp->msg_name = (void *)A(i);
-- ret |= __get_user(mp->msg_namelen, &mp32->msg_namelen);
-- ret |= __get_user(i, &mp32->msg_iov);
-- mp->msg_iov = (struct iovec *)A(i);
-- ret |= __get_user(mp->msg_iovlen, &mp32->msg_iovlen);
-- ret |= __get_user(i, &mp32->msg_control);
-- mp->msg_control = (void *)A(i);
-- ret |= __get_user(mp->msg_controllen, &mp32->msg_controllen);
-- ret |= __get_user(mp->msg_flags, &mp32->msg_flags);
-- return(ret ? -EFAULT : 0);
-+ __ptr = (struct cmsghdr32 *)(((unsigned char *) __cmsg) +
-+ CMSG32_ALIGN(__cmsg_len));
-+ if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
-+ return NULL;
-+
-+ return __ptr;
- }
-
--/*
-- * Verify & re-shape IA32 iovec. The caller must ensure that the
-- * iovec is big enough to hold the re-shaped message iovec.
-- *
-- * Save time not doing verify_area. copy_*_user will make this work
-- * in any case.
-- *
-- * Don't need to check the total size for overflow (cf net/core/iovec.c),
-- * 32-bit sizes can't overflow a 64-bit count.
-- */
-+__inline__ struct cmsghdr32 *cmsg32_nxthdr (struct msghdr *__msg,
-+ struct cmsghdr32 *__cmsg,
-+ int __cmsg_len)
-+{
-+ return __cmsg32_nxthdr(__msg->msg_control, __msg->msg_controllen,
-+ __cmsg, __cmsg_len);
-+}
-
--static inline int
--verify_iovec32(struct msghdr *m, struct iovec *iov, char *address, int mode)
-+static inline int iov_from_user32_to_kern(struct iovec *kiov,
-+ struct iovec32 *uiov32,
-+ int niov)
- {
-- int size, err, ct;
-- struct iovec32 *iov32;
-+ int tot_len = 0;
-
-- if(m->msg_namelen)
-- {
-- if(mode==VERIFY_READ)
-- {
-- err=move_addr_to_kernel(m->msg_name, m->msg_namelen, address);
-- if(err<0)
-- goto out;
-+ while(niov > 0) {
-+ u32 len, buf;
-+
-+ if(get_user(len, &uiov32->iov_len) ||
-+ get_user(buf, &uiov32->iov_base)) {
-+ tot_len = -EFAULT;
-+ break;
- }
-+ tot_len += len;
-+ kiov->iov_base = (void *)AA(buf);
-+ kiov->iov_len = (__kernel_size_t) len;
-+ uiov32++;
-+ kiov++;
-+ niov--;
-+ }
-+ return tot_len;
-+}
-
-- m->msg_name = address;
-- } else
-- m->msg_name = NULL;
-+static inline int msghdr_from_user32_to_kern(struct msghdr *kmsg,
-+ struct msghdr32 *umsg)
-+{
-+ u32 tmp1, tmp2, tmp3;
-+ int err;
-
-- err = -EFAULT;
-- size = m->msg_iovlen * sizeof(struct iovec32);
-- if (copy_from_user(iov, m->msg_iov, size))
-- goto out;
-- m->msg_iov=iov;
-+ err = get_user(tmp1, &umsg->msg_name);
-+ err |= __get_user(tmp2, &umsg->msg_iov);
-+ err |= __get_user(tmp3, &umsg->msg_control);
-+ if (err)
-+ return -EFAULT;
-
-- err = 0;
-- iov32 = (struct iovec32 *)iov;
-- for (ct = m->msg_iovlen; ct-- > 0; ) {
-- iov[ct].iov_len = (__kernel_size_t)iov32[ct].iov_len;
-- iov[ct].iov_base = (void *) A(iov32[ct].iov_base);
-- err += iov[ct].iov_len;
-- }
--out:
-+ kmsg->msg_name = (void *)AA(tmp1);
-+ kmsg->msg_iov = (struct iovec *)AA(tmp2);
-+ kmsg->msg_control = (void *)AA(tmp3);
-+
-+ err = get_user(kmsg->msg_namelen, &umsg->msg_namelen);
-+ err |= get_user(kmsg->msg_iovlen, &umsg->msg_iovlen);
-+ err |= get_user(kmsg->msg_controllen, &umsg->msg_controllen);
-+ err |= get_user(kmsg->msg_flags, &umsg->msg_flags);
-+
- return err;
- }
-
-+/* I've named the args so it is easy to tell whose space the pointers are in. */
-+static int verify_iovec32(struct msghdr *kern_msg, struct iovec *kern_iov,
-+ char *kern_address, int mode)
-+{
-+ int tot_len;
-+
-+ if(kern_msg->msg_namelen) {
-+ if(mode==VERIFY_READ) {
-+ int err = move_addr_to_kernel(kern_msg->msg_name,
-+ kern_msg->msg_namelen,
-+ kern_address);
-+ if(err < 0)
-+ return err;
-+ }
-+ kern_msg->msg_name = kern_address;
-+ } else
-+ kern_msg->msg_name = NULL;
-+
-+ if(kern_msg->msg_iovlen > UIO_FASTIOV) {
-+ kern_iov = kmalloc(kern_msg->msg_iovlen * sizeof(struct iovec),
-+ GFP_KERNEL);
-+ if(!kern_iov)
-+ return -ENOMEM;
-+ }
-+
-+ tot_len = iov_from_user32_to_kern(kern_iov,
-+ (struct iovec32 *)kern_msg->msg_iov,
-+ kern_msg->msg_iovlen);
-+ if(tot_len >= 0)
-+ kern_msg->msg_iov = kern_iov;
-+ else if(kern_msg->msg_iovlen > UIO_FASTIOV)
-+ kfree(kern_iov);
-+
-+ return tot_len;
-+}
-+
- extern __inline__ void
- sockfd_put(struct socket *sock)
- {
-@@ -2305,179 +2525,408 @@
- }
-
- /* XXX This really belongs in some header file... -DaveM */
--#define MAX_SOCK_ADDR 128 /* 108 for Unix domain -
-+#define MAX_SOCK_ADDR 128 /* 108 for Unix domain -
- 16 for IP, 16 for IPX,
- 24 for IPv6,
- about 80 for AX.25 */
-
- extern struct socket *sockfd_lookup(int fd, int *err);
-
--/*
-- * BSD sendmsg interface
-+/* There is a lot of hair here because the alignment rules (and
-+ * thus placement) of cmsg headers and length are different for
-+ * 32-bit apps. -DaveM
- */
--
--int sys32_sendmsg(int fd, struct msghdr32 *msg, unsigned flags)
-+static int cmsghdr_from_user32_to_kern(struct msghdr *kmsg,
-+ unsigned char *stackbuf, int stackbuf_size)
- {
-- struct socket *sock;
-- char address[MAX_SOCK_ADDR];
-- struct iovec iovstack[UIO_FASTIOV], *iov = iovstack;
-- unsigned char ctl[sizeof(struct cmsghdr) + 20]; /* 20 is size of ipv6_pktinfo */
-- unsigned char *ctl_buf = ctl;
-- struct msghdr msg_sys;
-- int err, ctl_len, iov_size, total_len;
--
-- err = -EFAULT;
-- if (shape_msg(&msg_sys, msg))
-- goto out;
-+ struct cmsghdr32 *ucmsg;
-+ struct cmsghdr *kcmsg, *kcmsg_base;
-+ __kernel_size_t32 ucmlen;
-+ __kernel_size_t kcmlen, tmp;
-
-- sock = sockfd_lookup(fd, &err);
-- if (!sock)
-- goto out;
-+ kcmlen = 0;
-+ kcmsg_base = kcmsg = (struct cmsghdr *)stackbuf;
-+ ucmsg = CMSG32_FIRSTHDR(kmsg);
-+ while(ucmsg != NULL) {
-+ if(get_user(ucmlen, &ucmsg->cmsg_len))
-+ return -EFAULT;
-
-- /* do not move before msg_sys is valid */
-- err = -EINVAL;
-- if (msg_sys.msg_iovlen > UIO_MAXIOV)
-- goto out_put;
-+ /* Catch bogons. */
-+ if(CMSG32_ALIGN(ucmlen) <
-+ CMSG32_ALIGN(sizeof(struct cmsghdr32)))
-+ return -ENOBUFS;
-+ if((unsigned long)(((char *)ucmsg - (char *)kmsg->msg_control)
-+ + ucmlen) > kmsg->msg_controllen)
-+ return -EINVAL;
-
-- /* Check whether to allocate the iovec area*/
-- err = -ENOMEM;
-- iov_size = msg_sys.msg_iovlen * sizeof(struct iovec32);
-- if (msg_sys.msg_iovlen > UIO_FASTIOV) {
-- iov = sock_kmalloc(sock->sk, iov_size, GFP_KERNEL);
-- if (!iov)
-- goto out_put;
-+ tmp = ((ucmlen - CMSG32_ALIGN(sizeof(*ucmsg))) +
-+ CMSG_ALIGN(sizeof(struct cmsghdr)));
-+ kcmlen += tmp;
-+ ucmsg = CMSG32_NXTHDR(kmsg, ucmsg, ucmlen);
- }
-+ if(kcmlen == 0)
-+ return -EINVAL;
-
-- /* This will also move the address data into kernel space */
-- err = verify_iovec32(&msg_sys, iov, address, VERIFY_READ);
-- if (err < 0)
-- goto out_freeiov;
-- total_len = err;
-+ /* The kcmlen holds the 64-bit version of the control length.
-+ * It may not be modified as we do not stick it into the kmsg
-+ * until we have successfully copied over all of the data
-+ * from the user.
-+ */
-+ if(kcmlen > stackbuf_size)
-+ kcmsg_base = kcmsg = kmalloc(kcmlen, GFP_KERNEL);
-+ if(kcmsg == NULL)
-+ return -ENOBUFS;
-
-- err = -ENOBUFS;
-+ /* Now copy them over neatly. */
-+ memset(kcmsg, 0, kcmlen);
-+ ucmsg = CMSG32_FIRSTHDR(kmsg);
-+ while(ucmsg != NULL) {
-+ __get_user(ucmlen, &ucmsg->cmsg_len);
-+ tmp = ((ucmlen - CMSG32_ALIGN(sizeof(*ucmsg))) +
-+ CMSG_ALIGN(sizeof(struct cmsghdr)));
-+ kcmsg->cmsg_len = tmp;
-+ __get_user(kcmsg->cmsg_level, &ucmsg->cmsg_level);
-+ __get_user(kcmsg->cmsg_type, &ucmsg->cmsg_type);
-
-- if (msg_sys.msg_controllen > INT_MAX)
-- goto out_freeiov;
-- ctl_len = msg_sys.msg_controllen;
-- if (ctl_len)
-- {
-- if (ctl_len > sizeof(ctl))
-- {
-- err = -ENOBUFS;
-- ctl_buf = sock_kmalloc(sock->sk, ctl_len, GFP_KERNEL);
-- if (ctl_buf == NULL)
-- goto out_freeiov;
-- }
-- err = -EFAULT;
-- if (copy_from_user(ctl_buf, msg_sys.msg_control, ctl_len))
-- goto out_freectl;
-- msg_sys.msg_control = ctl_buf;
-+ /* Copy over the data. */
-+ if(copy_from_user(CMSG_DATA(kcmsg),
-+ CMSG32_DATA(ucmsg),
-+ (ucmlen - CMSG32_ALIGN(sizeof(*ucmsg)))))
-+ goto out_free_efault;
-+
-+ /* Advance. */
-+ kcmsg = (struct cmsghdr *)((char *)kcmsg + CMSG_ALIGN(tmp));
-+ ucmsg = CMSG32_NXTHDR(kmsg, ucmsg, ucmlen);
- }
-- msg_sys.msg_flags = flags;
-
-- if (sock->file->f_flags & O_NONBLOCK)
-- msg_sys.msg_flags |= MSG_DONTWAIT;
-- err = sock_sendmsg(sock, &msg_sys, total_len);
-+ /* Ok, looks like we made it. Hook it up and return success. */
-+ kmsg->msg_control = kcmsg_base;
-+ kmsg->msg_controllen = kcmlen;
-+ return 0;
-
--out_freectl:
-- if (ctl_buf != ctl)
-- sock_kfree_s(sock->sk, ctl_buf, ctl_len);
--out_freeiov:
-- if (iov != iovstack)
-- sock_kfree_s(sock->sk, iov, iov_size);
--out_put:
-- sockfd_put(sock);
--out:
-- return err;
-+out_free_efault:
-+ if(kcmsg_base != (struct cmsghdr *)stackbuf)
-+ kfree(kcmsg_base);
-+ return -EFAULT;
- }
-
--/*
-- * BSD recvmsg interface
-- */
--
--int
--sys32_recvmsg (int fd, struct msghdr32 *msg, unsigned int flags)
-+static void put_cmsg32(struct msghdr *kmsg, int level, int type,
-+ int len, void *data)
- {
-- struct socket *sock;
-- struct iovec iovstack[UIO_FASTIOV];
-- struct iovec *iov=iovstack;
-- struct msghdr msg_sys;
-- unsigned long cmsg_ptr;
-- int err, iov_size, total_len, len;
-+ struct cmsghdr32 *cm = (struct cmsghdr32 *) kmsg->msg_control;
-+ struct cmsghdr32 cmhdr;
-+ int cmlen = CMSG32_LEN(len);
-
-- /* kernel mode address */
-- char addr[MAX_SOCK_ADDR];
-+ if(cm == NULL || kmsg->msg_controllen < sizeof(*cm)) {
-+ kmsg->msg_flags |= MSG_CTRUNC;
-+ return;
-+ }
-
-- /* user mode address pointers */
-- struct sockaddr *uaddr;
-- int *uaddr_len;
-+ if(kmsg->msg_controllen < cmlen) {
-+ kmsg->msg_flags |= MSG_CTRUNC;
-+ cmlen = kmsg->msg_controllen;
-+ }
-+ cmhdr.cmsg_level = level;
-+ cmhdr.cmsg_type = type;
-+ cmhdr.cmsg_len = cmlen;
-
-- err=-EFAULT;
-- if (shape_msg(&msg_sys, msg))
-- goto out;
-+ if(copy_to_user(cm, &cmhdr, sizeof cmhdr))
-+ return;
-+ if(copy_to_user(CMSG32_DATA(cm), data, cmlen - sizeof(struct cmsghdr32)))
-+ return;
-+ cmlen = CMSG32_SPACE(len);
-+ kmsg->msg_control += cmlen;
-+ kmsg->msg_controllen -= cmlen;
-+}
-
-- sock = sockfd_lookup(fd, &err);
-- if (!sock)
-- goto out;
-+static void scm_detach_fds32(struct msghdr *kmsg, struct scm_cookie *scm)
-+{
-+ struct cmsghdr32 *cm = (struct cmsghdr32 *) kmsg->msg_control;
-+ int fdmax = (kmsg->msg_controllen - sizeof(struct cmsghdr32)) / sizeof(int);
-+ int fdnum = scm->fp->count;
-+ struct file **fp = scm->fp->fp;
-+ int *cmfptr;
-+ int err = 0, i;
-
-- err = -EINVAL;
-- if (msg_sys.msg_iovlen > UIO_MAXIOV)
-- goto out_put;
-+ if (fdnum < fdmax)
-+ fdmax = fdnum;
-
-- /* Check whether to allocate the iovec area*/
-- err = -ENOMEM;
-- iov_size = msg_sys.msg_iovlen * sizeof(struct iovec);
-- if (msg_sys.msg_iovlen > UIO_FASTIOV) {
-- iov = sock_kmalloc(sock->sk, iov_size, GFP_KERNEL);
-- if (!iov)
-- goto out_put;
-+ for (i = 0, cmfptr = (int *) CMSG32_DATA(cm); i < fdmax; i++, cmfptr++) {
-+ int new_fd;
-+ err = get_unused_fd();
-+ if (err < 0)
-+ break;
-+ new_fd = err;
-+ err = put_user(new_fd, cmfptr);
-+ if (err) {
-+ put_unused_fd(new_fd);
-+ break;
-+ }
-+ /* Bump the usage count and install the file. */
-+ get_file(fp[i]);
-+ fd_install(new_fd, fp[i]);
- }
-
-+ if (i > 0) {
-+ int cmlen = CMSG32_LEN(i * sizeof(int));
-+ if (!err)
-+ err = put_user(SOL_SOCKET, &cm->cmsg_level);
-+ if (!err)
-+ err = put_user(SCM_RIGHTS, &cm->cmsg_type);
-+ if (!err)
-+ err = put_user(cmlen, &cm->cmsg_len);
-+ if (!err) {
-+ cmlen = CMSG32_SPACE(i * sizeof(int));
-+ kmsg->msg_control += cmlen;
-+ kmsg->msg_controllen -= cmlen;
-+ }
-+ }
-+ if (i < fdnum)
-+ kmsg->msg_flags |= MSG_CTRUNC;
-+
- /*
-- * Save the user-mode address (verify_iovec will change the
-- * kernel msghdr to use the kernel address space)
-+ * All of the files that fit in the message have had their
-+ * usage counts incremented, so we just free the list.
- */
-+ __scm_destroy(scm);
-+}
-
-- uaddr = msg_sys.msg_name;
-- uaddr_len = &msg->msg_namelen;
-- err = verify_iovec32(&msg_sys, iov, addr, VERIFY_WRITE);
-- if (err < 0)
-- goto out_freeiov;
-- total_len=err;
-+/* In these cases we (currently) can just copy to data over verbatim
-+ * because all CMSGs created by the kernel have well defined types which
-+ * have the same layout in both the 32-bit and 64-bit API. One must add
-+ * some special cased conversions here if we start sending control messages
-+ * with incompatible types.
-+ *
-+ * SCM_RIGHTS and SCM_CREDENTIALS are done by hand in recvmsg32 right after
-+ * we do our work. The remaining cases are:
-+ *
-+ * SOL_IP IP_PKTINFO struct in_pktinfo 32-bit clean
-+ * IP_TTL int 32-bit clean
-+ * IP_TOS __u8 32-bit clean
-+ * IP_RECVOPTS variable length 32-bit clean
-+ * IP_RETOPTS variable length 32-bit clean
-+ * (these last two are clean because the types are defined
-+ * by the IPv4 protocol)
-+ * IP_RECVERR struct sock_extended_err +
-+ * struct sockaddr_in 32-bit clean
-+ * SOL_IPV6 IPV6_RECVERR struct sock_extended_err +
-+ * struct sockaddr_in6 32-bit clean
-+ * IPV6_PKTINFO struct in6_pktinfo 32-bit clean
-+ * IPV6_HOPLIMIT int 32-bit clean
-+ * IPV6_FLOWINFO u32 32-bit clean
-+ * IPV6_HOPOPTS ipv6 hop exthdr 32-bit clean
-+ * IPV6_DSTOPTS ipv6 dst exthdr(s) 32-bit clean
-+ * IPV6_RTHDR ipv6 routing exthdr 32-bit clean
-+ * IPV6_AUTHHDR ipv6 auth exthdr 32-bit clean
-+ */
-+static void cmsg32_recvmsg_fixup(struct msghdr *kmsg, unsigned long orig_cmsg_uptr)
-+{
-+ unsigned char *workbuf, *wp;
-+ unsigned long bufsz, space_avail;
-+ struct cmsghdr *ucmsg;
-
-- cmsg_ptr = (unsigned long)msg_sys.msg_control;
-- msg_sys.msg_flags = 0;
-+ bufsz = ((unsigned long)kmsg->msg_control) - orig_cmsg_uptr;
-+ space_avail = kmsg->msg_controllen + bufsz;
-+ wp = workbuf = kmalloc(bufsz, GFP_KERNEL);
-+ if(workbuf == NULL)
-+ goto fail;
-
-- if (sock->file->f_flags & O_NONBLOCK)
-- flags |= MSG_DONTWAIT;
-- err = sock_recvmsg(sock, &msg_sys, total_len, flags);
-+ /* To make this more sane we assume the kernel sends back properly
-+ * formatted control messages. Because of how the kernel will truncate
-+ * the cmsg_len for MSG_TRUNC cases, we need not check that case either.
-+ */
-+ ucmsg = (struct cmsghdr *) orig_cmsg_uptr;
-+ while(((unsigned long)ucmsg) <=
-+ (((unsigned long)kmsg->msg_control) - sizeof(struct cmsghdr))) {
-+ struct cmsghdr32 *kcmsg32 = (struct cmsghdr32 *) wp;
-+ int clen64, clen32;
-+
-+ /* UCMSG is the 64-bit format CMSG entry in user-space.
-+ * KCMSG32 is within the kernel space temporary buffer
-+ * we use to convert into a 32-bit style CMSG.
-+ */
-+ __get_user(kcmsg32->cmsg_len, &ucmsg->cmsg_len);
-+ __get_user(kcmsg32->cmsg_level, &ucmsg->cmsg_level);
-+ __get_user(kcmsg32->cmsg_type, &ucmsg->cmsg_type);
-+
-+ clen64 = kcmsg32->cmsg_len;
-+ copy_from_user(CMSG32_DATA(kcmsg32), CMSG_DATA(ucmsg),
-+ clen64 - CMSG_ALIGN(sizeof(*ucmsg)));
-+ clen32 = ((clen64 - CMSG_ALIGN(sizeof(*ucmsg))) +
-+ CMSG32_ALIGN(sizeof(struct cmsghdr32)));
-+ kcmsg32->cmsg_len = clen32;
-+
-+ ucmsg = (struct cmsghdr *) (((char *)ucmsg) + CMSG_ALIGN(clen64));
-+ wp = (((char *)kcmsg32) + CMSG32_ALIGN(clen32));
-+ }
-+
-+ /* Copy back fixed up data, and adjust pointers. */
-+ bufsz = (wp - workbuf);
-+ copy_to_user((void *)orig_cmsg_uptr, workbuf, bufsz);
-+
-+ kmsg->msg_control = (struct cmsghdr *)
-+ (((char *)orig_cmsg_uptr) + bufsz);
-+ kmsg->msg_controllen = space_avail - bufsz;
-+
-+ kfree(workbuf);
-+ return;
-+
-+fail:
-+ /* If we leave the 64-bit format CMSG chunks in there,
-+ * the application could get confused and crash. So to
-+ * ensure greater recovery, we report no CMSGs.
-+ */
-+ kmsg->msg_controllen += bufsz;
-+ kmsg->msg_control = (void *) orig_cmsg_uptr;
-+}
-+
-+asmlinkage int sys32_sendmsg(int fd, struct msghdr32 *user_msg, unsigned user_flags)
-+{
-+ struct socket *sock;
-+ char address[MAX_SOCK_ADDR];
-+ struct iovec iov[UIO_FASTIOV];
-+ unsigned char ctl[sizeof(struct cmsghdr) + 20];
-+ unsigned char *ctl_buf = ctl;
-+ struct msghdr kern_msg;
-+ int err, total_len;
-+
-+ if(msghdr_from_user32_to_kern(&kern_msg, user_msg))
-+ return -EFAULT;
-+ if(kern_msg.msg_iovlen > UIO_MAXIOV)
-+ return -EINVAL;
-+ err = verify_iovec32(&kern_msg, iov, address, VERIFY_READ);
- if (err < 0)
-- goto out_freeiov;
-- len = err;
-+ goto out;
-+ total_len = err;
-
-- if (uaddr != NULL) {
-- err = move_addr_to_user(addr, msg_sys.msg_namelen, uaddr, uaddr_len);
-- if (err < 0)
-+ if(kern_msg.msg_controllen) {
-+ err = cmsghdr_from_user32_to_kern(&kern_msg, ctl, sizeof(ctl));
-+ if(err)
- goto out_freeiov;
-+ ctl_buf = kern_msg.msg_control;
-+ }
-+ kern_msg.msg_flags = user_flags;
-+
-+ sock = sockfd_lookup(fd, &err);
-+ if (sock != NULL) {
-+ if (sock->file->f_flags & O_NONBLOCK)
-+ kern_msg.msg_flags |= MSG_DONTWAIT;
-+ err = sock_sendmsg(sock, &kern_msg, total_len);
-+ sockfd_put(sock);
- }
-- err = __put_user(msg_sys.msg_flags, &msg->msg_flags);
-- if (err)
-- goto out_freeiov;
-- err = __put_user((unsigned long)msg_sys.msg_control-cmsg_ptr,
-- &msg->msg_controllen);
-- if (err)
-- goto out_freeiov;
-- err = len;
-
-+ /* N.B. Use kfree here, as kern_msg.msg_controllen might change? */
-+ if(ctl_buf != ctl)
-+ kfree(ctl_buf);
- out_freeiov:
-- if (iov != iovstack)
-- sock_kfree_s(sock->sk, iov, iov_size);
--out_put:
-- sockfd_put(sock);
-+ if(kern_msg.msg_iov != iov)
-+ kfree(kern_msg.msg_iov);
- out:
- return err;
- }
-
-+asmlinkage int sys32_recvmsg(int fd, struct msghdr32 *user_msg, unsigned int user_flags)
-+{
-+ struct iovec iovstack[UIO_FASTIOV];
-+ struct msghdr kern_msg;
-+ char addr[MAX_SOCK_ADDR];
-+ struct socket *sock;
-+ struct iovec *iov = iovstack;
-+ struct sockaddr *uaddr;
-+ int *uaddr_len;
-+ unsigned long cmsg_ptr;
-+ int err, total_len, len = 0;
-+
-+ if(msghdr_from_user32_to_kern(&kern_msg, user_msg))
-+ return -EFAULT;
-+ if(kern_msg.msg_iovlen > UIO_MAXIOV)
-+ return -EINVAL;
-+
-+ uaddr = kern_msg.msg_name;
-+ uaddr_len = &user_msg->msg_namelen;
-+ err = verify_iovec32(&kern_msg, iov, addr, VERIFY_WRITE);
-+ if (err < 0)
-+ goto out;
-+ total_len = err;
-+
-+ cmsg_ptr = (unsigned long) kern_msg.msg_control;
-+ kern_msg.msg_flags = 0;
-+
-+ sock = sockfd_lookup(fd, &err);
-+ if (sock != NULL) {
-+ struct scm_cookie scm;
-+
-+ if (sock->file->f_flags & O_NONBLOCK)
-+ user_flags |= MSG_DONTWAIT;
-+ memset(&scm, 0, sizeof(scm));
-+ err = sock->ops->recvmsg(sock, &kern_msg, total_len,
-+ user_flags, &scm);
-+ if(err >= 0) {
-+ len = err;
-+ if(!kern_msg.msg_control) {
-+ if(sock->passcred || scm.fp)
-+ kern_msg.msg_flags |= MSG_CTRUNC;
-+ if(scm.fp)
-+ __scm_destroy(&scm);
-+ } else {
-+ /* If recvmsg processing itself placed some
-+ * control messages into user space, it's is
-+ * using 64-bit CMSG processing, so we need
-+ * to fix it up before we tack on more stuff.
-+ */
-+ if((unsigned long) kern_msg.msg_control != cmsg_ptr)
-+ cmsg32_recvmsg_fixup(&kern_msg, cmsg_ptr);
-+
-+ /* Wheee... */
-+ if(sock->passcred)
-+ put_cmsg32(&kern_msg,
-+ SOL_SOCKET, SCM_CREDENTIALS,
-+ sizeof(scm.creds), &scm.creds);
-+ if(scm.fp != NULL)
-+ scm_detach_fds32(&kern_msg, &scm);
-+ }
-+ }
-+ sockfd_put(sock);
-+ }
-+
-+ if(uaddr != NULL && kern_msg.msg_namelen && err >= 0)
-+ err = move_addr_to_user(addr, kern_msg.msg_namelen, uaddr, uaddr_len);
-+ if(cmsg_ptr != 0 && err >= 0) {
-+ unsigned long ucmsg_ptr = ((unsigned long)kern_msg.msg_control);
-+ __kernel_size_t32 uclen = (__kernel_size_t32) (ucmsg_ptr - cmsg_ptr);
-+ err |= __put_user(uclen, &user_msg->msg_controllen);
-+ }
-+ if(err >= 0)
-+ err = __put_user(kern_msg.msg_flags, &user_msg->msg_flags);
-+ if(kern_msg.msg_iov != iov)
-+ kfree(kern_msg.msg_iov);
-+out:
-+ if(err < 0)
-+ return err;
-+ return len;
-+}
-+
-+extern asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd, off_t *offset, size_t count);
-+
-+asmlinkage int sys32_sendfile(int out_fd, int in_fd, __kernel_off_t32 *offset, s32 count)
-+{
-+ mm_segment_t old_fs = get_fs();
-+ int ret;
-+ off_t of;
-+
-+ if (offset && get_user(of, offset))
-+ return -EFAULT;
-+
-+ set_fs(KERNEL_DS);
-+ ret = sys_sendfile(out_fd, in_fd, offset ? &of : NULL, count);
-+ set_fs(old_fs);
-+
-+ if (offset && put_user(of, offset))
-+ return -EFAULT;
-+
-+ return ret;
-+}
-+
- asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count);
-
- asmlinkage ssize_t sys32_readahead(int fd, u32 pad0, u64 a2, u64 a3,
-@@ -2520,7 +2969,37 @@
- return i;
- }
-
--#else
-+#else /* CONFIG_MODULES */
-+
-+asmlinkage unsigned long
-+sys32_create_module(const char *name_user, size_t size)
-+{
-+ return -ENOSYS;
-+}
-+
-+asmlinkage int
-+sys32_init_module(const char *name_user, struct module *mod_user)
-+{
-+ return -ENOSYS;
-+}
-+
-+asmlinkage int
-+sys32_delete_module(const char *name_user)
-+{
-+ return -ENOSYS;
-+}
-+
-+asmlinkage int
-+sys32_query_module(const char *name_user, int which, char *buf, size_t bufsize,
-+ size_t *ret)
-+{
-+ /* Let the program know about the new interface. Not that
-+ it'll do them much good. */
-+ if (which == 0)
-+ return 0;
-+
-+ return -ENOSYS;
-+}
-
- asmlinkage long
- sys32_get_kernel_syms(struct kernel_sym *table)
-@@ -2528,4 +3007,4 @@
- return -ENOSYS;
- }
-
--#endif
-+#endif /* CONFIG_MODULES */
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/Makefile
---- linux-2.4.20/arch/mips64/kernel/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/Makefile 2003-01-20 14:21:42.000000000 -0600
-@@ -12,25 +12,28 @@
-
- O_TARGET := kernel.o
-
--export-objs = irq.o mips64_ksyms.o pci-dma.o setup.o smp.o
-+export-objs = irq.o mips64_ksyms.o pci-dma.o setup.o smp.o time.o
-
- obj-y := branch.o cpu-probe.o entry.o irq.o proc.o process.o \
- ptrace.o r4k_cache.o r4k_fpu.o r4k_genex.o r4k_switch.o \
- reset.o scall_64.o semaphore.o setup.o signal.o syscall.o \
-- time.o traps.o unaligned.o
-+ traps.o unaligned.o
-
- obj-$(CONFIG_I8259) += i8259.o
- obj-$(CONFIG_IRQ_CPU) += irq_cpu.o
-+obj-$(CONFIG_NEW_TIME_C) += time.o
-
- obj-$(CONFIG_MODULES) += mips64_ksyms.o
--obj-$(CONFIG_MIPS32_COMPAT) += linux32.o scall_o32.o signal32.o ioctl32.o
--obj-$(CONFIG_BINFMT_ELF32) += binfmt_elf32.o
-+obj-$(CONFIG_MIPS32_COMPAT) += linux32.o signal32.o ioctl32.o
-+obj-$(CONFIG_MIPS32_N32) += binfmt_elfn32.o scall_n32.o
-+obj-$(CONFIG_MIPS32_O32) += binfmt_elfo32.o scall_o32.o
- obj-$(CONFIG_SMP) += smp.o
-
- ifndef CONFIG_MAPPED_PCI_IO
- obj-y += pci-dma.o
- endif
-
--AFLAGS_r4k_genex.o := -P
-+CFLAGS_cpu-probe.o = $(shell if $(CC) $(CFLAGS) -Wa,-mdaddi -c -o /dev/null -xc /dev/null >/dev/null 2>&1; then echo "-DHAVE_AS_SET_DADDI"; fi)
-+AFLAGS_r4k_genex.o = -P
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/pci-dma.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/pci-dma.c
---- linux-2.4.20/arch/mips64/kernel/pci-dma.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/pci-dma.c 2002-09-28 17:28:38.000000000 -0500
-@@ -30,7 +30,7 @@
-
- if (ret != NULL) {
- memset(ret, 0, size);
-- *dma_handle = bus_to_baddr(hwdev->bus->number, __pa(ret));
-+ *dma_handle = bus_to_baddr(hwdev->bus, __pa(ret));
- #ifdef CONFIG_NONCOHERENT_IO
- dma_cache_wback_inv((unsigned long) ret, size);
- ret = UNCAC_ADDR(ret);
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/proc.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/proc.c
---- linux-2.4.20/arch/mips64/kernel/proc.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/proc.c 2002-11-06 19:47:46.000000000 -0600
-@@ -145,8 +145,8 @@
- }
-
- struct seq_operations cpuinfo_op = {
-- start: c_start,
-- next: c_next,
-- stop: c_stop,
-- show: show_cpuinfo,
-+ .start = c_start,
-+ .next = c_next,
-+ .stop = c_stop,
-+ .show = show_cpuinfo,
- };
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/process.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/process.c
---- linux-2.4.20/arch/mips64/kernel/process.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/process.c 2003-02-20 13:46:34.000000000 -0600
-@@ -30,6 +30,7 @@
- #include <asm/io.h>
- #include <asm/elf.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
-
- ATTRIB_NORET void cpu_idle(void)
- {
-@@ -46,32 +47,30 @@
- }
- }
-
--struct task_struct *last_task_used_math = NULL;
--
- asmlinkage void ret_from_fork(void);
-
-+void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp)
-+{
-+ unsigned long status;
-+
-+ /* New thread looses kernel privileges. */
-+ status = regs->cp0_status & ~(ST0_CU0|ST0_FR|ST0_KSU);
-+ status |= KSU_USER;
-+ status |= (current->thread.mflags & MF_32BIT_REGS) ? 0 : ST0_FR;
-+ regs->cp0_status = status;
-+ current->used_math = 0;
-+ loose_fpu();
-+ regs->cp0_epc = pc;
-+ regs->regs[29] = sp;
-+ current->thread.current_ds = USER_DS;
-+}
-+
- void exit_thread(void)
- {
-- /* Forget lazy fpu state */
-- if (IS_FPU_OWNER()) {
-- if (mips_cpu.options & MIPS_CPU_FPU) {
-- __enable_fpu();
-- __asm__ __volatile__("cfc1\t$0,$31");
-- }
-- CLEAR_FPU_OWNER();
-- }
- }
-
- void flush_thread(void)
- {
-- /* Forget lazy fpu state */
-- if (IS_FPU_OWNER()) {
-- if (mips_cpu.options & MIPS_CPU_FPU) {
-- __enable_fpu();
-- __asm__ __volatile__("cfc1\t$0,$31");
-- }
-- CLEAR_FPU_OWNER();
-- }
- }
-
- int copy_thread(int nr, unsigned long clone_flags, unsigned long usp,
-@@ -83,10 +82,10 @@
-
- childksp = (unsigned long)p + KERNEL_STACK_SIZE - 32;
-
-- if (IS_FPU_OWNER()) {
-- if (mips_cpu.options & MIPS_CPU_FPU)
-- save_fp(p);
-+ if (is_fpu_owner()) {
-+ save_fp(p);
- }
-+
- /* set up new TSS. */
- childregs = (struct pt_regs *) childksp - 1;
- *childregs = *regs;
-@@ -107,11 +106,11 @@
-
- /*
- * New tasks loose permission to use the fpu. This accelerates context
-- * switching for most programs since they don't use the fpu.
-+ * switching for most programs since they don't use the fpu. Most
-+ * MIPS IV CPUs use ST0_CU3 as ST0_XX flag so we leave it unchanged.
- */
-- p->thread.cp0_status = read_32bit_cp0_register(CP0_STATUS) &
-- ~(ST0_CU3|ST0_CU2|ST0_CU1|ST0_KSU);
-- childregs->cp0_status &= ~(ST0_CU3|ST0_CU2|ST0_CU1);
-+ p->thread.cp0_status = read_c0_status() & ~(ST0_CU2|ST0_CU1|ST0_KSU);
-+ childregs->cp0_status &= ~(ST0_CU2|ST0_CU1);
-
- return 0;
- }
-@@ -119,33 +118,8 @@
- /* Fill in the fpu structure for a core dump.. */
- int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
- {
-- /* We actually store the FPU info in the task->thread
-- * area.
-- */
-- if (regs->cp0_status & ST0_CU1) {
-- memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
-- return 1;
-- }
--
-- return 0; /* Task didn't use the fpu at all. */
--}
--
--/* Fill in the user structure for a core dump.. */
--void dump_thread(struct pt_regs *regs, struct user *dump)
--{
-- dump->magic = CMAGIC;
-- dump->start_code = current->mm->start_code;
-- dump->start_data = current->mm->start_data;
-- dump->start_stack = regs->regs[29] & ~(PAGE_SIZE - 1);
-- dump->u_tsize = (current->mm->end_code - dump->start_code)
-- >> PAGE_SHIFT;
-- dump->u_dsize = (current->mm->brk + (PAGE_SIZE - 1) - dump->start_data)
-- >> PAGE_SHIFT;
-- dump->u_ssize = (current->mm->start_stack - dump->start_stack +
-- PAGE_SIZE - 1) >> PAGE_SHIFT;
-- memcpy(&dump->regs[0], regs, sizeof(struct pt_regs));
-- memcpy(&dump->regs[EF_SIZE/4], &current->thread.fpu,
-- sizeof(current->thread.fpu));
-+ memcpy(r, &current->thread.fpu, sizeof(current->thread.fpu));
-+ return 1;
- }
-
- /*
-@@ -156,25 +130,26 @@
- int retval;
-
- __asm__ __volatile__(
-- "move\t$6, $sp\n\t"
-- "move\t$4, %5\n\t"
-- "li\t$2, %1\n\t"
-- "syscall\n\t"
-- "beq\t$6, $sp, 1f\n\t"
-- "move\t$4, %3\n\t"
-- "jalr\t%4\n\t"
-- "move\t$4, $2\n\t"
-- "li\t$2, %2\n\t"
-- "syscall\n"
-- "1:\tmove\t%0, $2"
-- :"=r" (retval)
-- :"i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
-- "r" (flags | CLONE_VM)
--
-- /* The called subroutine might have destroyed any of the
-- * at, result, argument or temporary registers ... */
-+ " move $6, $sp \n"
-+ " move $4, %5 \n"
-+ " li $2, %1 \n"
-+ " syscall \n"
-+ " beq $6, $sp, 1f \n"
-+ " move $4, %3 \n"
-+ " jalr %4 \n"
-+ " move $4, $2 \n"
-+ " li $2, %2 \n"
-+ " syscall \n"
-+ "1: move %0, $2 \n"
-+ : "=r" (retval)
-+ : "i" (__NR_clone), "i" (__NR_exit), "r" (arg), "r" (fn),
-+ "r" (flags | CLONE_VM)
-+ /*
-+ * The called subroutine might have destroyed any of the
-+ * at, result, argument or temporary registers ...
-+ */
- : "$2", "$3", "$4", "$5", "$6", "$7", "$8",
-- "$9","$10","$11","$12","$13","$14","$15","$24","$25");
-+ "$9","$10","$11","$12","$13","$14","$15","$24","$25","$31");
-
- return retval;
- }
-@@ -230,7 +205,7 @@
- }
-
- out:
-- if (current->thread.mflags & MF_32BIT) /* Kludge for 32-bit ps */
-+ if (current->thread.mflags & MF_32BIT_ADDR) /* Kludge for 32-bit ps */
- pc &= 0xffffffff;
-
- return pc;
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/ptrace.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ptrace.c
---- linux-2.4.20/arch/mips64/kernel/ptrace.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/ptrace.c 2003-01-27 12:14:34.000000000 -0600
-@@ -23,6 +23,7 @@
- #include <linux/user.h>
-
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/mipsregs.h>
- #include <asm/pgtable.h>
- #include <asm/page.h>
-@@ -112,32 +113,8 @@
- break;
- case FPR_BASE ... FPR_BASE + 31:
- if (child->used_math) {
-- unsigned long long *fregs
-- = (unsigned long long *)
-- &child->thread.fpu.hard.fp_regs[0];
-- if (mips_cpu.options & MIPS_CPU_FPU) {
--#ifndef CONFIG_SMP
-- if (last_task_used_math == child) {
-- __enable_fpu();
-- save_fp(child);
-- __disable_fpu();
-- last_task_used_math = NULL;
-- }
--#endif
-- } else {
-- fregs = (unsigned long long *)
-- child->thread.fpu.soft.regs;
-- }
--
-- /*
-- * The odd registers are actually the high
-- * order bits of the values stored in the even
-- * registers.
-- */
-- if (addr & 1)
-- tmp = (unsigned long) (fregs[((addr & ~1) - 32)] >> 32);
-- else
-- tmp = (unsigned long) (fregs[(addr - 32)] & 0xffffffff);
-+ unsigned long *fregs = get_fpu_regs(child);
-+ tmp = fregs[addr - FPR_BASE];
- } else {
- tmp = -EIO;
- }
-@@ -199,40 +176,14 @@
- regs->regs[addr] = data;
- break;
- case FPR_BASE ... FPR_BASE + 31: {
-- unsigned long long *fregs;
-- fregs = (unsigned long long *)&child->thread.fpu.hard.fp_regs[0];
-- if (child->used_math) {
--#ifndef CONFIG_SMP
-- if (last_task_used_math == child)
-- if (mips_cpu.options & MIPS_CPU_FPU) {
-- __enable_fpu();
-- save_fp(child);
-- __disable_fpu();
-- last_task_used_math = NULL;
-- regs->cp0_status &= ~ST0_CU1;
-- } else {
-- fregs = (unsigned long long *)
-- child->thread.fpu.soft.regs;
-- }
--#endif
-- } else {
-+ unsigned long *fregs = get_fpu_regs(child);
-+ if (!child->used_math) {
- /* FP not yet used */
- memset(&child->thread.fpu.hard, ~0,
- sizeof(child->thread.fpu.hard));
- child->thread.fpu.hard.control = 0;
- }
-- /*
-- * The odd registers are actually the high order bits
-- * of the values stored in the even registers - unless
-- * we're using r2k_switch.S.
-- */
-- if (addr & 1) {
-- fregs[(addr & ~1) - FPR_BASE] &= 0xffffffff;
-- fregs[(addr & ~1) - FPR_BASE] |= ((unsigned long) data) << 32;
-- } else {
-- fregs[addr - FPR_BASE] &= ~0xffffffffLL;
-- fregs[addr - FPR_BASE] |= data;
-- }
-+ fregs[addr - FPR_BASE] = data;
- break;
- }
- case PC:
-@@ -383,32 +334,8 @@
- break;
- case FPR_BASE ... FPR_BASE + 31:
- if (child->used_math) {
-- unsigned long long *fregs
-- = (unsigned long long *)
-- &child->thread.fpu.hard.fp_regs[0];
-- if (mips_cpu.options & MIPS_CPU_FPU) {
--#ifndef CONFIG_SMP
-- if (last_task_used_math == child) {
-- __enable_fpu();
-- save_fp(child);
-- __disable_fpu();
-- last_task_used_math = NULL;
-- }
--#endif
-- } else {
-- fregs = (unsigned long long *)
-- child->thread.fpu.soft.regs;
-- }
--
-- /*
-- * The odd registers are actually the high
-- * order bits of the values stored in the even
-- * registers.
-- */
-- if (addr & 1)
-- tmp = (unsigned long) (fregs[((addr & ~1) - 32)] >> 32);
-- else
-- tmp = (unsigned long) (fregs[(addr - 32)] & 0xffffffff);
-+ unsigned long *fregs = get_fpu_regs(child);
-+ tmp = fregs[addr - FPR_BASE];
- } else {
- tmp = -EIO;
- }
-@@ -470,42 +397,14 @@
- regs->regs[addr] = data;
- break;
- case FPR_BASE ... FPR_BASE + 31: {
-- unsigned long long *fregs = (unsigned long long *)
-- &child->thread.fpu.hard.fp_regs[0];
--
-- if (child->used_math) {
--#ifndef CONFIG_SMP
-- if (mips_cpu.options & MIPS_CPU_FPU) {
-- if (last_task_used_math == child) {
-- __enable_fpu();
-- save_fp(child);
-- __disable_fpu();
-- last_task_used_math = NULL;
-- regs->cp0_status &= ~ST0_CU1;
-- } else {
-- fregs = (unsigned long long *)
-- child->thread.fpu.soft.regs;
-- }
-- }
--#endif
-- } else {
-+ unsigned long *fregs = get_fpu_regs(child);
-+ if (!child->used_math) {
- /* FP not yet used */
- memset(&child->thread.fpu.hard, ~0,
- sizeof(child->thread.fpu.hard));
- child->thread.fpu.hard.control = 0;
- }
-- /*
-- * The odd registers are actually the high order bits
-- * of the values stored in the even registers - unless
-- * we're using r2k_switch.S.
-- */
-- if (addr & 1) {
-- fregs[(addr & ~1) - FPR_BASE] &= 0xffffffff;
-- fregs[(addr & ~1) - FPR_BASE] |= ((unsigned long) data) << 32;
-- } else {
-- fregs[addr - FPR_BASE] &= ~0xffffffffLL;
-- fregs[addr - FPR_BASE] |= data;
-- }
-+ fregs[addr - FPR_BASE] = data;
- break;
- }
- case PC:
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/r4k_genex.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_genex.S
---- linux-2.4.20/arch/mips64/kernel/r4k_genex.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_genex.S 2003-01-16 08:40:58.000000000 -0600
-@@ -5,6 +5,7 @@
- *
- * Copyright (C) 1994 - 1999 by Ralf Baechle
- * Copyright (C) 1999 Silicon Graphics
-+ * Copyright (C) 2002 Maciej W. Rozycki
- *
- * Low level exception handling
- */
-@@ -15,7 +16,7 @@
- #include <asm/mipsregs.h>
- #include <asm/stackframe.h>
- #include <asm/exception.h>
--#include <asm/r4kcacheops.h>
-+#include <asm/cacheops.h>
-
- BUILD_HANDLER adel ade ade silent /* #4 */
- BUILD_HANDLER ades ade ade silent /* #5 */
-@@ -27,29 +28,38 @@
- BUILD_HANDLER ov ov sti silent /* #12 */
- BUILD_HANDLER tr tr sti silent /* #13 */
- BUILD_HANDLER fpe fpe fpe silent /* #15 */
-+ BUILD_HANDLER mdmx mdmx sti silent /* #22 */
- BUILD_HANDLER watch watch sti verbose /* #23 */
- BUILD_HANDLER mcheck mcheck cli verbose /* #24 */
- BUILD_HANDLER reserved reserved sti verbose /* others */
-
-+
- __INIT
-
-+/* A temporary overflow handler used by check_daddi(). */
-+
-+ BUILD_HANDLER daddi_ov daddi_ov none silent /* #12 */
-+
-+
- /* General exception handler for CPUs with virtual coherency exception.
- *
-- * Be careful when changing this, it has to be at most 128 bytes to fit
-- * into space reserved for the exception handler.
-+ * Be careful when changing this, it has to be at most 256 (as a special
-+ * exception) bytes to fit into space reserved for the exception handler.
- */
-- NESTED(except_vec3_r4000, 0, sp)
-+ .set push
- .set noat
--#if defined(R5432_CP0_INTERRUPT_WAR)
-- mfc0 k0, CP0_INDEX
--#endif
-+NESTED(except_vec3_r4000, 0, sp)
- mfc0 k1, CP0_CAUSE
-- andi k1, k1, 0x7c
- li k0, 31<<2
-+ andi k1, k1, 0x7c
-+ .set push
-+ .set noreorder
-+ .set nomacro
- beq k1, k0, handle_vced
- li k0, 14<<2
- beq k1, k0, handle_vcei
- dsll k1, k1, 1
-+ .set pop
- ld k0, exception_handlers(k1)
- jr k0
-
-@@ -60,51 +70,61 @@
- * store will be re-executed.
- */
- handle_vced:
-- mfc0 k0, CP0_BADVADDR
-+ dmfc0 k0, CP0_BADVADDR
- li k1, -4 # Is this ...
- and k0, k1 # ... really needed?
- mtc0 zero, CP0_TAGLO
- cache Index_Store_Tag_D,(k0)
- cache Hit_Writeback_Inv_SD,(k0)
-- lui k0, %hi(vced_count)
-- lw k1, %lo(vced_count)(k0)
-+ dla k0, vced_count
-+ lw k1, (k0)
- addiu k1, 1
-- sw k1, %lo(vced_count)(k0)
-+ sw k1, (k0)
- eret
-
- handle_vcei:
-- mfc0 k0, CP0_BADVADDR
-+ dmfc0 k0, CP0_BADVADDR
- cache Hit_Writeback_Inv_SD,(k0) # also cleans pi
-- lui k0, %hi(vcei_count)
-- lw k1, %lo(vcei_count)(k0)
-+ dla k0, vcei_count
-+ lw k1, (k0)
- addiu k1, 1
-- sw k1, %lo(vcei_count)(k0)
-+ sw k1, (k0)
- eret
-+END(except_vec3_r4000)
-+ .set pop
-
-- END(except_vec3_r4000)
-- .set at
-
-- /* General exception vector for all other CPUs. */
-- NESTED(except_vec3_generic, 0, sp)
-+/* General exception vector for all other CPUs.
-+ *
-+ * Be careful when changing this, it has to be at most 128 bytes
-+ * to fit into space reserved for the exception handler.
-+ */
-+ .set push
- .set noat
-+NESTED(except_vec3_generic, 0, sp)
-+#if defined(R5432_CP0_INTERRUPT_WAR)
-+ mfc0 k0, CP0_INDEX
-+#endif
- mfc0 k1, CP0_CAUSE
- andi k1, k1, 0x7c
- dsll k1, k1, 1
- ld k0, exception_handlers(k1)
- jr k0
-- nop
-- END(except_vec3_generic)
-- .set at
-+END(except_vec3_generic)
-+ .set pop
-+
-
- /*
-- * Special interrupt vector for embedded MIPS. This is a dedicated interrupt
-- * vector which reduces interrupt processing overhead. The jump instruction
-- * will be inserted here at initialization time. This handler may only be 8
-- * bytes in size!
-+ * Special interrupt vector for MIPS64 ISA & embedded MIPS processors.
-+ * This is a dedicated interrupt exception vector which reduces the
-+ * interrupt processing overhead. The jump instruction will be replaced
-+ * at the initialization time.
-+ *
-+ * Be careful when changing this, it has to be at most 128 bytes
-+ * to fit into space reserved for the exception handler.
- */
- NESTED(except_vec4, 0, sp)
- 1: j 1b /* Dummy, will be replaced */
-- nop
-- END(except_vec4)
-+END(except_vec4)
-
- __FINIT
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/r4k_switch.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_switch.S
---- linux-2.4.20/arch/mips64/kernel/r4k_switch.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/r4k_switch.S 2002-11-04 13:39:56.000000000 -0600
-@@ -23,6 +23,19 @@
-
- .set mips3
-
-+#define PF_USEDFPU 0x00100000 /* task used FPU this quantum (SMP) */
-+#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
-+
-+/*
-+ * [jsun] FPU context is saved if and only if the process has used FPU in
-+ * the current run (PF_USEDFPU). In any case, the CU1 bit for user space
-+ * STATUS register should be 0, so that a process *always* starts its
-+ * userland with FPU disabled after each context switch.
-+ *
-+ * FPU will be enabled as soon as the process accesses FPU again, through
-+ * do_cpu() trap.
-+ */
-+
- /*
- * task_struct *resume(task_struct *prev, task_struct *next)
- */
-@@ -35,6 +48,38 @@
- sd ra, THREAD_REG31(a0)
-
- /*
-+ * check if we need to save FPU registers
-+ */
-+ ld t0, TASK_FLAGS(a0)
-+ li t1, PF_USEDFPU
-+ and t2, t0, t1
-+ beqz t2, 1f
-+ nor t1, zero, t1
-+
-+ /*
-+ * clear PF_USEDFPU bit in task flags
-+ */
-+ and t0, t0, t1
-+ sd t0, TASK_FLAGS(a0)
-+
-+ /*
-+ * clear saved user stack CU1 bit
-+ */
-+ ld t0, ST_OFF(a0)
-+ li t1, ~ST0_CU1
-+ and t0, t0, t1
-+ sd t0, ST_OFF(a0)
-+
-+
-+ sll t2, t0, 5
-+ bgez t2, 2f
-+ sdc1 $f0, (THREAD_FPU + 0x00)(a0)
-+ fpu_save_16odd a0
-+2:
-+ fpu_save_16even a0 t1 # clobbers t1
-+1:
-+
-+ /*
- * The order of restoring the registers takes care of the race
- * updating $28, $29 and kernelsp without disabling ints.
- */
-@@ -57,51 +102,10 @@
- END(resume)
-
- /*
-- * Do lazy fpu context switch. Saves FPU context to the process in a0
-- * and loads the new context of the current process.
-- */
--
--#define ST_OFF (KERNEL_STACK_SIZE - 32 - PT_SIZE + PT_STATUS)
--
--LEAF(lazy_fpu_switch)
-- mfc0 t0, CP0_STATUS # enable cp1
-- li t3, ST0_CU1
-- or t0, t3
-- mtc0 t0, CP0_STATUS
-- FPU_ENABLE_HAZARD
--
-- beqz a0, 2f # Save floating point state
-- nor t3, zero, t3
--
-- ld t1, ST_OFF(a0) # last thread looses fpu
-- and t1, t3
-- sd t1, ST_OFF(a0)
-- sll t2, t1, 5
-- bgez t2, 1f
-- sdc1 $f0, (THREAD_FPU + 0x00)(a0)
-- fpu_save_16odd a0
--1:
-- fpu_save_16even a0 t1 # clobbers t1
--2:
--
-- beqz a1, 3f
--
-- sll t0, t0, 5 # load new fp state
-- bgez t0, 1f
-- ldc1 $f0, (THREAD_FPU + 0x00)(a1)
-- fpu_restore_16odd a1
--1:
-- .set reorder
-- fpu_restore_16even a1, t0 # clobbers t0
--3:
-- jr ra
-- END(lazy_fpu_switch)
--
--/*
- * Save a thread's fp context.
- */
- .set noreorder
--LEAF(save_fp)
-+LEAF(_save_fp)
- mfc0 t0, CP0_STATUS
- sll t1, t0, 5
- bgez t1, 1f # 16 register mode?
-@@ -111,12 +115,12 @@
- fpu_save_16even a0 t1 # clobbers t1
- jr ra
- sdc1 $f0, (THREAD_FPU + 0x00)(a0)
-- END(save_fp)
-+ END(_save_fp)
-
- /*
- * Restore a thread's fp context.
- */
--LEAF(restore_fp)
-+LEAF(_restore_fp)
- mfc0 t0, CP0_STATUS
- sll t1, t0, 5
- bgez t1, 1f # 16 register mode?
-@@ -128,7 +132,7 @@
-
- jr ra
- ldc1 $f0, (THREAD_FPU + 0x00)(a0)
-- END(restore_fp)
-+ END(_restore_fp)
-
- /*
- * Load the FPU with signalling NANS. This bit pattern we're using has
-@@ -140,7 +144,7 @@
-
- #define FPU_DEFAULT 0x00000000
-
--LEAF(init_fpu)
-+LEAF(_init_fpu)
- mfc0 t0, CP0_STATUS
- li t1, ST0_CU1
- or t0, t1
-@@ -188,4 +192,4 @@
- dmtc1 t0, $f28
- jr ra
- dmtc1 t0, $f30
-- END(init_fpu)
-+ END(_init_fpu)
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/scall_64.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_64.S
---- linux-2.4.20/arch/mips64/kernel/scall_64.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_64.S 2002-12-03 08:23:05.000000000 -0600
-@@ -17,7 +17,8 @@
- #include <asm/unistd.h>
- #include <asm/offset.h>
-
--#ifndef CONFIG_MIPS32_COMPAT
-+#ifndef CONFIG_BINFMT_ELF32
-+/* Neither O32 nor N32, so define handle_sys here */
- #define handle_sys64 handle_sys
- #endif
-
-@@ -130,237 +131,203 @@
-
- .align 3
- sys_call_table:
-- PTR sys_syscall /* 5000 */
-- PTR sys_exit
-- PTR sys_fork
-- PTR sys_read
-+ PTR sys_read /* 5000 */
- PTR sys_write
-- PTR sys_open /* 5005 */
-+ PTR sys_open
- PTR sys_close
-- PTR sys_waitpid
-- PTR sys_creat
-- PTR sys_link
-- PTR sys_unlink /* 5010 */
-- PTR sys_execve
-- PTR sys_chdir
-- PTR sys_time
-- PTR sys_mknod
-- PTR sys_chmod /* 5015 */
-- PTR sys_lchown
-- PTR sys_ni_syscall
-- PTR sys_stat
-+ PTR sys_newstat
-+ PTR sys_newfstat /* 5005 */
-+ PTR sys_newlstat
-+ PTR sys_poll
- PTR sys_lseek
-- PTR sys_getpid /* 5020 */
-- PTR sys_mount
-- PTR sys_oldumount
-- PTR sys_setuid
-- PTR sys_getuid
-- PTR sys_stime /* 5025 */
-- PTR sys_ni_syscall /* ptrace */
-- PTR sys_alarm
-- PTR sys_fstat
-+ PTR sys_mmap
-+ PTR sys_mprotect /* 5010 */
-+ PTR sys_munmap
-+ PTR sys_brk
-+ PTR sys_rt_sigaction
-+ PTR sys_rt_sigprocmask
-+ PTR sys_ioctl /* 5015 */
-+ PTR sys_pread
-+ PTR sys_pwrite
-+ PTR sys_readv
-+ PTR sys_writev
-+ PTR sys_access /* 5020 */
-+ PTR sys_pipe
-+ PTR sys_select
-+ PTR sys_sched_yield
-+ PTR sys_mremap
-+ PTR sys_msync /* 5025 */
-+ PTR sys_mincore
-+ PTR sys_madvise
-+ PTR sys_shmget
-+ PTR sys_shmat
-+ PTR sys_shmctl /* 5030 */
-+ PTR sys_dup
-+ PTR sys_dup2
- PTR sys_pause
-- PTR sys_utime /* 5030 */
-- PTR sys_ni_syscall
-- PTR sys_ni_syscall
-- PTR sys_access
-- PTR sys_nice
-- PTR sys_ni_syscall /* 5035 */
-- PTR sys_sync
-- PTR sys_kill
-- PTR sys_rename
-+ PTR sys_nanosleep
-+ PTR sys_getitimer /* 5035 */
-+ PTR sys_setitimer
-+ PTR sys_alarm
-+ PTR sys_getpid
-+ PTR sys_sendfile
-+ PTR sys_socket /* 5040 */
-+ PTR sys_connect
-+ PTR sys_accept
-+ PTR sys_sendto
-+ PTR sys_recvfrom
-+ PTR sys_sendmsg /* 5045 */
-+ PTR sys_recvmsg
-+ PTR sys_shutdown
-+ PTR sys_bind
-+ PTR sys_listen
-+ PTR sys_getsockname /* 5050 */
-+ PTR sys_getpeername
-+ PTR sys_socketpair
-+ PTR sys_setsockopt
-+ PTR sys_getsockopt
-+ PTR sys_clone /* 5055 */
-+ PTR sys_fork
-+ PTR sys_execve
-+ PTR sys_exit
-+ PTR sys_wait4
-+ PTR sys_kill /* 5060 */
-+ PTR sys_newuname
-+ PTR sys_semget
-+ PTR sys_semop
-+ PTR sys_semctl
-+ PTR sys_shmdt /* 5065 */
-+ PTR sys_msgget
-+ PTR sys_msgsnd
-+ PTR sys_msgrcv
-+ PTR sys_msgctl
-+ PTR sys_fcntl /* 5070 */
-+ PTR sys_flock
-+ PTR sys_fsync
-+ PTR sys_fdatasync
-+ PTR sys_truncate
-+ PTR sys_ftruncate /* 5075 */
-+ PTR sys_getdents
-+ PTR sys_getcwd
-+ PTR sys_chdir
-+ PTR sys_fchdir
-+ PTR sys_rename /* 5080 */
- PTR sys_mkdir
-- PTR sys_rmdir /* 5040 */
-- PTR sys_dup
-- PTR sys_pipe
-+ PTR sys_rmdir
-+ PTR sys_creat
-+ PTR sys_link
-+ PTR sys_unlink /* 5085 */
-+ PTR sys_symlink
-+ PTR sys_readlink
-+ PTR sys_chmod
-+ PTR sys_fchmod
-+ PTR sys_chown /* 5090 */
-+ PTR sys_fchown
-+ PTR sys_lchown
-+ PTR sys_umask
-+ PTR sys_gettimeofday
-+ PTR sys_getrlimit /* 5095 */
-+ PTR sys_getrusage
-+ PTR sys_sysinfo
- PTR sys_times
-- PTR sys_ni_syscall
-- PTR sys_brk /* 5045 */
-- PTR sys_setgid
-+ PTR sys_ptrace
-+ PTR sys_getuid /* 5100 */
-+ PTR sys_syslog
- PTR sys_getgid
-- PTR sys_ni_syscall /* was signal 2 */
-- PTR sys_geteuid
-- PTR sys_getegid /* 5050 */
-- PTR sys_acct
-- PTR sys_umount
-- PTR sys_ni_syscall
-- PTR sys_ioctl
-- PTR sys_fcntl /* 5055 */
-- PTR sys_ni_syscall
-+ PTR sys_setuid
-+ PTR sys_setgid
-+ PTR sys_geteuid /* 5105 */
-+ PTR sys_getegid
- PTR sys_setpgid
-- PTR sys_ni_syscall
-- PTR sys_ni_syscall
-- PTR sys_umask /* 5060 */
-- PTR sys_chroot
-- PTR sys_ustat
-- PTR sys_dup2
- PTR sys_getppid
-- PTR sys_getpgrp /* 5065 */
-- PTR sys_setsid
-- PTR sys_sigaction
-- PTR sys_sgetmask
-- PTR sys_ssetmask
-- PTR sys_setreuid /* 5070 */
-+ PTR sys_getpgrp
-+ PTR sys_setsid /* 5110 */
-+ PTR sys_setreuid
- PTR sys_setregid
-- PTR sys_sigsuspend
-- PTR sys_sigpending
-- PTR sys_sethostname
-- PTR sys_setrlimit /* 5075 */
-- PTR sys_getrlimit
-- PTR sys_getrusage
-- PTR sys_gettimeofday
-- PTR sys_settimeofday
-- PTR sys_getgroups /* 5080 */
-+ PTR sys_getgroups
- PTR sys_setgroups
-- PTR sys_ni_syscall /* old_select */
-- PTR sys_symlink
-- PTR sys_lstat
-- PTR sys_readlink /* 5085 */
-- PTR sys_uselib
-- PTR sys_swapon
-- PTR sys_reboot
-- PTR sys_ni_syscall /* old_readdir */
-- PTR sys_mmap /* 5090 */
-- PTR sys_munmap
-- PTR sys_truncate
-- PTR sys_ftruncate
-- PTR sys_fchmod
-- PTR sys_fchown /* 5095 */
-- PTR sys_getpriority
-- PTR sys_setpriority
-- PTR sys_ni_syscall
-- PTR sys_statfs
-- PTR sys_fstatfs /* 5100 */
-- PTR sys_ni_syscall /* sys_ioperm */
-- PTR sys_socketcall
-- PTR sys_syslog
-- PTR sys_setitimer
-- PTR sys_getitimer /* 5105 */
-- PTR sys_newstat
-- PTR sys_newlstat
-- PTR sys_newfstat
-- PTR sys_ni_syscall
-- PTR sys_ni_syscall /* sys_ioperm *//* 5110 */
-- PTR sys_vhangup
-- PTR sys_ni_syscall /* was sys_idle */
-- PTR sys_ni_syscall /* sys_vm86 */
-- PTR sys_wait4
-- PTR sys_swapoff /* 5115 */
-- PTR sys_sysinfo
-- PTR sys_ipc
-- PTR sys_fsync
-- PTR sys_sigreturn
-- PTR sys_clone /* 5120 */
-- PTR sys_setdomainname
-- PTR sys_newuname
-- PTR sys_ni_syscall /* sys_modify_ldt */
-- PTR sys_adjtimex
-- PTR sys_mprotect /* 5125 */
-- PTR sys_sigprocmask
-- PTR sys_create_module
-- PTR sys_init_module
-- PTR sys_delete_module
-- PTR sys_get_kernel_syms /* 5130 */
-- PTR sys_quotactl
-+ PTR sys_setresuid /* 5115 */
-+ PTR sys_getresuid
-+ PTR sys_setresgid
-+ PTR sys_getresgid
- PTR sys_getpgid
-- PTR sys_fchdir
-- PTR sys_bdflush
-- PTR sys_sysfs /* 5135 */
-- PTR sys_personality
-- PTR sys_ni_syscall /* for afs_syscall */
-- PTR sys_setfsuid
-+ PTR sys_setfsuid /* 5120 */
- PTR sys_setfsgid
-- PTR sys_llseek /* 5140 */
-- PTR sys_getdents
-- PTR sys_select
-- PTR sys_flock
-- PTR sys_msync
-- PTR sys_readv /* 5145 */
-- PTR sys_writev
-- PTR sys_cacheflush
-- PTR sys_cachectl
-- PTR sys_sysmips
-- PTR sys_ni_syscall /* 5150 */
- PTR sys_getsid
-- PTR sys_fdatasync
-- PTR sys_sysctl
-- PTR sys_mlock
-- PTR sys_munlock /* 5155 */
-- PTR sys_mlockall
-- PTR sys_munlockall
-+ PTR sys_capget
-+ PTR sys_capset
-+ PTR sys_rt_sigpending /* 5125 */
-+ PTR sys_rt_sigtimedwait
-+ PTR sys_rt_sigqueueinfo
-+ PTR sys_rt_sigsuspend
-+ PTR sys_sigaltstack
-+ PTR sys_utime /* 5130 */
-+ PTR sys_mknod
-+ PTR sys_personality
-+ PTR sys_ustat
-+ PTR sys_statfs
-+ PTR sys_fstatfs /* 5135 */
-+ PTR sys_sysfs
-+ PTR sys_getpriority
-+ PTR sys_setpriority
- PTR sys_sched_setparam
-- PTR sys_sched_getparam
-- PTR sys_sched_setscheduler /* 5160 */
-+ PTR sys_sched_getparam /* 5140 */
-+ PTR sys_sched_setscheduler
- PTR sys_sched_getscheduler
-- PTR sys_sched_yield
- PTR sys_sched_get_priority_max
- PTR sys_sched_get_priority_min
-- PTR sys_sched_rr_get_interval /* 5165 */
-- PTR sys_nanosleep
-- PTR sys_mremap
-- PTR sys_accept
-- PTR sys_bind
-- PTR sys_connect /* 5170 */
-- PTR sys_getpeername
-- PTR sys_getsockname
-- PTR sys_getsockopt
-- PTR sys_listen
-- PTR sys_recv /* 5175 */
-- PTR sys_recvfrom
-- PTR sys_recvmsg
-- PTR sys_send
-- PTR sys_sendmsg
-- PTR sys_sendto /* 5180 */
-- PTR sys_setsockopt
-- PTR sys_shutdown
-- PTR sys_socket
-- PTR sys_socketpair
-- PTR sys_setresuid /* 5185 */
-- PTR sys_getresuid
-+ PTR sys_sched_rr_get_interval /* 5145 */
-+ PTR sys_mlock
-+ PTR sys_munlock
-+ PTR sys_mlockall
-+ PTR sys_munlockall
-+ PTR sys_vhangup /* 5150 */
-+ PTR sys_pivot_root
-+ PTR sys_sysctl
-+ PTR sys_prctl
-+ PTR sys_adjtimex
-+ PTR sys_setrlimit /* 5155 */
-+ PTR sys_chroot
-+ PTR sys_sync
-+ PTR sys_acct
-+ PTR sys_settimeofday
-+ PTR sys_mount /* 5160 */
-+ PTR sys_umount
-+ PTR sys_swapon
-+ PTR sys_swapoff
-+ PTR sys_reboot
-+ PTR sys_sethostname /* 5165 */
-+ PTR sys_setdomainname
-+ PTR sys_create_module
-+ PTR sys_init_module
-+ PTR sys_delete_module
-+ PTR sys_get_kernel_syms /* 5170 */
- PTR sys_query_module
-- PTR sys_poll
-+ PTR sys_quotactl
- PTR sys_nfsservctl
-- PTR sys_setresgid /* 5190 */
-- PTR sys_getresgid
-- PTR sys_prctl
-- PTR sys_rt_sigreturn
-- PTR sys_rt_sigaction
-- PTR sys_rt_sigprocmask /* 5195 */
-- PTR sys_rt_sigpending
-- PTR sys_rt_sigtimedwait
-- PTR sys_rt_sigqueueinfo
-- PTR sys_rt_sigsuspend
-- PTR sys_pread /* 5200 */
-- PTR sys_pwrite
-- PTR sys_chown
-- PTR sys_getcwd
-- PTR sys_capget
-- PTR sys_capset /* 5205 */
-- PTR sys_sigaltstack
-- PTR sys_sendfile
-- PTR sys_ni_syscall
-- PTR sys_ni_syscall
-- PTR sys_pivot_root /* 5210 */
-- PTR sys_mincore
-- PTR sys_madvise
-- PTR sys_getdents64
-- PTR sys_ni_syscall
-- PTR sys_gettid /* 5215 */
-+ PTR sys_ni_syscall /* res. for getpmsg */
-+ PTR sys_ni_syscall /* 5175 for putpmsg */
-+ PTR sys_ni_syscall /* res. for afs_syscall */
-+ PTR sys_ni_syscall /* res. for security */
-+ PTR sys_gettid
- PTR sys_readahead
-- PTR sys_setxattr
-+ PTR sys_setxattr /* 5180 */
- PTR sys_lsetxattr
- PTR sys_fsetxattr
-- PTR sys_getxattr /* 5220 */
-+ PTR sys_getxattr
- PTR sys_lgetxattr
-- PTR sys_fgetxattr
-+ PTR sys_fgetxattr /* 5185 */
- PTR sys_listxattr
- PTR sys_llistxattr
-- PTR sys_flistxattr /* 5225 */
-+ PTR sys_flistxattr
- PTR sys_removexattr
-- PTR sys_lremovexattr
-+ PTR sys_lremovexattr /* 5190 */
- PTR sys_fremovexattr
-- PTR sys_tkill, 2
-- PTR sys_ni_syscall, 0 /* 5230 res. for sendfile64 */
-- PTR sys_ni_syscall, 0 /* res. for futex */
-- PTR sys_ni_syscall, 0 /* res. for sched_setaffinity */
-- PTR sys_ni_syscall, 0 /* res. for sched_getaffinity */
-+ PTR sys_tkill
-+ PTR sys_time
-+ PTR sys_ni_syscall /* res. for futex */
-+ PTR sys_ni_syscall /* 5195 rs. sched_setaffinity */
-+ PTR sys_ni_syscall /* res. f. sched_getaffinity */
-+ PTR sys_cacheflush
-+ PTR sys_cachectl
-+ PTR sys_sysmips
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/scall_n32.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_n32.S
---- linux-2.4.20/arch/mips64/kernel/scall_n32.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_n32.S 2002-12-04 21:03:43.000000000 -0600
-@@ -0,0 +1,327 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995, 96, 97, 98, 99, 2000, 01 by Ralf Baechle
-+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-+ * Copyright (C) 2001 MIPS Technologies, Inc.
-+ */
-+#include <linux/config.h>
-+#include <asm/asm.h>
-+#include <linux/errno.h>
-+#include <asm/current.h>
-+#include <asm/mipsregs.h>
-+#include <asm/regdef.h>
-+#include <asm/stackframe.h>
-+#include <asm/unistd.h>
-+
-+/* This duplicates the definition from <linux/sched.h> */
-+#define PT_TRACESYS 0x00000002 /* tracing system calls */
-+
-+/* This duplicates the definition from <asm/signal.h> */
-+#define SIGILL 4 /* Illegal instruction (ANSI). */
-+
-+#ifndef CONFIG_MIPS32_O32
-+/* No O32, so define handle_sys here */
-+#define handle_sysn32 handle_sys
-+#endif
-+
-+ .align 5
-+NESTED(handle_sysn32, PT_SIZE, sp)
-+ ld t1, PT_EPC(sp) # skip syscall on return
-+
-+ subu t0, v0, __NR_N32_Linux # check syscall number
-+ sltiu t0, t0, __NR_N32_Linux_syscalls + 1
-+ daddiu t1, 4 # skip to next instruction
-+ beqz t0, not_n32_scall
-+ sd t1, PT_EPC(sp)
-+
-+ dsll t0, v0, 3 # offset into table
-+ ld t2, (sysn32_call_table - (__NR_N32_Linux * 8))(t0)
-+
-+ sd a3, PT_R26(sp) # save a3 for syscall restarting
-+
-+ ld t0, TASK_PTRACE($28) # syscall tracing enabled?
-+ andi t0, PT_TRACESYS
-+ bnez t0, trace_a_syscall
-+
-+ jalr t2 # Do The Real Thing (TM)
-+
-+ li t0, -EMAXERRNO - 1 # error?
-+ sltu t0, t0, v0
-+ sd t0, PT_R7(sp) # set error flag
-+ beqz t0, 1f
-+
-+ negu v0 # error
-+ sd v0, PT_R0(sp) # set flag for syscall restarting
-+1: sd v0, PT_R2(sp) # result
-+
-+ret_from_sys_call:
-+ mfc0 t0, CP0_STATUS
-+ xori t0, t0, 1
-+ ori t0, t0, 1
-+ mtc0 t0, CP0_STATUS
-+
-+ ld t2, TASK_NEED_RESCHED($28)
-+ bnez t2, reschedule
-+ lw v0, TASK_SIGPENDING($28)
-+ bnez v0, signal_return
-+
-+restore_all:
-+ RESTORE_SOME
-+ RESTORE_SP
-+ eret
-+
-+/* Put this behind restore_all for the sake of the branch prediction. */
-+signal_return:
-+ .type signal_return, @function
-+
-+ mfc0 t0, CP0_STATUS
-+ ori t0, t0, 1
-+ mtc0 t0, CP0_STATUS
-+
-+ move a0, zero
-+ move a1, sp
-+ jal do_signal
-+ b restore_all
-+
-+reschedule:
-+ SAVE_STATIC
-+ jal schedule
-+ b ret_from_sys_call
-+
-+/* ------------------------------------------------------------------------ */
-+
-+trace_a_syscall:
-+ SAVE_STATIC
-+ sd t2,PT_R1(sp)
-+ jal syscall_trace
-+ ld t2,PT_R1(sp)
-+
-+ ld a0, PT_R4(sp) # Restore argument registers
-+ ld a1, PT_R5(sp)
-+ ld a2, PT_R6(sp)
-+ ld a3, PT_R7(sp)
-+ jalr t2
-+
-+ li t0, -EMAXERRNO - 1 # error?
-+ sltu t0, t0, v0
-+ sd t0, PT_R7(sp) # set error flag
-+ beqz t0, 1f
-+
-+ negu v0 # error
-+ sd v0, PT_R0(sp) # set flag for syscall restarting
-+1: sd v0, PT_R2(sp) # result
-+
-+ jal syscall_trace
-+ j ret_from_sys_call
-+
-+not_n32_scall:
-+ /* This is not an n32 compatibility syscall, pass it on to
-+ the n64 syscall handlers. */
-+ j handle_sys64
-+
-+ END(handle_sysn32)
-+
-+EXPORT(sysn32_call_table)
-+ PTR sys_read /* 6000 */
-+ PTR sys_write
-+ PTR sys_open
-+ PTR sys_close
-+ PTR sys32_newstat
-+ PTR sys32_newfstat /* 6005 */
-+ PTR sys32_newlstat
-+ PTR sys_poll
-+ PTR sys_lseek
-+ PTR sys_mmap
-+ PTR sys_mprotect /* 6010 */
-+ PTR sys_munmap
-+ PTR sys_brk
-+ PTR sys32_rt_sigaction
-+ PTR sys32_rt_sigprocmask
-+ PTR sys32_ioctl /* 6015 */
-+ PTR sys_pread
-+ PTR sys_pwrite
-+ PTR sys32_readv
-+ PTR sys32_writev
-+ PTR sys_access /* 6020 */
-+ PTR sys_pipe
-+ PTR sys32_select
-+ PTR sys_sched_yield
-+ PTR sys_mremap
-+ PTR sys_msync /* 6025 */
-+ PTR sys_mincore
-+ PTR sys_madvise
-+ PTR sys_shmget
-+ PTR sys_shmat
-+ PTR sys_shmctl /* 6030 */
-+ PTR sys_dup
-+ PTR sys_dup2
-+ PTR sys_pause
-+ PTR sys32_nanosleep
-+ PTR sys32_getitimer /* 6035 */
-+ PTR sys32_setitimer
-+ PTR sys32_alarm
-+ PTR sys_getpid
-+ PTR sys32_sendfile
-+ PTR sys_socket /* 6040 */
-+ PTR sys_connect
-+ PTR sys_accept
-+ PTR sys_sendto
-+ PTR sys_recvfrom
-+ PTR sys32_sendmsg /* 6045 */
-+ PTR sys32_recvmsg
-+ PTR sys_shutdown
-+ PTR sys_bind
-+ PTR sys_listen
-+ PTR sys_getsockname /* 6050 */
-+ PTR sys_getpeername
-+ PTR sys_socketpair
-+ PTR sys32_setsockopt
-+ PTR sys_getsockopt
-+ PTR sys_clone /* 6055 */
-+ PTR sys_fork
-+ PTR sys32_execve
-+ PTR sys_exit
-+ PTR sys32_wait4
-+ PTR sys_kill /* 6060 */
-+ PTR sys32_newuname
-+ PTR sys_semget
-+ PTR sys_semop
-+ PTR sys_semctl
-+ PTR sys_shmdt /* 6065 */
-+ PTR sys_msgget
-+ PTR sys_msgsnd
-+ PTR sys_msgrcv
-+ PTR sys_msgctl
-+ PTR sys32_fcntl /* 6070 */
-+ PTR sys_flock
-+ PTR sys_fsync
-+ PTR sys_fdatasync
-+ PTR sys_truncate
-+ PTR sys_ftruncate /* 6075 */
-+ PTR sys32_getdents
-+ PTR sys_getcwd
-+ PTR sys_chdir
-+ PTR sys_fchdir
-+ PTR sys_rename /* 6080 */
-+ PTR sys_mkdir
-+ PTR sys_rmdir
-+ PTR sys_creat
-+ PTR sys_link
-+ PTR sys_unlink /* 6085 */
-+ PTR sys_symlink
-+ PTR sys_readlink
-+ PTR sys_chmod
-+ PTR sys_fchmod
-+ PTR sys_chown /* 6090 */
-+ PTR sys_fchown
-+ PTR sys_lchown
-+ PTR sys_umask
-+ PTR sys32_gettimeofday
-+ PTR sys32_getrlimit /* 6095 */
-+ PTR sys32_getrusage
-+ PTR sys32_sysinfo
-+ PTR sys32_times
-+ PTR sys_ptrace
-+ PTR sys_getuid /* 6100 */
-+ PTR sys_syslog
-+ PTR sys_getgid
-+ PTR sys_setuid
-+ PTR sys_setgid
-+ PTR sys_geteuid /* 6105 */
-+ PTR sys_getegid
-+ PTR sys_setpgid
-+ PTR sys_getppid
-+ PTR sys_getpgrp
-+ PTR sys_setsid /* 6110 */
-+ PTR sys_setreuid
-+ PTR sys_setregid
-+ PTR sys_getgroups
-+ PTR sys_setgroups
-+ PTR sys_setresuid /* 6115 */
-+ PTR sys_getresuid
-+ PTR sys_setresgid
-+ PTR sys_getresgid
-+ PTR sys_getpgid
-+ PTR sys_setfsuid /* 6120 */
-+ PTR sys_setfsgid
-+ PTR sys_getsid
-+ PTR sys_capget
-+ PTR sys_capset
-+ PTR sys32_rt_sigpending /* 6125 */
-+ PTR sys32_rt_sigtimedwait
-+ PTR sys32_rt_sigqueueinfo
-+ PTR sys32_rt_sigsuspend
-+ PTR sys32_sigaltstack
-+ PTR sys32_utime /* 6130 */
-+ PTR sys_mknod
-+ PTR sys32_personality
-+ PTR sys_ustat
-+ PTR sys32_statfs
-+ PTR sys32_fstatfs /* 6135 */
-+ PTR sys_sysfs
-+ PTR sys_getpriority
-+ PTR sys_setpriority
-+ PTR sys_sched_setparam
-+ PTR sys_sched_getparam /* 6140 */
-+ PTR sys_sched_setscheduler
-+ PTR sys_sched_getscheduler
-+ PTR sys_sched_get_priority_max
-+ PTR sys_sched_get_priority_min
-+ PTR sys32_sched_rr_get_interval /* 6145 */
-+ PTR sys_mlock
-+ PTR sys_munlock
-+ PTR sys_mlockall
-+ PTR sys_munlockall
-+ PTR sys_vhangup /* 6150 */
-+ PTR sys_pivot_root
-+ PTR sys32_sysctl
-+ PTR sys_prctl
-+ PTR sys32_adjtimex
-+ PTR sys32_setrlimit /* 6155 */
-+ PTR sys_chroot
-+ PTR sys_sync
-+ PTR sys_acct
-+ PTR sys32_settimeofday
-+ PTR sys_mount /* 6160 */
-+ PTR sys_umount
-+ PTR sys_swapon
-+ PTR sys_swapoff
-+ PTR sys_reboot
-+ PTR sys_sethostname /* 6165 */
-+ PTR sys_setdomainname
-+ PTR sys_create_module
-+ PTR sys_init_module
-+ PTR sys_delete_module
-+ PTR sys_get_kernel_syms /* 6170 */
-+ PTR sys_query_module
-+ PTR sys_quotactl
-+ PTR sys_nfsservctl
-+ PTR sys_ni_syscall /* res. for getpmsg */
-+ PTR sys_ni_syscall /* 6175 for putpmsg */
-+ PTR sys_ni_syscall /* res. for afs_syscall */
-+ PTR sys_ni_syscall /* res. for security */
-+ PTR sys_gettid
-+ PTR sys32_readahead
-+ PTR sys_setxattr /* 6180 */
-+ PTR sys_lsetxattr
-+ PTR sys_fsetxattr
-+ PTR sys_getxattr
-+ PTR sys_lgetxattr
-+ PTR sys_fgetxattr /* 6185 */
-+ PTR sys_listxattr
-+ PTR sys_llistxattr
-+ PTR sys_flistxattr
-+ PTR sys_removexattr
-+ PTR sys_lremovexattr /* 6190 */
-+ PTR sys_fremovexattr
-+ PTR sys_tkill
-+ PTR sys_time
-+ PTR sys_ni_syscall /* res. for futex */
-+ PTR sys_ni_syscall /* 5195 rs. sched_setaffinity */
-+ PTR sys_ni_syscall /* res. f. sched_getaffinity */
-+ PTR sys_cacheflush
-+ PTR sys_cachectl
-+ PTR sys_sysmips
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/scall_o32.S linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_o32.S
---- linux-2.4.20/arch/mips64/kernel/scall_o32.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/scall_o32.S 2003-01-22 20:12:59.000000000 -0600
-@@ -33,8 +33,8 @@
- .set at
- ld t1, PT_EPC(sp) # skip syscall on return
-
-- subu t0, v0, __NR_Linux32 # check syscall number
-- sltiu t0, t0, __NR_Linux32_syscalls + 1
-+ subu t0, v0, __NR_O32_Linux # check syscall number
-+ sltiu t0, t0, __NR_O32_Linux_syscalls + 1
- daddiu t1, 4 # skip to next instruction
- beqz t0, not_o32_scall
- sd t1, PT_EPC(sp)
-@@ -47,8 +47,8 @@
-
- /* XXX Put both in one cacheline, should save a bit. */
- dsll t0, v0, 3 # offset into table
-- ld t2, (sys_call_table - (__NR_Linux32 * 8))(t0) # syscall routine
-- lbu t3, (sys_narg_table - __NR_Linux32)(v0) # number of arguments
-+ ld t2, (sys_call_table - (__NR_O32_Linux * 8))(t0)
-+ lbu t3, (sys_narg_table - __NR_O32_Linux)(v0)
-
- subu t0, t3, 5 # 5 or more arguments?
- sd a3, PT_R26(sp) # save a3 for syscall restarting
-@@ -184,9 +184,13 @@
- j ret_from_sys_call
-
- not_o32_scall:
-- /* This is not an 32-bit compatibility syscall, pass it on to
-+ /* This is not an o32 compatibility syscall, pass it on to
- the 64-bit syscall handlers. */
-+#ifdef CONFIG_MIPS32_N32
-+ j handle_sysn32
-+#else
- j handle_sys64
-+#endif
-
- illegal_syscall:
- /* This also isn't a 64-bit syscall, throw an error. */
-@@ -197,7 +201,7 @@
- j ret_from_sys_call
- END(handle_sys)
-
-- LEAF(mips_atomic_set)
-+LEAF(mips_atomic_set)
- andi v0, a1, 3 # must be word aligned
- bnez v0, bad_alignment
-
-@@ -205,7 +209,7 @@
- daddiu a0, a1, 4
- or a0, a0, a1
- and a0, a0, v1
-- bltz a0, bad_address
-+ bnez a0, bad_address
-
- /* Ok, this is the ll/sc case. World is sane :-) */
- 1: ll v0, (a1)
-@@ -240,12 +244,12 @@
- jr ra
- END(mips_atomic_set)
-
-- LEAF(sys32_sysmips)
-+LEAF(sys32_sysmips)
- beq a0, MIPS_ATOMIC_SET, mips_atomic_set
- j sys_sysmips
- END(sys32_sysmips)
-
-- LEAF(sys32_syscall)
-+LEAF(sys32_syscall)
- ld t0, PT_R29(sp) # user sp
-
- sltu v0, a0, __NR_Linux + __NR_Linux_syscalls + 1
-@@ -253,8 +257,8 @@
-
- dsll v0, a0, 3
- dla v1, sys32_syscall
-- ld t2, (sys_call_table - (__NR_Linux32 * 8))(v0) # function pointer
-- lbu t3, (sys_narg_table - __NR_Linux32)(a0) # number of arguments
-+ ld t2, (sys_call_table - (__NR_O32_Linux * 8))(v0)
-+ lbu t3, (sys_narg_table - __NR_O32_Linux)(a0)
-
- li v0, -EINVAL
- beq t2, v1, out # do not recurse
-@@ -269,7 +273,7 @@
- ld v1, THREAD_CURDS($28)
- or v0, v0, t1
- and v1, v1, v0
-- bltz v1, efault
-+ bnez v1, efault
-
- move a0, a1 # shift argument registers
- move a1, a2
-@@ -330,7 +334,7 @@
- sys sys_chmod 2 /* 4015 */
- sys sys_lchown 3
- sys sys_ni_syscall 0
-- sys sys_stat 2
-+ sys sys_ni_syscall 0 /* was sys_stat */
- sys sys_lseek 3
- sys sys_getpid 0 /* 4020 */
- sys sys_mount 5
-@@ -340,7 +344,7 @@
- sys sys_stime 1 /* 4025 */
- sys sys32_ptrace 4
- sys sys32_alarm 1
-- sys sys_fstat 2
-+ sys sys_ni_syscall 0 /* was sys_fstat */
- sys sys_pause 0
- sys sys32_utime 2 /* 4030 */
- sys sys_ni_syscall 0
-@@ -394,9 +398,9 @@
- sys sys32_settimeofday 2
- sys sys_getgroups 2 /* 4080 */
- sys sys_setgroups 2
-- sys sys_ni_syscall 0 /* old_select */
-+ sys sys_ni_syscall 0 /* old_select */
- sys sys_symlink 2
-- sys sys_lstat 2
-+ sys sys_ni_syscall 0 /* was sys_lstat */
- sys sys_readlink 3 /* 4085 */
- sys sys_uselib 1
- sys sys_swapon 2
-@@ -428,7 +432,7 @@
- sys sys_ni_syscall 0 /* sys_vm86 */
- sys sys32_wait4 4
- sys sys_swapoff 1 /* 4115 */
-- sys sys_sysinfo 1
-+ sys sys32_sysinfo 1
- sys sys32_ipc 6
- sys sys_fsync 1
- sys sys32_sigreturn 0
-@@ -519,12 +523,12 @@
- sys sys_capget 2
- sys sys_capset 2 /* 4205 */
- sys sys32_sigaltstack 0
-- sys sys_sendfile 4
-+ sys sys32_sendfile 4
- sys sys_ni_syscall 0
- sys sys_ni_syscall 0
-- sys sys_mmap2 6 /* 4210 */
-- sys sys_truncate64 2
-- sys sys_ftruncate64 2
-+ sys sys32_mmap2 6 /* 4210 */
-+ sys sys32_truncate64 4
-+ sys sys32_ftruncate64 4
- sys sys_newstat 2
- sys sys_newlstat 2
- sys sys_newfstat 2 /* 4215 */
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/setup.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/setup.c
---- linux-2.4.20/arch/mips64/kernel/setup.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/setup.c 2003-02-20 21:26:16.000000000 -0600
-@@ -13,6 +13,7 @@
- #include <linux/config.h>
- #include <linux/errno.h>
- #include <linux/init.h>
-+#include <linux/ioport.h>
- #include <linux/sched.h>
- #include <linux/kernel.h>
- #include <linux/mm.h>
-@@ -71,6 +72,8 @@
- struct ide_ops *ide_ops;
- #endif
-
-+extern void * __rd_start, * __rd_end;
-+
- extern struct rtc_ops no_rtc_ops;
- struct rtc_ops *rtc_ops;
-
-@@ -89,7 +92,7 @@
-
- unsigned char aux_device_present;
-
--extern void load_mmu(void);
-+extern char _ftext, _etext, _fdata, _edata, _end;
-
- static char command_line[CL_SIZE] = { 0, };
- char saved_command_line[CL_SIZE];
-@@ -102,12 +105,8 @@
- const unsigned long mips_io_port_base = -1;
- EXPORT_SYMBOL(mips_io_port_base);
-
--extern void ip22_setup(void);
--extern void ip27_setup(void);
--extern void ip32_setup(void);
--
- /*
-- * isa_slot_offset is the address where E(ISA) busaddress 0 is is mapped
-+ * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
- * for the processor.
- */
- unsigned long isa_slot_offset;
-@@ -119,6 +118,9 @@
- extern ATTRIB_NORET asmlinkage void start_kernel(void);
- extern void prom_init(int, char **, char **, int *);
-
-+static struct resource code_resource = { "Kernel code" };
-+static struct resource data_resource = { "Kernel data" };
-+
- asmlinkage void __init init_arch(int argc, char **argv, char **envp,
- int *prom_vec)
- {
-@@ -145,8 +147,8 @@
- * Maybe because the kernel is in ckseg0 and not xkphys? Clear it
- * anyway ...
- */
-- clear_cp0_status(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3);
-- set_cp0_status(ST0_CU0|ST0_KX|ST0_SX|ST0_FR);
-+ clear_c0_status(ST0_BEV|ST0_TS|ST0_CU1|ST0_CU2|ST0_CU3);
-+ set_c0_status(ST0_CU0|ST0_KX|ST0_SX|ST0_FR);
-
- start_kernel();
- }
-@@ -243,7 +245,12 @@
- }
- }
-
--void bootmem_init(void)
-+
-+#define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
-+#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
-+#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
-+
-+static inline void bootmem_init(void)
- {
- #ifdef CONFIG_BLK_DEV_INITRD
- unsigned long tmp;
-@@ -252,19 +259,26 @@
- unsigned long bootmap_size;
- unsigned long start_pfn, max_pfn;
- int i;
-- extern int _end;
--
--#define PFN_UP(x) (((x) + PAGE_SIZE - 1) >> PAGE_SHIFT)
--#define PFN_DOWN(x) ((x) >> PAGE_SHIFT)
--#define PFN_PHYS(x) ((x) << PAGE_SHIFT)
-
-+#ifdef CONFIG_BLK_DEV_INITRD
-+ tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
-+ if (tmp < (unsigned long)&_end)
-+ tmp += PAGE_SIZE;
-+ initrd_header = (unsigned long *)tmp;
-+ if (initrd_header[0] == 0x494E5244) {
-+ initrd_start = (unsigned long)&initrd_header[2];
-+ initrd_end = initrd_start + initrd_header[1];
-+ }
-+ start_pfn = PFN_UP(CPHYSADDR((&_end)+(initrd_end - initrd_start) + PAGE_SIZE));
-+#else
- /*
- * Partially used pages are not usable - thus
- * we are rounding upwards.
-- * start_pfn = PFN_UP(__pa(&_end));
- */
-- start_pfn = PFN_UP((unsigned long)&_end - KSEG0);
-+ start_pfn = PFN_UP(CPHYSADDR(&_end));
-+#endif /* CONFIG_BLK_DEV_INITRD */
-
-+#ifndef CONFIG_SGI_IP27
- /* Find the highest page frame number we have available. */
- max_pfn = 0;
- for (i = 0; i < boot_mem_map.nr_map; i++) {
-@@ -329,35 +343,95 @@
-
- /* Reserve the bootmap memory. */
- reserve_bootmem(PFN_PHYS(start_pfn), bootmap_size);
-+#endif
-
- #ifdef CONFIG_BLK_DEV_INITRD
--#error "Initrd is broken, please fit it."
-- tmp = (((unsigned long)&_end + PAGE_SIZE-1) & PAGE_MASK) - 8;
-- if (tmp < (unsigned long)&_end)
-- tmp += PAGE_SIZE;
-- initrd_header = (unsigned long *)tmp;
-- if (initrd_header[0] == 0x494E5244) {
-- initrd_start = (unsigned long)&initrd_header[2];
-- initrd_end = initrd_start + initrd_header[1];
-- initrd_below_start_ok = 1;
-- if (initrd_end > memory_end) {
-+ /* Board specific code should have set up initrd_start and initrd_end */
-+ ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0);
-+ if (&__rd_start != &__rd_end) {
-+ initrd_start = (unsigned long)&__rd_start;
-+ initrd_end = (unsigned long)&__rd_end;
-+ }
-+ initrd_below_start_ok = 1;
-+ if (initrd_start) {
-+ unsigned long initrd_size = ((unsigned char *)initrd_end) - ((unsigned char *)initrd_start);
-+ printk("Initial ramdisk at: 0x%p (%lu bytes)\n",
-+ (void *)initrd_start,
-+ initrd_size);
-+/* FIXME: is this right? */
-+#ifndef CONFIG_SGI_IP27
-+ if (CPHYSADDR(initrd_end) > PFN_PHYS(max_pfn)) {
- printk("initrd extends beyond end of memory "
-- "(0x%08lx > 0x%08lx)\ndisabling initrd\n",
-- initrd_end,memory_end);
-+ "(0x%p > 0x%p)\ndisabling initrd\n",
-+ (void *)CPHYSADDR(initrd_end),
-+ (void *)PFN_PHYS(max_pfn));
- initrd_start = 0;
-- } else
-- *memory_start_p = initrd_end;
-+ }
-+#endif /* !CONFIG_SGI_IP27 */
- }
- #endif
-+}
-+
-+static inline void resource_init(void)
-+{
-+ int i;
-+
-+ code_resource.start = virt_to_bus(&_ftext);
-+ code_resource.end = virt_to_bus(&_etext) - 1;
-+ data_resource.start = virt_to_bus(&_fdata);
-+ data_resource.end = virt_to_bus(&_edata) - 1;
-+
-+ /*
-+ * Request address space for all standard RAM.
-+ */
-+ for (i = 0; i < boot_mem_map.nr_map; i++) {
-+ struct resource *res;
-+
-+ res = alloc_bootmem(sizeof(struct resource));
-+ switch (boot_mem_map.map[i].type) {
-+ case BOOT_MEM_RAM:
-+ case BOOT_MEM_ROM_DATA:
-+ res->name = "System RAM";
-+ break;
-+ case BOOT_MEM_RESERVED:
-+ default:
-+ res->name = "reserved";
-+ }
-+
-+ res->start = boot_mem_map.map[i].addr;
-+ res->end = boot_mem_map.map[i].addr +
-+ boot_mem_map.map[i].size - 1;
-+
-+ res->flags = IORESOURCE_MEM | IORESOURCE_BUSY;
-+ request_resource(&iomem_resource, res);
-+
-+ /*
-+ * We dont't know which RAM region contains kernel data,
-+ * so we try it repeatedly and let the resource manager
-+ * test it.
-+ */
-+ request_resource(res, &code_resource);
-+ request_resource(res, &data_resource);
-+ }
-+}
-
- #undef PFN_UP
- #undef PFN_DOWN
- #undef PFN_PHYS
-
--}
-
- void __init setup_arch(char **cmdline_p)
- {
-+ extern void decstation_setup(void);
-+ extern void ip22_setup(void);
-+ extern void ip27_setup(void);
-+ extern void ip32_setup(void);
-+ extern void swarm_setup(void);
-+ extern void malta_setup(void);
-+
-+#ifdef CONFIG_DECSTATION
-+ decstation_setup();
-+#endif
- #ifdef CONFIG_SGI_IP22
- ip22_setup();
- #endif
-@@ -367,7 +441,7 @@
- #ifdef CONFIG_SGI_IP32
- ip32_setup();
- #endif
--#ifdef CONFIG_SIBYTE_SWARM
-+#ifdef CONFIG_SIBYTE_BOARD
- swarm_setup();
- #endif
- #ifdef CONFIG_MIPS_MALTA
-@@ -385,6 +459,8 @@
- bootmem_init();
-
- paging_init();
-+
-+ resource_init();
- }
-
- int __init fpu_disable(char *s)
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/signal32.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal32.c
---- linux-2.4.20/arch/mips64/kernel/signal32.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal32.c 2002-11-04 13:39:56.000000000 -0600
-@@ -25,14 +25,13 @@
- #include <asm/uaccess.h>
- #include <asm/ucontext.h>
- #include <asm/system.h>
-+#include <asm/fpu.h>
-
- #define DEBUG_SIG 0
-
- #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
-
- extern asmlinkage int do_signal32(sigset_t *oldset, struct pt_regs *regs);
--extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
--extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-
- extern asmlinkage void syscall_trace(void);
-
-@@ -257,58 +256,9 @@
- return ret;
- }
-
--static inline int restore_thread_fp_context(struct sigcontext *sc)
--{
-- u64 *pfreg = &current->thread.fpu.soft.regs[0];
-- int err = 0;
--
-- /*
-- * Copy all 32 64-bit values.
-- */
--
--#define restore_fpr(i) \
-- do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
--
-- restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3);
-- restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7);
-- restore_fpr( 8); restore_fpr( 9); restore_fpr(10); restore_fpr(11);
-- restore_fpr(12); restore_fpr(13); restore_fpr(14); restore_fpr(15);
-- restore_fpr(16); restore_fpr(17); restore_fpr(18); restore_fpr(19);
-- restore_fpr(20); restore_fpr(21); restore_fpr(22); restore_fpr(23);
-- restore_fpr(24); restore_fpr(25); restore_fpr(26); restore_fpr(27);
-- restore_fpr(28); restore_fpr(29); restore_fpr(30); restore_fpr(31);
--
-- err |= __get_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
--
-- return err;
--}
--
--static inline int save_thread_fp_context(struct sigcontext *sc)
--{
-- u64 *pfreg = &current->thread.fpu.soft.regs[0];
-- int err = 0;
--
--#define save_fpr(i) \
-- do { err |= __put_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
--
-- save_fpr( 0); save_fpr( 1); save_fpr( 2); save_fpr( 3);
-- save_fpr( 4); save_fpr( 5); save_fpr( 6); save_fpr( 7);
-- save_fpr( 8); save_fpr( 9); save_fpr(10); save_fpr(11);
-- save_fpr(12); save_fpr(13); save_fpr(14); save_fpr(15);
-- save_fpr(16); save_fpr(17); save_fpr(18); save_fpr(19);
-- save_fpr(20); save_fpr(21); save_fpr(22); save_fpr(23);
-- save_fpr(24); save_fpr(25); save_fpr(26); save_fpr(27);
-- save_fpr(28); save_fpr(29); save_fpr(30); save_fpr(31);
--
-- err |= __put_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
--
-- return err;
--}
--
- static asmlinkage int restore_sigcontext(struct pt_regs *regs,
- struct sigcontext *sc)
- {
-- int owned_fp;
- int err = 0;
-
- err |= __get_user(regs->cp0_epc, &sc->sc_pc);
-@@ -331,25 +281,17 @@
- restore_gp_reg(31);
- #undef restore_gp_reg
-
-- err |= __get_user(owned_fp, &sc->sc_ownedfp);
- err |= __get_user(current->used_math, &sc->sc_used_math);
-
-- if (owned_fp) {
-- err |= restore_fp_context(sc);
-- goto out;
-- }
--
-- if (IS_FPU_OWNER()) {
-- /* Signal handler acquired FPU - give it back */
-- CLEAR_FPU_OWNER();
-- regs->cp0_status &= ~ST0_CU1;
-- }
- if (current->used_math) {
-- /* Undo possible contamination of thread state */
-- err |= restore_thread_fp_context(sc);
-+ /* restore fpu context if we have used it before */
-+ own_fpu();
-+ err |= restore_fp_context(sc);
-+ } else {
-+ /* signal handler may have used FPU. Give it up. */
-+ loose_fpu();
- }
-
--out:
- return err;
- }
-
-@@ -489,7 +431,6 @@
- static int inline setup_sigcontext(struct pt_regs *regs,
- struct sigcontext *sc)
- {
-- int owned_fp;
- int err = 0;
-
- err |= __put_user(regs->cp0_epc, &sc->sc_pc);
-@@ -514,25 +455,20 @@
- err |= __put_user(regs->cp0_cause, &sc->sc_cause);
- err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr);
-
-- owned_fp = IS_FPU_OWNER();
-- err |= __put_user(owned_fp, &sc->sc_ownedfp);
- err |= __put_user(current->used_math, &sc->sc_used_math);
-
- if (!current->used_math)
- goto out;
-
-- /* There exists FP thread state that may be trashed by signal */
-- if (owned_fp) {
-- /* fp is active. Save context from FPU */
-- err |= save_fp_context(sc);
-- goto out;
-- }
--
-- /*
-- * Someone else has FPU.
-- * Copy Thread context into signal context
-+ /*
-+ * Save FPU state to signal context. Signal handler will "inherit"
-+ * current FPU state.
- */
-- err |= save_thread_fp_context(sc);
-+ if (!is_fpu_owner()) {
-+ own_fpu();
-+ restore_fp(current);
-+ }
-+ err |= save_fp_context(sc);
-
- out:
- return err;
-@@ -581,10 +517,10 @@
- /*
- * Set up the return code ...
- *
-- * li v0, __NR_Linux32_sigreturn
-+ * li v0, __NR_O32_sigreturn
- * syscall
- */
-- err |= __put_user(0x24020000 + __NR_Linux32_sigreturn,
-+ err |= __put_user(0x24020000 + __NR_O32_sigreturn,
- frame->sf_code + 0);
- err |= __put_user(0x0000000c ,
- frame->sf_code + 1);
-@@ -645,10 +581,10 @@
- /*
- * Set up the return code ...
- *
-- * li v0, __NR_Linux32_rt_sigreturn
-+ * li v0, __NR_O32_rt_sigreturn
- * syscall
- */
-- err |= __put_user(0x24020000 + __NR_Linux32_rt_sigreturn,
-+ err |= __put_user(0x24020000 + __NR_O32_rt_sigreturn,
- frame->rs_code + 0);
- err |= __put_user(0x0000000c ,
- frame->rs_code + 1);
-@@ -991,12 +927,114 @@
- return ret;
- }
-
--asmlinkage void sys32_rt_sigtimedwait(void)
-+struct timespec32 {
-+ int tv_sec;
-+ int tv_nsec;
-+};
-+
-+asmlinkage int sys32_rt_sigtimedwait(sigset_t32 *uthese, siginfo_t32 *uinfo,
-+ struct timespec32 *uts, __kernel_size_t32 sigsetsize)
- {
-- panic("%s called.", __FUNCTION__);
-+ int ret, sig;
-+ sigset_t these;
-+ sigset_t32 these32;
-+ struct timespec ts;
-+ siginfo_t info;
-+ long timeout = 0;
-+
-+ /*
-+ * As the result of a brainfarting competition a few years ago the
-+ * size of sigset_t for the 32-bit kernel was choosen to be 128 bits
-+ * but nothing so far is actually using that many, 64 are enough. So
-+ * for now we just drop the high bits.
-+ */
-+ if (copy_from_user (&these32, uthese, sizeof(old_sigset_t32)))
-+ return -EFAULT;
-+
-+ switch (_NSIG_WORDS) {
-+#ifdef __MIPSEB__
-+ case 4: these.sig[3] = these32.sig[6] | (((long)these32.sig[7]) << 32);
-+ case 3: these.sig[2] = these32.sig[4] | (((long)these32.sig[5]) << 32);
-+ case 2: these.sig[1] = these32.sig[2] | (((long)these32.sig[3]) << 32);
-+ case 1: these.sig[0] = these32.sig[0] | (((long)these32.sig[1]) << 32);
-+#endif
-+#ifdef __MIPSEL__
-+ case 4: these.sig[3] = these32.sig[7] | (((long)these32.sig[6]) << 32);
-+ case 3: these.sig[2] = these32.sig[5] | (((long)these32.sig[4]) << 32);
-+ case 2: these.sig[1] = these32.sig[3] | (((long)these32.sig[2]) << 32);
-+ case 1: these.sig[0] = these32.sig[1] | (((long)these32.sig[0]) << 32);
-+#endif
-+ }
-+
-+ /*
-+ * Invert the set of allowed signals to get those we
-+ * want to block.
-+ */
-+ sigdelsetmask(&these, sigmask(SIGKILL)|sigmask(SIGSTOP));
-+ signotset(&these);
-+
-+ if (uts) {
-+ if (get_user (ts.tv_sec, &uts->tv_sec) ||
-+ get_user (ts.tv_nsec, &uts->tv_nsec))
-+ return -EINVAL;
-+ if (ts.tv_nsec >= 1000000000L || ts.tv_nsec < 0
-+ || ts.tv_sec < 0)
-+ return -EINVAL;
-+ }
-+
-+ spin_lock_irq(&current->sigmask_lock);
-+ sig = dequeue_signal(&these, &info);
-+ if (!sig) {
-+ /* None ready -- temporarily unblock those we're interested
-+ in so that we'll be awakened when they arrive. */
-+ sigset_t oldblocked = current->blocked;
-+ sigandsets(&current->blocked, &current->blocked, &these);
-+ recalc_sigpending(current);
-+ spin_unlock_irq(&current->sigmask_lock);
-+
-+ timeout = MAX_SCHEDULE_TIMEOUT;
-+ if (uts)
-+ timeout = (timespec_to_jiffies(&ts)
-+ + (ts.tv_sec || ts.tv_nsec));
-+
-+ current->state = TASK_INTERRUPTIBLE;
-+ timeout = schedule_timeout(timeout);
-+
-+ spin_lock_irq(&current->sigmask_lock);
-+ sig = dequeue_signal(&these, &info);
-+ current->blocked = oldblocked;
-+ recalc_sigpending(current);
-+ }
-+ spin_unlock_irq(&current->sigmask_lock);
-+
-+ if (sig) {
-+ ret = sig;
-+ if (uinfo) {
-+ if (copy_siginfo_to_user32(uinfo, &info))
-+ ret = -EFAULT;
-+ }
-+ } else {
-+ ret = -EAGAIN;
-+ if (timeout)
-+ ret = -EINTR;
-+ }
-+
-+ return ret;
- }
-
--asmlinkage void sys32_rt_sigqueueinfo(void)
-+extern asmlinkage int sys_rt_sigqueueinfo(int pid, int sig, siginfo_t *uinfo);
-+
-+asmlinkage int sys32_rt_sigqueueinfo(int pid, int sig, siginfo_t32 *uinfo)
- {
-- panic("%s called.", __FUNCTION__);
-+ siginfo_t info;
-+ int ret;
-+ mm_segment_t old_fs = get_fs();
-+
-+ if (copy_from_user (&info, uinfo, 3*sizeof(int)) ||
-+ copy_from_user (info._sifields._pad, uinfo->_sifields._pad, SI_PAD_SIZE))
-+ return -EFAULT;
-+ set_fs (KERNEL_DS);
-+ ret = sys_rt_sigqueueinfo(pid, sig, &info);
-+ set_fs (old_fs);
-+ return ret;
- }
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/signal.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal.c
---- linux-2.4.20/arch/mips64/kernel/signal.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/signal.c 2003-02-20 13:46:34.000000000 -0600
-@@ -26,14 +26,13 @@
- #include <asm/uaccess.h>
- #include <asm/ucontext.h>
- #include <asm/system.h>
-+#include <asm/fpu.h>
-
- #define DEBUG_SIG 0
-
- #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
-
- extern asmlinkage int do_signal(sigset_t *oldset, struct pt_regs *regs);
--extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
--extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-
- extern asmlinkage void syscall_trace(void);
-
-@@ -75,35 +74,7 @@
- /*
- * Atomically swap in the new signal mask, and wait for a signal.
- */
--asmlinkage inline int
--sys_sigsuspend(abi64_no_regargs, struct pt_regs regs)
--{
-- sigset_t *uset, saveset, newset;
--
-- save_static(&regs);
-- uset = (sigset_t *) regs.regs[4];
-- if (copy_from_user(&newset, uset, sizeof(sigset_t)))
-- return -EFAULT;
-- sigdelsetmask(&newset, ~_BLOCKABLE);
--
-- spin_lock_irq(&current->sigmask_lock);
-- saveset = current->blocked;
-- current->blocked = newset;
-- recalc_sigpending(current);
-- spin_unlock_irq(&current->sigmask_lock);
--
-- regs.regs[2] = EINTR;
-- regs.regs[7] = 1;
-- while (1) {
-- current->state = TASK_INTERRUPTIBLE;
-- schedule();
-- if (do_signal(&saveset, &regs))
-- return -EINTR;
-- }
--}
--
--asmlinkage int
--sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs)
-+asmlinkage int sys_rt_sigsuspend(abi64_no_regargs, struct pt_regs regs)
- {
- sigset_t *unewset, saveset, newset;
- size_t sigsetsize;
-@@ -136,47 +107,7 @@
- }
- }
-
--asmlinkage int
--sys_sigaction(int sig, const struct sigaction *act, struct sigaction *oact)
--{
-- struct k_sigaction new_ka, old_ka;
-- int ret;
-- int err = 0;
--
-- if (act) {
-- old_sigset_t mask;
--
-- if (!access_ok(VERIFY_READ, act, sizeof(*act)))
-- return -EFAULT;
-- err |= __get_user(new_ka.sa.sa_handler, &act->sa_handler);
-- err |= __get_user(new_ka.sa.sa_flags, &act->sa_flags);
-- err |= __get_user(mask, &act->sa_mask.sig[0]);
-- err |= __get_user(new_ka.sa.sa_restorer, &act->sa_restorer);
-- if (err)
-- return -EFAULT;
--
-- siginitset(&new_ka.sa.sa_mask, mask);
-- }
--
-- ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
--
-- if (!ret && oact) {
-- if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)))
-- return -EFAULT;
-- err |= __put_user(old_ka.sa.sa_flags, &oact->sa_flags);
-- err |= __put_user(old_ka.sa.sa_handler, &oact->sa_handler);
-- err |= __put_user(old_ka.sa.sa_mask.sig[0], oact->sa_mask.sig);
-- err |= __put_user(0, &oact->sa_mask.sig[1]);
-- err |= __put_user(old_ka.sa.sa_restorer, &oact->sa_restorer);
-- if (err)
-- return -EFAULT;
-- }
--
-- return ret;
--}
--
--asmlinkage int
--sys_sigaltstack(abi64_no_regargs, struct pt_regs regs)
-+asmlinkage int sys_sigaltstack(abi64_no_regargs, struct pt_regs regs)
- {
- const stack_t *uss = (const stack_t *) regs.regs[4];
- stack_t *uoss = (stack_t *) regs.regs[5];
-@@ -185,58 +116,8 @@
- return do_sigaltstack(uss, uoss, usp);
- }
-
--static inline int restore_thread_fp_context(struct sigcontext *sc)
--{
-- u64 *pfreg = &current->thread.fpu.soft.regs[0];
-- int err = 0;
--
-- /*
-- * Copy all 32 64-bit values.
-- */
--
--#define restore_fpr(i) \
-- do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
--
-- restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3);
-- restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7);
-- restore_fpr( 8); restore_fpr( 9); restore_fpr(10); restore_fpr(11);
-- restore_fpr(12); restore_fpr(13); restore_fpr(14); restore_fpr(15);
-- restore_fpr(16); restore_fpr(17); restore_fpr(18); restore_fpr(19);
-- restore_fpr(20); restore_fpr(21); restore_fpr(22); restore_fpr(23);
-- restore_fpr(24); restore_fpr(25); restore_fpr(26); restore_fpr(27);
-- restore_fpr(28); restore_fpr(29); restore_fpr(30); restore_fpr(31);
--
-- err |= __get_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
--
-- return err;
--}
--
--static inline int save_thread_fp_context(struct sigcontext *sc)
--{
-- u64 *pfreg = &current->thread.fpu.soft.regs[0];
-- int err = 0;
--
--#define save_fpr(i) \
-- do { err |= __put_user(pfreg[i], &sc->sc_fpregs[i]); } while(0)
--
-- save_fpr( 0); save_fpr( 1); save_fpr( 2); save_fpr( 3);
-- save_fpr( 4); save_fpr( 5); save_fpr( 6); save_fpr( 7);
-- save_fpr( 8); save_fpr( 9); save_fpr(10); save_fpr(11);
-- save_fpr(12); save_fpr(13); save_fpr(14); save_fpr(15);
-- save_fpr(16); save_fpr(17); save_fpr(18); save_fpr(19);
-- save_fpr(20); save_fpr(21); save_fpr(22); save_fpr(23);
-- save_fpr(24); save_fpr(25); save_fpr(26); save_fpr(27);
-- save_fpr(28); save_fpr(29); save_fpr(30); save_fpr(31);
--
-- err |= __put_user(current->thread.fpu.soft.sr, &sc->sc_fpc_csr);
--
-- return err;
--}
--
--asmlinkage int
--restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
-+asmlinkage int restore_sigcontext(struct pt_regs *regs, struct sigcontext *sc)
- {
-- int owned_fp;
- int err = 0;
-
- err |= __get_user(regs->cp0_epc, &sc->sc_pc);
-@@ -259,25 +140,17 @@
- restore_gp_reg(31);
- #undef restore_gp_reg
-
-- err |= __get_user(owned_fp, &sc->sc_ownedfp);
- err |= __get_user(current->used_math, &sc->sc_used_math);
-
-- if (owned_fp) {
-- err |= restore_fp_context(sc);
-- goto out;
-- }
--
-- if (IS_FPU_OWNER()) {
-- /* Signal handler acquired FPU - give it back */
-- CLEAR_FPU_OWNER();
-- regs->cp0_status &= ~ST0_CU1;
-- }
- if (current->used_math) {
-- /* Undo possible contamination of thread state */
-- err |= restore_thread_fp_context(sc);
-+ /* restore fpu context if we have used it before */
-+ own_fpu();
-+ err |= restore_fp_context(sc);
-+ } else {
-+ /* signal handler may have used FPU. Give it up. */
-+ loose_fpu();
- }
-
--out:
- return err;
- }
-
-@@ -295,87 +168,9 @@
- struct ucontext rs_uc;
- };
-
--asmlinkage void sys_sigreturn(abi64_no_regargs, struct pt_regs regs)
--{
-- struct sigframe *frame;
-- sigset_t blocked;
--
-- frame = (struct sigframe *) regs.regs[29];
-- if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-- goto badframe;
-- if (__copy_from_user(&blocked, &frame->sf_mask, sizeof(blocked)))
-- goto badframe;
--
-- sigdelsetmask(&blocked, ~_BLOCKABLE);
-- spin_lock_irq(&current->sigmask_lock);
-- current->blocked = blocked;
-- recalc_sigpending(current);
-- spin_unlock_irq(&current->sigmask_lock);
--
-- if (restore_sigcontext(&regs, &frame->sf_sc))
-- goto badframe;
--
-- /*
-- * Don't let your children do this ...
-- */
-- if (current->ptrace & PT_TRACESYS)
-- syscall_trace();
-- __asm__ __volatile__(
-- "move\t$29, %0\n\t"
-- "j\tret_from_sys_call"
-- :/* no outputs */
-- :"r" (&regs));
-- /* Unreached */
--
--badframe:
-- force_sig(SIGSEGV, current);
--}
--
--asmlinkage void sys_rt_sigreturn(abi64_no_regargs, struct pt_regs regs)
--{
-- struct rt_sigframe *frame;
-- sigset_t set;
-- stack_t st;
--
-- frame = (struct rt_sigframe *) regs.regs[29];
-- if (!access_ok(VERIFY_READ, frame, sizeof(*frame)))
-- goto badframe;
-- if (__copy_from_user(&set, &frame->rs_uc.uc_sigmask, sizeof(set)))
-- goto badframe;
--
-- sigdelsetmask(&set, ~_BLOCKABLE);
-- spin_lock_irq(&current->sigmask_lock);
-- current->blocked = set;
-- recalc_sigpending(current);
-- spin_unlock_irq(&current->sigmask_lock);
--
-- if (restore_sigcontext(&regs, &frame->rs_uc.uc_mcontext))
-- goto badframe;
--
-- if (__copy_from_user(&st, &frame->rs_uc.uc_stack, sizeof(st)))
-- goto badframe;
-- /* It is more difficult to avoid calling this function than to
-- call it and ignore errors. */
-- do_sigaltstack(&st, NULL, regs.regs[29]);
--
-- /*
-- * Don't let your children do this ...
-- */
-- __asm__ __volatile__(
-- "move\t$29, %0\n\t"
-- "j\tret_from_sys_call"
-- :/* no outputs */
-- :"r" (&regs));
-- /* Unreached */
--
--badframe:
-- force_sig(SIGSEGV, current);
--}
--
- static int inline setup_sigcontext(struct pt_regs *regs,
-- struct sigcontext *sc)
-+ struct sigcontext *sc)
- {
-- int owned_fp;
- int err = 0;
-
- err |= __put_user(regs->cp0_epc, &sc->sc_pc);
-@@ -400,25 +195,20 @@
- err |= __put_user(regs->cp0_cause, &sc->sc_cause);
- err |= __put_user(regs->cp0_badvaddr, &sc->sc_badvaddr);
-
-- owned_fp = IS_FPU_OWNER();
-- err |= __put_user(owned_fp, &sc->sc_ownedfp);
- err |= __put_user(current->used_math, &sc->sc_used_math);
-
- if (!current->used_math)
- goto out;
-
-- /* There exists FP thread state that may be trashed by signal */
-- if (owned_fp) {
-- /* fp is active. Save context from FPU */
-- err |= save_fp_context(sc);
-- goto out;
-- }
--
-- /*
-- * Someone else has FPU.
-- * Copy Thread context into signal context
-+ /*
-+ * Save FPU state to signal context. Signal handler will "inherit"
-+ * current FPU state.
- */
-- err |= save_thread_fp_context(sc);
-+ if (!is_fpu_owner()) {
-+ own_fpu();
-+ restore_fp(current);
-+ }
-+ err |= save_fp_context(sc);
-
- out:
- return err;
-@@ -428,7 +218,7 @@
- * Determine which stack to use..
- */
- static inline void *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
-- size_t frame_size)
-+ size_t frame_size)
- {
- unsigned long sp;
-
-@@ -450,7 +240,7 @@
- }
-
- static void inline setup_frame(struct k_sigaction * ka, struct pt_regs *regs,
-- int signr, sigset_t *set)
-+ int signr, sigset_t *set)
- {
- struct sigframe *frame;
- int err = 0;
-@@ -459,23 +249,11 @@
- if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
- goto give_sigsegv;
-
-- /* Set up to return from userspace. If provided, use a stub already
-- in userspace. */
-- if (ka->sa.sa_flags & SA_RESTORER)
-- regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
-- else {
-- /*
-- * Set up the return code ...
-- *
-- * li v0, __NR_sigreturn
-- * syscall
-- */
-- err |= __put_user(0x24020000 + __NR_sigreturn,
-- frame->sf_code + 0);
-- err |= __put_user(0x0000000c ,
-- frame->sf_code + 1);
-- flush_cache_sigtramp((unsigned long) frame->sf_code);
-- }
-+ /*
-+ * Set up to return from userspace. On mips64 we always use a stub
-+ * already provided by userspace and ignore SA_RESTORER.
-+ */
-+ regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
-
- err |= setup_sigcontext(regs, &frame->sf_sc);
- err |= __copy_to_user(&frame->sf_mask, set, sizeof(*set));
-@@ -513,8 +291,7 @@
- }
-
- static void inline setup_rt_frame(struct k_sigaction * ka,
-- struct pt_regs *regs, int signr,
-- sigset_t *set, siginfo_t *info)
-+ struct pt_regs *regs, int signr, sigset_t *set, siginfo_t *info)
- {
- struct rt_sigframe *frame;
- int err = 0;
-@@ -523,23 +300,11 @@
- if (!access_ok(VERIFY_WRITE, frame, sizeof (*frame)))
- goto give_sigsegv;
-
-- /* Set up to return from userspace. If provided, use a stub already
-- in userspace. */
-- if (ka->sa.sa_flags & SA_RESTORER)
-- regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
-- else {
-- /*
-- * Set up the return code ...
-- *
-- * li v0, __NR_rt_sigreturn
-- * syscall
-- */
-- err |= __put_user(0x24020000 + __NR_rt_sigreturn,
-- frame->rs_code + 0);
-- err |= __put_user(0x0000000c ,
-- frame->rs_code + 1);
-- flush_cache_sigtramp((unsigned long) frame->rs_code);
-- }
-+ /*
-+ * Set up to return from userspace. On mips64 we always use a stub
-+ * already provided by userspace and ignore SA_RESTORER.
-+ */
-+ regs->regs[31] = (unsigned long) ka->sa.sa_restorer;
-
- /* Create siginfo. */
- err |= copy_siginfo_to_user(&frame->rs_info, info);
-@@ -590,8 +355,7 @@
- }
-
- static inline void handle_signal(unsigned long sig, struct k_sigaction *ka,
-- siginfo_t *info, sigset_t *oldset,
-- struct pt_regs *regs)
-+ siginfo_t *info, sigset_t *oldset, struct pt_regs *regs)
- {
- if (ka->sa.sa_flags & SA_SIGINFO)
- setup_rt_frame(ka, regs, sig, oldset, info);
-@@ -609,8 +373,7 @@
- }
- }
-
--static inline void syscall_restart(struct pt_regs *regs,
-- struct k_sigaction *ka)
-+static inline void syscall_restart(struct pt_regs *regs, struct k_sigaction *ka)
- {
- switch(regs->regs[0]) {
- case ERESTARTNOHAND:
-@@ -639,7 +402,7 @@
- siginfo_t info;
-
- #ifdef CONFIG_BINFMT_ELF32
-- if (current->thread.mflags & MF_32BIT) {
-+ if (current->thread.mflags & MF_32BIT_REGS) {
- return do_signal32(oldset, regs);
- }
- #endif
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/smp.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/smp.c
---- linux-2.4.20/arch/mips64/kernel/smp.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/smp.c 2002-11-28 17:29:37.000000000 -0600
-@@ -45,7 +45,6 @@
- atomic_t smp_commenced = ATOMIC_INIT(0);
- struct cpuinfo_mips cpu_data[NR_CPUS];
-
--// static atomic_t cpus_booted = ATOMIC_INIT(0);
- atomic_t cpus_booted = ATOMIC_INIT(0);
-
- int smp_num_cpus = 1; /* Number that came online. */
-@@ -282,7 +281,7 @@
- int i;
- for (i = 0; i < smp_num_cpus; i++)
- if (smp_processor_id() != i)
-- CPU_CONTEXT(i, mm) = 0;
-+ cpu_context(i, mm) = 0;
- }
- local_flush_tlb_mm(mm);
- }
-@@ -314,7 +313,7 @@
- int i;
- for (i = 0; i < smp_num_cpus; i++)
- if (smp_processor_id() != i)
-- CPU_CONTEXT(i, mm) = 0;
-+ cpu_context(i, mm) = 0;
- }
- local_flush_tlb_range(mm, start, end);
- }
-@@ -338,7 +337,7 @@
- int i;
- for (i = 0; i < smp_num_cpus; i++)
- if (smp_processor_id() != i)
-- CPU_CONTEXT(i, vma->vm_mm) = 0;
-+ cpu_context(i, vma->vm_mm) = 0;
- }
- local_flush_tlb_page(vma, page);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/syscall.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/syscall.c
---- linux-2.4.20/arch/mips64/kernel/syscall.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/syscall.c 2002-12-19 20:57:03.000000000 -0600
-@@ -186,12 +186,10 @@
- return -ENOSYS;
- }
-
--asmlinkage int
--sys_sysmips(int cmd, long arg1, int arg2, int arg3)
-+asmlinkage int sys_sysmips(int cmd, long arg1, int arg2, int arg3)
- {
-- int *p;
-+ int tmp, len;
- char *name;
-- int tmp, len, errno;
-
- switch(cmd) {
- case SETNAME: {
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/time.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/time.c
---- linux-2.4.20/arch/mips64/kernel/time.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/time.c 2002-12-01 18:24:52.000000000 -0600
-@@ -21,6 +21,7 @@
- #include <linux/kernel_stat.h>
- #include <linux/spinlock.h>
- #include <linux/interrupt.h>
-+#include <linux/module.h>
-
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-@@ -38,6 +39,8 @@
- extern rwlock_t xtime_lock;
- extern volatile unsigned long wall_jiffies;
-
-+spinlock_t rtc_lock = SPIN_LOCK_UNLOCKED;
-+
- /*
- * whether we emulate local_timer_interrupts for SMP machines.
- */
-@@ -154,7 +157,7 @@
- unsigned long res;
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -210,7 +213,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -265,7 +268,7 @@
- }
-
- /* Get last timer tick in absolute kernel time */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
-
- /* .. relative to previous jiffy (32 bits is enough) */
- count -= timerlo;
-@@ -299,7 +302,7 @@
- */
- void local_timer_interrupt(int irq, void *dev_id, struct pt_regs *regs)
- {
-- if(!user_mode(regs)) {
-+ if (!user_mode(regs)) {
- if (prof_buffer && current->pid) {
- extern int _stext;
- unsigned long pc = regs->cp0_epc;
-@@ -317,7 +320,7 @@
- }
- }
-
--#if defined(CONFIG_SMP)
-+#ifdef CONFIG_SMP
- /* in UP mode, update_process_times() is invoked by do_timer() */
- update_process_times(user_mode(regs));
- #endif
-@@ -336,7 +339,7 @@
- * The cycle counter is only 32 bit which is good for about
- * a minute at current count rates of upto 150MHz or so.
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-+ count = read_c0_count();
- timerhi += (count < timerlo); /* Wrap around */
- timerlo = count;
-
-@@ -345,7 +348,7 @@
- * is using another timer interrupt source.
- * Note that writing to COMPARE register clears the interrupt
- */
-- write_32bit_cp0_register (CP0_COMPARE,
-+ write_c0_compare(
- count + cycles_per_jiffy);
-
- }
-@@ -469,7 +472,8 @@
- 0,
- "timer",
- NULL,
-- NULL};
-+ NULL
-+};
-
- void __init time_init(void)
- {
-@@ -514,8 +518,8 @@
- * For those using cpu counter as timer, this sets up the
- * first interrupt
- */
-- count = read_32bit_cp0_register(CP0_COUNT);
-- write_32bit_cp0_register (CP0_COMPARE,
-+ count = read_c0_count();
-+ write_c0_compare(
- count + cycles_per_jiffy);
- }
-
-@@ -579,3 +583,5 @@
- */
- tm->tm_wday = (gday + 4) % 7; /* 1970/1/1 was Thursday */
- }
-+
-+EXPORT_SYMBOL(rtc_lock);
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/traps.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/traps.c
---- linux-2.4.20/arch/mips64/kernel/traps.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/traps.c 2003-02-10 16:50:48.000000000 -0600
-@@ -21,12 +21,14 @@
- #include <asm/bootinfo.h>
- #include <asm/branch.h>
- #include <asm/cpu.h>
-+#include <asm/fpu.h>
- #include <asm/module.h>
- #include <asm/pgtable.h>
- #include <asm/io.h>
- #include <asm/ptrace.h>
- #include <asm/watch.h>
- #include <asm/system.h>
-+#include <asm/tlbdebug.h>
- #include <asm/traps.h>
- #include <asm/uaccess.h>
- #include <asm/mmu_context.h>
-@@ -47,6 +49,7 @@
- extern asmlinkage void handle_ov(void);
- extern asmlinkage void handle_tr(void);
- extern asmlinkage void handle_fpe(void);
-+extern asmlinkage void handle_mdmx(void);
- extern asmlinkage void handle_watch(void);
- extern asmlinkage void handle_mcheck(void);
- extern asmlinkage void handle_reserved(void);
-@@ -190,7 +193,6 @@
- show_trace((long *)tsk->thread.reg29);
- }
-
--
- void show_code(unsigned int *pc)
- {
- long i;
-@@ -399,9 +401,6 @@
- {
- siginfo_t info;
-
-- if (compute_return_epc(regs))
-- return;
--
- info.si_code = FPE_INTOVF;
- info.si_signo = SIGFPE;
- info.si_errno = 0;
-@@ -444,30 +443,21 @@
-
- /* If something went wrong, signal */
- if (sig)
-- {
-- /*
-- * Return EPC is not calculated in the FPU emulator,
-- * if a signal is being send. So we calculate it here.
-- */
-- compute_return_epc(regs);
- force_sig(sig, current);
-- }
-
- return;
- }
-
-- if (compute_return_epc(regs))
-- return;
- force_sig(SIGFPE, current);
- }
-
- static inline int get_insn_opcode(struct pt_regs *regs, unsigned int *opcode)
- {
-- unsigned long *epc;
-+ unsigned int *epc;
-
-- epc = (unsigned long *) regs->cp0_epc +
-+ epc = (unsigned int *) regs->cp0_epc +
- ((regs->cp0_cause & CAUSEF_BD) != 0);
-- if (!get_user(opcode, epc))
-+ if (!get_user(*opcode, epc))
- return 0;
-
- force_sig(SIGSEGV, current);
-@@ -551,84 +541,52 @@
- {
- die_if_kernel("Reserved instruction in kernel code", regs);
-
-- if (compute_return_epc(regs))
-- return;
--
- force_sig(SIGILL, current);
- }
-
- asmlinkage void do_cpu(struct pt_regs *regs)
- {
- unsigned int cpid;
-- void fpu_emulator_init_fpu(void);
-- int sig;
-
- cpid = (regs->cp0_cause >> CAUSEB_CE) & 3;
- if (cpid != 1)
- goto bad_cid;
-
-- if (!(mips_cpu.options & MIPS_CPU_FPU))
-- goto fp_emul;
--
-- regs->cp0_status |= ST0_CU1;
-+ die_if_kernel("do_cpu invoked from kernel context!", regs);
-
--#ifdef CONFIG_SMP
-- if (current->used_math) {
-- lazy_fpu_switch(0, current);
-+ own_fpu();
-+ if (current->used_math) { /* Using the FPU again. */
-+ restore_fp(current);
- } else {
- init_fpu();
- current->used_math = 1;
- }
-- current->flags |= PF_USEDFPU;
--#else
-- if (last_task_used_math == current)
-- return;
-
-- if (current->used_math) { /* Using the FPU again. */
-- lazy_fpu_switch(last_task_used_math, current);
-- } else { /* First time FPU user. */
-- lazy_fpu_switch(last_task_used_math, 0);
-- init_fpu();
-- current->used_math = 1;
-+ if (!(mips_cpu.options & MIPS_CPU_FPU)) {
-+ int sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
-+ if (sig)
-+ force_sig(sig, current);
- }
-- last_task_used_math = current;
--#endif
-- return;
-
--fp_emul:
-- if (last_task_used_math != current) {
-- if (!current->used_math) {
-- fpu_emulator_init_fpu();
-- current->used_math = 1;
-- }
-- }
-- sig = fpu_emulator_cop1Handler(0, regs, &current->thread.fpu.soft);
-- last_task_used_math = current;
-- if (sig) {
-- /*
-- * Return EPC is not calculated in the FPU emulator, if
-- * a signal is being send. So we calculate it here.
-- */
-- compute_return_epc(regs);
-- force_sig(sig, current);
-- }
- return;
-
- bad_cid:
-- compute_return_epc(regs);
- force_sig(SIGILL, current);
- }
-
--asmlinkage void do_watch(struct pt_regs *regs)
-+asmlinkage void do_mdmx(struct pt_regs *regs)
- {
-- extern void dump_tlb_all(void);
-+ force_sig(SIGILL, current);
-+}
-
-+asmlinkage void do_watch(struct pt_regs *regs)
-+{
- /*
- * We use the watch exception where available to detect stack
- * overflows.
- */
-- dump_tlb_all();
- show_regs(regs);
-+ dump_tlb_all();
- panic("Caught WATCH exception - probably caused by stack overflow.");
- }
-
-@@ -653,24 +611,14 @@
- * hard/software error.
- */
- panic("Caught reserved exception %ld - should not happen.",
-- (regs->cp0_cause & 0x1f) >> 2);
-+ (regs->cp0_cause & 0x7f) >> 2);
- }
-
--static inline void watch_init(unsigned long cputype)
-+static inline void watch_init(void)
- {
-- switch(cputype) {
-- case CPU_R10000:
-- case CPU_R4000MC:
-- case CPU_R4400MC:
-- case CPU_R4000SC:
-- case CPU_R4400SC:
-- case CPU_R4000PC:
-- case CPU_R4400PC:
-- case CPU_R4200:
-- case CPU_R4300:
-+ if (mips_cpu.options & MIPS_CPU_WATCH) {
- set_except_vector(23, handle_watch);
- watch_available = 1;
-- break;
- }
- }
-
-@@ -697,6 +645,7 @@
-
- asmlinkage int (*save_fp_context)(struct sigcontext *sc);
- asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-+
- extern asmlinkage int _save_fp_context(struct sigcontext *sc);
- extern asmlinkage int _restore_fp_context(struct sigcontext *sc);
-
-@@ -708,58 +657,63 @@
- unsigned int cpu = smp_processor_id();
-
- /* Some firmware leaves the BEV flag set, clear it. */
-- clear_cp0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
-- set_cp0_status(ST0_CU0|ST0_FR|ST0_KX|ST0_SX|ST0_UX);
-+ clear_c0_status(ST0_CU1|ST0_CU2|ST0_CU3|ST0_BEV);
-+ set_c0_status(ST0_CU0|ST0_FR|ST0_KX|ST0_SX|ST0_UX);
-+
-+ if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-+ set_c0_status(ST0_XX);
-
- /*
- * Some MIPS CPUs have a dedicated interrupt vector which reduces the
- * interrupt processing overhead. Use it where available.
- */
- if (mips_cpu.options & MIPS_CPU_DIVEC)
-- set_cp0_cause(CAUSEF_IV);
-+ set_c0_cause(CAUSEF_IV);
-
- cpu_data[cpu].asid_cache = ASID_FIRST_VERSION;
-- set_context(((long)(&pgd_current[cpu])) << 23);
-- set_wired(0);
-+ write_c0_context(((long)(&pgd_current[cpu])) << 23);
-+ write_c0_wired(0);
-+
-+ atomic_inc(&init_mm.mm_count);
-+ current->active_mm = &init_mm;
-+ if (current->mm)
-+ BUG();
-+ enter_lazy_tlb(&init_mm, current, cpu);
- }
-
- void __init trap_init(void)
- {
-- extern char except_vec0;
-- extern char except_vec1_r4k;
-- extern char except_vec1_r10k;
-- extern char except_vec2_generic;
-+ extern char except_vec0_generic;
- extern char except_vec3_generic, except_vec3_r4000;
- extern char except_vec4;
- unsigned long i;
-- int dummy;
-
- per_cpu_trap_init();
-
- /* Copy the generic exception handlers to their final destination. */
-- memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *) KSEG0 , &except_vec0_generic, 0x80);
- memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
-
- /*
- * Setup default vectors
- */
-- for(i = 0; i <= 31; i++)
-+ for (i = 0; i <= 31; i++)
- set_except_vector(i, handle_reserved);
-
- /*
- * Only some CPUs have the watch exceptions or a dedicated
- * interrupt vector.
- */
-- watch_init(mips_cpu.cputype);
-+ watch_init();
-
- /*
- * Some MIPS CPUs have a dedicated interrupt vector which reduces the
- * interrupt processing overhead. Use it where available.
- */
-- memcpy((void *)(KSEG0 + 0x200), &except_vec4, 8);
--
-- if (mips_cpu.options & MIPS_CPU_MCHECK)
-- set_except_vector(24, handle_mcheck);
-+ if (mips_cpu.options & MIPS_CPU_DIVEC) {
-+ memcpy((void *)(KSEG0 + 0x200), &except_vec4, 0x80);
-+ set_c0_cause(CAUSEF_IV);
-+ }
-
- /*
- * The Data Bus Errors / Instruction Bus Errors are signaled
-@@ -768,82 +722,52 @@
- */
- bus_error_init();
-
-- /*
-- * Handling the following exceptions depends mostly of the cpu type
-- */
-- switch(mips_cpu.cputype) {
-- case CPU_SB1:
--#ifdef CONFIG_SB1_CACHE_ERROR
-- {
-- /* Special cache error handler for SB1 */
-- extern char except_vec2_sb1;
-- memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
-- memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
-- }
--#endif
-- /* Enable timer interrupt and scd mapped interrupt */
-- clear_cp0_status(0xf000);
-- set_cp0_status(0xc00);
--
-- /* Fall through. */
-- case CPU_R10000:
-- case CPU_R4000MC:
-- case CPU_R4400MC:
-- case CPU_R4000SC:
-- case CPU_R4400SC:
-- case CPU_R4000PC:
-- case CPU_R4400PC:
-- case CPU_R4200:
-- case CPU_R4300:
-- case CPU_R4600:
-- case CPU_R5000:
-- case CPU_NEVADA:
-- case CPU_5KC:
-- case CPU_20KC:
-- case CPU_RM7000:
-- /* Debug TLB refill handler. */
-- memcpy((void *)KSEG0, &except_vec0, 0x80);
-- if ((mips_cpu.options & MIPS_CPU_4KEX)
-- && (mips_cpu.options & MIPS_CPU_4KTLB)) {
-- memcpy((void *)KSEG0 + 0x080, &except_vec1_r4k, 0x80);
-- } else {
-- memcpy((void *)KSEG0 + 0x080, &except_vec1_r10k, 0x80);
-- }
-- if (mips_cpu.options & MIPS_CPU_VCE) {
-- memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000,
-- 0x80);
-- } else {
-- memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic,
-- 0x80);
-- }
-+ set_except_vector(1, __xtlb_mod);
-+ set_except_vector(2, __xtlb_tlbl);
-+ set_except_vector(3, __xtlb_tlbs);
-+ set_except_vector(4, handle_adel);
-+ set_except_vector(5, handle_ades);
-
-- set_except_vector(1, __xtlb_mod);
-- set_except_vector(2, __xtlb_tlbl);
-- set_except_vector(3, __xtlb_tlbs);
-- set_except_vector(4, handle_adel);
-- set_except_vector(5, handle_ades);
-+ set_except_vector(6, handle_ibe);
-+ set_except_vector(7, handle_dbe);
-
-- set_except_vector(6, handle_ibe);
-- set_except_vector(7, handle_dbe);
-+ set_except_vector(8, handle_sys);
-+ set_except_vector(9, handle_bp);
-+ set_except_vector(10, handle_ri);
-+ set_except_vector(11, handle_cpu);
-+ set_except_vector(12, handle_ov);
-+ set_except_vector(13, handle_tr);
-+ set_except_vector(22, handle_mdmx);
-
-- set_except_vector(8, handle_sys);
-- set_except_vector(9, handle_bp);
-- set_except_vector(10, handle_ri);
-- set_except_vector(11, handle_cpu);
-- set_except_vector(12, handle_ov);
-- set_except_vector(13, handle_tr);
-+ if ((mips_cpu.options & MIPS_CPU_FPU) &&
-+ !(mips_cpu.options & MIPS_CPU_NOFPUEX))
- set_except_vector(15, handle_fpe);
-- break;
-
-- case CPU_R8000:
-- panic("R8000 is unsupported");
-- break;
-+ if (mips_cpu.options & MIPS_CPU_MCHECK)
-+ set_except_vector(24, handle_mcheck);
-
-- case CPU_UNKNOWN:
-- default:
-- panic("Unknown CPU type");
-+ if (mips_cpu.options & MIPS_CPU_VCE) {
-+ /* VCE and DIVEC are mutually exclusive. */
-+ if (mips_cpu.options & MIPS_CPU_DIVEC)
-+ BUG();
-+ memcpy((void *)(KSEG0 + 0x180), &except_vec3_r4000, 0x100);
-+ } else if (mips_cpu.options & MIPS_CPU_4KEX)
-+ memcpy((void *)(KSEG0 + 0x180), &except_vec3_generic, 0x80);
-+ else
-+ memcpy((void *)(KSEG0 + 0x080), &except_vec3_generic, 0x80);
-+
-+ if (mips_cpu.cputype == CPU_R6000 || mips_cpu.cputype == CPU_R6000A) {
-+ /*
-+ * The R6000 is the only R-series CPU that features a machine
-+ * check exception (similar to the R4000 cache error) and
-+ * unaligned ldc1/sdc1 exception. The handlers have not been
-+ * written yet. Well, anyway there is no R6000 machine on the
-+ * current list of targets for Linux/MIPS.
-+ * (Duh, crap, there is someone with a tripple R6k machine)
-+ */
-+ //set_except_vector(14, handle_mc);
-+ //set_except_vector(15, handle_ndc);
- }
-- flush_icache_range(KSEG0, KSEG0 + 0x200);
-
- if (mips_cpu.options & MIPS_CPU_FPU) {
- save_fp_context = _save_fp_context;
-@@ -853,8 +777,7 @@
- restore_fp_context = fpu_emulator_restore_context;
- }
-
-- if (mips_cpu.isa_level == MIPS_CPU_ISA_IV)
-- set_cp0_status(ST0_XX);
-+ flush_icache_range(KSEG0, KSEG0 + 0x400);
-
- atomic_inc(&init_mm.mm_count); /* XXX UP? */
- current->active_mm = &init_mm;
-diff -urNd -urNd linux-2.4.20/arch/mips64/kernel/unaligned.c linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/unaligned.c
---- linux-2.4.20/arch/mips64/kernel/unaligned.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/kernel/unaligned.c 2003-02-20 19:09:19.000000000 -0600
-@@ -88,21 +88,21 @@
- #define STR(x) __STR(x)
- #define __STR(x) #x
-
--/*
-- * User code may only access USEG; kernel code may access the
-- * entire address space.
-- */
--#define check_axs(pc,a,s) \
-- if ((long)(~(pc) & ((a) | ((a)+(s)))) < 0) \
-- goto sigbus;
-+#ifdef CONFIG_PROC_FS
-+unsigned long unaligned_instructions;
-+#endif
-
- static inline int emulate_load_store_insn(struct pt_regs *regs,
-- unsigned long addr, unsigned long pc)
-+ void *addr, unsigned long pc,
-+ unsigned long **regptr, unsigned long *newvalue)
- {
- union mips_instruction insn;
- unsigned long value, fixup;
-+ unsigned int res;
-
- regs->regs[0] = 0;
-+ *regptr=NULL;
-+
- /*
- * This load never faults.
- */
-@@ -142,183 +142,295 @@
- * The remaining opcodes are the ones that are really of interest.
- */
- case lh_op:
-- check_axs(pc, addr, 2);
-- __asm__(
-- ".set\tnoat\n"
-+ if (verify_area(VERIFY_READ, addr, 2))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (".set\tnoat\n"
- #ifdef __BIG_ENDIAN
-- "1:\tlb\t%0,0(%1)\n"
-- "2:\tlbu\t$1,1(%1)\n\t"
-+ "1:\tlb\t%0, 0(%2)\n"
-+ "2:\tlbu\t$1, 1(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tlb\t%0,1(%1)\n"
-- "2:\tlbu\t$1,0(%1)\n\t"
-+ "1:\tlb\t%0, 1(%2)\n"
-+ "2:\tlbu\t$1, 0(%2)\n\t"
- #endif
-- "sll\t%0,0x8\n\t"
-- "or\t%0,$1\n\t"
-- ".set\tat\n\t"
-+ "sll\t%0, 0x8\n\t"
-+ "or\t%0, $1\n\t"
-+ "li\t%1, 0\n"
-+ "3:\t.set\tat\n\t"
-+ ".section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- :"=&r" (value)
-- :"r" (addr), "i" (&&fault));
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-
- case lw_op:
-- check_axs(pc, addr, 4);
-- __asm__(
-+ if (verify_area(VERIFY_READ, addr, 4))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
-- "1:\tlwl\t%0,(%1)\n"
-- "2:\tlwr\t%0,3(%1)\n\t"
-+ "1:\tlwl\t%0, (%2)\n"
-+ "2:\tlwr\t%0, 3(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tlwl\t%0,3(%1)\n"
-- "2:\tlwr\t%0,(%1)\n\t"
-+ "1:\tlwl\t%0, 3(%2)\n"
-+ "2:\tlwr\t%0, (%2)\n\t"
- #endif
-+ "li\t%1, 0\n"
-+ "3:\t.section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- :"=&r" (value)
-- :"r" (addr), "i" (&&fault));
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-
- case lhu_op:
-- check_axs(pc, addr, 2);
-- __asm__(
-+ if (verify_area(VERIFY_READ, addr, 2))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
- ".set\tnoat\n"
- #ifdef __BIG_ENDIAN
-- "1:\tlbu\t%0,0(%1)\n"
-- "2:\tlbu\t$1,1(%1)\n\t"
-+ "1:\tlbu\t%0, 0(%2)\n"
-+ "2:\tlbu\t$1, 1(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tlbu\t%0,1(%1)\n"
-- "2:\tlbu\t$1,0(%1)\n\t"
-+ "1:\tlbu\t%0, 1(%2)\n"
-+ "2:\tlbu\t$1, 0(%2)\n\t"
- #endif
-- "sll\t%0,0x8\n\t"
-- "or\t%0,$1\n\t"
-- ".set\tat\n\t"
-+ "sll\t%0, 0x8\n\t"
-+ "or\t%0, $1\n\t"
-+ "li\t%1, 0\n"
-+ "3:\t.set\tat\n\t"
-+ ".section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- :"=&r" (value)
-- :"r" (addr), "i" (&&fault));
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-
- case lwu_op:
-- check_axs(pc, addr, 4);
-- __asm__(
-+#ifdef CONFIG_MIPS64
-+ /*
-+ * A 32-bit kernel might be running on a 64-bit processor. But
-+ * if we're on a 32-bit processor and an i-cache incoherency
-+ * or race makes us see a 64-bit instruction here the sdl/sdr
-+ * would blow up, so for now we don't handle unaligned 64-bit
-+ * instructions on 32-bit kernels.
-+ */
-+ if (verify_area(VERIFY_READ, addr, 4))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
-- "1:\tlwl\t%0,(%1)\n"
-- "2:\tlwr\t%0,3(%1)\n\t"
-+ "1:\tlwl\t%0, (%2)\n"
-+ "2:\tlwr\t%0, 3(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tlwl\t%0,3(%1)\n"
-- "2:\tlwr\t%0,(%1)\n\t"
-+ "1:\tlwl\t%0, 3(%2)\n"
-+ "2:\tlwr\t%0, (%2)\n\t"
- #endif
-+ "dsll\t%0, %0, 32\n\t"
-+ "dsrl\t%0, %0, 32\n\t"
-+ "li\t%1, 0\n"
-+ "3:\t.section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- :"=&r" (value)
-- :"r" (addr), "i" (&&fault));
-- value &= 0xffffffff;
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-+#endif /* CONFIG_MIPS64 */
-+
-+ /* Cannot handle 64-bit instructions in 32-bit kernel */
-+ goto sigill;
-
- case ld_op:
-- check_axs(pc, addr, 8);
-- __asm__(
-- ".set\tmips3\n"
-+#ifdef CONFIG_MIPS64
-+ /*
-+ * A 32-bit kernel might be running on a 64-bit processor. But
-+ * if we're on a 32-bit processor and an i-cache incoherency
-+ * or race makes us see a 64-bit instruction here the sdl/sdr
-+ * would blow up, so for now we don't handle unaligned 64-bit
-+ * instructions on 32-bit kernels.
-+ */
-+ if (verify_area(VERIFY_READ, addr, 8))
-+ goto sigbus;
-+
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
-- "1:\tldl\t%0,(%1)\n"
-- "2:\tldr\t%0,7(%1)\n\t"
-+ "1:\tldl\t%0, (%2)\n"
-+ "2:\tldr\t%0, 7(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tldl\t%0,7(%1)\n"
-- "2:\tldr\t%0,(%1)\n\t"
-+ "1:\tldl\t%0, 7(%2)\n"
-+ "2:\tldr\t%0, (%2)\n\t"
- #endif
-- ".set\tmips0\n\t"
-+ "li\t%1, 0\n"
-+ "3:\t.section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%1, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- :"=&r" (value)
-- :"r" (addr), "i" (&&fault));
-- regs->regs[insn.i_format.rt] = value;
-- return 0;
-+ : "=&r" (value), "=r" (res)
-+ : "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ *newvalue = value;
-+ *regptr = &regs->regs[insn.i_format.rt];
-+ break;
-+#endif /* CONFIG_MIPS64 */
-+
-+ /* Cannot handle 64-bit instructions in 32-bit kernel */
-+ goto sigill;
-
- case sh_op:
-- check_axs(pc, addr, 2);
-+ if (verify_area(VERIFY_WRITE, addr, 2))
-+ goto sigbus;
-+
- value = regs->regs[insn.i_format.rt];
-- __asm__(
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
- ".set\tnoat\n"
-- "1:\tsb\t%0,1(%1)\n\t"
-- "srl\t$1,%0,0x8\n"
-- "2:\tsb\t$1,0(%1)\n\t"
-+ "1:\tsb\t%1, 1(%2)\n\t"
-+ "srl\t$1, %1, 0x8\n"
-+ "2:\tsb\t$1, 0(%2)\n\t"
- ".set\tat\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
- ".set\tnoat\n"
-- "1:\tsb\t%0,0(%1)\n\t"
-- "srl\t$1,%0,0x8\n"
-- "2:\tsb\t$1,1(%1)\n\t"
-+ "1:\tsb\t%1, 0(%2)\n\t"
-+ "srl\t$1,%1, 0x8\n"
-+ "2:\tsb\t$1, 1(%2)\n\t"
- ".set\tat\n\t"
- #endif
-+ "li\t%0, 0\n"
-+ "3:\n\t"
-+ ".section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%0, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- : /* no outputs */
-- :"r" (value), "r" (addr), "i" (&&fault));
-- return 0;
-+ : "=r" (res)
-+ : "r" (value), "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ break;
-
- case sw_op:
-- check_axs(pc, addr, 4);
-+ if (verify_area(VERIFY_WRITE, addr, 4))
-+ goto sigbus;
-+
- value = regs->regs[insn.i_format.rt];
-- __asm__(
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
-- "1:\tswl\t%0,(%1)\n"
-- "2:\tswr\t%0,3(%1)\n\t"
-+ "1:\tswl\t%1,(%2)\n"
-+ "2:\tswr\t%1, 3(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tswl\t%0,3(%1)\n"
-- "2:\tswr\t%0,(%1)\n\t"
-+ "1:\tswl\t%1, 3(%2)\n"
-+ "2:\tswr\t%1, (%2)\n\t"
- #endif
-+ "li\t%0, 0\n"
-+ "3:\n\t"
-+ ".section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%0, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- : /* no outputs */
-- :"r" (value), "r" (addr), "i" (&&fault));
-- return 0;
-+ : "=r" (res)
-+ : "r" (value), "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ break;
-
- case sd_op:
-- check_axs(pc, addr, 8);
-+#ifdef CONFIG_MIPS64
-+ /*
-+ * A 32-bit kernel might be running on a 64-bit processor. But
-+ * if we're on a 32-bit processor and an i-cache incoherency
-+ * or race makes us see a 64-bit instruction here the sdl/sdr
-+ * would blow up, so for now we don't handle unaligned 64-bit
-+ * instructions on 32-bit kernels.
-+ */
-+ if (verify_area(VERIFY_WRITE, addr, 8))
-+ goto sigbus;
-+
- value = regs->regs[insn.i_format.rt];
-- __asm__(
-- ".set\tmips3\n"
-+ __asm__ __volatile__ (
- #ifdef __BIG_ENDIAN
-- "1:\tsdl\t%0,(%1)\n"
-- "2:\tsdr\t%0,7(%1)\n\t"
-+ "1:\tsdl\t%1,(%2)\n"
-+ "2:\tsdr\t%1, 7(%2)\n\t"
- #endif
- #ifdef __LITTLE_ENDIAN
-- "1:\tsdl\t%0,7(%1)\n"
-- "2:\tsdr\t%0,(%1)\n\t"
-+ "1:\tsdl\t%1, 7(%2)\n"
-+ "2:\tsdr\t%1, (%2)\n\t"
- #endif
-- ".set\tmips0\n\t"
-+ "li\t%0, 0\n"
-+ "3:\n\t"
-+ ".section\t.fixup,\"ax\"\n\t"
-+ "4:\tli\t%0, %3\n\t"
-+ "j\t3b\n\t"
-+ ".previous\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- STR(PTR)"\t1b,%2\n\t"
-- STR(PTR)"\t2b,%2\n\t"
-+ STR(PTR)"\t1b, 4b\n\t"
-+ STR(PTR)"\t2b, 4b\n\t"
- ".previous"
-- : /* no outputs */
-- :"r" (value), "r" (addr), "i" (&&fault));
-- return 0;
-+ : "=r" (res)
-+ : "r" (value), "r" (addr), "i" (-EFAULT));
-+ if (res)
-+ goto fault;
-+ break;
-+#endif /* CONFIG_MIPS64 */
-+
-+ /* Cannot handle 64-bit instructions in 32-bit kernel */
-+ goto sigill;
-
- case lwc1_op:
- case ldc1_op:
-@@ -347,6 +459,11 @@
- */
- goto sigill;
- }
-+
-+#ifdef CONFIG_PROC_FS
-+ unaligned_instructions++;
-+#endif
-+
- return 0;
-
- fault:
-@@ -363,52 +480,48 @@
-
- die_if_kernel ("Unhandled kernel unaligned access", regs);
- send_sig(SIGSEGV, current, 1);
-+
- return 0;
-+
- sigbus:
-- die_if_kernel ("Unhandled kernel unaligned access", regs);
-+ die_if_kernel("Unhandled kernel unaligned access", regs);
- send_sig(SIGBUS, current, 1);
-+
- return 0;
-+
- sigill:
-- die_if_kernel ("Unhandled kernel unaligned access or invalid instruction", regs);
-+ die_if_kernel("Unhandled kernel unaligned access or invalid instruction", regs);
- send_sig(SIGILL, current, 1);
-+
- return 0;
- }
-
--#ifdef CONFIG_PROC_FS
--unsigned long unaligned_instructions;
--#endif
--
- asmlinkage void do_ade(struct pt_regs *regs)
- {
-- unsigned long pc;
-+ unsigned long *regptr, newval;
- extern int do_dsemulret(struct pt_regs *);
--
--#if 0
-- printk("ade: Cpu%d[%s:%d:%0lx:%0lx]\n", smp_processor_id(),
-- current->comm, current->pid, regs->cp0_badvaddr, regs->cp0_epc);
--#endif
-+ mm_segment_t seg;
-+ unsigned long pc;
-
- /*
-- * Address errors may be deliberately induced
-- * by the FPU emulator to take retake control
-- * of the CPU after executing the instruction
-- * in the delay slot of an emulated branch.
-+ * Address errors may be deliberately induced by the FPU emulator to
-+ * retake control of the CPU after executing the instruction in the
-+ * delay slot of an emulated branch.
- */
- /* Terminate if exception was recognized as a delay slot return */
- if (do_dsemulret(regs))
- return;
-
-- /* Otherwise handle as normal */
-+ /* Otherwise handle as normal */
-
- /*
- * Did we catch a fault trying to load an instruction?
-- * This also catches attempts to activate MIPS16 code on
-- * CPUs which don't support it.
-+ * Or are we running in MIPS16 mode?
- */
-- if (regs->cp0_badvaddr == regs->cp0_epc)
-+ if ((regs->cp0_badvaddr == regs->cp0_epc) || (regs->cp0_epc & 0x1))
- goto sigbus;
-
-- pc = regs->cp0_epc + ((regs->cp0_cause & CAUSEF_BD) ? 4 : 0);
-+ pc = exception_epc(regs);
- if ((current->thread.mflags & MF_FIXADE) == 0)
- goto sigbus;
-
-@@ -416,16 +529,28 @@
- * Do branch emulation only if we didn't forward the exception.
- * This is all so but ugly ...
- */
-- if (!emulate_load_store_insn(regs, regs->cp0_badvaddr, pc))
-+ seg = get_fs();
-+ if (!user_mode(regs))
-+ set_fs(KERNEL_DS);
-+ if (!emulate_load_store_insn(regs, (void *)regs->cp0_badvaddr, pc,
-+ &regptr, &newval)) {
- compute_return_epc(regs);
--
--#ifdef CONFIG_PROC_FS
-- unaligned_instructions++;
--#endif
-+ /*
-+ * Now that branch is evaluated, update the dest
-+ * register if necessary
-+ */
-+ if (regptr)
-+ *regptr = newval;
-+ }
-+ set_fs(seg);
-
- return;
-
- sigbus:
- die_if_kernel("Kernel unaligned instruction access", regs);
- force_sig(SIGBUS, current);
-+
-+ /*
-+ * XXX On return from the signal handler we should advance the epc
-+ */
- }
-diff -urNd -urNd linux-2.4.20/arch/mips64/ld.script.elf32.S linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf32.S
---- linux-2.4.20/arch/mips64/ld.script.elf32.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf32.S 2002-10-02 20:27:58.000000000 -0500
-@@ -77,6 +77,14 @@
- {
- _fdata = . ;
- *(.data)
-+
-+ /* Align the initial ramdisk image (INITRD) on page boundaries. */
-+ . = ALIGN(4096);
-+ __rd_start = .;
-+ *(.initrd)
-+ __rd_end = .;
-+ . = ALIGN(4096);
-+
- CONSTRUCTORS
- }
- .data1 : { *(.data1) }
-diff -urNd -urNd linux-2.4.20/arch/mips64/ld.script.elf64 linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf64
---- linux-2.4.20/arch/mips64/ld.script.elf64 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/ld.script.elf64 2002-10-02 20:27:58.000000000 -0500
-@@ -86,6 +86,14 @@
- {
- _fdata = . ;
- *(.data)
-+
-+ /* Align the initial ramdisk image (INITRD) on page boundaries. */
-+ . = ALIGN(4096);
-+ __rd_start = .;
-+ *(.initrd)
-+ __rd_end = .;
-+ . = ALIGN(4096);
-+
- CONSTRUCTORS
- }
- .data1 : { *(.data1) }
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Entries
---- linux-2.4.20/arch/mips64/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Entries 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1,21 @@
-+/.cvsignore/1.1/Sat Aug 21 22:19:15 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.6.2.3/Tue Jan 28 02:31:33 2003/-ko/Tlinux_2_4_20
-+/csum_partial.S/1.3/Mon Jul 9 00:25:37 2001/-ko/Tlinux_2_4_20
-+/csum_partial_copy.c/1.4.2.1/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/dump_tlb.c/1.8.2.4/Wed Dec 18 22:47:37 2002/-ko/Tlinux_2_4_20
-+/floppy-no.c/1.3/Mon Jul 9 00:25:37 2001/-ko/Tlinux_2_4_20
-+/floppy-std.c/1.3.4.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/ide-no.c/1.3.2.1/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/ide-std.c/1.4.2.1/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/kbd-no.c/1.3/Mon Jul 9 00:25:37 2001/-ko/Tlinux_2_4_20
-+/kbd-std.c/1.3/Mon Jul 9 00:25:37 2001/-ko/Tlinux_2_4_20
-+/memcpy.S/1.9.2.3/Thu Sep 19 14:01:24 2002/-ko/Tlinux_2_4_20
-+/memset.S/1.5.2.2/Tue Aug 6 00:56:51 2002/-ko/Tlinux_2_4_20
-+/promlib.c/1.1.2.2/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/rtc-no.c/1.4/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
-+/rtc-std.c/1.4/Sun Mar 18 04:30:28 2001/-ko/Tlinux_2_4_20
-+/strlen_user.S/1.4.2.2/Mon Dec 9 21:24:13 2002/-ko/Tlinux_2_4_20
-+/strncpy_user.S/1.4.2.1/Mon Dec 9 21:24:13 2002/-ko/Tlinux_2_4_20
-+/strnlen_user.S/1.2.2.3/Mon Dec 9 21:24:13 2002/-ko/Tlinux_2_4_20
-+/watch.S/1.3/Sun Feb 25 09:40:17 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Repository
---- linux-2.4.20/arch/mips64/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Repository 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips64/lib
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Root
---- linux-2.4.20/arch/mips64/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Root 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Tag
---- linux-2.4.20/arch/mips64/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/CVS/Tag 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/lib/.cvsignore
---- linux-2.4.20/arch/mips64/lib/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/.cvsignore 1999-08-21 17:19:15.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/dump_tlb.c linux-2.4.20-mipscvs-20050106/arch/mips64/lib/dump_tlb.c
---- linux-2.4.20/arch/mips64/lib/dump_tlb.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/dump_tlb.c 2002-12-18 16:47:37.000000000 -0600
-@@ -36,22 +36,22 @@
- unsigned long s_entryhi, entryhi, entrylo0, entrylo1, asid;
- unsigned int s_index, pagemask, c0, c1, i;
-
-- s_entryhi = get_entryhi();
-- s_index = get_index();
-+ s_entryhi = read_c0_entryhi();
-+ s_index = read_c0_index();
- asid = s_entryhi & 0xff;
-
- for (i = first; i <= last; i++) {
-- write_32bit_cp0_register(CP0_INDEX, i);
-+ write_c0_index(i);
- __asm__ __volatile__(
- ".set\tnoreorder\n\t"
- "nop;nop;nop;nop\n\t"
- "tlbr\n\t"
- "nop;nop;nop;nop\n\t"
- ".set\treorder");
-- pagemask = read_32bit_cp0_register(CP0_PAGEMASK);
-- entryhi = get_entryhi();
-- entrylo0 = get_entrylo0();
-- entrylo1 = get_entrylo1();
-+ pagemask = read_c0_pagemask();
-+ entryhi = read_c0_entryhi();
-+ entrylo0 = read_c0_entrylo0();
-+ entrylo1 = read_c0_entrylo1();
-
- /* Unused entries have a virtual address of CKSEG0. */
- if ((entryhi & ~0x1ffffUL) != CKSEG0
-@@ -81,8 +81,8 @@
- }
- printk("\n");
-
-- set_entryhi(s_entryhi);
-- set_index(s_index);
-+ write_c0_entryhi(s_entryhi);
-+ write_c0_index(s_index);
- }
-
- void dump_tlb_all(void)
-@@ -94,9 +94,9 @@
- {
- int wired;
-
-- wired = read_32bit_cp0_register(CP0_WIRED);
-+ wired = read_c0_wired();
- printk("Wired: %d", wired);
-- dump_tlb(0, read_32bit_cp0_register(CP0_WIRED));
-+ dump_tlb(0, read_c0_wired());
- }
-
- #define BARRIER \
-@@ -111,14 +111,14 @@
- int index;
-
- __save_and_cli(flags);
-- oldpid = get_entryhi() & 0xff;
-+ oldpid = read_c0_entryhi() & 0xff;
- BARRIER;
-- set_entryhi((addr & PAGE_MASK) | oldpid);
-+ write_c0_entryhi((addr & PAGE_MASK) | oldpid);
- BARRIER;
- tlb_probe();
- BARRIER;
-- index = get_index();
-- set_entryhi(oldpid);
-+ index = read_c0_index();
-+ write_c0_entryhi(oldpid);
- __restore_flags(flags);
-
- if (index < 0) {
-@@ -132,7 +132,7 @@
-
- void dump_tlb_nonwired(void)
- {
-- dump_tlb(read_32bit_cp0_register(CP0_WIRED), mips_cpu.tlbsize - 1);
-+ dump_tlb(read_c0_wired(), mips_cpu.tlbsize - 1);
- }
-
- void dump_list_process(struct task_struct *t, void *address)
-@@ -161,7 +161,7 @@
- printk("pte == %08lx, ", (unsigned long) pte);
-
- page = *pte;
-- printk("page == %08lx\n", (unsigned long) pte_val(page));
-+ printk("page == %08lx\n", pte_val(page));
-
- val = pte_val(page);
- if (val & _PAGE_PRESENT) printk("present ");
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/lib/Makefile
---- linux-2.4.20/arch/mips64/lib/Makefile 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/Makefile 2003-01-27 20:31:33.000000000 -0600
-@@ -6,12 +6,12 @@
-
- L_TARGET = lib.a
-
--obj-y += csum_partial.o csum_partial_copy.o dump_tlb.o rtc-std.o \
-+obj-y += csum_partial.o csum_partial_copy.o dump_tlb.o promlib.o rtc-std.o \
- rtc-no.o memset.o memcpy.o strlen_user.o strncpy_user.o \
- strnlen_user.o watch.o
-
- obj-$(CONFIG_BLK_DEV_FD) += floppy-no.o floppy-std.o
--obj-$(CONFIG_IDE) += ide-std.o ide-no.o
-+obj-$(subst m,y,$(CONFIG_IDE)) += ide-std.o ide-no.o # needed for ide module
- obj-$(CONFIG_PC_KEYB) += kbd-std.o kbd-no.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/memcpy.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/memcpy.S
---- linux-2.4.20/arch/mips64/lib/memcpy.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/memcpy.S 2002-09-19 09:01:24.000000000 -0500
-@@ -5,776 +5,499 @@
- *
- * Unified implementation of memcpy, memmove and the __copy_user backend.
- *
-- * Copyright (C) 1998, 1999, 2000, 2001 Ralf Baechle
-- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-+ * Copyright (C) 1998, 99, 2000, 01, 2002 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999, 2000, 01, 2002 Silicon Graphics, Inc.
-+ * Copyright (C) 2002 Broadcom, Inc.
-+ * memcpy/copy_user author: Mark Vandevoorde
- *
-- * For __rmemcpy and memmove an exception is always a kernel bug, therefore
-- * they're not protected. In order to keep the exception fixup routine
-- * simple all memory accesses in __copy_user to src rsp. dst are stricly
-- * incremental. The fixup routine depends on $at not being changed.
-+ * Mnemonic names for arguments to memcpy/__copy_user
- */
-+#include <linux/config.h>
- #include <asm/asm.h>
- #include <asm/offset.h>
- #include <asm/regdef.h>
-
-+#define dst a0
-+#define src a1
-+#define len a2
-+
- /*
-- * The fixup routine for copy_to_user depends on copying strictly in
-- * increasing order. Gas expands the ulw/usw macros in the wrong order for
-- * little endian machines, so we cannot depend on them.
-+ * Spec
-+ *
-+ * memcpy copies len bytes from src to dst and sets v0 to dst.
-+ * It assumes that
-+ * - src and dst don't overlap
-+ * - src is readable
-+ * - dst is writable
-+ * memcpy uses the standard calling convention
-+ *
-+ * __copy_user copies up to len bytes from src to dst and sets a2 (len) to
-+ * the number of uncopied bytes due to an exception caused by a read or write.
-+ * __copy_user assumes that src and dst don't overlap, and that the call is
-+ * implementing one of the following:
-+ * copy_to_user
-+ * - src is readable (no exceptions when reading src)
-+ * copy_from_user
-+ * - dst is writable (no exceptions when writing dst)
-+ * __copy_user uses a non-standard calling convention; see
-+ * include/asm-mips/uaccess.h
-+ *
-+ * When an exception happens on a load, the handler must
-+ # ensure that all of the destination buffer is overwritten to prevent
-+ * leaking information to user mode programs.
- */
--#ifdef __MIPSEB__
--#define uswL swl
--#define uswU swr
--#define ulwL lwl
--#define ulwU lwr
--#define usdL sdl
--#define usdU sdr
--#define uldL ldl
--#define uldU ldr
--#endif
--#ifdef __MIPSEL__
--#define uswL swr
--#define uswU swl
--#define ulwL lwr
--#define ulwU lwl
--#define usdL sdr
--#define usdU sdl
--#define uldL ldr
--#define uldU ldl
--#endif
-
--#define EX(insn,reg,addr,handler) \
--9: insn reg, addr; \
-- .section __ex_table,"a"; \
-- PTR 9b, handler; \
-- .previous
-+/*
-+ * Implementation
-+ */
-
--#define UEX(insn,reg,addr,handler) \
--9: insn ## L reg, addr; \
--10: insn ## U reg, 3 + addr; \
-- .section __ex_table,"a"; \
-- PTR 9b, handler; \
-- PTR 10b, handler; \
-- .previous
-+/*
-+ * The exception handler for loads requires that:
-+ * 1- AT contain the address of the byte just past the end of the source
-+ * of the copy,
-+ * 2- src_entry <= src < AT, and
-+ * 3- (dst - src) == (dst_entry - src_entry),
-+ * The _entry suffix denotes values when __copy_user was called.
-+ *
-+ * (1) is set up up by uaccess.h and maintained by not writing AT in copy_user
-+ * (2) is met by incrementing src by the number of bytes copied
-+ * (3) is met by not doing loads between a pair of increments of dst and src
-+ *
-+ * The exception handlers for stores adjust len (if necessary) and return.
-+ * These handlers do not need to overwrite any data.
-+ *
-+ * For __rmemcpy and memmove an exception is always a kernel bug, therefore
-+ * they're not protected.
-+ */
-
--#define UEXD(insn,reg,addr,handler) \
--9: insn ## L reg, addr; \
--10: insn ## U reg, 7 + addr; \
-- .section __ex_table,"a"; \
-- PTR 9b, handler; \
-- PTR 10b, handler; \
-+#define EXC(inst_reg,addr,handler) \
-+9: inst_reg, addr; \
-+ .section __ex_table,"a"; \
-+ PTR 9b, handler; \
- .previous
-
--/* ascending order, destination aligned */
--#define MOVE_BIGGERCHUNK(src, dst, offset, t0, t1, t2, t3) \
-- EX(ld, t0, (offset + 0x00)(src), l_fixup); \
-- EX(ld, t1, (offset + 0x08)(src), l_fixup); \
-- EX(ld, t2, (offset + 0x10)(src), l_fixup); \
-- EX(ld, t3, (offset + 0x18)(src), l_fixup); \
-- EX(sd, t0, (offset + 0x00)(dst), s_fixup); \
-- EX(sd, t1, (offset + 0x08)(dst), s_fixup); \
-- EX(sd, t2, (offset + 0x10)(dst), s_fixup); \
-- EX(sd, t3, (offset + 0x18)(dst), s_fixup); \
-- EX(ld, t0, (offset + 0x20)(src), l_fixup); \
-- EX(ld, t1, (offset + 0x28)(src), l_fixup); \
-- EX(ld, t2, (offset + 0x30)(src), l_fixup); \
-- EX(ld, t3, (offset + 0x38)(src), l_fixup); \
-- EX(sd, t0, (offset + 0x20)(dst), s_fixup); \
-- EX(sd, t1, (offset + 0x28)(dst), s_fixup); \
-- EX(sd, t2, (offset + 0x30)(dst), s_fixup); \
-- EX(sd, t3, (offset + 0x38)(dst), s_fixup)
-+/*
-+ * Only on the 64-bit kernel we can made use of 64-bit registers.
-+ */
-+#ifdef CONFIG_MIPS64
-+#define USE_DOUBLE
-+#endif
-
--/* ascending order, destination aligned */
--#define MOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-- EX(lw, t0, (offset + 0x00)(src), l_fixup); \
-- EX(lw, t1, (offset + 0x04)(src), l_fixup); \
-- EX(lw, t2, (offset + 0x08)(src), l_fixup); \
-- EX(lw, t3, (offset + 0x0c)(src), l_fixup); \
-- EX(sw, t0, (offset + 0x00)(dst), s_fixup); \
-- EX(sw, t1, (offset + 0x04)(dst), s_fixup); \
-- EX(sw, t2, (offset + 0x08)(dst), s_fixup); \
-- EX(sw, t3, (offset + 0x0c)(dst), s_fixup); \
-- EX(lw, t0, (offset + 0x10)(src), l_fixup); \
-- EX(lw, t1, (offset + 0x14)(src), l_fixup); \
-- EX(lw, t2, (offset + 0x18)(src), l_fixup); \
-- EX(lw, t3, (offset + 0x1c)(src), l_fixup); \
-- EX(sw, t0, (offset + 0x10)(dst), s_fixup); \
-- EX(sw, t1, (offset + 0x14)(dst), s_fixup); \
-- EX(sw, t2, (offset + 0x18)(dst), s_fixup); \
-- EX(sw, t3, (offset + 0x1c)(dst), s_fixup)
-+#ifdef USE_DOUBLE
-
--/* ascending order, destination unaligned */
--#define UMOVE_BIGGERCHUNK(src, dst, offset, t0, t1, t2, t3) \
-- EX(ld, t0, (offset + 0x00)(src), l_fixup); \
-- EX(ld, t1, (offset + 0x08)(src), l_fixup); \
-- EX(ld, t2, (offset + 0x10)(src), l_fixup); \
-- EX(ld, t3, (offset + 0x18)(src), l_fixup); \
-- UEXD(usd, t0, (offset + 0x00)(dst), s_fixup); \
-- UEXD(usd, t1, (offset + 0x08)(dst), s_fixup); \
-- UEXD(usd, t2, (offset + 0x10)(dst), s_fixup); \
-- UEXD(usd, t3, (offset + 0x18)(dst), s_fixup); \
-- EX(ld, t0, (offset + 0x20)(src), l_fixup); \
-- EX(ld, t1, (offset + 0x28)(src), l_fixup); \
-- EX(ld, t2, (offset + 0x30)(src), l_fixup); \
-- EX(ld, t3, (offset + 0x38)(src), l_fixup); \
-- UEXD(usd, t0, (offset + 0x20)(dst), s_fixup); \
-- UEXD(usd, t1, (offset + 0x28)(dst), s_fixup); \
-- UEXD(usd, t2, (offset + 0x30)(dst), s_fixup); \
-- UEXD(usd, t3, (offset + 0x38)(dst), s_fixup)
-+#define LOAD ld
-+#define LOADL ldl
-+#define LOADR ldr
-+#define STOREL sdl
-+#define STORER sdr
-+#define STORE sd
-+#define ADD daddu
-+#define SUB dsubu
-+#define SRL dsrl
-+#define SRA dsra
-+#define SLL dsll
-+#define SLLV dsllv
-+#define SRLV dsrlv
-+#define NBYTES 8
-+#define LOG_NBYTES 3
-
--/* ascending order, destination unaligned */
--#define UMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-- EX(lw, t0, (offset + 0x00)(src), l_fixup); \
-- EX(lw, t1, (offset + 0x04)(src), l_fixup); \
-- EX(lw, t2, (offset + 0x08)(src), l_fixup); \
-- EX(lw, t3, (offset + 0x0c)(src), l_fixup); \
-- UEX(usw, t0, (offset + 0x00)(dst), s_fixup); \
-- UEX(usw, t1, (offset + 0x04)(dst), s_fixup); \
-- UEX(usw, t2, (offset + 0x08)(dst), s_fixup); \
-- UEX(usw, t3, (offset + 0x0c)(dst), s_fixup); \
-- EX(lw, t0, (offset + 0x10)(src), l_fixup); \
-- EX(lw, t1, (offset + 0x14)(src), l_fixup); \
-- EX(lw, t2, (offset + 0x18)(src), l_fixup); \
-- EX(lw, t3, (offset + 0x1c)(src), l_fixup); \
-- UEX(usw, t0, (offset + 0x10)(dst), s_fixup); \
-- UEX(usw, t1, (offset + 0x14)(dst), s_fixup); \
-- UEX(usw, t2, (offset + 0x18)(dst), s_fixup); \
-- UEX(usw, t3, (offset + 0x1c)(dst), s_fixup)
-+/*
-+ * As we are sharing code base with the mips32 tree (which use the o32 ABI
-+ * register definitions). We need to redefine the register definitions from
-+ * the n64 ABI register naming to the o32 ABI register naming.
-+ */
-+#undef t0
-+#undef t1
-+#undef t2
-+#undef t3
-+#define t0 $8
-+#define t1 $9
-+#define t2 $10
-+#define t3 $11
-+#define t4 $12
-+#define t5 $13
-+#define t6 $14
-+#define t7 $15
-+
-+#else
-+
-+#define LOAD lw
-+#define LOADL lwl
-+#define LOADR lwr
-+#define STOREL swl
-+#define STORER swr
-+#define STORE sw
-+#define ADD addu
-+#define SUB subu
-+#define SRL srl
-+#define SLL sll
-+#define SRA sra
-+#define SLLV sllv
-+#define SRLV srlv
-+#define NBYTES 4
-+#define LOG_NBYTES 2
-+
-+#endif /* USE_DOUBLE */
-+
-+#ifdef CONFIG_CPU_LITTLE_ENDIAN
-+#define LDFIRST LOADR
-+#define LDREST LOADL
-+#define STFIRST STORER
-+#define STREST STOREL
-+#define SHIFT_DISCARD SLLV
-+#else
-+#define LDFIRST LOADL
-+#define LDREST LOADR
-+#define STFIRST STOREL
-+#define STREST STORER
-+#define SHIFT_DISCARD SRLV
-+#endif
-+
-+#define FIRST(unit) ((unit)*NBYTES)
-+#define REST(unit) (FIRST(unit)+NBYTES-1)
-+#define UNIT(unit) FIRST(unit)
-+
-+#define ADDRMASK (NBYTES-1)
-
- .text
- .set noreorder
- .set noat
-
-+/*
-+ * A combined memcpy/__copy_user
-+ * __copy_user sets len to 0 for success; else to an upper bound of
-+ * the number of uncopied bytes.
-+ * memcpy sets v0 to dst.
-+ */
- .align 5
- LEAF(memcpy) /* a0=dst a1=src a2=len */
-- move v0, a0 /* return value */
-+ move v0, dst /* return value */
- __memcpy:
- FEXPORT(__copy_user)
-- xor ta0, a0, a1
-- andi ta0, ta0, 0x7
-- move t3, a0
-- beqz ta0, can_align
-- sltiu t8, a2, 0x8
--
-- b memcpy_u_src # bad alignment
-- move ta2, a2
--
--can_align:
-- bnez t8, small_memcpy # < 8 bytes to copy
-- move ta2, a2
--
-- beqz a2, out
-- andi t8, a1, 0x1
--
--hword_align:
-- beqz t8, word_align
-- andi t8, a1, 0x2
--
-- EX(lb, ta0, (a1), l_fixup)
-- dsubu a2, a2, 0x1
-- EX(sb, ta0, (a0), s_fixup)
-- daddu a1, a1, 0x1
-- daddu a0, a0, 0x1
-- andi t8, a1, 0x2
--
--word_align:
-- beqz t8, dword_align
-- sltiu t8, a2, 56
--
-- EX(lh, ta0, (a1), l_fixup)
-- dsubu a2, a2, 0x2
-- EX(sh, ta0, (a0), s_fixup)
-- sltiu t8, a2, 56
-- daddu a0, a0, 0x2
-- daddu a1, a1, 0x2
--
--dword_align:
-- bnez t8, do_end_words
-- move t8, a2
--
-- andi t8, a1, 0x4
-- beqz t8, qword_align
-- andi t8, a1, 0x8
--
-- EX(lw, ta0, 0x00(a1), l_fixup)
-- dsubu a2, a2, 0x4
-- EX(sw, ta0, 0x00(a0), s_fixup)
-- daddu a1, a1, 0x4
-- daddu a0, a0, 0x4
-- andi t8, a1, 0x8
--
--qword_align:
-- beqz t8, oword_align
-- andi t8, a1, 0x10
--
-- EX(lw, ta0, 0x00(a1), l_fixup)
-- EX(lw, ta1, 0x04(a1), l_fixup)
-- dsubu a2, a2, 0x8
-- EX(sw, ta0, 0x00(a0), s_fixup)
-- EX(sw, ta1, 0x04(a0), s_fixup)
-- daddu a1, a1, 0x8
-- andi t8, a1, 0x10
-- daddu a0, a0, 0x8
--
--oword_align:
-- beqz t8, begin_movement
-- srl t8, a2, 0x7
--
-- EX(lw, ta3, 0x00(a1), l_fixup)
-- EX(lw, t0, 0x04(a1), l_fixup)
-- EX(lw, ta0, 0x08(a1), l_fixup)
-- EX(lw, ta1, 0x0c(a1), l_fixup)
-- EX(sw, ta3, 0x00(a0), s_fixup)
-- EX(sw, t0, 0x04(a0), s_fixup)
-- EX(sw, ta0, 0x08(a0), s_fixup)
-- EX(sw, ta1, 0x0c(a0), s_fixup)
-- dsubu a2, a2, 0x10
-- daddu a1, a1, 0x10
-- srl t8, a2, 0x7
-- daddu a0, a0, 0x10
--
--begin_movement:
-- beqz t8, 0f
-- andi ta2, a2, 0x40
--
--move_128bytes:
-- PREF (0, 2*128(a0))
-- PREF (1, 2*128(a1))
-- MOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- MOVE_BIGGERCHUNK(a1, a0, 0x40, ta0, ta1, ta3, t0)
-- dsubu t8, t8, 0x01
-- daddu a1, a1, 0x80
-- bnez t8, move_128bytes
-- daddu a0, a0, 0x80
--
--0:
-- beqz ta2, 1f
-- andi ta2, a2, 0x20
--
--move_64bytes:
-- MOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- daddu a1, a1, 0x40
-- daddu a0, a0, 0x40
-+ /*
-+ * Note: dst & src may be unaligned, len may be 0
-+ * Temps
-+ */
-+#define rem t8
-
-+ /*
-+ * The "issue break"s below are very approximate.
-+ * Issue delays for dcache fills will perturb the schedule, as will
-+ * load queue full replay traps, etc.
-+ *
-+ * If len < NBYTES use byte operations.
-+ */
-+ PREF( 0, 0(src) )
-+ PREF( 1, 0(dst) )
-+ sltu t2, len, NBYTES
-+ and t1, dst, ADDRMASK
-+ PREF( 0, 1*32(src) )
-+ PREF( 1, 1*32(dst) )
-+ bnez t2, copy_bytes_checklen
-+ and t0, src, ADDRMASK
-+ PREF( 0, 2*32(src) )
-+ PREF( 1, 2*32(dst) )
-+ bnez t1, dst_unaligned
-+ nop
-+ bnez t0, src_unaligned_dst_aligned
-+ /*
-+ * use delay slot for fall-through
-+ * src and dst are aligned; need to compute rem
-+ */
-+both_aligned:
-+ SRL t0, len, LOG_NBYTES+3 # +3 for 8 units/iter
-+ beqz t0, cleanup_both_aligned # len < 8*NBYTES
-+ and rem, len, (8*NBYTES-1) # rem = len % (8*NBYTES)
-+ PREF( 0, 3*32(src) )
-+ PREF( 1, 3*32(dst) )
-+ .align 4
- 1:
-- beqz ta2, do_end_words
-- andi t8, a2, 0x1c
--
--move_32bytes:
-- MOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- andi t8, a2, 0x1c
-- daddu a1, a1, 0x20
-- daddu a0, a0, 0x20
--
--do_end_words:
-- beqz t8, maybe_end_cruft
-- srl t8, t8, 0x2
--
--end_words:
-- EX(lw, ta0, (a1), l_fixup)
-- dsubu t8, t8, 0x1
-- EX(sw, ta0, (a0), s_fixup)
-- daddu a1, a1, 0x4
-- bnez t8, end_words
-- daddu a0, a0, 0x4
--
--maybe_end_cruft:
-- andi ta2, a2, 0x3
--
--small_memcpy:
-- beqz ta2, out
-- move a2, ta2
--
--end_bytes:
-- EX(lb, ta0, (a1), l_fixup)
-- dsubu a2, a2, 0x1
-- EX(sb, ta0, (a0), s_fixup)
-- daddu a1, a1, 0x1
-- bnez a2, end_bytes
-- daddu a0, a0, 0x1
--
--out: jr ra
-- move a2, zero
--
--/* ------------------------------------------------------------------------- */
--
--/* Bad, bad. At least try to align the source */
--
--memcpy_u_src:
-- bnez t8, small_memcpy # < 8 bytes?
-- move ta2, a2
--
-- daddiu ta0, a1, 7 # ta0: how much to align
-- ori ta0, 7
-- xori ta0, 7
-- dsubu ta0, a1
--
-- UEXD(uld, ta1, 0(a1), l_fixup) # dword alignment
-- UEXD(usd, ta1, 0(a0), s_fixup)
--
-- daddu a1, ta0 # src
-- daddu a0, ta0 # dst
-- dsubu a2, ta0 # len
--
-- sltiu t8, a2, 56
-- bnez t8, u_do_end_words
-- andi t8, a2, 0x3c
--
-- andi t8, a1, 8 # now qword aligned?
--
--u_qword_align:
-- beqz t8, u_oword_align
-- andi t8, a1, 0x10
--
-- EX(ld, ta0, 0x00(a1), l_fixup)
-- dsubu a2, a2, 0x8
-- UEXD(usd, ta0, 0x00(a0), s_fixup)
-- daddu a1, a1, 0x8
-- andi t8, a1, 0x10
-- daddu a0, a0, 0x8
--
--u_oword_align:
-- beqz t8, u_begin_movement
-- srl t8, a2, 0x7
--
-- EX(lw, ta3, 0x08(a1), l_fixup)
-- EX(lw, t0, 0x0c(a1), l_fixup)
-- EX(lw, ta0, 0x00(a1), l_fixup)
-- EX(lw, ta1, 0x04(a1), l_fixup)
-- UEX(usw, ta3, 0x08(a0), s_fixup)
-- UEX(usw, t0, 0x0c(a0), s_fixup)
-- UEX(usw, ta0, 0x00(a0), s_fixup)
-- UEX(usw, ta1, 0x04(a0), s_fixup)
-- dsubu a2, a2, 0x10
-- daddu a1, a1, 0x10
-- srl t8, a2, 0x7
-- daddu a0, a0, 0x10
--
--u_begin_movement:
-- beqz t8, 0f
-- andi ta2, a2, 0x40
-+EXC( LOAD t0, UNIT(0)(src), l_exc)
-+EXC( LOAD t1, UNIT(1)(src), l_exc_copy)
-+EXC( LOAD t2, UNIT(2)(src), l_exc_copy)
-+EXC( LOAD t3, UNIT(3)(src), l_exc_copy)
-+ SUB len, len, 8*NBYTES
-+EXC( LOAD t4, UNIT(4)(src), l_exc_copy)
-+EXC( LOAD t7, UNIT(5)(src), l_exc_copy)
-+EXC( STORE t0, UNIT(0)(dst), s_exc_p8u)
-+EXC( STORE t1, UNIT(1)(dst), s_exc_p7u)
-+EXC( LOAD t0, UNIT(6)(src), l_exc_copy)
-+EXC( LOAD t1, UNIT(7)(src), l_exc_copy)
-+ ADD src, src, 8*NBYTES
-+ ADD dst, dst, 8*NBYTES
-+EXC( STORE t2, UNIT(-6)(dst), s_exc_p6u)
-+EXC( STORE t3, UNIT(-5)(dst), s_exc_p5u)
-+EXC( STORE t4, UNIT(-4)(dst), s_exc_p4u)
-+EXC( STORE t7, UNIT(-3)(dst), s_exc_p3u)
-+EXC( STORE t0, UNIT(-2)(dst), s_exc_p2u)
-+EXC( STORE t1, UNIT(-1)(dst), s_exc_p1u)
-+ PREF( 0, 8*32(src) )
-+ PREF( 1, 8*32(dst) )
-+ bne len, rem, 1b
-+ nop
-
--u_move_128bytes:
-- UMOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- UMOVE_BIGGERCHUNK(a1, a0, 0x40, ta0, ta1, ta3, t0)
-- dsubu t8, t8, 0x01
-- daddu a1, a1, 0x80
-- bnez t8, u_move_128bytes
-- daddu a0, a0, 0x80
-+ /*
-+ * len == rem == the number of bytes left to copy < 8*NBYTES
-+ */
-+cleanup_both_aligned:
-+ beqz len, done
-+ sltu t0, len, 4*NBYTES
-+ bnez t0, less_than_4units
-+ and rem, len, (NBYTES-1) # rem = len % NBYTES
-+ /*
-+ * len >= 4*NBYTES
-+ */
-+EXC( LOAD t0, UNIT(0)(src), l_exc)
-+EXC( LOAD t1, UNIT(1)(src), l_exc_copy)
-+EXC( LOAD t2, UNIT(2)(src), l_exc_copy)
-+EXC( LOAD t3, UNIT(3)(src), l_exc_copy)
-+ SUB len, len, 4*NBYTES
-+ ADD src, src, 4*NBYTES
-+EXC( STORE t0, UNIT(0)(dst), s_exc_p4u)
-+EXC( STORE t1, UNIT(1)(dst), s_exc_p3u)
-+EXC( STORE t2, UNIT(2)(dst), s_exc_p2u)
-+EXC( STORE t3, UNIT(3)(dst), s_exc_p1u)
-+ beqz len, done
-+ ADD dst, dst, 4*NBYTES
-+less_than_4units:
-+ /*
-+ * rem = len % NBYTES
-+ */
-+ beq rem, len, copy_bytes
-+ nop
-+1:
-+EXC( LOAD t0, 0(src), l_exc)
-+ ADD src, src, NBYTES
-+ SUB len, len, NBYTES
-+EXC( STORE t0, 0(dst), s_exc_p1u)
-+ bne rem, len, 1b
-+ ADD dst, dst, NBYTES
-
--0:
-- beqz ta2, 1f
-- andi ta2, a2, 0x20
-+ /*
-+ * src and dst are aligned, need to copy rem bytes (rem < NBYTES)
-+ * A loop would do only a byte at a time with possible branch
-+ * mispredicts. Can't do an explicit LOAD dst,mask,or,STORE
-+ * because can't assume read-access to dst. Instead, use
-+ * STREST dst, which doesn't require read access to dst.
-+ *
-+ * This code should perform better than a simple loop on modern,
-+ * wide-issue mips processors because the code has fewer branches and
-+ * more instruction-level parallelism.
-+ */
-+#define bits t2
-+ beqz len, done
-+ ADD t1, dst, len # t1 is just past last byte of dst
-+ li bits, 8*NBYTES
-+ SLL rem, len, 3 # rem = number of bits to keep
-+EXC( LOAD t0, 0(src), l_exc)
-+ SUB bits, bits, rem # bits = number of bits to discard
-+ SHIFT_DISCARD t0, t0, bits
-+EXC( STREST t0, -1(t1), s_exc)
-+ jr ra
-+ move len, zero
-+dst_unaligned:
-+ /*
-+ * dst is unaligned
-+ * t0 = src & ADDRMASK
-+ * t1 = dst & ADDRMASK; T1 > 0
-+ * len >= NBYTES
-+ *
-+ * Copy enough bytes to align dst
-+ * Set match = (src and dst have same alignment)
-+ */
-+#define match rem
-+EXC( LDFIRST t3, FIRST(0)(src), l_exc)
-+ ADD t2, zero, NBYTES
-+EXC( LDREST t3, REST(0)(src), l_exc_copy)
-+ SUB t2, t2, t1 # t2 = number of bytes copied
-+ xor match, t0, t1
-+EXC( STFIRST t3, FIRST(0)(dst), s_exc)
-+ beq len, t2, done
-+ SUB len, len, t2
-+ ADD dst, dst, t2
-+ beqz match, both_aligned
-+ ADD src, src, t2
-
--u_move_64bytes:
-- UMOVE_BIGGERCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- daddu a1, a1, 0x40
-- daddu a0, a0, 0x40
-+src_unaligned_dst_aligned:
-+ SRL t0, len, LOG_NBYTES+2 # +2 for 4 units/iter
-+ PREF( 0, 3*32(src) )
-+ beqz t0, cleanup_src_unaligned
-+ and rem, len, (4*NBYTES-1) # rem = len % 4*NBYTES
-+ PREF( 1, 3*32(dst) )
-+1:
-+/*
-+ * Avoid consecutive LD*'s to the same register since some mips
-+ * implementations can't issue them in the same cycle.
-+ * It's OK to load FIRST(N+1) before REST(N) because the two addresses
-+ * are to the same unit (unless src is aligned, but it's not).
-+ */
-+EXC( LDFIRST t0, FIRST(0)(src), l_exc)
-+EXC( LDFIRST t1, FIRST(1)(src), l_exc_copy)
-+ SUB len, len, 4*NBYTES
-+EXC( LDREST t0, REST(0)(src), l_exc_copy)
-+EXC( LDREST t1, REST(1)(src), l_exc_copy)
-+EXC( LDFIRST t2, FIRST(2)(src), l_exc_copy)
-+EXC( LDFIRST t3, FIRST(3)(src), l_exc_copy)
-+EXC( LDREST t2, REST(2)(src), l_exc_copy)
-+EXC( LDREST t3, REST(3)(src), l_exc_copy)
-+ PREF( 0, 9*32(src) ) # 0 is PREF_LOAD (not streamed)
-+ ADD src, src, 4*NBYTES
-+#ifdef CONFIG_CPU_SB1
-+ nop # improves slotting
-+#endif
-+EXC( STORE t0, UNIT(0)(dst), s_exc_p4u)
-+EXC( STORE t1, UNIT(1)(dst), s_exc_p3u)
-+EXC( STORE t2, UNIT(2)(dst), s_exc_p2u)
-+EXC( STORE t3, UNIT(3)(dst), s_exc_p1u)
-+ PREF( 1, 9*32(dst) ) # 1 is PREF_STORE (not streamed)
-+ bne len, rem, 1b
-+ ADD dst, dst, 4*NBYTES
-
-+cleanup_src_unaligned:
-+ beqz len, done
-+ and rem, len, NBYTES-1 # rem = len % NBYTES
-+ beq rem, len, copy_bytes
- 1:
-- beqz ta2, u_do_end_words
-- andi t8, a2, 0x1c
-+EXC( LDFIRST t0, FIRST(0)(src), l_exc)
-+EXC( LDREST t0, REST(0)(src), l_exc_copy)
-+ ADD src, src, NBYTES
-+ SUB len, len, NBYTES
-+EXC( STORE t0, 0(dst), s_exc_p1u)
-+ bne len, rem, 1b
-+ ADD dst, dst, NBYTES
-
--u_move_32bytes:
-- UMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- andi t8, a2, 0x1c
-- daddu a1, a1, 0x20
-- daddu a0, a0, 0x20
-+copy_bytes_checklen:
-+ beqz len, done
-+ nop
-+copy_bytes:
-+ /* 0 < len < NBYTES */
-+#define COPY_BYTE(N) \
-+EXC( lb t0, N(src), l_exc); \
-+ SUB len, len, 1; \
-+ beqz len, done; \
-+EXC( sb t0, N(dst), s_exc_p1)
-
--u_do_end_words:
-- beqz t8, u_maybe_end_cruft
-- srl t8, t8, 0x2
-+ COPY_BYTE(0)
-+ COPY_BYTE(1)
-+#ifdef USE_DOUBLE
-+ COPY_BYTE(2)
-+ COPY_BYTE(3)
-+ COPY_BYTE(4)
-+ COPY_BYTE(5)
-+#endif
-+EXC( lb t0, NBYTES-2(src), l_exc)
-+ SUB len, len, 1
-+ jr ra
-+EXC( sb t0, NBYTES-2(dst), s_exc_p1)
-+done:
-+ jr ra
-+ nop
-+ END(memcpy)
-
--u_end_words:
-- EX(lw, ta0, 0x00(a1), l_fixup)
-- dsubu t8, t8, 0x1
-- UEX(usw, ta0, 0x00(a0), s_fixup)
-- daddu a1, a1, 0x4
-- bnez t8, u_end_words
-- daddu a0, a0, 0x4
-+l_exc_copy:
-+ /*
-+ * Copy bytes from src until faulting load address (or until a
-+ * lb faults)
-+ *
-+ * When reached by a faulting LDFIRST/LDREST, THREAD_BUADDR($28)
-+ * may be more than a byte beyond the last address.
-+ * Hence, the lb below may get an exception.
-+ *
-+ * Assumes src < THREAD_BUADDR($28)
-+ */
-+ LOAD t0, THREAD_BUADDR($28)
-+1:
-+EXC( lb t1, 0(src), l_exc)
-+ ADD src, src, 1
-+ sb t1, 0(dst) # can't fault -- we're copy_from_user
-+ bne src, t0, 1b
-+ ADD dst, dst, 1
-+l_exc:
-+ LOAD t0, THREAD_BUADDR($28) # t0 is just past last good address
-+ nop
-+ SUB len, AT, t0 # len number of uncopied bytes
-+ /*
-+ * Here's where we rely on src and dst being incremented in tandem,
-+ * See (3) above.
-+ * dst += (fault addr - src) to put dst at first byte to clear
-+ */
-+ ADD dst, t0 # compute start address in a1
-+ SUB dst, src
-+ /*
-+ * Clear len bytes starting at dst. Can't call __bzero because it
-+ * might modify len. An inefficient loop for these rare times...
-+ */
-+ beqz len, done
-+ SUB src, len, 1
-+1: sb zero, 0(dst)
-+ ADD dst, dst, 1
-+ bnez src, 1b
-+ SUB src, src, 1
-+ jr ra
-+ nop
-
--u_maybe_end_cruft:
-- andi ta2, a2, 0x3
-
--u_cannot_optimize:
-- beqz ta2, out
-- move a2, ta2
-+#define SEXC(n) \
-+s_exc_p ## n ## u: \
-+ jr ra; \
-+ ADD len, len, n*NBYTES
-
--u_end_bytes:
-- EX(lb, ta0, (a1), l_fixup)
-- dsubu a2, a2, 0x1
-- EX(sb, ta0, (a0), s_fixup)
-- daddu a1, a1, 0x1
-- bnez a2, u_end_bytes
-- daddu a0, a0, 0x1
-+SEXC(8)
-+SEXC(7)
-+SEXC(6)
-+SEXC(5)
-+SEXC(4)
-+SEXC(3)
-+SEXC(2)
-+SEXC(1)
-
-+s_exc_p1:
- jr ra
-- move a2, zero
-- END(memcpy)
--
--/* descending order, destination aligned */
--#define RMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-- lw t0, (offset + 0x10)(src); \
-- lw t1, (offset + 0x14)(src); \
-- lw t2, (offset + 0x18)(src); \
-- lw t3, (offset + 0x1c)(src); \
-- sw t0, (offset + 0x10)(dst); \
-- sw t1, (offset + 0x14)(dst); \
-- sw t2, (offset + 0x18)(dst); \
-- sw t3, (offset + 0x1c)(dst); \
-- lw t0, (offset + 0x00)(src); \
-- lw t1, (offset + 0x04)(src); \
-- lw t2, (offset + 0x08)(src); \
-- lw t3, (offset + 0x0c)(src); \
-- sw t0, (offset + 0x00)(dst); \
-- sw t1, (offset + 0x04)(dst); \
-- sw t2, (offset + 0x08)(dst); \
-- sw t3, (offset + 0x0c)(dst)
--
--/* descending order, destination ununaligned */
--#define RUMOVE_BIGCHUNK(src, dst, offset, t0, t1, t2, t3) \
-- lw t0, (offset + 0x10)(src); \
-- lw t1, (offset + 0x14)(src); \
-- lw t2, (offset + 0x18)(src); \
-- lw t3, (offset + 0x1c)(src); \
-- usw t0, (offset + 0x10)(dst); \
-- usw t1, (offset + 0x14)(dst); \
-- usw t2, (offset + 0x18)(dst); \
-- usw t3, (offset + 0x1c)(dst); \
-- lw t0, (offset + 0x00)(src); \
-- lw t1, (offset + 0x04)(src); \
-- lw t2, (offset + 0x08)(src); \
-- lw t3, (offset + 0x0c)(src); \
-- usw t0, (offset + 0x00)(dst); \
-- usw t1, (offset + 0x04)(dst); \
-- usw t2, (offset + 0x08)(dst); \
-- usw t3, (offset + 0x0c)(dst)
-+ ADD len, len, 1
-+s_exc:
-+ jr ra
-+ nop
-
- .align 5
- LEAF(memmove)
-- daddu t0, a0, a2
-+ ADD t0, a0, a2
-+ ADD t1, a1, a2
- sltu t0, a1, t0 # dst + len <= src -> memcpy
-- daddu t1, a1, a2
- sltu t1, a0, t1 # dst >= src + len -> memcpy
- and t0, t1
- beqz t0, __memcpy
--
- move v0, a0 /* return value */
- beqz a2, r_out
- END(memmove)
-
-+ /* fall through to __rmemcpy */
- LEAF(__rmemcpy) /* a0=dst a1=src a2=len */
-- sltu t0, a1, a0
-+ sltu t0, a1, a0
- beqz t0, r_end_bytes_up # src >= dst
- nop
-- daddu a0, a2 # dst = dst + len
-- daddu a1, a2 # src = src + len
--
--#if 0 /* Horror fix */
-- xor ta0, a0, a1
-- andi ta0, ta0, 0x3
-- move t3, a0
-- beqz ta0, r_can_align
-- sltiu t8, a2, 0x8
--
-- b r_memcpy_u_src # bad alignment
-- move ta2, a2
--
--r_can_align:
-- bnez t8, r_small_memcpy # < 8 bytes to copy
-- move ta2, a2
--
-- beqz a2, r_out
-- andi t8, a1, 0x1
--
--r_hword_align:
-- beqz t8, r_word_align
-- andi t8, a1, 0x2
--
-- lb ta0, -1(a1)
-- dsubu a2, a2, 0x1
-- sb ta0, -1(a0)
-- dsubu a1, a1, 0x1
-- dsubu a0, a0, 0x1
-- andi t8, a1, 0x2
--
--r_word_align:
-- beqz t8, r_dword_align
-- sltiu t8, a2, 56
--
-- lh ta0, -2(a1)
-- dsubu a2, a2, 0x2
-- sh ta0, -2(a0)
-- sltiu t8, a2, 56
-- dsubu a0, a0, 0x2
-- dsubu a1, a1, 0x2
--
--r_dword_align:
-- bnez t8, r_do_end_words
-- move t8, a2
--
-- andi t8, a1, 0x4
-- beqz t8, r_qword_align
-- andi t8, a1, 0x8
--
-- lw ta0, -4(a1)
-- dsubu a2, a2, 0x4
-- sw ta0, -4(a0)
-- dsubu a1, a1, 0x4
-- dsubu a0, a0, 0x4
-- andi t8, a1, 0x8
--
--r_qword_align:
-- beqz t8, r_oword_align
-- andi t8, a1, 0x10
--
-- dsubu a1, a1, 0x8
-- lw ta0, 0x04(a1)
-- lw ta1, 0x00(a1)
-- dsubu a0, a0, 0x8
-- sw ta0, 0x04(a0)
-- sw ta1, 0x00(a0)
-- dsubu a2, a2, 0x8
--
-- andi t8, a1, 0x10
--
--r_oword_align:
-- beqz t8, r_begin_movement
-- srl t8, a2, 0x7
--
-- dsubu a1, a1, 0x10
-- lw ta3, 0x08(a1) # assumes subblock ordering
-- lw t0, 0x0c(a1)
-- lw ta0, 0x00(a1)
-- lw ta1, 0x04(a1)
-- dsubu a0, a0, 0x10
-- sw ta3, 0x08(a0)
-- sw t0, 0x0c(a0)
-- sw ta0, 0x00(a0)
-- sw ta1, 0x04(a0)
-- dsubu a2, a2, 0x10
-- srl t8, a2, 0x7
--
--r_begin_movement:
-- beqz t8, 0f
-- andi ta2, a2, 0x40
--
--r_move_128bytes:
-- RMOVE_BIGCHUNK(a1, a0, -0x80, ta0, ta1, ta3, t0)
-- RMOVE_BIGCHUNK(a1, a0, -0x60, ta0, ta1, ta3, t0)
-- RMOVE_BIGCHUNK(a1, a0, -0x40, ta0, ta1, ta3, t0)
-- RMOVE_BIGCHUNK(a1, a0, -0x20, ta0, ta1, ta3, t0)
-- dsubu t8, t8, 0x01
-- dsubu a1, a1, 0x80
-- bnez t8, r_move_128bytes
-- dsubu a0, a0, 0x80
--
--0:
-- beqz ta2, 1f
-- andi ta2, a2, 0x20
--
--r_move_64bytes:
-- dsubu a1, a1, 0x40
-- dsubu a0, a0, 0x40
-- RMOVE_BIGCHUNK(a1, a0, 0x20, ta0, ta1, ta3, t0)
-- RMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
--
--1:
-- beqz ta2, r_do_end_words
-- andi t8, a2, 0x1c
--
--r_move_32bytes:
-- dsubu a1, a1, 0x20
-- dsubu a0, a0, 0x20
-- RMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- andi t8, a2, 0x1c
--
--r_do_end_words:
-- beqz t8, r_maybe_end_cruft
-- srl t8, t8, 0x2
--
--r_end_words:
-- lw ta0, -4(a1)
-- dsubu t8, t8, 0x1
-- sw ta0, -4(a0)
-- dsubu a1, a1, 0x4
-- bnez t8, r_end_words
-- dsubu a0, a0, 0x4
--
--r_maybe_end_cruft:
-- andi ta2, a2, 0x3
--
--r_small_memcpy:
-- beqz ta2, r_out
-- move a2, ta2
--#endif /* Horror fix */
-+ ADD a0, a2 # dst = dst + len
-+ ADD a1, a2 # src = src + len
-
- r_end_bytes:
-- lb ta0, -1(a1)
-- dsubu a2, a2, 0x1
-- sb ta0, -1(a0)
-- dsubu a1, a1, 0x1
-+ lb t0, -1(a1)
-+ SUB a2, a2, 0x1
-+ sb t0, -1(a0)
-+ SUB a1, a1, 0x1
- bnez a2, r_end_bytes
-- dsubu a0, a0, 0x1
-+ SUB a0, a0, 0x1
-
- r_out:
-- jr ra
-- move a2, zero
-+ jr ra
-+ move a2, zero
-
- r_end_bytes_up:
- lb t0, (a1)
-- dsubu a2, a2, 0x1
-+ SUB a2, a2, 0x1
- sb t0, (a0)
-- daddu a1, a1, 0x1
-+ ADD a1, a1, 0x1
- bnez a2, r_end_bytes_up
-- daddu a0, a0, 0x1
--
-- jr ra
-- move a2, zero
--
--#if 0 /* Horror fix */
--/* ------------------------------------------------------------------------- */
--
--/* Bad, bad. At least try to align the source */
--
--r_memcpy_u_src:
-- bnez t8, r_small_memcpy # < 8 bytes?
-- move ta2, a2
--
-- andi ta0, a1, 7 # ta0: how much to align
--
-- ulw ta1, -8(a1) # dword alignment
-- ulw ta2, -4(a1)
-- usw ta1, -8(a0)
-- usw ta2, -4(a0)
--
-- dsubu a1, ta0 # src
-- dsubu a0, ta0 # dst
-- dsubu a2, ta0 # len
--
-- sltiu t8, a2, 56
-- bnez t8, ru_do_end_words
-- andi t8, a2, 0x3c
--
-- andi t8, a1, 8 # now qword aligned?
--
--ru_qword_align:
-- beqz t8, ru_oword_align
-- andi t8, a1, 0x10
--
-- dsubu a1, a1, 0x8
-- lw ta0, 0x00(a1)
-- lw ta1, 0x04(a1)
-- dsubu a0, a0, 0x8
-- usw ta0, 0x00(a0)
-- usw ta1, 0x04(a0)
-- dsubu a2, a2, 0x8
--
-- andi t8, a1, 0x10
--
--ru_oword_align:
-- beqz t8, ru_begin_movement
-- srl t8, a2, 0x7
--
-- dsubu a1, a1, 0x10
-- lw ta3, 0x08(a1) # assumes subblock ordering
-- lw t0, 0x0c(a1)
-- lw ta0, 0x00(a1)
-- lw ta1, 0x04(a1)
-- dsubu a0, a0, 0x10
-- usw ta3, 0x08(a0)
-- usw t0, 0x0c(a0)
-- usw ta0, 0x00(a0)
-- usw ta1, 0x04(a0)
-- dsubu a2, a2, 0x10
--
-- srl t8, a2, 0x7
--
--ru_begin_movement:
-- beqz t8, 0f
-- andi ta2, a2, 0x40
--
--ru_move_128bytes:
-- RUMOVE_BIGCHUNK(a1, a0, -0x80, ta0, ta1, ta3, t0)
-- RUMOVE_BIGCHUNK(a1, a0, -0x60, ta0, ta1, ta3, t0)
-- RUMOVE_BIGCHUNK(a1, a0, -0x40, ta0, ta1, ta3, t0)
-- RUMOVE_BIGCHUNK(a1, a0, -0x20, ta0, ta1, ta3, t0)
-- dsubu t8, t8, 0x01
-- dsubu a1, a1, 0x80
-- bnez t8, ru_move_128bytes
-- dsubu a0, a0, 0x80
--
--0:
-- beqz ta2, 1f
-- andi ta2, a2, 0x20
--
--ru_move_64bytes:
-- dsubu a1, a1, 0x40
-- dsubu a0, a0, 0x40
-- RUMOVE_BIGCHUNK(a1, a0, 0x20, ta0, ta1, ta3, t0)
-- RUMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
--
--1:
-- beqz ta2, ru_do_end_words
-- andi t8, a2, 0x1c
--
--ru_move_32bytes:
-- dsubu a1, a1, 0x20
-- dsubu a0, a0, 0x20
-- RUMOVE_BIGCHUNK(a1, a0, 0x00, ta0, ta1, ta3, t0)
-- andi t8, a2, 0x1c
--
--ru_do_end_words:
-- beqz t8, ru_maybe_end_cruft
-- srl t8, t8, 0x2
--
--ru_end_words:
-- lw ta0, -4(a1)
-- usw ta0, -4(a0)
-- dsubu t8, t8, 0x1
-- dsubu a1, a1, 0x4
-- bnez t8, ru_end_words
-- dsubu a0, a0, 0x4
--
--ru_maybe_end_cruft:
-- andi ta2, a2, 0x3
--
--ru_cannot_optimize:
-- beqz ta2, r_out
-- move a2, ta2
--
--ru_end_bytes:
-- lb ta0, -1(a1)
-- dsubu a2, a2, 0x1
-- sb ta0, -1(a0)
-- dsubu a1, a1, 0x1
-- bnez a2, ru_end_bytes
-- dsubu a0, a0, 0x1
-+ ADD a0, a0, 0x1
-
- jr ra
- move a2, zero
--#endif /* Horror fix */
- END(__rmemcpy)
--
--l_fixup: # clear the rest of the buffer
-- ld ta0, THREAD_BUADDR($28)
-- nop
-- dsubu a2, AT, ta0 # a2 bytes to go
-- daddu a0, ta0 # compute start address in a1
-- dsubu a0, a1
-- /*
-- * Clear len bytes starting at dst. Can't call __bzero because it
-- * might modify len. An inefficient loop for these rare times...
-- */
-- beqz a2, 2f
-- dsubu a1, a2, 1
--1: sb zero, 0(a0)
-- daddu a0, a0, 1
-- bnez a1, 1b
-- dsubu a1, a1, 1
--2: jr ra
-- nop
--
--s_fixup:
-- jr ra
-- nop
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/promlib.c linux-2.4.20-mipscvs-20050106/arch/mips64/lib/promlib.c
---- linux-2.4.20/arch/mips64/lib/promlib.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/promlib.c 2003-01-21 23:11:38.000000000 -0600
-@@ -0,0 +1,24 @@
-+#include <stdarg.h>
-+#include <linux/kernel.h>
-+
-+extern void prom_putchar(char);
-+
-+void prom_printf(char *fmt, ...)
-+{
-+ va_list args;
-+ char ppbuf[1024];
-+ char *bptr;
-+
-+ va_start(args, fmt);
-+ vsprintf(ppbuf, fmt, args);
-+
-+ bptr = ppbuf;
-+
-+ while (*bptr != 0) {
-+ if (*bptr == '\n')
-+ prom_putchar('\r');
-+
-+ prom_putchar(*bptr++);
-+ }
-+ va_end(args);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/strlen_user.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strlen_user.S
---- linux-2.4.20/arch/mips64/lib/strlen_user.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strlen_user.S 2002-12-09 15:24:13.000000000 -0600
-@@ -25,7 +25,7 @@
- LEAF(__strlen_user_asm)
- ld v0, THREAD_CURDS($28) # pointer ok?
- and v0, a0
-- bltz v0, fault
-+ bnez v0, fault
-
- FEXPORT(__strlen_user_nocheck_asm)
- move v0, a0
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/strncpy_user.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strncpy_user.S
---- linux-2.4.20/arch/mips64/lib/strncpy_user.S 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strncpy_user.S 2002-12-09 15:24:13.000000000 -0600
-@@ -30,7 +30,7 @@
- LEAF(__strncpy_from_user_asm)
- ld v0, THREAD_CURDS($28) # pointer ok?
- and v0, a1
-- bltz v0, fault
-+ bnez v0, fault
-
- FEXPORT(__strncpy_from_user_nocheck_asm)
- move v0, zero
-diff -urNd -urNd linux-2.4.20/arch/mips64/lib/strnlen_user.S linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strnlen_user.S
---- linux-2.4.20/arch/mips64/lib/strnlen_user.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/lib/strnlen_user.S 2002-12-09 15:24:13.000000000 -0600
-@@ -25,7 +25,7 @@
- LEAF(__strnlen_user_asm)
- ld v0, THREAD_CURDS($28) # pointer ok?
- and v0, a0
-- bltz v0, fault
-+ bnez v0, fault
-
- FEXPORT(__strnlen_user_nocheck_asm)
- move v0, a0
-diff -urNd -urNd linux-2.4.20/arch/mips64/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/Makefile
---- linux-2.4.20/arch/mips64/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/Makefile 2003-02-20 12:53:40.000000000 -0600
-@@ -41,8 +41,13 @@
-
- ifdef CONFIG_REMOTE_DEBUG
- GCCFLAGS += -g
-+ifdef CONFIG_SB1XXX_CORELIS
-+GCCFLAGS += -mno-sched-prolog -fno-omit-frame-pointer
-+endif
- endif
-
-+check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi)
-+
- #
- # CPU-dependent compiler/assembler options for optimization.
- #
-@@ -65,7 +70,10 @@
- GCCFLAGS += -mcpu=r8000 -mips4
- endif
- ifdef CONFIG_CPU_SB1
--GCCFLAGS += -mcpu=r8000 -mips4
-+GCCFLAGS += $(call check_gcc, -mcpu=sb1, -mcpu=r5000) -mips4
-+ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-+MODFLAGS += -msb1-pass1-workarounds
-+endif
- endif
- ifdef CONFIG_CPU_MIPS64
- #CFLAGS += -mips64 # Should be used then we get a MIPS64 compiler
-@@ -78,12 +86,32 @@
- CORE_FILES += arch/mips/math-emu/fpu_emulator.o
- SUBDIRS += arch/mips/math-emu
-
-+#
-+# ramdisk/initrd support
-+# You need a compressed ramdisk image, named ramdisk.gz in
-+# arch/mips/ramdisk
-+#
-+ifdef CONFIG_EMBEDDED_RAMDISK
-+CORE_FILES += arch/mips/ramdisk/ramdisk.o
-+SUBDIRS += arch/mips/ramdisk
-+endif
-+
-
- #
- # Board-dependent options and extra files
- #
-
- #
-+# DECstation family
-+#
-+ifdef CONFIG_DECSTATION
-+CORE_FILES += arch/mips/dec/dec.o
-+SUBDIRS += arch/mips/dec arch/mips/dec/prom
-+LIBS += arch/mips/dec/prom/rexlib.a
-+LOADADDR := 0x80040000
-+endif
-+
-+#
- # MIPS Atlas board
- #
- ifdef CONFIG_MIPS_ATLAS
-@@ -164,23 +192,34 @@
- endif
-
- #
--# Sibyte SB1250 SOC
-+# Sibyte SB1250 SOC and Broadcom (SiByte) BCM112x SOCs
- #
--ifdef CONFIG_SIBYTE_SB1250
-+ifneq ($(CONFIG_SIBYTE_SB1250)$(CONFIG_SIBYTE_BCM112X),)
- # This is a LIB so that it links at the end, and initcalls are later
- # the sequence; but it is built as an object so that modules don't get
- # removed (as happens, even if they have __initcall/module_init)
- LIBS += arch/mips/sibyte/sb1250/sb1250.o
- SUBDIRS += arch/mips/sibyte/sb1250
-+ifdef CONFIG_MIPS_UNCACHED
-+LOADADDR := 0xa0100000
-+else
-+LOADADDR := 0x80100000
-+endif
- endif
-
- #
--# Sibyte SWARM board
-+# Sibyte boards:
- #
--ifdef CONFIG_SIBYTE_SWARM
-+# BCM91250A (SWARM),
-+# BCM91250E (Sentosa),
-+# BCM91120C (CRhine),
-+# BCM91120x (Carmel),
-+# BCM91125C (CRhone),
-+# BCM91125E (Rhone).
-+#
-+ifdef CONFIG_SIBYTE_BOARD
- LIBS += arch/mips/sibyte/swarm/sbswarm.a
- SUBDIRS += arch/mips/sibyte/swarm
--LOADADDR := 0x80100000
- endif
-
- #
-@@ -192,21 +231,12 @@
- endif
-
- #
--# SB1 Cache Error handler
--#
--ifdef CONFIG_SB1_CACHE_ERROR
--LIBS += arch/mips/sibyte/sb1/sb1kern.a
--SUBDIRS += arch/mips/sibyte/sb1
--endif
--
--
--#
- # Some machines like the Indy need 32-bit ELF binaries for booting purposes.
- # Other need ECOFF, so we build a 32-bit ELF binary for them which we then
- # convert to ECOFF using elf2ecoff.
- #
- ifdef CONFIG_BOOT_ELF32
--GCCFLAGS += -Wa,-32
-+GCCFLAGS += -Wa,-32 $(shell if $(CC) -Wa,-mgp64 -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "-Wa,-mgp64"; fi)
- LINKFLAGS += -T arch/mips64/ld.script.elf32
- endif
- #
-@@ -214,7 +244,7 @@
- # ELF files from 32-bit files by conversion.
- #
- ifdef CONFIG_BOOT_ELF64
--GCCFLAGS += -Wa,-32
-+GCCFLAGS += -Wa,-32 $(shell if $(CC) -Wa,-mgp64 -c -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "-Wa,-mgp64"; fi)
- LINKFLAGS += -T arch/mips64/ld.script.elf32
- #AS += -64
- #LD += -m elf64bmip
-@@ -237,9 +267,9 @@
- MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
-
- ifdef CONFIG_CPU_LITTLE_ENDIAN
--64bit-bfd = elf64-littlemips
-+64bit-bfd = elf64-tradlittlemips
- else
--64bit-bfd = elf64-bigmips
-+64bit-bfd = elf64-tradbigmips
- endif
-
- vmlinux: arch/mips64/ld.script.elf32
-@@ -248,19 +278,14 @@
-
- ifdef CONFIG_MAPPED_KERNEL
- vmlinux.64: vmlinux
-- $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xbfffffff40000000 $< $@
-+ $(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo --change-addresses=0xbfffffff40000000 $< $@
- else
- vmlinux.64: vmlinux
-- $(OBJCOPY) -O $(64bit-bfd) --change-addresses=0xa7ffffff80000000 $< $@
-+ $(OBJCOPY) -O $(64bit-bfd) --remove-section=.reginfo --change-addresses=0xa800000080000000 $< $@
- endif
-
--zImage: vmlinux
-- @$(MAKEBOOT) zImage
--
--compressed: zImage
--
--zdisk: vmlinux
-- @$(MAKEBOOT) zdisk
-+vmlinux.ecoff: vmlinux
-+ @$(MAKEBOOT) $@
-
- archclean:
- @$(MAKEBOOT) clean
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/andes.c
---- linux-2.4.20/arch/mips64/mm/andes.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/andes.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,350 +0,0 @@
--/*
-- * This file is subject to the terms and conditions of the GNU General Public
-- * License. See the file "COPYING" in the main directory of this archive
-- * for more details.
-- *
-- * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
-- * Copyright (C) 1999 Silicon Graphics, Inc.
-- * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
-- */
--#include <linux/init.h>
--#include <linux/kernel.h>
--#include <linux/sched.h>
--#include <linux/mm.h>
--#include <asm/page.h>
--#include <asm/pgtable.h>
--#include <asm/r10kcache.h>
--#include <asm/system.h>
--#include <asm/mmu_context.h>
--
--static int scache_lsz64;
--
--/*
-- * This version has been tuned on an Origin. For other machines the arguments
-- * of the pref instructin may have to be tuned differently.
-- */
--static void andes_clear_page(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tpref 7,512(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE)
-- : "memory");
--}
--
--/* R10000 has no Create_Dirty type cacheops. */
--static void andes_copy_page(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2, reg3, reg4;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%8\n"
-- "1:\tpref\t0,2*128(%1)\n\t"
-- "pref\t1,2*128(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "ld\t%4,16(%1)\n\t"
-- "ld\t%5,24(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "sd\t%4,16(%0)\n\t"
-- "sd\t%5,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "ld\t%4,-16(%1)\n\t"
-- "ld\t%5,-8(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "sd\t%4,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%5,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2),
-- "=&r" (reg3), "=&r" (reg4)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE));
--}
--
--/* Cache operations. These are only used with the virtual memory system,
-- not for non-coherent I/O so it's ok to ignore the secondary caches. */
--static void
--andes_flush_cache_l1(void)
--{
-- blast_dcache32(); blast_icache64();
--}
--
--/*
-- * This is only used during initialization time. vmalloc() also calls
-- * this, but that will be changed pretty soon.
-- */
--static void andes_flush_cache_l2(void)
--{
-- switch (sc_lsize()) {
-- case 64:
-- blast_scache64();
-- break;
-- case 128:
-- blast_scache128();
-- break;
-- default:
-- printk(KERN_EMERG "Unknown L2 line size\n");
-- while(1);
-- }
--}
--
--void
--andes_flush_icache_page(unsigned long page)
--{
-- if (scache_lsz64)
-- blast_scache64_page(page);
-- else
-- blast_scache128_page(page);
--}
--
--static void
--andes_flush_cache_sigtramp(unsigned long addr)
--{
-- protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-- protected_flush_icache_line(addr & ~(ic_lsize - 1));
--}
--
--#define NTLB_ENTRIES 64
--#define NTLB_ENTRIES_HALF 32
--
--void local_flush_tlb_all(void)
--{
-- unsigned long flags;
-- unsigned long old_ctx;
-- unsigned long entry;
--
--#ifdef DEBUG_TLB
-- printk("[tlball]");
--#endif
--
-- __save_and_cli(flags);
-- /* Save old context and create impossible VPN2 value */
-- old_ctx = get_entryhi() & ASID_MASK;
-- set_entryhi(CKSEG0);
-- set_entrylo0(0);
-- set_entrylo1(0);
--
-- entry = get_wired();
--
-- /* Blast 'em all away. */
-- while (entry < NTLB_ENTRIES) {
-- set_index(entry);
-- tlb_write_indexed();
-- entry++;
-- }
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
--}
--
--void local_flush_tlb_mm(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-- unsigned long flags;
--
--#ifdef DEBUG_TLB
-- printk("[tlbmm<%d>]", mm->context);
--#endif
-- __save_and_cli(flags);
-- get_new_mmu_context(mm, smp_processor_id());
-- if(mm == current->mm)
-- set_entryhi(CPU_CONTEXT(smp_processor_id(), mm)
-- & ASID_MASK);
-- __restore_flags(flags);
-- }
--}
--
--void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-- unsigned long end)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-- unsigned long flags;
-- int size;
--
--#ifdef DEBUG_TLB
-- printk("[tlbrange<%02x,%08lx,%08lx>]",
-- (mm->context & ASID_MASK), start, end);
--#endif
-- __save_and_cli(flags);
-- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-- size = (size + 1) >> 1;
-- if (size <= NTLB_ENTRIES_HALF) {
-- int oldpid = (get_entryhi() & ASID_MASK);
-- int newpid = (CPU_CONTEXT(smp_processor_id(), mm)
-- & ASID_MASK);
--
-- start &= (PAGE_MASK << 1);
-- end += ((PAGE_SIZE << 1) - 1);
-- end &= (PAGE_MASK << 1);
-- while(start < end) {
-- int idx;
--
-- set_entryhi(start | newpid);
-- start += (PAGE_SIZE << 1);
-- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- set_entryhi(KSEG0);
-- if(idx < 0)
-- continue;
-- tlb_write_indexed();
-- }
-- set_entryhi(oldpid);
-- } else {
-- get_new_mmu_context(mm, smp_processor_id());
-- if(mm == current->mm)
-- set_entryhi(CPU_CONTEXT(smp_processor_id(), mm)
-- & ASID_MASK);
-- }
-- __restore_flags(flags);
-- }
--}
--
--void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
--{
-- if (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) != 0) {
-- unsigned long flags;
-- int oldpid, newpid, idx;
--
--#ifdef DEBUG_TLB
-- printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
--#endif
-- newpid = (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) &
-- ASID_MASK);
-- page &= (PAGE_MASK << 1);
-- __save_and_cli(flags);
-- oldpid = (get_entryhi() & ASID_MASK);
-- set_entryhi(page | newpid);
-- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- set_entryhi(KSEG0);
-- if (idx < 0)
-- goto finish;
-- tlb_write_indexed();
--
-- finish:
-- set_entryhi(oldpid);
-- __restore_flags(flags);
-- }
--}
--
--/* XXX Simplify this. On the R10000 writing a TLB entry for an virtual
-- address that already exists will overwrite the old entry and not result
-- in TLB malfunction or TLB shutdown. */
--static void andes_update_mmu_cache(struct vm_area_struct * vma,
-- unsigned long address, pte_t pte)
--{
-- unsigned long flags;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
-- int idx, pid;
--
-- /*
-- * Handle debugger faulting in for debugee.
-- */
-- if (current->active_mm != vma->vm_mm)
-- return;
--
-- pid = get_entryhi() & ASID_MASK;
--
-- if ((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & ASID_MASK))
-- || (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) {
-- printk(KERN_WARNING
-- "%s: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-- __FUNCTION__, (int) (CPU_CONTEXT(smp_processor_id(),
-- vma->vm_mm) & ASID_MASK), pid);
-- }
--
-- __save_and_cli(flags);
-- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (pid));
-- pgdp = pgd_offset(vma->vm_mm, address);
-- tlb_probe();
-- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-- ptep = pte_offset(pmdp, address);
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- set_entryhi(address | (pid));
-- if (idx < 0) {
-- tlb_write_random();
-- } else {
-- tlb_write_indexed();
-- }
-- set_entryhi(pid);
-- __restore_flags(flags);
--}
--
--void __init ld_mmu_andes(void)
--{
-- printk("Primary instruction cache %dkb, linesize %d bytes\n",
-- icache_size >> 10, ic_lsize);
-- printk("Primary data cache %dkb, linesize %d bytes\n",
-- dcache_size >> 10, dc_lsize);
-- printk("Secondary cache sized at %ldK, linesize %ld\n",
-- scache_size() >> 10, sc_lsize());
--
-- _clear_page = andes_clear_page;
-- _copy_page = andes_copy_page;
--
-- _flush_cache_l1 = andes_flush_cache_l1;
-- _flush_cache_l2 = andes_flush_cache_l2;
-- _flush_cache_sigtramp = andes_flush_cache_sigtramp;
--
-- switch (sc_lsize()) {
-- case 64:
-- scache_lsz64 = 1;
-- break;
-- case 128:
-- scache_lsz64 = 0;
-- break;
-- default:
-- printk(KERN_EMERG "Unknown L2 line size\n");
-- while(1);
-- }
--
-- _update_mmu_cache = andes_update_mmu_cache;
--
-- flush_cache_l1();
--
-- /*
-- * You should never change this register:
-- * - On R4600 1.7 the tlbp never hits for pages smaller than
-- * the value in the c0_pagemask register.
-- * - The entire mm handling assumes the c0_pagemask register to
-- * be set for 4kb pages.
-- */
-- write_32bit_cp0_register(CP0_PAGEMASK, PM_4K);
-- write_32bit_cp0_register(CP0_FRAMEMASK, 0);
--
-- /* From this point on the ARC firmware is dead. */
-- local_flush_tlb_all();
--
-- /* Did I tell you that ARC SUCKS? */
--}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-andes.c
---- linux-2.4.20/arch/mips64/mm/c-andes.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-andes.c 2003-02-13 19:58:54.000000000 -0600
-@@ -0,0 +1,112 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999 Silicon Graphics, Inc.
-+ * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+#include <asm/page.h>
-+#include <asm/pgtable.h>
-+#include <asm/r10kcache.h>
-+#include <asm/system.h>
-+#include <asm/mmu_context.h>
-+
-+static int scache_lsz64;
-+
-+extern void andes_clear_page(void * page);
-+extern void andes_copy_page(void * to, void * from);
-+
-+/* Cache operations. These are only used with the virtual memory system,
-+ not for non-coherent I/O so it's ok to ignore the secondary caches. */
-+static void andes_flush_cache_l1(void)
-+{
-+ blast_dcache32(); blast_icache64();
-+}
-+
-+/*
-+ * This is only used during initialization time. vmalloc() also calls
-+ * this, but that will be changed pretty soon.
-+ */
-+static void andes_flush_cache_l2(void)
-+{
-+ switch (sc_lsize()) {
-+ case 64:
-+ blast_scache64();
-+ break;
-+ case 128:
-+ blast_scache128();
-+ break;
-+ default:
-+ printk(KERN_EMERG "Unknown L2 line size\n");
-+ while(1);
-+ }
-+}
-+
-+static void andes___flush_cache_all(void)
-+{
-+}
-+
-+static void andes_flush_cache_all(void)
-+{
-+ andes_flush_cache_l1();
-+ andes_flush_cache_l2();
-+}
-+
-+void andes_flush_icache_page(unsigned long page)
-+{
-+ if (scache_lsz64)
-+ blast_scache64_page(page);
-+ else
-+ blast_scache128_page(page);
-+}
-+
-+static void andes_flush_cache_sigtramp(unsigned long addr)
-+{
-+ protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-+ protected_flush_icache_line(addr & ~(ic_lsize - 1));
-+}
-+
-+void __init ld_mmu_andes(void)
-+{
-+ /* Default cache error handler for SB1 */
-+ extern char except_vec2_generic;
-+
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+
-+ printk("Primary instruction cache %dkb, linesize %d bytes\n",
-+ icache_size >> 10, ic_lsize);
-+ printk("Primary data cache %dkb, linesize %d bytes\n",
-+ dcache_size >> 10, dc_lsize);
-+ printk("Secondary cache sized at %ldK, linesize %ld\n",
-+ scache_size() >> 10, sc_lsize());
-+
-+ _clear_page = andes_clear_page;
-+ _copy_page = andes_copy_page;
-+
-+ _flush_cache_all = andes_flush_cache_all;
-+ ___flush_cache_all = andes___flush_cache_all;
-+ _flush_cache_l1 = andes_flush_cache_l1;
-+ _flush_cache_l2 = andes_flush_cache_l2;
-+ _flush_cache_sigtramp = andes_flush_cache_sigtramp;
-+
-+ switch (sc_lsize()) {
-+ case 64:
-+ scache_lsz64 = 1;
-+ break;
-+ case 128:
-+ scache_lsz64 = 0;
-+ break;
-+ default:
-+ printk(KERN_EMERG "Unknown L2 line size\n");
-+ while(1);
-+ }
-+
-+ flush_cache_l1();
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/cerr-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cerr-sb1.c
---- linux-2.4.20/arch/mips64/mm/cerr-sb1.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cerr-sb1.c 2003-02-06 17:25:13.000000000 -0600
-@@ -0,0 +1,540 @@
-+/*
-+ * Copyright (C) 2001 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#include <linux/sched.h>
-+#include <asm/mipsregs.h>
-+
-+/* SB1 definitions */
-+
-+/* XXX should come from config1 XXX */
-+#define SB1_CACHE_INDEX_MASK 0x1fe0
-+
-+#define CP0_ERRCTL_RECOVERABLE (1 << 31)
-+#define CP0_ERRCTL_DCACHE (1 << 30)
-+#define CP0_ERRCTL_ICACHE (1 << 29)
-+#define CP0_ERRCTL_MULTIBUS (1 << 23)
-+#define CP0_ERRCTL_MC_TLB (1 << 15)
-+#define CP0_ERRCTL_MC_TIMEOUT (1 << 14)
-+
-+#define CP0_CERRI_TAG_PARITY (1 << 29)
-+#define CP0_CERRI_DATA_PARITY (1 << 28)
-+#define CP0_CERRI_EXTERNAL (1 << 26)
-+
-+#define CP0_CERRI_IDX_VALID(c) (!((c) & CP0_CERRI_EXTERNAL))
-+#define CP0_CERRI_DATA (CP0_CERRI_DATA_PARITY)
-+
-+#define CP0_CERRD_MULTIPLE (1 << 31)
-+#define CP0_CERRD_TAG_STATE (1 << 30)
-+#define CP0_CERRD_TAG_ADDRESS (1 << 29)
-+#define CP0_CERRD_DATA_SBE (1 << 28)
-+#define CP0_CERRD_DATA_DBE (1 << 27)
-+#define CP0_CERRD_EXTERNAL (1 << 26)
-+#define CP0_CERRD_LOAD (1 << 25)
-+#define CP0_CERRD_STORE (1 << 24)
-+#define CP0_CERRD_FILLWB (1 << 23)
-+#define CP0_CERRD_COHERENCY (1 << 22)
-+#define CP0_CERRD_DUPTAG (1 << 21)
-+
-+#define CP0_CERRD_DPA_VALID(c) (!((c) & CP0_CERRD_EXTERNAL))
-+#define CP0_CERRD_IDX_VALID(c) \
-+ (((c) & (CP0_CERRD_LOAD | CP0_CERRD_STORE)) ? (!((c) & CP0_CERRD_EXTERNAL)) : 0)
-+#define CP0_CERRD_CAUSES \
-+ (CP0_CERRD_LOAD | CP0_CERRD_STORE | CP0_CERRD_FILLWB | CP0_CERRD_COHERENCY | CP0_CERRD_DUPTAG)
-+#define CP0_CERRD_TYPES \
-+ (CP0_CERRD_TAG_STATE | CP0_CERRD_TAG_ADDRESS | CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE | CP0_CERRD_EXTERNAL)
-+#define CP0_CERRD_DATA (CP0_CERRD_DATA_SBE | CP0_CERRD_DATA_DBE)
-+
-+static uint32_t extract_ic(unsigned short addr, int data);
-+static uint32_t extract_dc(unsigned short addr, int data);
-+
-+static inline void breakout_errctl(unsigned int val)
-+{
-+ if (val & CP0_ERRCTL_RECOVERABLE)
-+ prom_printf(" recoverable");
-+ if (val & CP0_ERRCTL_DCACHE)
-+ prom_printf(" dcache");
-+ if (val & CP0_ERRCTL_ICACHE)
-+ prom_printf(" icache");
-+ if (val & CP0_ERRCTL_MULTIBUS)
-+ prom_printf(" multiple-buserr");
-+ prom_printf("\n");
-+}
-+
-+static inline void breakout_cerri(unsigned int val)
-+{
-+ if (val & CP0_CERRI_TAG_PARITY)
-+ prom_printf(" tag-parity");
-+ if (val & CP0_CERRI_DATA_PARITY)
-+ prom_printf(" data-parity");
-+ if (val & CP0_CERRI_EXTERNAL)
-+ prom_printf(" external");
-+ prom_printf("\n");
-+}
-+
-+static inline void breakout_cerrd(unsigned int val)
-+{
-+ switch (val & CP0_CERRD_CAUSES) {
-+ case CP0_CERRD_LOAD:
-+ prom_printf(" load,");
-+ break;
-+ case CP0_CERRD_STORE:
-+ prom_printf(" store,");
-+ break;
-+ case CP0_CERRD_FILLWB:
-+ prom_printf(" fill/wb,");
-+ break;
-+ case CP0_CERRD_COHERENCY:
-+ prom_printf(" coherency,");
-+ break;
-+ case CP0_CERRD_DUPTAG:
-+ prom_printf(" duptags,");
-+ break;
-+ default:
-+ prom_printf(" NO CAUSE,");
-+ break;
-+ }
-+ if (!(val & CP0_CERRD_TYPES))
-+ prom_printf(" NO TYPE");
-+ else {
-+ if (val & CP0_CERRD_MULTIPLE)
-+ prom_printf(" multi-err");
-+ if (val & CP0_CERRD_TAG_STATE)
-+ prom_printf(" tag-state");
-+ if (val & CP0_CERRD_TAG_ADDRESS)
-+ prom_printf(" tag-address");
-+ if (val & CP0_CERRD_DATA_SBE)
-+ prom_printf(" data-SBE");
-+ if (val & CP0_CERRD_DATA_DBE)
-+ prom_printf(" data-DBE");
-+ if (val & CP0_CERRD_EXTERNAL)
-+ prom_printf(" external");
-+ }
-+ prom_printf("\n");
-+}
-+
-+#ifndef CONFIG_SIBYTE_BUS_WATCHER
-+
-+#include <asm/io.h>
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_regs.h>
-+#include <asm/sibyte/sb1250_scd.h>
-+#include <asm/sibyte/64bit.h>
-+
-+static void check_bus_watcher(void)
-+{
-+ uint32_t status, l2_err, memio_err;
-+
-+ /* Destructive read, clears register and interrupt */
-+ status = csr_in32(IO_SPACE_BASE | A_SCD_BUS_ERR_STATUS);
-+ /* Bit 31 is always on, but there's no #define for that */
-+ if (status & ~(1UL << 31)) {
-+ l2_err = csr_in32(IO_SPACE_BASE | A_BUS_L2_ERRORS);
-+ memio_err = csr_in32(IO_SPACE_BASE | A_BUS_MEM_IO_ERRORS);
-+ prom_printf("Bus watcher error counters: %08x %08x\n", l2_err, memio_err);
-+ prom_printf("\nLast recorded signature:\n");
-+ prom_printf("Request %02x from %d, answered by %d with Dcode %d\n",
-+ (unsigned int)(G_SCD_BERR_TID(status) & 0x3f),
-+ (int)(G_SCD_BERR_TID(status) >> 6),
-+ (int)G_SCD_BERR_RID(status),
-+ (int)G_SCD_BERR_DCODE(status));
-+ } else {
-+ prom_printf("Bus watcher indicates no error\n");
-+ }
-+}
-+#else
-+extern void check_bus_watcher(void);
-+#endif
-+
-+asmlinkage void sb1_cache_error(void)
-+{
-+ uint64_t cerr_dpa;
-+ uint32_t errctl, cerr_i, cerr_d, dpalo, dpahi, eepc, res;
-+
-+ prom_printf("Cache error exception on CPU %x:\n",
-+ (read_c0_prid() >> 25) & 0x7);
-+
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " mfc0 %0, $26\n\t"
-+ " mfc0 %1, $27\n\t"
-+ " mfc0 %2, $27, 1\n\t"
-+ " dmfc0 $1, $27, 3\n\t"
-+ " dsrl32 %3, $1, 0 \n\t"
-+ " sll %4, $1, 0 \n\t"
-+ " mfc0 %5, $30\n\t"
-+ " .set pop"
-+ : "=r" (errctl), "=r" (cerr_i), "=r" (cerr_d),
-+ "=r" (dpahi), "=r" (dpalo), "=r" (eepc));
-+
-+ cerr_dpa = (((uint64_t)dpahi) << 32) | dpalo;
-+ prom_printf(" c0_errorepc == %08x\n", eepc);
-+ prom_printf(" c0_errctl == %08x", errctl);
-+ breakout_errctl(errctl);
-+ if (errctl & CP0_ERRCTL_ICACHE) {
-+ prom_printf(" c0_cerr_i == %08x", cerr_i);
-+ breakout_cerri(cerr_i);
-+ if (CP0_CERRI_IDX_VALID(cerr_i)) {
-+ if ((eepc & SB1_CACHE_INDEX_MASK) != (cerr_i & SB1_CACHE_INDEX_MASK))
-+ prom_printf(" cerr_i idx doesn't match eepc\n");
-+ else {
-+ res = extract_ic(cerr_i & SB1_CACHE_INDEX_MASK,
-+ (cerr_i & CP0_CERRI_DATA) != 0);
-+ if (!(res & cerr_i))
-+ prom_printf("...didn't see indicated icache problem\n");
-+ }
-+ }
-+ }
-+ if (errctl & CP0_ERRCTL_DCACHE) {
-+ prom_printf(" c0_cerr_d == %08x", cerr_d);
-+ breakout_cerrd(cerr_d);
-+ if (CP0_CERRD_DPA_VALID(cerr_d)) {
-+ prom_printf(" c0_cerr_dpa == %010llx\n", cerr_dpa);
-+ if (!CP0_CERRD_IDX_VALID(cerr_d)) {
-+ res = extract_dc(cerr_dpa & SB1_CACHE_INDEX_MASK,
-+ (cerr_d & CP0_CERRD_DATA) != 0);
-+ if (!(res & cerr_d))
-+ prom_printf("...didn't see indicated dcache problem\n");
-+ } else {
-+ if ((cerr_dpa & SB1_CACHE_INDEX_MASK) != (cerr_d & SB1_CACHE_INDEX_MASK))
-+ prom_printf(" cerr_d idx doesn't match cerr_dpa\n");
-+ else {
-+ res = extract_dc(cerr_d & SB1_CACHE_INDEX_MASK,
-+ (cerr_d & CP0_CERRD_DATA) != 0);
-+ if (!(res & cerr_d))
-+ prom_printf("...didn't see indicated problem\n");
-+ }
-+ }
-+ }
-+ }
-+
-+ check_bus_watcher();
-+
-+ while (1);
-+ /*
-+ * This tends to make things get really ugly; let's just stall instead.
-+ * panic("Can't handle the cache error!");
-+ */
-+}
-+
-+
-+/* Parity lookup table. */
-+static const uint8_t parity[256] = {
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,
-+ 1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,1,0,0,1,1,0,0,1,0,1,1,0
-+};
-+
-+/* Masks to select bits for Hamming parity, mask_72_64[i] for bit[i] */
-+static const uint64_t mask_72_64[8] = {
-+ 0x0738C808099264FFL,
-+ 0x38C808099264FF07L,
-+ 0xC808099264FF0738L,
-+ 0x08099264FF0738C8L,
-+ 0x099264FF0738C808L,
-+ 0x9264FF0738C80809L,
-+ 0x64FF0738C8080992L,
-+ 0xFF0738C808099264L
-+};
-+
-+/* Calculate the parity on a range of bits */
-+static char range_parity(uint64_t dword, int max, int min)
-+{
-+ char parity = 0;
-+ int i;
-+ dword >>= min;
-+ for (i=max-min; i>=0; i--) {
-+ if (dword & 0x1)
-+ parity = !parity;
-+ dword >>= 1;
-+ }
-+ return parity;
-+}
-+
-+/* Calculate the 4-bit even byte-parity for an instruction */
-+static unsigned char inst_parity(uint32_t word)
-+{
-+ int i, j;
-+ char parity = 0;
-+ for (j=0; j<4; j++) {
-+ char byte_parity = 0;
-+ for (i=0; i<8; i++) {
-+ if (word & 0x80000000)
-+ byte_parity = !byte_parity;
-+ word <<= 1;
-+ }
-+ parity <<= 1;
-+ parity |= byte_parity;
-+ }
-+ return parity;
-+}
-+
-+static uint32_t extract_ic(unsigned short addr, int data)
-+{
-+ unsigned short way;
-+ int valid;
-+ uint64_t taglo, va, tlo_tmp;
-+ uint32_t taghi, taglolo, taglohi;
-+ uint8_t lru;
-+ int res = 0;
-+
-+ prom_printf("Icache index 0x%04x ", addr);
-+ for (way = 0; way < 4; way++) {
-+ /* Index-load-tag-I */
-+ __asm__ __volatile__ (
-+ " .set push \n\t"
-+ " .set noreorder \n\t"
-+ " .set mips64 \n\t"
-+ " .set noat \n\t"
-+ " cache 4, 0(%3) \n\t"
-+ " mfc0 %0, $29 \n\t"
-+ " dmfc0 $1, $28 \n\t"
-+ " dsrl32 %1, $1, 0 \n\t"
-+ " sll %2, $1, 0 \n\t"
-+ " .set pop"
-+ : "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
-+ : "r" ((way << 13) | addr));
-+
-+ taglo = ((unsigned long long)taglohi << 32) | taglolo;
-+ if (way == 0) {
-+ lru = (taghi >> 14) & 0xff;
-+ prom_printf("[Bank %d Set 0x%02x] LRU > %d %d %d %d > MRU\n",
-+ ((addr >> 5) & 0x3), /* bank */
-+ ((addr >> 7) & 0x3f), /* index */
-+ (lru & 0x3),
-+ ((lru >> 2) & 0x3),
-+ ((lru >> 4) & 0x3),
-+ ((lru >> 6) & 0x3));
-+ }
-+ va = (taglo & 0xC0000FFFFFFFE000) | addr;
-+ if ((taglo & (1 << 31)) && (((taglo >> 62) & 0x3) == 3))
-+ va |= 0x3FFFF00000000000;
-+ valid = ((taghi >> 29) & 1);
-+ if (valid) {
-+ tlo_tmp = taglo & 0xfff3ff;
-+ if (((taglo >> 10) & 1) ^ range_parity(tlo_tmp, 23, 0)) {
-+ prom_printf(" ** bad parity in VTag0/G/ASID\n");
-+ res |= CP0_CERRI_TAG_PARITY;
-+ }
-+ if (((taglo >> 11) & 1) ^ range_parity(taglo, 63, 24)) {
-+ prom_printf(" ** bad parity in R/VTag1\n");
-+ res |= CP0_CERRI_TAG_PARITY;
-+ }
-+ }
-+ if (valid ^ ((taghi >> 27) & 1)) {
-+ prom_printf(" ** bad parity for valid bit\n");
-+ res |= CP0_CERRI_TAG_PARITY;
-+ }
-+ prom_printf(" %d [VA %016llx] [Vld? %d] raw tags: %08X-%016llX\n",
-+ way, va, valid, taghi, taglo);
-+
-+ if (data) {
-+ uint32_t datahi, insta, instb;
-+ uint8_t predecode;
-+ int offset;
-+
-+ /* (hit all banks and ways) */
-+ for (offset = 0; offset < 4; offset++) {
-+ /* Index-load-data-I */
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set noreorder\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " cache 6, 0(%3) \n\t"
-+ " mfc0 %0, $29, 1\n\t"
-+ " dmfc0 $1, $28, 1\n\t"
-+ " dsrl32 %1, $1, 0 \n\t"
-+ " sll %2, $1, 0 \n\t"
-+ " .set pop \n"
-+ : "=r" (datahi), "=r" (insta), "=r" (instb)
-+ : "r" ((way << 13) | addr | (offset << 3)));
-+ predecode = (datahi >> 8) & 0xff;
-+ if (((datahi >> 16) & 1) != (uint32_t)range_parity(predecode, 7, 0)) {
-+ prom_printf(" ** bad parity in predecode\n");
-+ res |= CP0_CERRI_DATA_PARITY;
-+ }
-+ /* XXXKW should/could check predecode bits themselves */
-+ if (((datahi >> 4) & 0xf) ^ inst_parity(insta)) {
-+ prom_printf(" ** bad parity in instruction a\n");
-+ res |= CP0_CERRI_DATA_PARITY;
-+ }
-+ if ((datahi & 0xf) ^ inst_parity(instb)) {
-+ prom_printf(" ** bad parity in instruction b\n");
-+ res |= CP0_CERRI_DATA_PARITY;
-+ }
-+ prom_printf(" %05X-%08X%08X", datahi, insta, instb);
-+ }
-+ prom_printf("\n");
-+ }
-+ }
-+ return res;
-+}
-+
-+/* Compute the ECC for a data doubleword */
-+static uint8_t dc_ecc(uint64_t dword)
-+{
-+ uint64_t t;
-+ uint32_t w;
-+ uint8_t p;
-+ int i;
-+
-+ p = 0;
-+ for (i = 7; i >= 0; i--)
-+ {
-+ p <<= 1;
-+ t = dword & mask_72_64[i];
-+ w = (uint32_t)(t >> 32);
-+ p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-+ ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-+ w = (uint32_t)(t & 0xFFFFFFFF);
-+ p ^= (parity[w>>24] ^ parity[(w>>16) & 0xFF]
-+ ^ parity[(w>>8) & 0xFF] ^ parity[w & 0xFF]);
-+ }
-+ return p;
-+}
-+
-+struct dc_state {
-+ unsigned char val;
-+ char *name;
-+};
-+
-+static struct dc_state dc_states[] = {
-+ { 0x00, "INVALID" },
-+ { 0x0f, "COH-SHD" },
-+ { 0x13, "NCO-E-C" },
-+ { 0x19, "NCO-E-D" },
-+ { 0x16, "COH-E-C" },
-+ { 0x1c, "COH-E-D" },
-+ { 0xff, "*ERROR*" }
-+};
-+
-+#define DC_TAG_VALID(state) \
-+ (((state) == 0xf) || ((state) == 0x13) || ((state) == 0x19) || ((state == 0x16)) || ((state) == 0x1c))
-+
-+static char *dc_state_str(unsigned char state)
-+{
-+ struct dc_state *dsc = dc_states;
-+ while (dsc->val != 0xff) {
-+ if (dsc->val == state)
-+ break;
-+ dsc++;
-+ }
-+ return dsc->name;
-+}
-+
-+static uint32_t extract_dc(unsigned short addr, int data)
-+{
-+ int valid, way;
-+ unsigned char state;
-+ uint64_t taglo, pa;
-+ uint32_t taghi, taglolo, taglohi;
-+ uint8_t ecc, lru;
-+ int res = 0;
-+
-+ prom_printf("Dcache index 0x%04x ", addr);
-+ for (way = 0; way < 4; way++) {
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set noreorder\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " cache 5, 0(%3)\n\t" /* Index-load-tag-D */
-+ " mfc0 %0, $29, 2\n\t"
-+ " dmfc0 $1, $28, 2\n\t"
-+ " dsrl32 %1, $1, 0\n\t"
-+ " sll %2, $1, 0\n\t"
-+ " .set pop"
-+ : "=r" (taghi), "=r" (taglohi), "=r" (taglolo)
-+ : "r" ((way << 13) | addr));
-+
-+ taglo = ((unsigned long long)taglohi << 32) | taglolo;
-+ pa = (taglo & 0xFFFFFFE000) | addr;
-+ if (way == 0) {
-+ lru = (taghi >> 14) & 0xff;
-+ prom_printf("[Bank %d Set 0x%02x] LRU > %d %d %d %d > MRU\n",
-+ ((addr >> 11) & 0x2) | ((addr >> 5) & 1), /* bank */
-+ ((addr >> 6) & 0x3f), /* index */
-+ (lru & 0x3),
-+ ((lru >> 2) & 0x3),
-+ ((lru >> 4) & 0x3),
-+ ((lru >> 6) & 0x3));
-+ }
-+ state = (taghi >> 25) & 0x1f;
-+ valid = DC_TAG_VALID(state);
-+ prom_printf(" %d [PA %010llx] [state %s (%02x)] raw tags: %08X-%016llX\n",
-+ way, pa, dc_state_str(state), state, taghi, taglo);
-+ if (valid) {
-+ if (((taglo >> 11) & 1) ^ range_parity(taglo, 39, 26)) {
-+ prom_printf(" ** bad parity in PTag1\n");
-+ res |= CP0_CERRD_TAG_ADDRESS;
-+ }
-+ if (((taglo >> 10) & 1) ^ range_parity(taglo, 25, 13)) {
-+ prom_printf(" ** bad parity in PTag0\n");
-+ res |= CP0_CERRD_TAG_ADDRESS;
-+ }
-+ } else {
-+ res |= CP0_CERRD_TAG_STATE;
-+ }
-+
-+ if (data) {
-+ uint64_t datalo;
-+ uint32_t datalohi, datalolo, datahi;
-+ int offset;
-+
-+ for (offset = 0; offset < 4; offset++) {
-+ /* Index-load-data-D */
-+ __asm__ __volatile__ (
-+ " .set push\n\t"
-+ " .set noreorder\n\t"
-+ " .set mips64\n\t"
-+ " .set noat\n\t"
-+ " cache 7, 0(%3)\n\t" /* Index-load-data-D */
-+ " mfc0 %0, $29, 3\n\t"
-+ " dmfc0 $1, $28, 3\n\t"
-+ " dsrl32 %1, $1, 0 \n\t"
-+ " sll %2, $1, 0 \n\t"
-+ " .set pop"
-+ : "=r" (datahi), "=r" (datalohi), "=r" (datalolo)
-+ : "r" ((way << 13) | addr | (offset << 3)));
-+ datalo = ((unsigned long long)datalohi << 32) | datalolo;
-+ ecc = dc_ecc(datalo);
-+ if (ecc != datahi) {
-+ int bits = 0;
-+ prom_printf(" ** bad ECC (%02x %02x) ->",
-+ datahi, ecc);
-+ ecc ^= datahi;
-+ while (ecc) {
-+ if (ecc & 1) bits++;
-+ ecc >>= 1;
-+ }
-+ res |= (bits == 1) ? CP0_CERRD_DATA_SBE : CP0_CERRD_DATA_DBE;
-+ }
-+ prom_printf(" %02X-%016llX", datahi, datalo);
-+ }
-+ prom_printf("\n");
-+ }
-+ }
-+ return res;
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/cex-sb1.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cex-sb1.S
---- linux-2.4.20/arch/mips64/mm/cex-sb1.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/cex-sb1.S 2003-02-07 14:33:33.000000000 -0600
-@@ -0,0 +1,83 @@
-+/*
-+ * Copyright (C) 2001,2002,2003 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+
-+#include <asm/asm.h>
-+#include <asm/regdef.h>
-+#include <asm/mipsregs.h>
-+#include <asm/stackframe.h>
-+#include <asm/sibyte/board.h>
-+
-+ .text
-+ .set noat
-+ .set mips4
-+
-+ __INIT
-+
-+ /* Cache Error handler for SB1 */
-+ LEAF(except_vec2_sb1)
-+ mfc0 k1, $26
-+ # check if error was recoverable
-+ bltz k1, leave_cerr
-+#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-+ # look for signature of spurious CErr
-+ lui k0, 0x4000
-+ bne k0, k1, 1f
-+ .word 0x401Bd801 # mfc0 k1, $27, 1
-+ lui k0, 0xffe0
-+ and k1, k0, k1
-+ lui k0, 0x0200
-+ beq k0, k1, leave_cerr
-+1:
-+#endif
-+ j handle_vec2_sb1
-+
-+leave_cerr:
-+ # clear/unlock the registers
-+ mtc0 zero, $26
-+ mtc0 zero, $27
-+ .word 0x4080d801 # mtc0 zero, $27, 1
-+ .word 0x4080d803 # mtc0 zero, $27, 3
-+ eret
-+ END(except_vec2_sb1)
-+
-+ __FINIT
-+
-+ LEAF(handle_vec2_sb1)
-+ mfc0 k0,CP0_CONFIG
-+ li k1,~CONF_CM_CMASK
-+ and k0,k0,k1
-+ ori k0,k0,CONF_CM_UNCACHED
-+ mtc0 k0,CP0_CONFIG
-+
-+ SSNOP
-+ SSNOP
-+ SSNOP
-+ SSNOP
-+ bnezl $0, 1f
-+1:
-+ mfc0 k0, CP0_STATUS
-+ sll k0, k0, 3 # check CU0 (kernel?)
-+ bltz k0, 2f
-+ get_saved_sp
-+ move sp, k1 # want Kseg SP (so uncached)
-+2:
-+ j sb1_cache_error
-+
-+ END(handle_vec2_sb1)
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-mips64.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-mips64.c
---- linux-2.4.20/arch/mips64/mm/c-mips64.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-mips64.c 2003-02-09 16:03:23.000000000 -0600
-@@ -68,18 +68,18 @@
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache(); blast_icache(); blast_scache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- static inline void mips64_flush_cache_all_pc(void)
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache(); blast_icache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- static void
-@@ -106,7 +106,7 @@
- pmd_t *pmd;
- pte_t *pte;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- while(start < end) {
- pgd = pgd_offset(mm, start);
- pmd = pmd_offset(pgd, start);
-@@ -116,7 +116,7 @@
- blast_scache_page(start);
- start += PAGE_SIZE;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
- }
-@@ -131,9 +131,9 @@
- #ifdef DEBUG_CACHE
- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_dcache(); blast_icache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -181,7 +181,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -192,7 +191,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -210,8 +209,6 @@
- blast_scache_page_indexed(page);
- } else
- blast_scache_page(page);
--out:
-- __restore_flags(flags);
- }
-
- static void mips64_flush_cache_page_pc(struct vm_area_struct *vma,
-@@ -233,7 +230,6 @@
- #ifdef DEBUG_CACHE
- printk("cpage[%d,%08lx]", (int)mm->context, page);
- #endif
-- __save_and_cli(flags);
- page &= PAGE_MASK;
- pgdp = pgd_offset(mm, page);
- pmdp = pmd_offset(pgdp, page);
-@@ -244,7 +240,7 @@
- * in the cache.
- */
- if (!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
-+ return;
-
- /*
- * Doing flushes for another ASID than the current one is
-@@ -261,8 +257,6 @@
- page = (KSEG0 + (page & ((unsigned long)dcache_size - 1)));
- blast_dcache_page_indexed(page);
- }
--out:
-- __restore_flags(flags);
- }
-
- /* If the addresses passed to these routines are valid, they are
-@@ -301,13 +295,18 @@
- static void
- mips64_flush_icache_page(struct vm_area_struct *vma, struct page *page)
- {
-- unsigned long address;
--
-+ /*
-+ * If there's no context yet, or the page isn't executable, no icache
-+ * flush is needed.
-+ */
- if (!(vma->vm_flags & VM_EXEC))
- return;
-
-- address = KSEG0 + ((unsigned long)page_address(page) & PAGE_MASK & ((unsigned long)icache_size - 1));
-- blast_icache_page_indexed(address);
-+ /*
-+ * We're not sure of the virtual address(es) involved here, so
-+ * conservatively flush the entire caches.
-+ */
-+ flush_cache_all();
- }
-
- /*
-@@ -322,15 +321,15 @@
- if (size >= (unsigned long)dcache_size) {
- blast_dcache();
- } else {
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- a = addr & ~(dc_lsize - 1);
-- end = (addr + size) & ~((unsigned long)dc_lsize - 1);
-+ end = (addr + size - 1) & ~((unsigned long)dc_lsize - 1);
- while (1) {
- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
- if (a == end) break;
- a += dc_lsize;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- bc_wback_inv(addr, size);
- }
-@@ -346,7 +345,7 @@
- }
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
- if (a == end) break;
-@@ -363,15 +362,15 @@
- if (size >= (unsigned long)dcache_size) {
- blast_dcache();
- } else {
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- a = addr & ~((unsigned long)dc_lsize - 1);
-- end = (addr + size) & ~((unsigned long)dc_lsize - 1);
-+ end = (addr + size - 1) & ~((unsigned long)dc_lsize - 1);
- while (1) {
- invalidate_dcache_line(a); /* Hit_Inv_D */
- if (a == end) break;
- a += (unsigned long)dc_lsize;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- bc_inv(addr, size);
-@@ -388,7 +387,7 @@
- }
-
- a = addr & ~(sc_lsize - 1);
-- end = (addr + size) & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
- while (1) {
- invalidate_scache_line(a); /* Hit_Writeback_Inv_SD */
- if (a == end) break;
-@@ -416,7 +415,7 @@
- static void
- mips64_flush_icache_all(void)
- {
-- if (mips_cpu.cputype == CPU_20KC) {
-+ if (mips_cpu.icache.flags | MIPS_CACHE_VTAG_CACHE) {
- blast_icache();
- }
- }
-@@ -428,6 +427,7 @@
- unsigned long config1;
- unsigned int lsize;
-
-+ mips_cpu.icache.flags = 0;
- if (!(config & (1 << 31))) {
- /*
- * Not a MIPS64 complainant CPU.
-@@ -445,7 +445,7 @@
- mips_cpu.icache.sets =
- (icache_size / ic_lsize) / mips_cpu.icache.ways;
- } else {
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
-
- if ((lsize = ((config1 >> 19) & 7)))
- mips_cpu.icache.linesz = 2 << lsize;
-@@ -457,6 +457,16 @@
- ic_lsize = mips_cpu.icache.linesz;
- icache_size = mips_cpu.icache.sets * mips_cpu.icache.ways *
- ic_lsize;
-+
-+ if ((config & 0x8) || (mips_cpu.cputype == CPU_20KC)) {
-+ /*
-+ * The CPU has a virtually tagged I-cache.
-+ * Some older 20Kc chips doesn't have the 'VI' bit in
-+ * the config register, so we also check for 20Kc.
-+ */
-+ mips_cpu.icache.flags = MIPS_CACHE_VTAG_CACHE;
-+ printk("Virtually tagged I-cache detected\n");
-+ }
- }
- printk("Primary instruction cache %dkb, linesize %d bytes (%d ways)\n",
- icache_size >> 10, ic_lsize, mips_cpu.icache.ways);
-@@ -467,6 +477,7 @@
- unsigned long config1;
- unsigned int lsize;
-
-+ mips_cpu.dcache.flags = 0;
- if (!(config & (1 << 31))) {
- /*
- * Not a MIPS64 complainant CPU.
-@@ -483,7 +494,7 @@
- mips_cpu.dcache.sets =
- (dcache_size / dc_lsize) / mips_cpu.dcache.ways;
- } else {
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
-
- if ((lsize = ((config1 >> 10) & 7)))
- mips_cpu.dcache.linesz = 2 << lsize;
-@@ -542,7 +553,7 @@
- /* This is such a bitch, you'd think they would make it
- * easy to do this. Away you daemons of stupidity!
- */
-- __save_and_cli(flags);
-+ local_irq_save(flags);
-
- /* Fill each size-multiple cache line with a valid tag. */
- pow2 = (64 * 1024);
-@@ -553,8 +564,8 @@
- }
-
- /* Load first line with zero (therefore invalid) tag. */
-- set_taglo(0);
-- set_taghi(0);
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
- __asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
- __asm__ __volatile__("\n\t.set noreorder\n\t"
- "cache 8, (%0)\n\t"
-@@ -574,11 +585,11 @@
- "cache 7, (%0)\n\t"
- ".set reorder\n\t" : : "r" (addr));
- __asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-- if(!get_taglo())
-+ if(!read_c0_taglo())
- break;
- pow2 <<= 1;
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- addr -= begin;
- printk("Secondary cache sized at %dK linesize %d bytes.\n",
- (int) (addr >> 10), sc_lsize);
-@@ -652,9 +663,14 @@
-
- void __init ld_mmu_mips64(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-+ extern char except_vec2_generic;
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /* Default cache error handler for SB1 */
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-
- probe_icache(config);
- probe_dcache(config);
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-r4k.c
---- linux-2.4.20/arch/mips64/mm/c-r4k.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-r4k.c 2003-02-09 16:03:23.000000000 -0600
-@@ -0,0 +1,1409 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
-+ *
-+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-+ * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+
-+#include <asm/bcache.h>
-+#include <asm/bootinfo.h>
-+#include <asm/cpu.h>
-+#include <asm/io.h>
-+#include <asm/page.h>
-+#include <asm/pgtable.h>
-+#include <asm/system.h>
-+#include <asm/mmu_context.h>
-+#include <asm/war.h>
-+
-+/* Primary cache parameters. */
-+static unsigned long icache_size, dcache_size; /* Size in bytes */
-+static unsigned long ic_lsize, dc_lsize; /* LineSize in bytes */
-+
-+/* Secondary cache (if present) parameters. */
-+static unsigned long scache_size, sc_lsize; /* Again, in bytes */
-+
-+#include <asm/cacheops.h>
-+#include <asm/r4kcache.h>
-+
-+/*
-+ * Dummy cache handling routines for machines without boardcaches
-+ */
-+static void no_sc_noop(void) {}
-+
-+static struct bcache_ops no_sc_ops = {
-+ (void *)no_sc_noop, (void *)no_sc_noop,
-+ (void *)no_sc_noop, (void *)no_sc_noop
-+};
-+
-+struct bcache_ops *bcops = &no_sc_ops;
-+
-+/*
-+ * On processors with QED R4600 style two set assosicative cache
-+ * this is the bit which selects the way in the cache for the
-+ * indexed cachops.
-+ */
-+#define icache_waybit (icache_size >> 1)
-+#define dcache_waybit (dcache_size >> 1)
-+
-+/*
-+ * If you think for one second that this stuff coming up is a lot
-+ * of bulky code eating too many kernel cache lines. Think _again_.
-+ *
-+ * Consider:
-+ * 1) Taken branches have a 3 cycle penalty on R4k
-+ * 2) The branch itself is a real dead cycle on even R4600/R5000.
-+ * 3) Only one of the following variants of each type is even used by
-+ * the kernel based upon the cache parameters we detect at boot time.
-+ *
-+ * QED.
-+ */
-+
-+static inline void r4k_flush_cache_all_s16d16i16(void)
-+{
-+ blast_dcache16(); blast_icache16(); blast_scache16();
-+}
-+
-+static inline void r4k_flush_cache_all_s32d16i16(void)
-+{
-+ blast_dcache16(); blast_icache16(); blast_scache32();
-+}
-+
-+static inline void r4k_flush_cache_all_s64d16i16(void)
-+{
-+ blast_dcache16(); blast_icache16(); blast_scache64();
-+}
-+
-+static inline void r4k_flush_cache_all_s128d16i16(void)
-+{
-+ blast_dcache16(); blast_icache16(); blast_scache128();
-+}
-+
-+static inline void r4k_flush_cache_all_s32d32i32(void)
-+{
-+ blast_dcache32(); blast_icache32(); blast_scache32();
-+}
-+
-+static inline void r4k_flush_cache_all_s64d32i32(void)
-+{
-+ blast_dcache32(); blast_icache32(); blast_scache64();
-+}
-+
-+static inline void r4k_flush_cache_all_s128d32i32(void)
-+{
-+ blast_dcache32(); blast_icache32(); blast_scache128();
-+}
-+
-+static inline void r4k_flush_cache_all_d16i16(void)
-+{
-+ blast_dcache16(); blast_icache16();
-+}
-+
-+static inline void r4k_flush_cache_all_d32i32(void)
-+{
-+ blast_dcache32(); blast_icache32();
-+}
-+
-+static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s16d16i16();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while (start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if (pte_val(*pte) & _PAGE_VALID)
-+ blast_scache16_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s32d16i16();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while(start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if(pte_val(*pte) & _PAGE_VALID)
-+ blast_scache32_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_s64d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s64d16i16();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while(start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if(pte_val(*pte) & _PAGE_VALID)
-+ blast_scache64_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_s128d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s128d16i16();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while(start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if(pte_val(*pte) & _PAGE_VALID)
-+ blast_scache128_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_s32d32i32(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s32d32i32();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while(start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if(pte_val(*pte) & _PAGE_VALID)
-+ blast_scache32_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_s64d32i32(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s64d32i32();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while(start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if(pte_val(*pte) & _PAGE_VALID)
-+ blast_scache64_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_s128d32i32(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ struct vm_area_struct *vma;
-+
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ start &= PAGE_MASK;
-+ vma = find_vma(mm, start);
-+ if (vma) {
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ r4k_flush_cache_all_s128d32i32();
-+ } else {
-+ pgd_t *pgd;
-+ pmd_t *pmd;
-+ pte_t *pte;
-+
-+ while(start < end) {
-+ pgd = pgd_offset(mm, start);
-+ pmd = pmd_offset(pgd, start);
-+ pte = pte_offset(pmd, start);
-+
-+ if(pte_val(*pte) & _PAGE_VALID)
-+ blast_scache128_page(start);
-+ start += PAGE_SIZE;
-+ }
-+ }
-+ }
-+}
-+
-+static void r4k_flush_cache_range_d16i16(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ blast_dcache16(); blast_icache16();
-+ }
-+}
-+
-+static void r4k_flush_cache_range_d32i32(struct mm_struct *mm,
-+ unsigned long start, unsigned long end)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ blast_dcache32(); blast_icache32();
-+ }
-+}
-+
-+/*
-+ * On architectures like the Sparc, we could get rid of lines in
-+ * the cache created only by a certain context, but on the MIPS
-+ * (and actually certain Sparc's) we cannot.
-+ */
-+static void r4k_flush_cache_mm_s16d16i16(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s16d16i16();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_s32d16i16(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s32d16i16();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_s64d16i16(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s64d16i16();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_s128d16i16(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s128d16i16();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_s32d32i32(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s32d32i32();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_s64d32i32(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s64d32i32();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_s128d32i32(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_s128d32i32();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_d16i16(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_d16i16();
-+ }
-+}
-+
-+static void r4k_flush_cache_mm_d32i32(struct mm_struct *mm)
-+{
-+ if (cpu_context(smp_processor_id(), mm) != 0) {
-+ r4k_flush_cache_all_d32i32();
-+ }
-+}
-+
-+static void r4k_flush_cache_page_s16d16i16(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache16_page_indexed(page);
-+ blast_scache16_page_indexed(page);
-+ } else
-+ blast_scache16_page(page);
-+}
-+
-+static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /* If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache16_page_indexed(page);
-+ blast_scache32_page_indexed(page);
-+ } else
-+ blast_scache32_page(page);
-+}
-+
-+static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /* If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache16_page_indexed(page);
-+ blast_scache64_page_indexed(page);
-+ } else
-+ blast_scache64_page(page);
-+}
-+
-+static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache16_page_indexed(page);
-+ blast_scache128_page_indexed(page);
-+ } else
-+ blast_scache128_page(page);
-+}
-+
-+static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache32_page_indexed(page);
-+ blast_scache32_page_indexed(page);
-+ } else
-+ blast_scache32_page(page);
-+}
-+
-+static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache32_page_indexed(page);
-+ blast_scache64_page_indexed(page);
-+ } else
-+ blast_scache64_page(page);
-+}
-+
-+static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) !=
-+ cpu_context(smp_processor_id(), current->mm)) {
-+ /* Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (scache_size - 1)));
-+ blast_dcache32_page_indexed(page);
-+ blast_scache128_page_indexed(page);
-+ } else
-+ blast_scache128_page(page);
-+}
-+
-+static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_VALID))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if (mm == current->active_mm) {
-+ blast_dcache16_page(page);
-+ } else {
-+ /* Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (dcache_size - 1)));
-+ blast_dcache16_page_indexed(page);
-+ }
-+}
-+
-+static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_PRESENT))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if ((mm == current->active_mm) && (pte_val(*ptep) & _PAGE_VALID)) {
-+ blast_dcache32_page(page);
-+ } else {
-+ /*
-+ * Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (dcache_size - 1)));
-+ blast_dcache32_page_indexed(page);
-+ }
-+}
-+
-+static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma,
-+ unsigned long page)
-+{
-+ struct mm_struct *mm = vma->vm_mm;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+
-+ /*
-+ * If ownes no valid ASID yet, cannot possibly have gotten
-+ * this page into the cache.
-+ */
-+ if (cpu_context(smp_processor_id(), mm) == 0)
-+ return;
-+
-+ page &= PAGE_MASK;
-+ pgdp = pgd_offset(mm, page);
-+ pmdp = pmd_offset(pgdp, page);
-+ ptep = pte_offset(pmdp, page);
-+
-+ /*
-+ * If the page isn't marked valid, the page cannot possibly be
-+ * in the cache.
-+ */
-+ if (!(pte_val(*ptep) & _PAGE_PRESENT))
-+ return;
-+
-+ /*
-+ * Doing flushes for another ASID than the current one is
-+ * too difficult since stupid R4k caches do a TLB translation
-+ * for every cache flush operation. So we do indexed flushes
-+ * in that case, which doesn't overly flush the cache too much.
-+ */
-+ if ((mm == current->active_mm) && (pte_val(*ptep) & _PAGE_VALID)) {
-+ blast_dcache32_page(page);
-+ } else {
-+ /* Do indexed flush, too much work to get the (possible)
-+ * tlb refills to work correctly.
-+ */
-+ page = (KSEG0 + (page & (dcache_size - 1)));
-+ blast_dcache32_page_indexed(page);
-+ blast_dcache32_page_indexed(page ^ dcache_waybit);
-+ }
-+}
-+
-+static void r4k_flush_page_to_ram_s16(struct page *page)
-+{
-+ blast_scache16_page((unsigned long)page_address(page));
-+}
-+
-+static void r4k_flush_page_to_ram_s32(struct page *page)
-+{
-+ blast_scache32_page((unsigned long)page_address(page));
-+}
-+
-+static void r4k_flush_page_to_ram_s64(struct page *page)
-+{
-+ blast_scache64_page((unsigned long)page_address(page));
-+}
-+
-+static void r4k_flush_page_to_ram_s128(struct page *page)
-+{
-+ blast_scache128_page((unsigned long)page_address(page));
-+}
-+
-+static void r4k_flush_page_to_ram_d16(struct page *page)
-+{
-+ blast_dcache16_page((unsigned long)page_address(page));
-+}
-+
-+static void r4k_flush_page_to_ram_d32(struct page *page)
-+{
-+ blast_dcache32_page((unsigned long)page_address(page));
-+}
-+
-+static void r4k_flush_page_to_ram_d32_r4600(struct page *page)
-+{
-+#ifdef R4600_V1_HIT_DCACHE_WAR
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+ __asm__ __volatile__("nop;nop;nop;nop");
-+#endif
-+ blast_dcache32_page((unsigned long)page_address(page));
-+#ifdef R4600_V1_HIT_DCACHE_WAR
-+ local_irq_restore(flags);
-+#endif
-+}
-+
-+static void r4k_flush_icache_range(unsigned long start, unsigned long end)
-+{
-+ flush_cache_all();
-+}
-+
-+static void r4k_flush_icache_page_s(struct vm_area_struct *vma,
-+ struct page *page)
-+{
-+ /*
-+ * We did an scache flush therefore PI is already clean.
-+ */
-+}
-+
-+/*
-+ * Ok, this seriously sucks. We use them to flush a user page but don't
-+ * know the virtual address, so we have to blast away the whole icache
-+ * which is significantly more expensive than the real thing.
-+ */
-+static void r4k_flush_icache_page_p(struct vm_area_struct *vma,
-+ struct page *page)
-+{
-+ if (!(vma->vm_flags & VM_EXEC))
-+ return;
-+
-+ flush_cache_all();
-+}
-+
-+static void r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
-+{
-+ unsigned long end, a;
-+
-+ if (size >= dcache_size) {
-+ flush_cache_all();
-+ } else {
-+#ifdef R4600_V2_HIT_CACHEOP_WAR
-+ unsigned long flags;
-+
-+ /* Workaround for R4600 bug. See comment in <asm/war>. */
-+ local_irq_save(flags);
-+ *(volatile unsigned long *)KSEG1;
-+#endif
-+
-+ a = addr & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
-+ while (1) {
-+ flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-+ if (a == end) break;
-+ a += dc_lsize;
-+ }
-+#ifdef R4600_V2_HIT_CACHEOP_WAR
-+ local_irq_restore(flags);
-+#endif
-+ }
-+
-+ bc_wback_inv(addr, size);
-+}
-+
-+static void r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
-+{
-+ unsigned long end, a;
-+
-+ if (size >= scache_size) {
-+ flush_cache_all();
-+ return;
-+ }
-+
-+ a = addr & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
-+ while (1) {
-+ flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-+ if (a == end) break;
-+ a += sc_lsize;
-+ }
-+}
-+
-+static void r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
-+{
-+ unsigned long end, a;
-+
-+ if (size >= dcache_size) {
-+ flush_cache_all();
-+ } else {
-+#ifdef R4600_V2_HIT_CACHEOP_WAR
-+ unsigned long flags;
-+
-+ /* Workaround for R4600 bug. See comment in <asm/war>. */
-+ local_irq_save(flags);
-+ *(volatile unsigned long *)KSEG1;
-+#endif
-+
-+ a = addr & ~(dc_lsize - 1);
-+ end = (addr + size - 1) & ~(dc_lsize - 1);
-+ while (1) {
-+ flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-+ if (a == end) break;
-+ a += dc_lsize;
-+ }
-+#ifdef R4600_V2_HIT_CACHEOP_WAR
-+ local_irq_restore(flags);
-+#endif
-+ }
-+
-+ bc_inv(addr, size);
-+}
-+
-+static void r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
-+{
-+ unsigned long end, a;
-+
-+ if (size >= scache_size) {
-+ flush_cache_all();
-+ return;
-+ }
-+
-+ a = addr & ~(sc_lsize - 1);
-+ end = (addr + size - 1) & ~(sc_lsize - 1);
-+ while (1) {
-+ flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-+ if (a == end) break;
-+ a += sc_lsize;
-+ }
-+}
-+
-+/*
-+ * While we're protected against bad userland addresses we don't care
-+ * very much about what happens in that case. Usually a segmentation
-+ * fault will dump the process later on anyway ...
-+ */
-+static void r4k_flush_cache_sigtramp(unsigned long addr)
-+{
-+#ifdef R4600_V1_HIT_DCACHE_WAR
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+ __asm__ __volatile__("nop;nop;nop;nop");
-+#endif
-+
-+ protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-+ protected_flush_icache_line(addr & ~(ic_lsize - 1));
-+
-+#ifdef R4600_V1_HIT_DCACHE_WAR
-+ local_irq_restore(flags);
-+#endif
-+}
-+
-+static void r4600v20k_flush_cache_sigtramp(unsigned long addr)
-+{
-+#ifdef R4600_V2_HIT_CACHEOP_WAR
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
-+ /* Clear internal cache refill buffer */
-+ *(volatile unsigned int *)KSEG1;
-+#endif
-+
-+ protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-+ protected_flush_icache_line(addr & ~(ic_lsize - 1));
-+
-+#ifdef R4600_V2_HIT_CACHEOP_WAR
-+ local_irq_restore(flags);
-+#endif
-+}
-+
-+static void r4k_flush_cache_l2(void)
-+{
-+}
-+
-+static void __init probe_icache(unsigned long config)
-+{
-+ switch (mips_cpu.cputype) {
-+ case CPU_VR41XX:
-+ case CPU_VR4111:
-+ case CPU_VR4121:
-+ case CPU_VR4122:
-+ case CPU_VR4131:
-+ case CPU_VR4181:
-+ case CPU_VR4181A:
-+ icache_size = 1 << (10 + ((config >> 9) & 7));
-+ break;
-+ default:
-+ icache_size = 1 << (12 + ((config >> 9) & 7));
-+ break;
-+ }
-+ ic_lsize = 16 << ((config >> 5) & 1);
-+
-+ printk("Primary instruction cache %ldK, linesize %ld bytes.\n",
-+ icache_size >> 10, ic_lsize);
-+}
-+
-+static void __init probe_dcache(unsigned long config)
-+{
-+ switch (mips_cpu.cputype) {
-+ case CPU_VR41XX:
-+ case CPU_VR4111:
-+ case CPU_VR4121:
-+ case CPU_VR4122:
-+ case CPU_VR4131:
-+ case CPU_VR4181:
-+ case CPU_VR4181A:
-+ dcache_size = 1 << (10 + ((config >> 6) & 7));
-+ break;
-+ default:
-+ dcache_size = 1 << (12 + ((config >> 6) & 7));
-+ break;
-+ }
-+ dc_lsize = 16 << ((config >> 4) & 1);
-+
-+ printk("Primary data cache %ldK, linesize %ld bytes.\n",
-+ dcache_size >> 10, dc_lsize);
-+}
-+
-+/*
-+ * If you even _breathe_ on this function, look at the gcc output and make sure
-+ * it does not pop things on and off the stack for the cache sizing loop that
-+ * executes in KSEG1 space or else you will crash and burn badly. You have
-+ * been warned.
-+ */
-+static int __init probe_scache(unsigned long config)
-+{
-+ extern unsigned long stext;
-+ unsigned long flags, addr, begin, end, pow2;
-+ int tmp;
-+
-+ tmp = ((config >> 17) & 1);
-+ if(tmp)
-+ return 0;
-+ tmp = ((config >> 22) & 3);
-+ switch(tmp) {
-+ case 0:
-+ sc_lsize = 16;
-+ break;
-+ case 1:
-+ sc_lsize = 32;
-+ break;
-+ case 2:
-+ sc_lsize = 64;
-+ break;
-+ case 3:
-+ sc_lsize = 128;
-+ break;
-+ }
-+
-+ begin = (unsigned long) &stext;
-+ begin &= ~((4 * 1024 * 1024) - 1);
-+ end = begin + (4 * 1024 * 1024);
-+
-+ /*
-+ * This is such a bitch, you'd think they would make it easy to do
-+ * this. Away you daemons of stupidity!
-+ */
-+ local_irq_save(flags);
-+
-+ /* Fill each size-multiple cache line with a valid tag. */
-+ pow2 = (64 * 1024);
-+ for (addr = begin; addr < end; addr = (begin + pow2)) {
-+ unsigned long *p = (unsigned long *) addr;
-+ __asm__ __volatile__("nop" : : "r" (*p)); /* whee... */
-+ pow2 <<= 1;
-+ }
-+
-+ /* Load first line with zero (therefore invalid) tag. */
-+ write_c0_taglo(0);
-+ write_c0_taghi(0);
-+ __asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
-+ cache_op(Index_Store_Tag_I, begin);
-+ cache_op(Index_Store_Tag_D, begin);
-+ cache_op(Index_Store_Tag_SD, begin);
-+
-+ /* Now search for the wrap around point. */
-+ pow2 = (128 * 1024);
-+ tmp = 0;
-+ for (addr = begin + (128 * 1024); addr < end; addr = begin + pow2) {
-+ cache_op(Index_Load_Tag_SD, addr);
-+ __asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-+ if (!read_c0_taglo())
-+ break;
-+ pow2 <<= 1;
-+ }
-+ local_irq_restore(flags);
-+ addr -= begin;
-+ printk("Secondary cache sized at %ldK, linesize %ld bytes.\n",
-+ addr >> 10, sc_lsize);
-+ scache_size = addr;
-+ return 1;
-+}
-+
-+static void __init setup_noscache_funcs(void)
-+{
-+ unsigned int prid;
-+
-+ switch(dc_lsize) {
-+ case 16:
-+ _clear_page = r4k_clear_page_d16;
-+ _copy_page = r4k_copy_page_d16;
-+ _flush_cache_all = r4k_flush_cache_all_d16i16;
-+ _flush_cache_l1 = r4k_flush_cache_all_d16i16;
-+ _flush_cache_mm = r4k_flush_cache_mm_d16i16;
-+ _flush_cache_range = r4k_flush_cache_range_d16i16;
-+ _flush_cache_page = r4k_flush_cache_page_d16i16;
-+ _flush_page_to_ram = r4k_flush_page_to_ram_d16;
-+ break;
-+ case 32:
-+ prid = read_c0_prid() & 0xfff0;
-+ if (prid == 0x2010) { /* R4600 V1.7 */
-+ _clear_page = r4k_clear_page_r4600_v1;
-+ _copy_page = r4k_copy_page_r4600_v1;
-+ _flush_page_to_ram = r4k_flush_page_to_ram_d32_r4600;
-+ } else if (prid == 0x2020) { /* R4600 V2.0 */
-+ _clear_page = r4k_clear_page_r4600_v2;
-+ _copy_page = r4k_copy_page_r4600_v2;
-+ _flush_page_to_ram = r4k_flush_page_to_ram_d32;
-+ } else {
-+ _clear_page = r4k_clear_page_d32;
-+ _copy_page = r4k_copy_page_d32;
-+ _flush_page_to_ram = r4k_flush_page_to_ram_d32;
-+ }
-+ _flush_cache_all = r4k_flush_cache_all_d32i32;
-+ _flush_cache_l1 = r4k_flush_cache_all_d32i32;
-+ _flush_cache_mm = r4k_flush_cache_mm_d32i32;
-+ _flush_cache_range = r4k_flush_cache_range_d32i32;
-+ _flush_cache_page = r4k_flush_cache_page_d32i32;
-+ break;
-+ }
-+ _flush_icache_page = r4k_flush_icache_page_p;
-+
-+ ___flush_cache_all = _flush_cache_all;
-+
-+ _dma_cache_wback_inv = r4k_dma_cache_wback_inv_pc;
-+ _dma_cache_wback = r4k_dma_cache_wback_inv_pc;
-+ _dma_cache_inv = r4k_dma_cache_inv_pc;
-+}
-+
-+static void __init setup_scache_funcs(void)
-+{
-+ switch (sc_lsize) {
-+ case 16:
-+ switch (dc_lsize) {
-+ case 16:
-+ _flush_cache_all = r4k_flush_cache_all_s16d16i16;
-+ _flush_cache_l1 = r4k_flush_cache_all_s16d16i16;
-+ _flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
-+ _flush_cache_range = r4k_flush_cache_range_s16d16i16;
-+ _flush_cache_page = r4k_flush_cache_page_s16d16i16;
-+ break;
-+ case 32:
-+ panic("Invalid cache configuration detected");
-+ };
-+ _flush_page_to_ram = r4k_flush_page_to_ram_s16;
-+ _clear_page = r4k_clear_page_s16;
-+ _copy_page = r4k_copy_page_s16;
-+ break;
-+ case 32:
-+ switch (dc_lsize) {
-+ case 16:
-+ _flush_cache_all = r4k_flush_cache_all_s32d16i16;
-+ _flush_cache_l1 = r4k_flush_cache_all_s32d16i16;
-+ _flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
-+ _flush_cache_range = r4k_flush_cache_range_s32d16i16;
-+ _flush_cache_page = r4k_flush_cache_page_s32d16i16;
-+ break;
-+ case 32:
-+ _flush_cache_all = r4k_flush_cache_all_s32d32i32;
-+ _flush_cache_l1 = r4k_flush_cache_all_s32d32i32;
-+ _flush_cache_mm = r4k_flush_cache_mm_s32d32i32;
-+ _flush_cache_range = r4k_flush_cache_range_s32d32i32;
-+ _flush_cache_page = r4k_flush_cache_page_s32d32i32;
-+ break;
-+ };
-+ _flush_page_to_ram = r4k_flush_page_to_ram_s32;
-+ _clear_page = r4k_clear_page_s32;
-+ _copy_page = r4k_copy_page_s32;
-+ break;
-+ case 64:
-+ switch (dc_lsize) {
-+ case 16:
-+ _flush_cache_all = r4k_flush_cache_all_s64d16i16;
-+ _flush_cache_l1 = r4k_flush_cache_all_s64d16i16;
-+ _flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
-+ _flush_cache_range = r4k_flush_cache_range_s64d16i16;
-+ _flush_cache_page = r4k_flush_cache_page_s64d16i16;
-+ break;
-+ case 32:
-+ _flush_cache_all = r4k_flush_cache_all_s64d32i32;
-+ _flush_cache_l1 = r4k_flush_cache_all_s64d32i32;
-+ _flush_cache_mm = r4k_flush_cache_mm_s64d32i32;
-+ _flush_cache_range = r4k_flush_cache_range_s64d32i32;
-+ _flush_cache_page = r4k_flush_cache_page_s64d32i32;
-+ break;
-+ };
-+ _flush_page_to_ram = r4k_flush_page_to_ram_s64;
-+ _clear_page = r4k_clear_page_s64;
-+ _copy_page = r4k_copy_page_s64;
-+ break;
-+ case 128:
-+ switch (dc_lsize) {
-+ case 16:
-+ _flush_cache_all = r4k_flush_cache_all_s128d16i16;
-+ _flush_cache_l1 = r4k_flush_cache_all_s128d16i16;
-+ _flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
-+ _flush_cache_range = r4k_flush_cache_range_s128d16i16;
-+ _flush_cache_page = r4k_flush_cache_page_s128d16i16;
-+ break;
-+ case 32:
-+ _flush_cache_all = r4k_flush_cache_all_s128d32i32;
-+ _flush_cache_l1 = r4k_flush_cache_all_s128d32i32;
-+ _flush_cache_mm = r4k_flush_cache_mm_s128d32i32;
-+ _flush_cache_range = r4k_flush_cache_range_s128d32i32;
-+ _flush_cache_page = r4k_flush_cache_page_s128d32i32;
-+ break;
-+ };
-+ _flush_page_to_ram = r4k_flush_page_to_ram_s128;
-+ _clear_page = r4k_clear_page_s128;
-+ _copy_page = r4k_copy_page_s128;
-+ break;
-+ }
-+ _flush_icache_page = r4k_flush_icache_page_s;
-+
-+ ___flush_cache_all = _flush_cache_all;
-+
-+ _dma_cache_wback_inv = r4k_dma_cache_wback_inv_sc;
-+ _dma_cache_wback = r4k_dma_cache_wback_inv_sc;
-+ _dma_cache_inv = r4k_dma_cache_inv_sc;
-+}
-+
-+typedef int (*probe_func_t)(unsigned long);
-+extern int r5k_sc_init(void);
-+
-+static inline void __init setup_scache(unsigned int config)
-+{
-+ probe_func_t probe_scache_kseg1;
-+ int sc_present = 0;
-+
-+ /* Maybe the cpu knows about a l2 cache? */
-+ probe_scache_kseg1 = (probe_func_t) (KSEG1ADDR(&probe_scache));
-+ sc_present = probe_scache_kseg1(config);
-+
-+ if (!sc_present) {
-+ setup_noscache_funcs();
-+ return;
-+ }
-+
-+ switch(mips_cpu.cputype) {
-+ case CPU_R5000:
-+ case CPU_NEVADA:
-+ setup_noscache_funcs();
-+#ifdef CONFIG_R5000_CPU_SCACHE
-+ r5k_sc_init();
-+#endif
-+ break;
-+ default:
-+ setup_scache_funcs();
-+ }
-+}
-+
-+void __init ld_mmu_r4xx0(void)
-+{
-+ unsigned long config = read_c0_config();
-+
-+ /* Default cache error handler for SB1 */
-+ extern char except_vec2_generic;
-+
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_generic, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_generic, 0x80);
-+
-+ change_c0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
-+
-+ probe_icache(config);
-+ probe_dcache(config);
-+ setup_scache(config);
-+
-+ switch(mips_cpu.cputype) {
-+ case CPU_R4600: /* QED style two way caches? */
-+ case CPU_R4700:
-+ case CPU_R5000:
-+ case CPU_NEVADA:
-+ _flush_cache_page = r4k_flush_cache_page_d32i32_r4600;
-+ }
-+
-+ _flush_cache_sigtramp = r4k_flush_cache_sigtramp;
-+ if ((read_c0_prid() & 0xfff0) == 0x2020) {
-+ _flush_cache_sigtramp = r4600v20k_flush_cache_sigtramp;
-+ }
-+ _flush_icache_range = r4k_flush_icache_range; /* Ouch */
-+
-+ _flush_cache_l2 = r4k_flush_cache_l2;
-+
-+ __flush_cache_all();
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/c-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-sb1.c
---- linux-2.4.20/arch/mips64/mm/c-sb1.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/c-sb1.c 2003-02-18 17:38:36.000000000 -0600
-@@ -33,6 +33,7 @@
- static unsigned long dcache_line_size;
-
- static unsigned int icache_index_mask;
-+static unsigned int dcache_index_mask;
-
- static unsigned long icache_assoc;
- static unsigned long dcache_assoc;
-@@ -40,6 +41,9 @@
- static unsigned int icache_sets;
- static unsigned int dcache_sets;
-
-+static unsigned int icache_range_cutoff;
-+static unsigned int dcache_range_cutoff;
-+
- /*
- * The dcache is fully coherent to the system, with one
- * big caveat: the instruction stream. In other words,
-@@ -53,68 +57,168 @@
- * to flush it
- */
-
--static void sb1_flush_cache_all(void)
--{
--}
--
--static inline void local_sb1___flush_dcache_all(void)
-+/*
-+ * Writeback and invalidate the entire dcache
-+ */
-+static inline void __sb1_writeback_inv_dcache_all(void)
- {
-- /*
-- * Haven't worried too much about speed here; given that we're flushing
-- * the icache, the time to invalidate is dwarfed by the time it's going
-- * to take to refill it. Register usage:
-- *
-- * $1 - moving cache index
-- * $2 - set count
-- */
- __asm__ __volatile__ (
- ".set push \n"
- ".set noreorder \n"
- ".set noat \n"
- ".set mips4 \n"
-- " move $1, %2 \n" /* Start at index 0 */
-- "1: cache %3, 0($1) \n" /* WB/Invalidate this index */
-- " daddiu %1, %1, -1 \n" /* Decrement loop count */
-+ " move $1, $0 \n" /* Start at index 0 */
-+ "1: cache %2, 0($1) \n" /* Invalidate this index */
-+ " cache %2, (1<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (2<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (3<<13)($1)\n" /* Invalidate this index */
-+ " daddiu %1, %1, -1 \n" /* Decrement loop count */
- " bnez %1, 1b \n" /* loop test */
-- " daddu $1, $1, %0 \n" /* Next address */
-+ " daddu $1, $1, %0 \n" /* Next address */
- ".set pop \n"
- :
-- : "r" (dcache_line_size), "r" (dcache_sets * dcache_assoc),
-- "r" (KSEG0), "i" (Index_Writeback_Inv_D));
-+ : "r" (dcache_line_size), "r" (dcache_sets),
-+ "i" (Index_Writeback_Inv_D));
-+}
-
-+/*
-+ * Writeback and invalidate a range of the dcache. The addresses are
-+ * virtual, and since we're using index ops and bit 12 is part of both
-+ * the virtual frame and physical index, we have to clear both sets
-+ * (bit 12 set and cleared).
-+ */
-+static inline void __sb1_writeback_inv_dcache_range(unsigned long start,
-+ unsigned long end)
-+{
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set noreorder \n"
-+ " .set noat \n"
-+ " .set mips4 \n"
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ "1: cache %4, (0<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-WB-inval this address */
-+ " xori $1, $1, 1<<12 \n"
-+ " cache %4, (0<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-WB-inval this address */
-+ " daddu %0, %0, %2 \n" /* next line */
-+ " bne %0, %1, 1b \n" /* loop test */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ " sync \n"
-+ " .set pop \n"
-+ :
-+ : "r" (start & ~(dcache_line_size - 1)),
-+ "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-+ "r" (dcache_line_size),
-+ "r" (dcache_index_mask),
-+ "i" (Index_Writeback_Inv_D));
-+}
-+
-+/*
-+ * Writeback and invalidate a range of the dcache. With physical
-+ * addresseses, we don't have to worry about possible bit 12 aliasing.
-+ * XXXKW is it worth turning on KX and using hit ops with xkphys?
-+ */
-+static inline void __sb1_writeback_inv_dcache_phys_range(unsigned long start,
-+ unsigned long end)
-+{
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set noreorder \n"
-+ " .set noat \n"
-+ " .set mips4 \n"
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ "1: cache %4, (0<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-WB-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-WB-inval this address */
-+ " daddu %0, %0, %2 \n" /* next line */
-+ " bne %0, %1, 1b \n" /* loop test */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ " sync \n"
-+ " .set pop \n"
-+ :
-+ : "r" (start & ~(dcache_line_size - 1)),
-+ "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-+ "r" (dcache_line_size),
-+ "r" (dcache_index_mask),
-+ "i" (Index_Writeback_Inv_D));
-+}
-+
-+
-+/*
-+ * Invalidate the entire icache
-+ */
-+static inline void __sb1_flush_icache_all(void)
-+{
- __asm__ __volatile__ (
- ".set push \n"
- ".set noreorder \n"
-- ".set mips2 \n"
-- "sync \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS /* Bug 1384 */
-- "sync \n"
--#endif
-- ".set pop \n");
-+ ".set noat \n"
-+ ".set mips4 \n"
-+ " move $1, $0 \n" /* Start at index 0 */
-+ "1: cache %2, 0($1) \n" /* Invalidate this index */
-+ " cache %2, (1<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (2<<13)($1)\n" /* Invalidate this index */
-+ " cache %2, (3<<13)($1)\n" /* Invalidate this index */
-+ " daddiu %1, %1, -1 \n" /* Decrement loop count */
-+ " bnez %1, 1b \n" /* loop test */
-+ " daddu $1, $1, %0 \n" /* Next address */
-+ " bnezl $0, 2f \n" /* Force mispredict */
-+ " nop \n"
-+ "2: sync \n"
-+ ".set pop \n"
-+ :
-+ : "r" (icache_line_size), "r" (icache_sets),
-+ "i" (Index_Invalidate_I));
- }
-
--static inline void local_sb1___flush_icache_all(void)
-+/*
-+ * Invalidate a range of the icache. The addresses are virtual, and
-+ * the cache is virtually indexed and tagged. However, we don't
-+ * necessarily have the right ASID context, so use index ops instead
-+ * of hit ops.
-+ */
-+static inline void __sb1_flush_icache_range(unsigned long start,
-+ unsigned long end)
- {
- __asm__ __volatile__ (
- ".set push \n"
- ".set noreorder \n"
- ".set noat \n"
- ".set mips4 \n"
-- " move $1, %2 \n" /* Start at index 0 */
-- "1: cache %3, 0($1) \n" /* Invalidate this index */
-- " daddiu %1, %1, -1 \n" /* Decrement loop count */
-- " bnez %1, 1b \n" /* loop test */
-- " daddu $1, $1, %0 \n" /* Next address */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ "1: cache %4, (0<<13)($1) \n" /* Index-inval this address */
-+ " cache %4, (1<<13)($1) \n" /* Index-inval this address */
-+ " cache %4, (2<<13)($1) \n" /* Index-inval this address */
-+ " cache %4, (3<<13)($1) \n" /* Index-inval this address */
-+ " daddu %0, %0, %2 \n" /* next line */
-+ " bne %0, %1, 1b \n" /* loop test */
-+ " and $1, %0, %3 \n" /* mask non-index bits */
-+ " bnezl $0, 2f \n" /* Force mispredict */
-+ " nop \n"
-+ "2: sync \n"
- ".set pop \n"
- :
-- : "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-- "r" (KSEG0), "i" (Index_Invalidate_I));
-+ : "r" (start & ~(icache_line_size - 1)),
-+ "r" ((end + icache_line_size - 1) & ~(icache_line_size - 1)),
-+ "r" (icache_line_size),
-+ "r" (icache_index_mask),
-+ "i" (Index_Invalidate_I));
- }
-
-+
-+/*
-+ * Invalidate all caches on this CPU
-+ */
- static void local_sb1___flush_cache_all(void)
- {
-- local_sb1___flush_dcache_all();
-- local_sb1___flush_icache_all();
-+ __sb1_writeback_inv_dcache_all();
-+ __sb1_flush_icache_all();
- }
-
- #ifdef CONFIG_SMP
-@@ -131,81 +235,28 @@
- asm("sb1___flush_cache_all = local_sb1___flush_cache_all");
- #endif
-
--
- /*
- * When flushing a range in the icache, we have to first writeback
- * the dcache for the same range, so new ifetches will see any
- * data that was dirty in the dcache.
- *
-- * The start/end arguments are expected to be Kseg addresses.
-+ * The start/end arguments are Kseg addresses (possibly mapped Kseg).
- */
-
- static void local_sb1_flush_icache_range(unsigned long start,
- unsigned long end)
- {
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- unsigned long flags;
-- local_irq_save(flags);
--#endif
--
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " move $1, %0 \n"
-- "1: \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- ".align 3 \n"
-- " lw $0, 0($1) \n" /* Bug 1370, 1368 */
-- " sync \n"
--#endif
-- " cache %3, 0($1) \n" /* Hit-WB{,-inval} this address */
-- " bne $1, %1, 1b \n" /* loop test */
-- " daddu $1, $1, %2 \n" /* next line */
-- ".set pop \n"
-- :
-- : "r" ((start + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-- "r" ((end + dcache_line_size - 1) & ~(dcache_line_size - 1)),
-- "r" (dcache_line_size),
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- "i" (Hit_Writeback_Inv_D)
--#else
-- "i" (Hit_Writeback_D)
--#endif
-- );
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set mips2 \n"
-- "sync \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS /* Bug 1384 */
-- "sync \n"
--#endif
-- ".set pop \n");
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- local_irq_restore(flags);
--#endif
--
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " move $1, %0 \n"
-- ".align 3 \n"
-- "1: cache %3, (0<<13)($1) \n" /* Index-inval this address */
-- " cache %3, (1<<13)($1) \n" /* Index-inval this address */
-- " cache %3, (2<<13)($1) \n" /* Index-inval this address */
-- " cache %3, (3<<13)($1) \n" /* Index-inval this address */
-- " bne $1, %1, 1b \n" /* loop test */
-- " daddu $1, $1, %2 \n" /* next line */
-- ".set pop \n"
-- :
-- : "r" (start & ~(icache_line_size - 1)),
-- "r" ((end - 1) & ~(icache_line_size - 1)),
-- "r" (icache_line_size),
-- "i" (Index_Invalidate_I));
-+ /* Just wb-inv the whole dcache if the range is big enough */
-+ if ((end - start) > dcache_range_cutoff)
-+ __sb1_writeback_inv_dcache_all();
-+ else
-+ __sb1_writeback_inv_dcache_range(start, end);
-+
-+ /* Just flush the whole icache if the range is big enough */
-+ if ((end - start) > icache_range_cutoff)
-+ __sb1_flush_icache_all();
-+ else
-+ __sb1_flush_icache_range(start, end);
- }
-
- #ifdef CONFIG_SMP
-@@ -236,127 +287,105 @@
- #endif
-
- /*
-- * If there's no context yet, or the page isn't executable, no icache flush
-- * is needed
-- *
-- * This is broken. If there is no context yet we still have to writeback
-- * the d-cache to memory.
-+ * Flush the icache for a given physical page. Need to writeback the
-+ * dcache first, then invalidate the icache. If the page isn't
-+ * executable, nothing is required.
- */
--static void sb1_flush_icache_page(struct vm_area_struct *vma,
-+static void local_sb1_flush_icache_page(struct vm_area_struct *vma,
- struct page *page)
- {
-- if (!(vma->vm_flags & VM_EXEC)) {
-+ unsigned long start;
-+ int cpu = smp_processor_id();
-+
-+#ifndef CONFIG_SMP
-+ if (!(vma->vm_flags & VM_EXEC))
- return;
-- }
-+#endif
-
-+ /* Need to writeback any dirty data for that page, we have the PA */
-+ start = (unsigned long)(page-mem_map) << PAGE_SHIFT;
-+ __sb1_writeback_inv_dcache_phys_range(start, start + PAGE_SIZE);
- /*
-- * We're not sure of the virtual address(es) involved here, so
-- * conservatively flush the entire caches on all processors
-- * (ouch).
-- *
-- * Bumping the ASID may well be cheaper, need to experiment ...
-+ * If there's a context, bump the ASID (cheaper than a flush,
-+ * since we don't know VAs!)
- */
-- sb1___flush_cache_all();
-+ if (cpu_context(cpu, vma->vm_mm) != 0) {
-+ drop_mmu_context(vma->vm_mm, cpu);
-+ }
- }
-
--static inline void protected_flush_icache_line(unsigned long addr)
-+#ifdef CONFIG_SMP
-+struct flush_icache_page_args {
-+ struct vm_area_struct *vma;
-+ struct page *page;
-+};
-+
-+static void sb1_flush_icache_page_ipi(void *info)
- {
-- __asm__ __volatile__(
-- " .set push \n"
-- " .set noreorder \n"
-- " .set mips4 \n"
-- "1: cache %1, (%0) \n"
-- "2: .set pop \n"
-- " .section __ex_table,\"a\"\n"
-- " .dword 1b, 2b \n"
-- " .previous"
-- :
-- : "r" (addr), "i" (Hit_Invalidate_I));
-+ struct flush_icache_page_args *args = info;
-+ local_sb1_flush_icache_page(args->vma, args->page);
- }
-
--static inline void protected_writeback_dcache_line(unsigned long addr)
-+/* Dirty dcache could be on another CPU, so do the IPIs */
-+static void sb1_flush_icache_page(struct vm_area_struct *vma,
-+ struct page *page)
- {
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- /* Have to be sure the TLB entry exists for the cache op,
-- so we have to be sure that nothing happens in between the
-- lw and the cache op
-- */
-- unsigned long flags;
-- local_irq_save(flags);
--#endif
-- __asm__ __volatile__(
-- " .set push \n"
-- " .set noreorder \n"
-- " .set mips4 \n"
-- " \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- "1: lw $0, (%0) \n"
-- " sync \n"
-- " .section __ex_table,\"a\"\n"
-- " .dword 1b, 3f \n"
-- " .previous \n"
--#endif
-- "2: cache %1, 0(%0) \n" /* Hit-WB{-inval} this address */
-- /* XXX: should be able to do this after both dcache cache
-- ops, but there's no guarantee that this will be inlined,
-- and the pass1 restriction checker can't detect syncs
-- following cache ops except in the following basic block.
-- */
-- " sync \n"
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS /* Bug 1384 */
-- " sync \n"
--#endif
-- "3: .set pop \n"
-- " .section __ex_table,\"a\"\n"
-- " .dword 2b, 3b \n"
-- " .previous"
-- :
-- : "r" (addr),
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- "i" (Hit_Writeback_Inv_D)
-+ struct flush_icache_page_args args;
-+
-+ if (!(vma->vm_flags & VM_EXEC))
-+ return;
-+ args.vma = vma;
-+ args.page = page;
-+ smp_call_function(sb1_flush_icache_page_ipi, (void *) &args, 1, 1);
-+ local_sb1_flush_icache_page(vma, page);
-+}
- #else
-- "i" (Hit_Writeback_D)
--#endif
-- );
--#ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
-- local_irq_restore(flags);
-+void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page);
-+asm("sb1_flush_icache_page = local_sb1_flush_icache_page");
- #endif
--}
-
- /*
- * A signal trampoline must fit into a single cacheline.
- */
- static void local_sb1_flush_cache_sigtramp(unsigned long addr)
- {
-- unsigned long daddr, iaddr;
--
-- daddr = addr & ~(dcache_line_size - 1);
-- protected_writeback_dcache_line(daddr);
-- iaddr = addr & ~(icache_line_size - 1);
-- protected_flush_icache_line(iaddr);
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set noreorder \n"
-+ " .set noat \n"
-+ " .set mips4 \n"
-+ " cache %2, (0<<13)(%0) \n" /* Index-inval this address */
-+ " cache %2, (1<<13)(%0) \n" /* Index-inval this address */
-+ " cache %2, (2<<13)(%0) \n" /* Index-inval this address */
-+ " cache %2, (3<<13)(%0) \n" /* Index-inval this address */
-+ " xori $1, %0, 1<<12 \n" /* Flip index bit 12 */
-+ " cache %2, (0<<13)($1) \n" /* Index-inval this address */
-+ " cache %2, (1<<13)($1) \n" /* Index-inval this address */
-+ " cache %2, (2<<13)($1) \n" /* Index-inval this address */
-+ " cache %2, (3<<13)($1) \n" /* Index-inval this address */
-+ " cache %3, (0<<13)(%1) \n" /* Index-inval this address */
-+ " cache %3, (1<<13)(%1) \n" /* Index-inval this address */
-+ " cache %3, (2<<13)(%1) \n" /* Index-inval this address */
-+ " cache %3, (3<<13)(%1) \n" /* Index-inval this address */
-+ " bnezl $0, 1f \n" /* Force mispredict */
-+ " nop \n"
-+ "1: \n"
-+ " .set pop \n"
-+ :
-+ : "r" (addr & dcache_index_mask), "r" (addr & icache_index_mask),
-+ "i" (Index_Writeback_Inv_D), "i" (Index_Invalidate_I));
- }
-
- #ifdef CONFIG_SMP
- static void sb1_flush_cache_sigtramp_ipi(void *info)
- {
- unsigned long iaddr = (unsigned long) info;
--
-- iaddr = iaddr & ~(icache_line_size - 1);
-- protected_flush_icache_line(iaddr);
-+ local_sb1_flush_cache_sigtramp(iaddr);
- }
-
- static void sb1_flush_cache_sigtramp(unsigned long addr)
- {
-- unsigned long tmp;
--
-- /*
-- * Flush the local dcache, then load the instruction back into a
-- * register. That will make sure that any remote CPU also has
-- * written back it's data cache to memory.
-- */
- local_sb1_flush_cache_sigtramp(addr);
-- __get_user(tmp, (unsigned long *)addr);
--
- smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1);
- }
- #else
-@@ -364,64 +393,17 @@
- asm("sb1_flush_cache_sigtramp = local_sb1_flush_cache_sigtramp");
- #endif
-
--static void sb1_flush_icache_all(void)
--{
-- /*
-- * Haven't worried too much about speed here; given that we're flushing
-- * the icache, the time to invalidate is dwarfed by the time it's going
-- * to take to refill it. Register usage:
-- *
-- * $1 - moving cache index
-- * $2 - set count
-- */
-- __asm__ __volatile__ (
-- ".set push \n"
-- ".set noreorder \n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " move $1, %2 \n" /* Start at index 0 */
-- "1: cache %3, 0($1) \n" /* Invalidate this index */
-- " daddiu %1, %1, -1 \n" /* Decrement loop count */
-- " bnez %1, 1b \n" /* loop test */
-- " daddu $1, $1, %0 \n" /* Next address */
-- ".set pop \n"
-- :
-- : "r" (icache_line_size), "r" (icache_sets * icache_assoc),
-- "r" (KSEG0), "i" (Index_Invalidate_I));
--}
-
- /*
- * Anything that just flushes dcache state can be ignored, as we're always
- * coherent in dcache space. This is just a dummy function that all the
- * nop'ed routines point to
- */
--
- static void sb1_nop(void)
- {
- }
-
- /*
-- * This only needs to make sure stores done up to this
-- * point are visible to other agents outside the CPU. Given
-- * the coherent nature of the ZBbus, all that's required here is
-- * a sync to make sure the data gets out to the caches and is
-- * visible to an arbitrary A Phase from an external agent
-- *
-- * Actually, I'm not even sure that's necessary; the semantics
-- * of this function aren't clear. If it's supposed to serve as
-- * a memory barrier, this is needed. If it's only meant to
-- * prevent data from being invisible to non-cpu memory accessors
-- * for some indefinite period of time (e.g. in a non-coherent
-- * dcache) then this function would be a complete nop.
-- */
--static void sb1_flush_page_to_ram(struct page *page)
--{
-- __asm__ __volatile__(
-- " sync \n" /* Short pipe */
-- :::"memory");
--}
--
--/*
- * Cache set values (from the mips64 spec)
- * 0 - 64
- * 1 - 128
-@@ -480,7 +462,7 @@
- {
- u32 config1;
-
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
- icache_line_size = decode_cache_line_size((config1 >> 19) & 0x7);
- dcache_line_size = decode_cache_line_size((config1 >> 10) & 0x7);
- icache_sets = decode_cache_sets((config1 >> 22) & 0x7);
-@@ -489,7 +471,17 @@
- dcache_assoc = ((config1 >> 7) & 0x7) + 1;
- icache_size = icache_line_size * icache_sets * icache_assoc;
- dcache_size = dcache_line_size * dcache_sets * dcache_assoc;
-+ /* Need to remove non-index bits for index ops */
- icache_index_mask = (icache_sets - 1) * icache_line_size;
-+ dcache_index_mask = (dcache_sets - 1) * dcache_line_size;
-+ /*
-+ * These are for choosing range (index ops) versus all.
-+ * icache flushes all ways for each set, so drop icache_assoc.
-+ * dcache flushes all ways and each setting of bit 12 for each
-+ * index, so drop dcache_assoc and halve the dcache_sets.
-+ */
-+ icache_range_cutoff = icache_sets * icache_line_size;
-+ dcache_range_cutoff = (dcache_sets / 2) * icache_line_size;
- }
-
- /*
-@@ -499,25 +491,51 @@
- */
- void ld_mmu_sb1(void)
- {
-+ extern char except_vec2_sb1;
-+ unsigned long temp;
-+
-+ /* Special cache error handler for SB1 */
-+ memcpy((void *)(KSEG0 + 0x100), &except_vec2_sb1, 0x80);
-+ memcpy((void *)(KSEG1 + 0x100), &except_vec2_sb1, 0x80);
-+
- probe_cache_sizes();
-
- _clear_page = sb1_clear_page;
- _copy_page = sb1_copy_page;
-
-- _flush_cache_all = sb1_flush_cache_all;
-- ___flush_cache_all = sb1___flush_cache_all;
-- _flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
-+ /*
-+ * None of these are needed for the SB1 - the Dcache is
-+ * physically indexed and tagged, so no virtual aliasing can
-+ * occur
-+ */
- _flush_cache_range = (void *) sb1_nop;
-- _flush_page_to_ram = sb1_flush_page_to_ram;
-- _flush_icache_page = sb1_flush_icache_page;
-- _flush_icache_range = sb1_flush_icache_range;
--
-- /* None of these are needed for the sb1 */
-- _flush_cache_page = (void *) sb1_nop;
-+ _flush_cache_page = (void (*)(struct vm_area_struct *, unsigned long))sb1_nop;
-+ _flush_cache_mm = (void (*)(struct mm_struct *))sb1_nop;
-+ _flush_cache_all = sb1_nop;
-+ _flush_page_to_ram = (void (*)(struct page *)) sb1_nop;
-
-+ /* These routines are for Icache coherence with the Dcache */
-+ _flush_icache_range = sb1_flush_icache_range;
-+ _flush_icache_page = sb1_flush_icache_page;
-+ _flush_icache_all = __sb1_flush_icache_all; /* local only */
- _flush_cache_sigtramp = sb1_flush_cache_sigtramp;
-- _flush_icache_all = sb1_flush_icache_all;
-
-- change_cp0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /* Full flushes */
-+ ___flush_cache_all = sb1___flush_cache_all;
-+ _flush_cache_l1 = sb1___flush_cache_all;
-+
-+ change_c0_config(CONF_CM_CMASK, CONF_CM_DEFAULT);
-+ /*
-+ * This is the only way to force the update of K0 to complete
-+ * before subsequent instruction fetch.
-+ */
-+ __asm__ __volatile__ (
-+ " .set push \n"
-+ " .set mips4 \n"
-+ " dla %0, 1f \n"
-+ " dmtc0 %0, $14 \n"
-+ " eret \n"
-+ "1: .set pop \n"
-+ : "=r" (temp));
- flush_cache_all();
- }
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Entries
---- linux-2.4.20/arch/mips64/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Entries 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1,26 @@
-+/.cvsignore/1.1/Wed Aug 18 23:37:47 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.12/Wed Feb 19 20:53:05 2003/-ko/Tlinux_2_4_20
-+/c-andes.c/1.1.2.3/Fri Feb 14 01:58:54 2003/-ko/Tlinux_2_4_20
-+/c-mips64.c/1.1.2.8/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-r4k.c/1.1.2.13/Sun Feb 9 22:03:23 2003/-ko/Tlinux_2_4_20
-+/c-sb1.c/1.1.2.21/Tue Feb 18 23:38:36 2003/-ko/Tlinux_2_4_20
-+/cerr-sb1.c/1.1.2.5/Thu Feb 6 23:25:13 2003/-ko/Tlinux_2_4_20
-+/cex-sb1.S/1.1.2.5/Fri Feb 7 20:33:33 2003/-ko/Tlinux_2_4_20
-+/extable.c/1.5.2.2/Tue Aug 6 01:40:40 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.26.2.13/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/init.c/1.28.2.8/Thu Oct 3 01:27:58 2002/-ko/Tlinux_2_4_20
-+/loadmmu.c/1.14.2.8/Sun Sep 29 01:49:20 2002/-ko/Tlinux_2_4_20
-+/pg-andes.c/1.1.2.1/Sun Sep 29 01:49:20 2002/-ko/Tlinux_2_4_20
-+/pg-mips64.c/1.1.2.2/Mon Aug 5 23:53:36 2002/-ko/Tlinux_2_4_20
-+/pg-r4k.c/1.1.2.3/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/pg-sb1.c/1.1.2.4/Tue Jan 7 23:51:51 2003/-ko/Tlinux_2_4_20
-+/r5k-sc.c/1.1.2.4/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/tlb-andes.c/1.1.2.8/Wed Feb 12 23:50:16 2003/-ko/Tlinux_2_4_20
-+/tlb-dbg-r4k.c/1.1.2.2/Mon Dec 2 00:24:53 2002/-ko/Tlinux_2_4_20
-+/tlb-glue-r4k.S/1.1.2.3/Sat Sep 21 11:55:38 2002/-ko/Tlinux_2_4_20
-+/tlb-glue-sb1.S/1.1.2.1/Wed Feb 19 20:53:05 2003//Tlinux_2_4_20
-+/tlb-r4k.c/1.1.2.11/Thu Feb 6 22:53:43 2003/-ko/Tlinux_2_4_20
-+/tlb-sb1.c/1.1.2.15/Wed Feb 19 20:53:05 2003/-ko/Tlinux_2_4_20
-+/tlbex-r4k.S/1.1.2.11/Fri Feb 7 01:06:34 2003/-ko/Tlinux_2_4_20
-+/umap.c/1.12.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Repository
---- linux-2.4.20/arch/mips64/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Repository 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/mips64/mm
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Root
---- linux-2.4.20/arch/mips64/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Root 2005-01-06 23:00:14.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Tag
---- linux-2.4.20/arch/mips64/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/CVS/Tag 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/.cvsignore linux-2.4.20-mipscvs-20050106/arch/mips64/mm/.cvsignore
---- linux-2.4.20/arch/mips64/mm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/.cvsignore 1999-08-18 18:37:47.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/init.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/init.c
---- linux-2.4.20/arch/mips64/mm/init.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/init.c 2002-10-02 20:27:58.000000000 -0500
-@@ -297,14 +297,19 @@
- #ifdef CONFIG_BLK_DEV_INITRD
- void free_initrd_mem(unsigned long start, unsigned long end)
- {
-+ /* Switch from KSEG0 to XKPHYS addresses */
-+ start = (unsigned long)phys_to_virt(CPHYSADDR(start));
-+ end = (unsigned long)phys_to_virt(CPHYSADDR(end));
-+ if (start < end)
-+ printk(KERN_INFO "Freeing initrd memory: %ldk freed\n",
-+ (end - start) >> 10);
-+
- for (; start < end; start += PAGE_SIZE) {
- ClearPageReserved(virt_to_page(start));
- set_page_count(virt_to_page(start), 1);
- free_page(start);
- totalram_pages++;
- }
-- printk(KERN_INFO "Freeing initrd memory: %ldk freed\n",
-- (end - start) >> 10);
- }
- #endif
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/loadmmu.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/loadmmu.c
---- linux-2.4.20/arch/mips64/mm/loadmmu.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/loadmmu.c 2002-09-28 20:49:20.000000000 -0500
-@@ -66,10 +66,11 @@
- || defined (CONFIG_CPU_NEVADA)
- printk(KERN_INFO "Loading R4000 MMU routines.\n");
- ld_mmu_r4xx0();
-+ r4k_tlb_init();
- #endif
- #if defined(CONFIG_CPU_MIPS64)
- printk(KERN_INFO "Loading MIPS64 MMU routines.\n");
-- ld_mmu_mips64();
-+ ld_mmu_mips64();
- r4k_tlb_init();
- #endif
-
-@@ -79,6 +80,7 @@
- case CPU_R12000:
- printk(KERN_INFO "Loading R10000 MMU routines.\n");
- ld_mmu_andes();
-+ andes_tlb_init();
- break;
- #endif
- #if defined CONFIG_CPU_SB1
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/Makefile linux-2.4.20-mipscvs-20050106/arch/mips64/mm/Makefile
---- linux-2.4.20/arch/mips64/mm/Makefile 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/Makefile 2003-02-19 14:53:05.000000000 -0600
-@@ -7,24 +7,24 @@
- O_TARGET := mm.o
-
- export-objs += umap.o
--obj-y := extable.o init.o fault.o loadmmu.o
-+obj-y := extable.o init.o fault.o loadmmu.o \
-+ tlbex-r4k.o
-
--obj-$(CONFIG_CPU_R4300) += r4xx0.o tlbex-r4k.o tlb-glue-r4k.o
--obj-$(CONFIG_CPU_R4X00) += r4xx0.o tlbex-r4k.o tlb-glue-r4k.o
--obj-$(CONFIG_CPU_R5000) += r4xx0.o tlbex-r4k.o tlb-glue-r4k.o \
-- r5k-sc.o
--obj-$(CONFIG_CPU_NEVADA) += r4xx0.o tlbex-r4k.o tlb-glue-r4k.o \
-- r5k-sc.o
--obj-$(CONFIG_CPU_R10000) += andes.o tlbex-r4k.o tlb-glue-r4k.o
--obj-$(CONFIG_CPU_SB1) += pg-sb1.o c-sb1.o tlb-sb1.o tlbex-r4k.o \
-- tlb-glue-r4k.o
--obj-$(CONFIG_CPU_MIPS64) += pg-mips64.o c-mips64.o tlb-r4k.o \
-- tlbex-r4k.o tlb-glue-r4k.o
-+obj-$(CONFIG_CPU_R4300) += c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
-+obj-$(CONFIG_CPU_R4X00) += c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
-+obj-$(CONFIG_CPU_R5000) += c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
-+obj-$(CONFIG_CPU_NEVADA) += c-r4k.o pg-r4k.o tlb-r4k.o tlb-glue-r4k.o
-+obj-$(CONFIG_CPU_R10000) += c-andes.o pg-andes.o tlb-andes.o tlb-glue-r4k.o
-+obj-$(CONFIG_CPU_SB1) += c-sb1.o pg-sb1.o tlb-sb1.o tlb-glue-sb1.o \
-+ cex-sb1.o cerr-sb1.o
-+obj-$(CONFIG_CPU_MIPS64) += c-mips64.o pg-mips64.o tlb-r4k.o tlb-glue-r4k.o
-+
-+obj-$(CONFIG_R5000_CPU_SCACHE) += r5k-sc.o
-
- #
- # Debug TLB exception handler, currently unused
- #
--#obj-y += tlb-dbg-r4k.o tlb-glue-r4k.o
-+#obj-y += tlb-dbg-r4k.o
-
- obj-$(CONFIG_SGI_IP22) += umap.o
-
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/pg-andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-andes.c
---- linux-2.4.20/arch/mips64/mm/pg-andes.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-andes.c 2002-09-28 20:49:20.000000000 -0500
-@@ -0,0 +1,83 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999 Silicon Graphics, Inc.
-+ * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+#include <asm/page.h>
-+#include <asm/pgtable.h>
-+#include <asm/r10kcache.h>
-+#include <asm/system.h>
-+#include <asm/mmu_context.h>
-+
-+/*
-+ * This version has been tuned on an Origin. For other machines the arguments
-+ * of the pref instructin may have to be tuned differently.
-+ */
-+void andes_clear_page(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tpref 7,512(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE)
-+ : "memory");
-+}
-+
-+/* R10000 has no Create_Dirty type cacheops. */
-+void andes_copy_page(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2, reg3, reg4;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%8\n"
-+ "1:\tpref\t0,2*128(%1)\n\t"
-+ "pref\t1,2*128(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "ld\t%4,16(%1)\n\t"
-+ "ld\t%5,24(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "sd\t%4,16(%0)\n\t"
-+ "sd\t%5,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "ld\t%4,-16(%1)\n\t"
-+ "ld\t%5,-8(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "sd\t%4,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%5,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2),
-+ "=&r" (reg3), "=&r" (reg4)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE));
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/pg-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-r4k.c
---- linux-2.4.20/arch/mips64/mm/pg-r4k.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-r4k.c 2003-01-24 06:58:30.000000000 -0600
-@@ -0,0 +1,643 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
-+ *
-+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-+ * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-+ */
-+#include <linux/config.h>
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+
-+#include <asm/io.h>
-+#include <asm/page.h>
-+#include <asm/pgtable.h>
-+#include <asm/system.h>
-+#include <asm/bootinfo.h>
-+#include <asm/mmu_context.h>
-+#include <asm/cpu.h>
-+
-+#include <asm/cacheops.h>
-+
-+#undef DEBUG_CACHE
-+
-+/*
-+ * Zero an entire page. Basically a simple unrolled loop should do the
-+ * job but we want more performance by saving memory bus bandwidth. We
-+ * have five flavours of the routine available for:
-+ *
-+ * - 16byte cachelines and no second level cache
-+ * - 32byte cachelines second level cache
-+ * - a version which handles the buggy R4600 v1.x
-+ * - a version which handles the buggy R4600 v2.0
-+ * - Finally a last version without fancy cache games for the SC and MC
-+ * versions of R4000 and R4400.
-+ */
-+
-+void r4k_clear_page_d16(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "cache\t%3,16(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "cache\t%3,-32(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "cache\t%3,-16(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-+ : "memory");
-+}
-+
-+void r4k_clear_page_d32(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "cache\t%3,-32(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-+ : "memory");
-+}
-+
-+
-+/*
-+ * This flavour of r4k_clear_page is for the R4600 V1.x. Cite from the
-+ * IDT R4600 V1.7 errata:
-+ *
-+ * 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
-+ * Hit_Invalidate_D and Create_Dirty_Excl_D should only be
-+ * executed if there is no other dcache activity. If the dcache is
-+ * accessed for another instruction immeidately preceding when these
-+ * cache instructions are executing, it is possible that the dcache
-+ * tag match outputs used by these cache instructions will be
-+ * incorrect. These cache instructions should be preceded by at least
-+ * four instructions that are not any kind of load or store
-+ * instruction.
-+ *
-+ * This is not allowed: lw
-+ * nop
-+ * nop
-+ * nop
-+ * cache Hit_Writeback_Invalidate_D
-+ *
-+ * This is allowed: lw
-+ * nop
-+ * nop
-+ * nop
-+ * nop
-+ * cache Hit_Writeback_Invalidate_D
-+ */
-+void r4k_clear_page_r4600_v1(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tnop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "cache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "cache\t%3,-32(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-+ : "memory");
-+}
-+
-+/*
-+ * And this one is for the R4600 V2.0
-+ */
-+void r4k_clear_page_r4600_v2(void * page)
-+{
-+ unsigned int flags;
-+
-+ local_irq_save(flags);
-+ *(volatile unsigned int *)KSEG1;
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "cache\t%3,-32(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-+ : "memory");
-+ local_irq_restore(flags);
-+}
-+
-+/*
-+ * The next 4 versions are optimized for all possible scache configurations
-+ * of the SC / MC versions of R4000 and R4400 ...
-+ *
-+ * Todo: For even better performance we should have a routine optimized for
-+ * every legal combination of dcache / scache linesize. When I (Ralf) tried
-+ * this the kernel crashed shortly after mounting the root filesystem. CPU
-+ * bug? Weirdo cache instruction semantics?
-+ */
-+void r4k_clear_page_s16(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "cache\t%3,16(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "cache\t%3,-32(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "cache\t%3,-16(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-+ : "memory");
-+}
-+
-+void r4k_clear_page_s32(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "cache\t%3,-32(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-+ : "memory");
-+}
-+
-+void r4k_clear_page_s64(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-+ : "memory");
-+}
-+
-+void r4k_clear_page_s128(void * page)
-+{
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%2\n"
-+ "1:\tcache\t%3,(%0)\n\t"
-+ "sd\t$0,(%0)\n\t"
-+ "sd\t$0,8(%0)\n\t"
-+ "sd\t$0,16(%0)\n\t"
-+ "sd\t$0,24(%0)\n\t"
-+ "sd\t$0,32(%0)\n\t"
-+ "sd\t$0,40(%0)\n\t"
-+ "sd\t$0,48(%0)\n\t"
-+ "sd\t$0,56(%0)\n\t"
-+ "daddiu\t%0,128\n\t"
-+ "sd\t$0,-64(%0)\n\t"
-+ "sd\t$0,-56(%0)\n\t"
-+ "sd\t$0,-48(%0)\n\t"
-+ "sd\t$0,-40(%0)\n\t"
-+ "sd\t$0,-32(%0)\n\t"
-+ "sd\t$0,-24(%0)\n\t"
-+ "sd\t$0,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ "sd\t$0,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ : "=r" (page)
-+ : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-+ : "memory");
-+}
-+
-+
-+/*
-+ * This is still inefficient. We only can do better if we know the
-+ * virtual address where the copy will be accessed.
-+ */
-+
-+void r4k_copy_page_d16(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "cache\t%7,16(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "cache\t%7,32(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "cache\t%7,-16(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_D));
-+}
-+
-+void r4k_copy_page_d32(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "cache\t%7,32(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_D));
-+}
-+
-+/*
-+ * Again a special version for the R4600 V1.x
-+ */
-+void r4k_copy_page_r4600_v1(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tnop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "cache\t%7,32(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_D));
-+}
-+
-+void r4k_copy_page_r4600_v2(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+ unsigned int flags;
-+
-+ local_irq_save(flags);
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tnop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "nop\n\t"
-+ "cache\t%7,32(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_D));
-+ local_irq_restore(flags);
-+}
-+
-+/*
-+ * These are for R4000SC / R4400MC
-+ */
-+void r4k_copy_page_s16(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "cache\t%7,16(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "cache\t%7,32(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "cache\t%7,-16(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_SD));
-+}
-+
-+void r4k_copy_page_s32(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "cache\t%7,32(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_SD));
-+}
-+
-+void r4k_copy_page_s64(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2, reg1, reg2;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%6\n"
-+ "1:\tcache\t%7,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "ld\t%2,16(%1)\n\t"
-+ "ld\t%3,24(%1)\n\t"
-+ "sd\t%2,16(%0)\n\t"
-+ "sd\t%3,24(%0)\n\t"
-+ "daddiu\t%0,64\n\t"
-+ "daddiu\t%1,64\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "ld\t%2,-16(%1)\n\t"
-+ "ld\t%3,-8(%1)\n\t"
-+ "sd\t%2,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%3,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-+ :"0" (to), "1" (from), "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_SD));
-+}
-+
-+void r4k_copy_page_s128(void * to, void * from)
-+{
-+ unsigned long dummy1, dummy2;
-+ unsigned long reg1, reg2, reg3, reg4;
-+
-+ __asm__ __volatile__(
-+ ".set\tnoreorder\n\t"
-+ ".set\tnoat\n\t"
-+ "daddiu\t$1,%0,%8\n"
-+ "1:\tcache\t%9,(%0)\n\t"
-+ "ld\t%2,(%1)\n\t"
-+ "ld\t%3,8(%1)\n\t"
-+ "ld\t%4,16(%1)\n\t"
-+ "ld\t%5,24(%1)\n\t"
-+ "sd\t%2,(%0)\n\t"
-+ "sd\t%3,8(%0)\n\t"
-+ "sd\t%4,16(%0)\n\t"
-+ "sd\t%5,24(%0)\n\t"
-+ "ld\t%2,32(%1)\n\t"
-+ "ld\t%3,40(%1)\n\t"
-+ "ld\t%4,48(%1)\n\t"
-+ "ld\t%5,56(%1)\n\t"
-+ "sd\t%2,32(%0)\n\t"
-+ "sd\t%3,40(%0)\n\t"
-+ "sd\t%4,48(%0)\n\t"
-+ "sd\t%5,56(%0)\n\t"
-+ "daddiu\t%0,128\n\t"
-+ "daddiu\t%1,128\n\t"
-+ "ld\t%2,-64(%1)\n\t"
-+ "ld\t%3,-56(%1)\n\t"
-+ "ld\t%4,-48(%1)\n\t"
-+ "ld\t%5,-40(%1)\n\t"
-+ "sd\t%2,-64(%0)\n\t"
-+ "sd\t%3,-56(%0)\n\t"
-+ "sd\t%4,-48(%0)\n\t"
-+ "sd\t%5,-40(%0)\n\t"
-+ "ld\t%2,-32(%1)\n\t"
-+ "ld\t%3,-24(%1)\n\t"
-+ "ld\t%4,-16(%1)\n\t"
-+ "ld\t%5,-8(%1)\n\t"
-+ "sd\t%2,-32(%0)\n\t"
-+ "sd\t%3,-24(%0)\n\t"
-+ "sd\t%4,-16(%0)\n\t"
-+ "bne\t$1,%0,1b\n\t"
-+ " sd\t%5,-8(%0)\n\t"
-+ ".set\tat\n\t"
-+ ".set\treorder"
-+ :"=r" (dummy1), "=r" (dummy2),
-+ "=&r" (reg1), "=&r" (reg2), "=&r" (reg3), "=&r" (reg4)
-+ :"0" (to), "1" (from),
-+ "I" (PAGE_SIZE),
-+ "i" (Create_Dirty_Excl_SD));
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/pg-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-sb1.c
---- linux-2.4.20/arch/mips64/mm/pg-sb1.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/pg-sb1.c 2003-01-07 17:51:51.000000000 -0600
-@@ -49,15 +49,19 @@
- ".set noat \n"
- ".set mips4 \n"
- " daddiu $1, %0, %2 \n" /* Calculate the end of the page to clear */
-+#ifdef CONFIG_CPU_HAS_PREFETCH
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 0(%0) \n" /* Prefetch the first 4 lines */
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 32(%0) \n"
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 64(%0) \n"
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 96(%0) \n"
-+#endif
- "1: sd $0, 0(%0) \n" /* Throw out a cacheline of 0's */
- " sd $0, 8(%0) \n"
- " sd $0, 16(%0) \n"
- " sd $0, 24(%0) \n"
-+#ifdef CONFIG_CPU_HAS_PREFETCH
- " pref " SB1_PREF_STORE_STREAMED_HINT ",128(%0) \n" /* Prefetch 4 lines ahead */
-+#endif
- " bne $1, %0, 1b \n"
- " daddiu %0, %0, 32\n" /* Next cacheline (This instruction better be short piped!) */
- ".set pop \n"
-@@ -87,12 +91,14 @@
- ".set noat \n"
- ".set mips4 \n"
- " daddiu $1, %0, %4 \n" /* Calculate the end of the page to copy */
-+#ifdef CONFIG_CPU_HAS_PREFETCH
- " pref " SB1_PREF_LOAD_STREAMED_HINT ", 0(%0) \n" /* Prefetch the first 3 lines */
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 0(%1) \n"
- " pref " SB1_PREF_LOAD_STREAMED_HINT ", 32(%0) \n"
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 32(%1) \n"
- " pref " SB1_PREF_LOAD_STREAMED_HINT ", 64(%0) \n"
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 64(%1) \n"
-+#endif
- "1: lw $2, 0(%0) \n" /* Block copy a cacheline */
- " lw $3, 4(%0) \n"
- " lw $4, 8(%0) \n"
-@@ -101,8 +107,10 @@
- " lw $7, 20(%0) \n"
- " lw $8, 24(%0) \n"
- " lw $9, 28(%0) \n"
-+#ifdef CONFIG_CPU_HAS_PREFETCH
- " pref " SB1_PREF_LOAD_STREAMED_HINT ", 96(%0) \n" /* Prefetch ahead */
- " pref " SB1_PREF_STORE_STREAMED_HINT ", 96(%1) \n"
-+#endif
- " sw $2, 0(%1) \n"
- " sw $3, 4(%1) \n"
- " sw $4, 8(%1) \n"
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/r4xx0.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r4xx0.c
---- linux-2.4.20/arch/mips64/mm/r4xx0.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r4xx0.c 1969-12-31 18:00:00.000000000 -0600
-@@ -1,2313 +0,0 @@
--/*
-- * This file is subject to the terms and conditions of the GNU General Public
-- * License. See the file "COPYING" in the main directory of this archive
-- * for more details.
-- *
-- * r4xx0.c: R4000 processor variant specific MMU/Cache routines.
-- *
-- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-- * Copyright (C) 1997, 1998, 1999, 2000, 2001 Ralf Baechle (ralf@gnu.org)
-- * Copyright (C) 1999, 2000 Silicon Graphics, Inc.
-- */
--#include <linux/config.h>
--#include <linux/init.h>
--#include <linux/kernel.h>
--#include <linux/sched.h>
--#include <linux/mm.h>
--
--#include <asm/bcache.h>
--#include <asm/io.h>
--#include <asm/page.h>
--#include <asm/pgtable.h>
--#include <asm/system.h>
--#include <asm/bootinfo.h>
--#include <asm/mmu_context.h>
--#include <asm/cpu.h>
--
--/* CP0 hazard avoidance. */
--#define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
-- "nop; nop; nop; nop; nop; nop;\n\t" \
-- ".set reorder\n\t")
--
--/* Primary cache parameters. */
--static int icache_size, dcache_size; /* Size in bytes */
--static int ic_lsize, dc_lsize; /* LineSize in bytes */
--
--/* Secondary cache (if present) parameters. */
--static unsigned int scache_size, sc_lsize; /* Again, in bytes */
--
--#include <asm/r4kcacheops.h>
--#include <asm/r4kcache.h>
--
--#undef DEBUG_CACHE
--
--
--/*
-- * Dummy cache handling routines for machines without boardcaches
-- */
--static void no_sc_noop(void) {}
--
--static struct bcache_ops no_sc_ops = {
-- (void *)no_sc_noop, (void *)no_sc_noop,
-- (void *)no_sc_noop, (void *)no_sc_noop
--};
--
--struct bcache_ops *bcops = &no_sc_ops;
--
--/*
-- * On processors with QED R4600 style two set assosicative cache
-- * this is the bit which selects the way in the cache for the
-- * indexed cachops.
-- */
--#define icache_waybit (icache_size >> 1)
--#define dcache_waybit (dcache_size >> 1)
--
--/*
-- * Zero an entire page. Basically a simple unrolled loop should do the
-- * job but we want more performance by saving memory bus bandwidth. We
-- * have five flavours of the routine available for:
-- *
-- * - 16byte cachelines and no second level cache
-- * - 32byte cachelines second level cache
-- * - a version which handles the buggy R4600 v1.x
-- * - a version which handles the buggy R4600 v2.0
-- * - Finally a last version without fancy cache games for the SC and MC
-- * versions of R4000 and R4400.
-- */
--
--static void r4k_clear_page_d16(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "cache\t%3,16(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "cache\t%3,-32(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "cache\t%3,-16(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-- : "memory");
--}
--
--static void r4k_clear_page_d32(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "cache\t%3,-32(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-- : "memory");
--}
--
--
--/*
-- * This flavour of r4k_clear_page is for the R4600 V1.x. Cite from the
-- * IDT R4600 V1.7 errata:
-- *
-- * 18. The CACHE instructions Hit_Writeback_Invalidate_D, Hit_Writeback_D,
-- * Hit_Invalidate_D and Create_Dirty_Excl_D should only be
-- * executed if there is no other dcache activity. If the dcache is
-- * accessed for another instruction immeidately preceding when these
-- * cache instructions are executing, it is possible that the dcache
-- * tag match outputs used by these cache instructions will be
-- * incorrect. These cache instructions should be preceded by at least
-- * four instructions that are not any kind of load or store
-- * instruction.
-- *
-- * This is not allowed: lw
-- * nop
-- * nop
-- * nop
-- * cache Hit_Writeback_Invalidate_D
-- *
-- * This is allowed: lw
-- * nop
-- * nop
-- * nop
-- * nop
-- * cache Hit_Writeback_Invalidate_D
-- */
--static void r4k_clear_page_r4600_v1(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tnop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "cache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "cache\t%3,-32(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-- : "memory");
--}
--
--/*
-- * And this one is for the R4600 V2.0
-- */
--static void r4k_clear_page_r4600_v2(void * page)
--{
-- unsigned int flags;
--
-- __save_and_cli(flags);
-- *(volatile unsigned int *)KSEG1;
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "cache\t%3,-32(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_D)
-- : "memory");
-- __restore_flags(flags);
--}
--
--/*
-- * The next 4 versions are optimized for all possible scache configurations
-- * of the SC / MC versions of R4000 and R4400 ...
-- *
-- * Todo: For even better performance we should have a routine optimized for
-- * every legal combination of dcache / scache linesize. When I (Ralf) tried
-- * this the kernel crashed shortly after mounting the root filesystem. CPU
-- * bug? Weirdo cache instruction semantics?
-- */
--static void r4k_clear_page_s16(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "cache\t%3,16(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "cache\t%3,-32(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "cache\t%3,-16(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-- : "memory");
--}
--
--static void r4k_clear_page_s32(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "cache\t%3,-32(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-- : "memory");
--}
--
--static void r4k_clear_page_s64(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-- : "memory");
--}
--
--static void r4k_clear_page_s128(void * page)
--{
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%2\n"
-- "1:\tcache\t%3,(%0)\n\t"
-- "sd\t$0,(%0)\n\t"
-- "sd\t$0,8(%0)\n\t"
-- "sd\t$0,16(%0)\n\t"
-- "sd\t$0,24(%0)\n\t"
-- "sd\t$0,32(%0)\n\t"
-- "sd\t$0,40(%0)\n\t"
-- "sd\t$0,48(%0)\n\t"
-- "sd\t$0,56(%0)\n\t"
-- "daddiu\t%0,128\n\t"
-- "sd\t$0,-64(%0)\n\t"
-- "sd\t$0,-56(%0)\n\t"
-- "sd\t$0,-48(%0)\n\t"
-- "sd\t$0,-40(%0)\n\t"
-- "sd\t$0,-32(%0)\n\t"
-- "sd\t$0,-24(%0)\n\t"
-- "sd\t$0,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- "sd\t$0,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- : "=r" (page)
-- : "0" (page), "I" (PAGE_SIZE), "i" (Create_Dirty_Excl_SD)
-- : "memory");
--}
--
--
--/*
-- * This is still inefficient. We only can do better if we know the
-- * virtual address where the copy will be accessed.
-- */
--
--static void r4k_copy_page_d16(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "cache\t%7,16(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "cache\t%7,32(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "cache\t%7,-16(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_D));
--}
--
--static void r4k_copy_page_d32(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "cache\t%7,32(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_D));
--}
--
--/*
-- * Again a special version for the R4600 V1.x
-- */
--static void r4k_copy_page_r4600_v1(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tnop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "cache\t%7,32(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_D));
--}
--
--static void r4k_copy_page_r4600_v2(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
-- unsigned int flags;
--
-- __save_and_cli(flags);
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tnop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "nop\n\t"
-- "cache\t%7,32(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_D));
-- __restore_flags(flags);
--}
--
--/*
-- * These are for R4000SC / R4400MC
-- */
--static void r4k_copy_page_s16(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "cache\t%7,16(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "cache\t%7,32(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "cache\t%7,-16(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_SD));
--}
--
--static void r4k_copy_page_s32(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "cache\t%7,32(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_SD));
--}
--
--static void r4k_copy_page_s64(void * to, void * from)
--{
-- unsigned long dummy1, dummy2, reg1, reg2;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%6\n"
-- "1:\tcache\t%7,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "ld\t%2,16(%1)\n\t"
-- "ld\t%3,24(%1)\n\t"
-- "sd\t%2,16(%0)\n\t"
-- "sd\t%3,24(%0)\n\t"
-- "daddiu\t%0,64\n\t"
-- "daddiu\t%1,64\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "ld\t%2,-16(%1)\n\t"
-- "ld\t%3,-8(%1)\n\t"
-- "sd\t%2,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%3,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2), "=&r" (reg1), "=&r" (reg2)
-- :"0" (to), "1" (from), "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_SD));
--}
--
--static void r4k_copy_page_s128(void * to, void * from)
--{
-- unsigned long dummy1, dummy2;
-- unsigned long reg1, reg2, reg3, reg4;
--
-- __asm__ __volatile__(
-- ".set\tnoreorder\n\t"
-- ".set\tnoat\n\t"
-- "daddiu\t$1,%0,%8\n"
-- "1:\tcache\t%9,(%0)\n\t"
-- "ld\t%2,(%1)\n\t"
-- "ld\t%3,8(%1)\n\t"
-- "ld\t%4,16(%1)\n\t"
-- "ld\t%5,24(%1)\n\t"
-- "sd\t%2,(%0)\n\t"
-- "sd\t%3,8(%0)\n\t"
-- "sd\t%4,16(%0)\n\t"
-- "sd\t%5,24(%0)\n\t"
-- "ld\t%2,32(%1)\n\t"
-- "ld\t%3,40(%1)\n\t"
-- "ld\t%4,48(%1)\n\t"
-- "ld\t%5,56(%1)\n\t"
-- "sd\t%2,32(%0)\n\t"
-- "sd\t%3,40(%0)\n\t"
-- "sd\t%4,48(%0)\n\t"
-- "sd\t%5,56(%0)\n\t"
-- "daddiu\t%0,128\n\t"
-- "daddiu\t%1,128\n\t"
-- "ld\t%2,-64(%1)\n\t"
-- "ld\t%3,-56(%1)\n\t"
-- "ld\t%4,-48(%1)\n\t"
-- "ld\t%5,-40(%1)\n\t"
-- "sd\t%2,-64(%0)\n\t"
-- "sd\t%3,-56(%0)\n\t"
-- "sd\t%4,-48(%0)\n\t"
-- "sd\t%5,-40(%0)\n\t"
-- "ld\t%2,-32(%1)\n\t"
-- "ld\t%3,-24(%1)\n\t"
-- "ld\t%4,-16(%1)\n\t"
-- "ld\t%5,-8(%1)\n\t"
-- "sd\t%2,-32(%0)\n\t"
-- "sd\t%3,-24(%0)\n\t"
-- "sd\t%4,-16(%0)\n\t"
-- "bne\t$1,%0,1b\n\t"
-- " sd\t%5,-8(%0)\n\t"
-- ".set\tat\n\t"
-- ".set\treorder"
-- :"=r" (dummy1), "=r" (dummy2),
-- "=&r" (reg1), "=&r" (reg2), "=&r" (reg3), "=&r" (reg4)
-- :"0" (to), "1" (from),
-- "I" (PAGE_SIZE),
-- "i" (Create_Dirty_Excl_SD));
--}
--
--
--/*
-- * If you think for one second that this stuff coming up is a lot
-- * of bulky code eating too many kernel cache lines. Think _again_.
-- *
-- * Consider:
-- * 1) Taken branches have a 3 cycle penalty on R4k
-- * 2) The branch itself is a real dead cycle on even R4600/R5000.
-- * 3) Only one of the following variants of each type is even used by
-- * the kernel based upon the cache parameters we detect at boot time.
-- *
-- * QED.
-- */
--
--static inline void r4k_flush_cache_all_s16d16i16(void)
--{
-- blast_dcache16(); blast_icache16(); blast_scache16();
--}
--
--static inline void r4k_flush_cache_all_s32d16i16(void)
--{
-- blast_dcache16(); blast_icache16(); blast_scache32();
--}
--
--static inline void r4k_flush_cache_all_s64d16i16(void)
--{
-- blast_dcache16(); blast_icache16(); blast_scache64();
--}
--
--static inline void r4k_flush_cache_all_s128d16i16(void)
--{
-- blast_dcache16(); blast_icache16(); blast_scache128();
--}
--
--static inline void r4k_flush_cache_all_s32d32i32(void)
--{
-- blast_dcache32(); blast_icache32(); blast_scache32();
--}
--
--static inline void r4k_flush_cache_all_s64d32i32(void)
--{
-- blast_dcache32(); blast_icache32(); blast_scache64();
--}
--
--static inline void r4k_flush_cache_all_s128d32i32(void)
--{
-- blast_dcache32(); blast_icache32(); blast_scache128();
--}
--
--static inline void r4k_flush_cache_all_d16i16(void)
--{
-- blast_dcache16(); blast_icache16();
--}
--
--static inline void r4k_flush_cache_all_d32i32(void)
--{
-- blast_dcache32(); blast_icache32();
--}
--
--static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s16d16i16();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache16_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_s32d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s32d16i16();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache32_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_s64d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s64d16i16();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache64_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_s128d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s128d16i16();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache128_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_s32d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s32d32i32();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache32_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_s64d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s64d32i32();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache64_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_s128d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- struct vm_area_struct *vma;
--
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0)
-- return;
--
-- start &= PAGE_MASK;
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- vma = find_vma(mm, start);
-- if(vma) {
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- r4k_flush_cache_all_s128d32i32();
-- } else {
-- pgd_t *pgd;
-- pmd_t *pmd;
-- pte_t *pte;
--
-- while(start < end) {
-- pgd = pgd_offset(mm, start);
-- pmd = pmd_offset(pgd, start);
-- pte = pte_offset(pmd, start);
--
-- if(pte_val(*pte) & _PAGE_VALID)
-- blast_scache128_page(start);
-- start += PAGE_SIZE;
-- }
-- }
-- }
--}
--
--static void r4k_flush_cache_range_d16i16(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- blast_dcache16(); blast_icache16();
-- }
--}
--
--static void r4k_flush_cache_range_d32i32(struct mm_struct *mm,
-- unsigned long start,
-- unsigned long end)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end);
--#endif
-- blast_dcache32(); blast_icache32();
-- }
--}
--
--/*
-- * On architectures like the Sparc, we could get rid of lines in
-- * the cache created only by a certain context, but on the MIPS
-- * (and actually certain Sparc's) we cannot.
-- */
--static void r4k_flush_cache_mm_s16d16i16(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s16d16i16();
-- }
--}
--
--static void r4k_flush_cache_mm_s32d16i16(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s32d16i16();
-- }
--}
--
--static void r4k_flush_cache_mm_s64d16i16(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s64d16i16();
-- }
--}
--
--static void r4k_flush_cache_mm_s128d16i16(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s128d16i16();
-- }
--}
--
--static void r4k_flush_cache_mm_s32d32i32(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s32d32i32();
-- }
--}
--
--static void r4k_flush_cache_mm_s64d32i32(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s64d32i32();
-- }
--}
--
--static void r4k_flush_cache_mm_s128d32i32(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_s128d32i32();
-- }
--}
--
--static void r4k_flush_cache_mm_d16i16(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_d16i16();
-- }
--}
--
--static void r4k_flush_cache_mm_d32i32(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
--#ifdef DEBUG_CACHE
-- printk("cmm[%d]", (int)mm->context);
--#endif
-- r4k_flush_cache_all_d32i32();
-- }
--}
--
--static void r4k_flush_cache_page_s16d16i16(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /*
-- * If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /* Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /* Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache16_page_indexed(page);
-- blast_scache16_page_indexed(page);
-- } else
-- blast_scache16_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /* If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /* Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /* Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache16_page_indexed(page);
-- blast_scache32_page_indexed(page);
-- } else
-- blast_scache32_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /* If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /* Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache16_page_indexed(page);
-- blast_scache64_page_indexed(page);
-- } else
-- blast_scache64_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /*
-- * If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /* Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /*
-- * Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache16_page_indexed(page);
-- blast_scache128_page_indexed(page);
-- } else
-- blast_scache128_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /*
-- * If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /*
-- * Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache32_page_indexed(page);
-- blast_scache32_page_indexed(page);
-- } else
-- blast_scache32_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /*
-- * If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /*
-- * Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache32_page_indexed(page);
-- blast_scache64_page_indexed(page);
-- } else
-- blast_scache64_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /* If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) !=
-- CPU_CONTEXT(smp_processor_id(), current->mm)) {
-- /* Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (scache_size - 1)));
-- blast_dcache32_page_indexed(page);
-- blast_scache128_page_indexed(page);
-- } else
-- blast_scache128_page(page);
--out:
--}
--
--static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /* If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_VALID))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if(mm == current->mm) {
-- blast_dcache16_page(page);
-- } else {
-- /* Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (dcache_size - 1)));
-- blast_dcache16_page_indexed(page);
-- }
--out:
--}
--
--static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /*
-- * If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if((mm == current->mm) && (pte_val(*ptep) & _PAGE_VALID)) {
-- blast_dcache32_page(page);
-- } else {
-- /*
-- * Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (dcache_size - 1)));
-- blast_dcache32_page_indexed(page);
-- }
--out:
--}
--
--static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma,
-- unsigned long page)
--{
-- struct mm_struct *mm = vma->vm_mm;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
--
-- /*
-- * If ownes no valid ASID yet, cannot possibly have gotten
-- * this page into the cache.
-- */
-- if (CPU_CONTEXT(smp_processor_id(), mm) == 0)
-- return;
--
--#ifdef DEBUG_CACHE
-- printk("cpage[%d,%08lx]", (int)mm->context, page);
--#endif
-- page &= PAGE_MASK;
-- pgdp = pgd_offset(mm, page);
-- pmdp = pmd_offset(pgdp, page);
-- ptep = pte_offset(pmdp, page);
--
-- /*
-- * If the page isn't marked valid, the page cannot possibly be
-- * in the cache.
-- */
-- if(!(pte_val(*ptep) & _PAGE_PRESENT))
-- goto out;
--
-- /*
-- * Doing flushes for another ASID than the current one is
-- * too difficult since stupid R4k caches do a TLB translation
-- * for every cache flush operation. So we do indexed flushes
-- * in that case, which doesn't overly flush the cache too much.
-- */
-- if((mm == current->mm) && (pte_val(*ptep) & _PAGE_VALID)) {
-- blast_dcache32_page(page);
-- } else {
-- /* Do indexed flush, too much work to get the (possible)
-- * tlb refills to work correctly.
-- */
-- page = (KSEG0 + (page & (dcache_size - 1)));
-- blast_dcache32_page_indexed(page);
-- blast_dcache32_page_indexed(page ^ dcache_waybit);
-- }
--out:
--}
--
--static void r4k_flush_page_to_ram_s16(struct page *page)
--{
-- blast_scache16_page((unsigned long)page_address(page));
--}
--
--static void r4k_flush_page_to_ram_s32(struct page *page)
--{
-- blast_scache32_page((unsigned long)page_address(page));
--}
--
--static void r4k_flush_page_to_ram_s64(struct page *page)
--{
-- blast_scache64_page((unsigned long)page_address(page));
--}
--
--static void r4k_flush_page_to_ram_s128(struct page *page)
--{
-- blast_scache128_page((unsigned long)page_address(page));
--}
--
--static void r4k_flush_page_to_ram_d16(struct page *page)
--{
-- blast_dcache16_page((unsigned long)page_address(page));
--}
--
--static void r4k_flush_page_to_ram_d32(struct page *page)
--{
-- blast_dcache32_page((unsigned long)page_address(page));
--}
--
--static void
--r4k_flush_icache_range(unsigned long start, unsigned long end)
--{
-- flush_cache_all();
--}
--
--static void
--r4k_flush_icache_page_s(struct vm_area_struct *vma, struct page *page)
--{
-- /*
-- * We did an scache flush therefore PI is already clean.
-- */
--}
--
--/*
-- * Ok, this seriously sucks. We use them to flush a user page but don't
-- * know the virtual address, so we have to blast away the whole icache
-- * which is significantly more expensive than the real thing.
-- */
--static void
--r4k_flush_icache_page_p(struct vm_area_struct *vma, struct page *page)
--{
-- if (!(vma->vm_flags & VM_EXEC))
-- return;
--
-- flush_cache_all();
--}
--
--/*
-- * Writeback and invalidate the primary cache dcache before DMA.
-- *
-- * R4600 v2.0 bug: "The CACHE instructions Hit_Writeback_Inv_D,
-- * Hit_Writeback_D, Hit_Invalidate_D and Create_Dirty_Exclusive_D will only
-- * operate correctly if the internal data cache refill buffer is empty. These
-- * CACHE instructions should be separated from any potential data cache miss
-- * by a load instruction to an uncached address to empty the response buffer."
-- * (Revision 2.0 device errata from IDT available on http://www.idt.com/
-- * in .pdf format.)
-- */
--static void r4k_dma_cache_wback_inv_pc(unsigned long addr, unsigned long size)
--{
-- unsigned long end, a;
-- unsigned int flags;
--
-- if (size >= (unsigned long)dcache_size) {
-- flush_cache_l1();
-- } else {
-- /* Workaround for R4600 bug. See comment above. */
-- __save_and_cli(flags);
-- *(volatile unsigned long *)KSEG1;
--
-- a = addr & ~((unsigned long)dc_lsize - 1);
-- end = (addr + size) & ~((unsigned long)dc_lsize - 1);
-- while (1) {
-- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-- if (a == end) break;
-- a += dc_lsize;
-- }
-- __restore_flags(flags);
-- }
-- bc_wback_inv(addr, size);
--}
--
--static void r4k_dma_cache_wback_inv_sc(unsigned long addr, unsigned long size)
--{
-- unsigned long end, a;
--
-- if (size >= (unsigned long)scache_size) {
-- flush_cache_l1();
-- return;
-- }
--
-- a = addr & ~((unsigned long)sc_lsize - 1);
-- end = (addr + size) & ~((unsigned long)sc_lsize - 1);
-- while (1) {
-- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-- if (a == end) break;
-- a += sc_lsize;
-- }
--}
--
--static void r4k_dma_cache_inv_pc(unsigned long addr, unsigned long size)
--{
-- unsigned long end, a;
-- unsigned int flags;
--
-- if (size >= (unsigned long)dcache_size) {
-- flush_cache_l1();
-- } else {
-- /* Workaround for R4600 bug. See comment above. */
-- __save_and_cli(flags);
-- *(volatile unsigned long *)KSEG1;
--
-- a = addr & ~((unsigned long)dc_lsize - 1);
-- end = (addr + size) & ~((unsigned long)dc_lsize - 1);
-- while (1) {
-- flush_dcache_line(a); /* Hit_Writeback_Inv_D */
-- if (a == end) break;
-- a += dc_lsize;
-- }
-- __restore_flags(flags);
-- }
--
-- bc_inv(addr, size);
--}
--
--static void r4k_dma_cache_inv_sc(unsigned long addr, unsigned long size)
--{
-- unsigned long end, a;
--
-- if (size >= (unsigned long)scache_size) {
-- flush_cache_l1();
-- return;
-- }
--
-- a = addr & ~((unsigned long)sc_lsize - 1);
-- end = (addr + size) & ~((unsigned long)sc_lsize - 1);
-- while (1) {
-- flush_scache_line(a); /* Hit_Writeback_Inv_SD */
-- if (a == end) break;
-- a += sc_lsize;
-- }
--}
--
--/*
-- * While we're protected against bad userland addresses we don't care
-- * very much about what happens in that case. Usually a segmentation
-- * fault will dump the process later on anyway ...
-- */
--static void r4k_flush_cache_sigtramp(unsigned long addr)
--{
-- __asm__ __volatile__("nop;nop;nop;nop"); /* R4600 V1.7 */
--
-- protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-- protected_flush_icache_line(addr & ~(ic_lsize - 1));
--}
--
--static void r4600v20k_flush_cache_sigtramp(unsigned long addr)
--{
-- unsigned int flags;
--
-- __save_and_cli(flags);
--
-- /* Clear internal cache refill buffer */
-- *(volatile unsigned int *)KSEG1;
--
-- protected_writeback_dcache_line(addr & ~(dc_lsize - 1));
-- protected_flush_icache_line(addr & ~(ic_lsize - 1));
--
-- __restore_flags(flags);
--}
--
--#undef DEBUG_TLB
--
--#define NTLB_ENTRIES 48 /* Fixed on all R4XX0 variants... */
--
--#define NTLB_ENTRIES_HALF 24 /* Fixed on all R4XX0 variants... */
--
--void local_flush_tlb_all(void)
--{
-- unsigned long flags;
-- unsigned long old_ctx;
-- int entry;
--
--#ifdef DEBUG_TLB
-- printk("[tlball]");
--#endif
--
-- __save_and_cli(flags);
-- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- set_entryhi(KSEG0);
-- set_entrylo0(0);
-- set_entrylo1(0);
-- BARRIER;
--
-- entry = get_wired();
--
-- /* Blast 'em all away. */
-- while(entry < NTLB_ENTRIES) {
-- set_index(entry);
-- BARRIER;
-- tlb_write_indexed();
-- BARRIER;
-- entry++;
-- }
-- BARRIER;
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
--}
--
--void local_flush_tlb_mm(struct mm_struct *mm)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-- unsigned long flags;
--
--#ifdef DEBUG_TLB
-- printk("[tlbmm<%d>]", mm->context);
--#endif
-- __save_and_cli(flags);
-- get_new_mmu_context(mm, smp_processor_id());
-- if(mm == current->mm)
-- set_entryhi(CPU_CONTEXT(smp_processor_id(), mm) & 0xff);
-- __restore_flags(flags);
-- }
--}
--
--void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-- unsigned long end)
--{
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-- unsigned long flags;
-- int size;
--
--#ifdef DEBUG_TLB
-- printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff),
-- start, end);
--#endif
-- __save_and_cli(flags);
-- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-- size = (size + 1) >> 1;
-- if(size <= NTLB_ENTRIES_HALF) {
-- int oldpid = (get_entryhi() & 0xff);
-- int newpid = (CPU_CONTEXT(smp_processor_id(), mm) & 0xff);
--
-- start &= (PAGE_MASK << 1);
-- end += ((PAGE_SIZE << 1) - 1);
-- end &= (PAGE_MASK << 1);
-- while(start < end) {
-- int idx;
--
-- set_entryhi(start | newpid);
-- start += (PAGE_SIZE << 1);
-- BARRIER;
-- tlb_probe();
-- BARRIER;
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- set_entryhi(KSEG0);
-- BARRIER;
-- if(idx < 0)
-- continue;
-- tlb_write_indexed();
-- BARRIER;
-- }
-- set_entryhi(oldpid);
-- } else {
-- get_new_mmu_context(mm, smp_processor_id());
-- if(mm == current->mm)
-- set_entryhi(CPU_CONTEXT(smp_processor_id(),
-- mm) & 0xff);
-- }
-- __restore_flags(flags);
-- }
--}
--
--void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
--{
-- if (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) != 0) {
-- unsigned long flags;
-- int oldpid, newpid, idx;
--
--#ifdef DEBUG_TLB
-- printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
--#endif
-- newpid = (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff);
-- page &= (PAGE_MASK << 1);
-- __save_and_cli(flags);
-- oldpid = (get_entryhi() & 0xff);
-- set_entryhi(page | newpid);
-- BARRIER;
-- tlb_probe();
-- BARRIER;
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- set_entryhi(KSEG0);
-- if(idx < 0)
-- goto finish;
-- BARRIER;
-- tlb_write_indexed();
--
-- finish:
-- BARRIER;
-- set_entryhi(oldpid);
-- __restore_flags(flags);
-- }
--}
--
--static void r4k_flush_cache_l2(void)
--{
--}
--
--/* We will need multiple versions of update_mmu_cache(), one that just
-- * updates the TLB with the new pte(s), and another which also checks
-- * for the R4k "end of page" hardware bug and does the needy.
-- */
--static void r4k_update_mmu_cache(struct vm_area_struct * vma,
-- unsigned long address, pte_t pte)
--{
-- unsigned long flags;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
-- int idx, pid;
--
-- /*
-- * Handle debugger faulting in for debugee.
-- */
-- if (current->active_mm != vma->vm_mm)
-- return;
--
-- __save_and_cli(flags);
-- pid = (get_entryhi() & 0xff);
--
--#ifdef DEBUG_TLB
-- if((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff)) ||
-- (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) {
-- printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d
-- tlbpid=%d\n", (int) (CPU_CONTEXT(smp_processor_id(),
-- vma->vm_mm) & 0xff), pid);
-- }
--#endif
--
-- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (pid));
-- pgdp = pgd_offset(vma->vm_mm, address);
-- BARRIER;
-- tlb_probe();
-- BARRIER;
-- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-- ptep = pte_offset(pmdp, address);
-- BARRIER;
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- set_entryhi(address | (pid));
-- BARRIER;
-- if(idx < 0) {
-- tlb_write_random();
-- } else {
-- tlb_write_indexed();
-- }
-- BARRIER;
-- set_entryhi(pid);
-- BARRIER;
-- __restore_flags(flags);
--}
--
--#if 0
--static void r4k_update_mmu_cache_hwbug(struct vm_area_struct * vma,
-- unsigned long address, pte_t pte)
--{
-- unsigned long flags;
-- pgd_t *pgdp;
-- pmd_t *pmdp;
-- pte_t *ptep;
-- int idx;
--
-- __save_and_cli(flags);
-- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (get_entryhi() & 0xff));
-- pgdp = pgd_offset(vma->vm_mm, address);
-- tlb_probe();
-- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-- ptep = pte_offset(pmdp, address);
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- BARRIER;
-- if(idx < 0)
-- tlb_write_random();
-- else
-- tlb_write_indexed();
-- BARRIER;
-- __restore_flags(flags);
--}
--#endif
--
--/* Detect and size the various r4k caches. */
--static void __init probe_icache(unsigned long config)
--{
-- icache_size = 1 << (12 + ((config >> 9) & 7));
-- ic_lsize = 16 << ((config >> 5) & 1);
--
-- printk("Primary instruction cache %dkb, linesize %d bytes)\n",
-- icache_size >> 10, ic_lsize);
--}
--
--static void __init probe_dcache(unsigned long config)
--{
-- dcache_size = 1 << (12 + ((config >> 6) & 7));
-- dc_lsize = 16 << ((config >> 4) & 1);
--
-- printk("Primary data cache %dkb, linesize %d bytes)\n",
-- dcache_size >> 10, dc_lsize);
--}
--
--
--/* If you even _breathe_ on this function, look at the gcc output
-- * and make sure it does not pop things on and off the stack for
-- * the cache sizing loop that executes in KSEG1 space or else
-- * you will crash and burn badly. You have been warned.
-- */
--static int __init probe_scache(unsigned long config)
--{
-- extern unsigned long stext;
-- unsigned long flags, addr, begin, end, pow2;
-- int tmp;
--
-- tmp = ((config >> 17) & 1);
-- if(tmp)
-- return 0;
-- tmp = ((config >> 22) & 3);
-- switch(tmp) {
-- case 0:
-- sc_lsize = 16;
-- break;
-- case 1:
-- sc_lsize = 32;
-- break;
-- case 2:
-- sc_lsize = 64;
-- break;
-- case 3:
-- sc_lsize = 128;
-- break;
-- }
--
-- begin = (unsigned long) &stext;
-- begin &= ~((4 * 1024 * 1024) - 1);
-- end = begin + (4 * 1024 * 1024);
--
-- /* This is such a bitch, you'd think they would make it
-- * easy to do this. Away you daemons of stupidity!
-- */
-- __save_and_cli(flags);
--
-- /* Fill each size-multiple cache line with a valid tag. */
-- pow2 = (64 * 1024);
-- for(addr = begin; addr < end; addr = (begin + pow2)) {
-- unsigned long *p = (unsigned long *) addr;
-- __asm__ __volatile__("nop" : : "r" (*p)); /* whee... */
-- pow2 <<= 1;
-- }
--
-- /* Load first line with zero (therefore invalid) tag. */
-- set_taglo(0);
-- set_taghi(0);
-- __asm__ __volatile__("nop; nop; nop; nop;"); /* avoid the hazard */
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- "cache 8, (%0)\n\t"
-- ".set reorder\n\t" : : "r" (begin));
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- "cache 9, (%0)\n\t"
-- ".set reorder\n\t" : : "r" (begin));
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- "cache 11, (%0)\n\t"
-- ".set reorder\n\t" : : "r" (begin));
--
-- /* Now search for the wrap around point. */
-- pow2 = (128 * 1024);
-- tmp = 0;
-- for(addr = (begin + (128 * 1024)); addr < (end); addr = (begin + pow2)) {
-- __asm__ __volatile__("\n\t.set noreorder\n\t"
-- "cache 7, (%0)\n\t"
-- ".set reorder\n\t" : : "r" (addr));
-- __asm__ __volatile__("nop; nop; nop; nop;"); /* hazard... */
-- if(!get_taglo())
-- break;
-- pow2 <<= 1;
-- }
-- __restore_flags(flags);
-- addr -= begin;
-- printk("Secondary cache sized at %dK linesize %d\n",
-- (int) (addr >> 10), sc_lsize);
-- scache_size = addr;
-- return 1;
--}
--
--static void __init setup_noscache_funcs(void)
--{
-- unsigned int prid;
--
-- switch(dc_lsize) {
-- case 16:
-- _clear_page = r4k_clear_page_d16;
-- _copy_page = r4k_copy_page_d16;
-- _flush_cache_all = r4k_flush_cache_all_d16i16;
-- _flush_cache_l1 = r4k_flush_cache_all_d16i16;
-- _flush_cache_mm = r4k_flush_cache_mm_d16i16;
-- _flush_cache_range = r4k_flush_cache_range_d16i16;
-- _flush_cache_page = r4k_flush_cache_page_d16i16;
-- break;
-- case 32:
-- prid = read_32bit_cp0_register(CP0_PRID) & 0xfff0;
-- if (prid == 0x2010) { /* R4600 V1.7 */
-- _clear_page = r4k_clear_page_r4600_v1;
-- _copy_page = r4k_copy_page_r4600_v1;
-- } else if (prid == 0x2020) { /* R4600 V2.0 */
-- _clear_page = r4k_clear_page_r4600_v2;
-- _copy_page = r4k_copy_page_r4600_v2;
-- } else {
-- _clear_page = r4k_clear_page_d32;
-- _copy_page = r4k_copy_page_d32;
-- }
-- _flush_cache_all = r4k_flush_cache_all_d32i32;
-- _flush_cache_l1 = r4k_flush_cache_all_d32i32;
-- _flush_cache_mm = r4k_flush_cache_mm_d32i32;
-- _flush_cache_range = r4k_flush_cache_range_d32i32;
-- _flush_cache_page = r4k_flush_cache_page_d32i32;
-- break;
-- }
--
-- switch(ic_lsize) {
-- case 16:
-- _flush_page_to_ram = r4k_flush_page_to_ram_d16;
-- break;
-- case 32:
-- _flush_page_to_ram = r4k_flush_page_to_ram_d32;
-- break;
-- }
-- _flush_icache_page = r4k_flush_icache_page_p;
-- _dma_cache_wback_inv = r4k_dma_cache_wback_inv_pc;
-- _dma_cache_wback = r4k_dma_cache_wback_inv_pc;
-- _dma_cache_inv = r4k_dma_cache_inv_pc;
--}
--
--static void __init setup_scache_funcs(void)
--{
-- switch(sc_lsize) {
-- case 16:
-- switch(dc_lsize) {
-- case 16:
-- _flush_cache_all = r4k_flush_cache_all_s16d16i16;
-- _flush_cache_l1 = r4k_flush_cache_all_s16d16i16;
-- _flush_cache_mm = r4k_flush_cache_mm_s16d16i16;
-- _flush_cache_range = r4k_flush_cache_range_s16d16i16;
-- _flush_cache_page = r4k_flush_cache_page_s16d16i16;
-- break;
-- case 32:
-- panic("Invalid cache configuration detected");
-- };
-- _flush_page_to_ram = r4k_flush_page_to_ram_s16;
-- _clear_page = r4k_clear_page_s16;
-- _copy_page = r4k_copy_page_s16;
-- break;
-- case 32:
-- switch(dc_lsize) {
-- case 16:
-- _flush_cache_all = r4k_flush_cache_all_s32d16i16;
-- _flush_cache_l1 = r4k_flush_cache_all_s32d16i16;
-- _flush_cache_mm = r4k_flush_cache_mm_s32d16i16;
-- _flush_cache_range = r4k_flush_cache_range_s32d16i16;
-- _flush_cache_page = r4k_flush_cache_page_s32d16i16;
-- break;
-- case 32:
-- _flush_cache_all = r4k_flush_cache_all_s32d32i32;
-- _flush_cache_l1 = r4k_flush_cache_all_s32d32i32;
-- _flush_cache_mm = r4k_flush_cache_mm_s32d32i32;
-- _flush_cache_range = r4k_flush_cache_range_s32d32i32;
-- _flush_cache_page = r4k_flush_cache_page_s32d32i32;
-- break;
-- };
-- _flush_page_to_ram = r4k_flush_page_to_ram_s32;
-- _clear_page = r4k_clear_page_s32;
-- _copy_page = r4k_copy_page_s32;
-- break;
-- case 64:
-- switch(dc_lsize) {
-- case 16:
-- _flush_cache_all = r4k_flush_cache_all_s64d16i16;
-- _flush_cache_l1 = r4k_flush_cache_all_s64d16i16;
-- _flush_cache_mm = r4k_flush_cache_mm_s64d16i16;
-- _flush_cache_range = r4k_flush_cache_range_s64d16i16;
-- _flush_cache_page = r4k_flush_cache_page_s64d16i16;
-- break;
-- case 32:
-- _flush_cache_all = r4k_flush_cache_all_s64d32i32;
-- _flush_cache_l1 = r4k_flush_cache_all_s64d32i32;
-- _flush_cache_mm = r4k_flush_cache_mm_s64d32i32;
-- _flush_cache_range = r4k_flush_cache_range_s64d32i32;
-- _flush_cache_page = r4k_flush_cache_page_s64d32i32;
-- break;
-- };
-- _flush_page_to_ram = r4k_flush_page_to_ram_s64;
-- _clear_page = r4k_clear_page_s64;
-- _copy_page = r4k_copy_page_s64;
-- break;
-- case 128:
-- switch(dc_lsize) {
-- case 16:
-- _flush_cache_all = r4k_flush_cache_all_s128d16i16;
-- _flush_cache_l1 = r4k_flush_cache_all_s128d16i16;
-- _flush_cache_mm = r4k_flush_cache_mm_s128d16i16;
-- _flush_cache_range = r4k_flush_cache_range_s128d16i16;
-- _flush_cache_page = r4k_flush_cache_page_s128d16i16;
-- break;
-- case 32:
-- _flush_cache_all = r4k_flush_cache_all_s128d32i32;
-- _flush_cache_l1 = r4k_flush_cache_all_s128d32i32;
-- _flush_cache_mm = r4k_flush_cache_mm_s128d32i32;
-- _flush_cache_range = r4k_flush_cache_range_s128d32i32;
-- _flush_cache_page = r4k_flush_cache_page_s128d32i32;
-- break;
-- };
-- _flush_page_to_ram = r4k_flush_page_to_ram_s128;
-- _clear_page = r4k_clear_page_s128;
-- _copy_page = r4k_copy_page_s128;
-- break;
-- }
-- _flush_icache_page = r4k_flush_icache_page_s;
-- _dma_cache_wback_inv = r4k_dma_cache_wback_inv_sc;
-- _dma_cache_wback = r4k_dma_cache_wback_inv_sc;
-- _dma_cache_inv = r4k_dma_cache_inv_sc;
--}
--
--typedef int (*probe_func_t)(unsigned long);
--extern int r5k_sc_init(void);
--
--static inline void __init setup_scache(unsigned int config)
--{
-- probe_func_t probe_scache_kseg1;
-- int sc_present = 0;
--
-- /* Maybe the cpu knows about a l2 cache? */
-- probe_scache_kseg1 = (probe_func_t) (KSEG1ADDR(&probe_scache));
-- sc_present = probe_scache_kseg1(config);
--
-- if (!sc_present) {
-- setup_noscache_funcs();
-- return;
-- }
--
-- switch(mips_cpu.cputype) {
-- case CPU_R5000:
-- case CPU_NEVADA:
-- setup_noscache_funcs();
--#if defined(CONFIG_CPU_R5000) || defined(CONFIG_CPU_NEVADA)
-- r5k_sc_init();
--#endif
-- break;
-- default:
-- setup_scache_funcs();
-- }
--
--}
--
--void __init ld_mmu_r4xx0(void)
--{
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
--
-- change_cp0_config(CONF_CM_CMASK | CONF_CU, CONF_CM_DEFAULT);
--
-- probe_icache(config);
-- probe_dcache(config);
-- setup_scache(config);
--
-- switch(mips_cpu.cputype) {
-- case CPU_R4600: /* QED style two way caches? */
-- case CPU_R4700:
-- case CPU_R5000:
-- case CPU_NEVADA:
-- _flush_cache_page = r4k_flush_cache_page_d32i32_r4600;
-- }
--
-- _flush_cache_sigtramp = r4k_flush_cache_sigtramp;
-- if ((read_32bit_cp0_register(CP0_PRID) & 0xfff0) == 0x2020) {
-- _flush_cache_sigtramp = r4600v20k_flush_cache_sigtramp;
-- }
-- _flush_icache_range = r4k_flush_icache_range; /* Ouch */
--
-- _flush_cache_l2 = r4k_flush_cache_l2;
--
-- _update_mmu_cache = r4k_update_mmu_cache;
--
-- flush_cache_l1();
--
-- /*
-- * You should never change this register:
-- * - On R4600 1.7 the tlbp never hits for pages smaller than
-- * the value in the c0_pagemask register.
-- * - The entire mm handling assumes the c0_pagemask register to
-- * be set for 4kb pages.
-- */
-- write_32bit_cp0_register(CP0_PAGEMASK, PM_4K);
-- local_flush_tlb_all();
--}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/r5k-sc.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r5k-sc.c
---- linux-2.4.20/arch/mips64/mm/r5k-sc.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/r5k-sc.c 2003-01-24 06:58:30.000000000 -0600
-@@ -9,11 +9,11 @@
-
- #include <asm/mipsregs.h>
- #include <asm/bcache.h>
-+#include <asm/cacheops.h>
- #include <asm/page.h>
- #include <asm/pgtable.h>
- #include <asm/system.h>
- #include <asm/mmu_context.h>
--#include <asm/r4kcacheops.h>
-
- /* Secondary cache size in bytes, if present. */
- static unsigned long scache_size;
-@@ -68,25 +68,25 @@
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-- change_cp0_config(CONF_SE, CONF_SE);
-+ local_irq_save(flags);
-+ change_c0_config(CONF_SE, CONF_SE);
- blast_r5000_scache();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- static void r5k_sc_disable(void)
- {
- unsigned long flags;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- blast_r5000_scache();
-- change_cp0_config(CONF_SE, 0);
-- __restore_flags(flags);
-+ change_c0_config(CONF_SE, 0);
-+ local_irq_restore(flags);
- }
-
- static inline int __init r5k_sc_probe(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-
- if(config & CONF_SC)
- return(0);
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-andes.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-andes.c
---- linux-2.4.20/arch/mips64/mm/tlb-andes.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-andes.c 2003-02-12 17:50:16.000000000 -0600
-@@ -0,0 +1,209 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1997, 1998, 1999 Ralf Baechle (ralf@gnu.org)
-+ * Copyright (C) 1999 Silicon Graphics, Inc.
-+ * Copyright (C) 2000 Kanoj Sarcar (kanoj@sgi.com)
-+ */
-+#include <linux/init.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/mm.h>
-+#include <asm/page.h>
-+#include <asm/pgtable.h>
-+#include <asm/r10kcache.h>
-+#include <asm/system.h>
-+#include <asm/mmu_context.h>
-+
-+extern void except_vec1_r10k(void);
-+
-+#define NTLB_ENTRIES 64
-+#define NTLB_ENTRIES_HALF 32
-+
-+void local_flush_tlb_all(void)
-+{
-+ unsigned long flags;
-+ unsigned long old_ctx;
-+ unsigned long entry;
-+
-+#ifdef DEBUG_TLB
-+ printk("[tlball]");
-+#endif
-+
-+ local_irq_save(flags);
-+ /* Save old context and create impossible VPN2 value */
-+ old_ctx = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entryhi(CKSEG0);
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
-+
-+ entry = read_c0_wired();
-+
-+ /* Blast 'em all away. */
-+ while (entry < NTLB_ENTRIES) {
-+ write_c0_index(entry);
-+ tlb_write_indexed();
-+ entry++;
-+ }
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
-+}
-+
-+void local_flush_tlb_mm(struct mm_struct *mm)
-+{
-+ int cpu = smp_processor_id();
-+ if (cpu_context(cpu, mm) != 0) {
-+#ifdef DEBUG_TLB
-+ printk("[tlbmm<%d>]", mm->context);
-+#endif
-+ drop_mmu_context(mm,cpu);
-+ }
-+}
-+
-+void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
-+ unsigned long end)
-+{
-+ int cpu = smp_processor_id();
-+ if (cpu_context(cpu, mm) != 0) {
-+ unsigned long flags;
-+ int size;
-+
-+#ifdef DEBUG_TLB
-+ printk("[tlbrange<%02x,%08lx,%08lx>]",
-+ (mm->context & ASID_MASK), start, end);
-+#endif
-+ local_irq_save(flags);
-+ size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-+ size = (size + 1) >> 1;
-+ if (size <= NTLB_ENTRIES_HALF) {
-+ int oldpid = (read_c0_entryhi() & ASID_MASK);
-+ int newpid = (cpu_context(smp_processor_id(), mm)
-+ & ASID_MASK);
-+
-+ start &= (PAGE_MASK << 1);
-+ end += ((PAGE_SIZE << 1) - 1);
-+ end &= (PAGE_MASK << 1);
-+ while(start < end) {
-+ int idx;
-+
-+ write_c0_entryhi(start | newpid);
-+ start += (PAGE_SIZE << 1);
-+ tlb_probe();
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
-+ write_c0_entryhi(KSEG0);
-+ if(idx < 0)
-+ continue;
-+ tlb_write_indexed();
-+ }
-+ write_c0_entryhi(oldpid);
-+ } else {
-+ drop_mmu_context(mm, cpu);
-+ }
-+ local_irq_restore(flags);
-+ }
-+}
-+
-+void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-+{
-+ if (cpu_context(smp_processor_id(), vma->vm_mm) != 0) {
-+ unsigned long flags;
-+ int oldpid, newpid, idx;
-+
-+#ifdef DEBUG_TLB
-+ printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
-+#endif
-+ newpid = (cpu_context(smp_processor_id(), vma->vm_mm) &
-+ ASID_MASK);
-+ page &= (PAGE_MASK << 1);
-+ local_irq_save(flags);
-+ oldpid = (read_c0_entryhi() & ASID_MASK);
-+ write_c0_entryhi(page | newpid);
-+ tlb_probe();
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
-+ write_c0_entryhi(KSEG0);
-+ if (idx < 0)
-+ goto finish;
-+ tlb_write_indexed();
-+
-+ finish:
-+ write_c0_entryhi(oldpid);
-+ local_irq_restore(flags);
-+ }
-+}
-+
-+/* XXX Simplify this. On the R10000 writing a TLB entry for an virtual
-+ address that already exists will overwrite the old entry and not result
-+ in TLB malfunction or TLB shutdown. */
-+static void andes_update_mmu_cache(struct vm_area_struct * vma,
-+ unsigned long address, pte_t pte)
-+{
-+ unsigned int cpu = smp_processor_id();
-+ unsigned long flags;
-+ pgd_t *pgdp;
-+ pmd_t *pmdp;
-+ pte_t *ptep;
-+ int idx, pid;
-+
-+ /*
-+ * Handle debugger faulting in for debugee.
-+ */
-+ if (current->active_mm != vma->vm_mm)
-+ return;
-+
-+ pid = read_c0_entryhi() & ASID_MASK;
-+
-+ if ((pid != cpu_asid(cpu, vma->vm_mm))
-+ || (cpu_context(cpu, vma->vm_mm) == 0)) {
-+ printk(KERN_WARNING
-+ "%s: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-+ __FUNCTION__, (int) cpu_asid(cpu, vma->vm_mm), pid);
-+ }
-+
-+ local_irq_save(flags);
-+ address &= (PAGE_MASK << 1);
-+ write_c0_entryhi(address | (pid));
-+ pgdp = pgd_offset(vma->vm_mm, address);
-+ tlb_probe();
-+ pmdp = pmd_offset(pgdp, address);
-+ idx = read_c0_index();
-+ ptep = pte_offset(pmdp, address);
-+ write_c0_entrylo0(pte_val(*ptep++) >> 6);
-+ write_c0_entrylo1(pte_val(*ptep) >> 6);
-+ write_c0_entryhi(address | (pid));
-+ if (idx < 0) {
-+ tlb_write_random();
-+ } else {
-+ tlb_write_indexed();
-+ }
-+ write_c0_entryhi(pid);
-+ local_irq_restore(flags);
-+}
-+
-+void __init andes_tlb_init(void)
-+{
-+ _update_mmu_cache = andes_update_mmu_cache;
-+
-+ /*
-+ * You should never change this register:
-+ * - On R4600 1.7 the tlbp never hits for pages smaller than
-+ * the value in the c0_pagemask register.
-+ * - The entire mm handling assumes the c0_pagemask register to
-+ * be set for 4kb pages.
-+ */
-+ write_c0_pagemask(PM_4K);
-+ write_c0_wired(0);
-+ write_c0_framemask(0);
-+
-+ /* From this point on the ARC firmware is dead. */
-+ local_flush_tlb_all();
-+
-+ /* Did I tell you that ARC SUCKS? */
-+
-+ memcpy((void *)KSEG1 + 0x080, except_vec1_r10k, 0x80);
-+}
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-dbg-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-dbg-r4k.c
---- linux-2.4.20/arch/mips64/mm/tlb-dbg-r4k.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-dbg-r4k.c 2002-12-01 18:24:53.000000000 -0600
-@@ -39,8 +39,8 @@
- pmd = pmd_offset(pgd, addr);
- pte = pte_offset(pmd, addr);
-
-- set_entrylo0(pte_val(pte[0]) >> 6);
-- set_entrylo1(pte_val(pte[1]) >> 6);
-+ write_c0_entrylo0(pte_val(pte[0]) >> 6);
-+ write_c0_entrylo1(pte_val(pte[1]) >> 6);
- __asm__ __volatile__("nop;nop;nop");
-
- tlb_write_random();
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlbex-r4k.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlbex-r4k.S
---- linux-2.4.20/arch/mips64/mm/tlbex-r4k.S 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlbex-r4k.S 2003-02-06 19:06:34.000000000 -0600
-@@ -96,16 +96,16 @@
- __INIT
-
- .align 5
--LEAF(except_vec0)
-+LEAF(except_vec0_generic)
- .set noat
- PANIC("Unused vector called")
- 1: b 1b
- nop
--END(except_vec0)
-+END(except_vec0_generic)
-
-
- /*
-- * TLB refill handler for the R4000.
-+ * TLB refill handlers for the R4000 and SB1.
- * Attention: We may only use 32 instructions / 128 bytes.
- */
- .align 5
-@@ -116,6 +116,23 @@
- nop
- END(except_vec1_r4k)
-
-+LEAF(except_vec1_sb1)
-+#ifdef BCM1250_M3_WAR
-+ dmfc0 k0, CP0_BADVADDR
-+ dmfc0 k1, CP0_ENTRYHI
-+ xor k0, k1
-+ dsrl k0, k0, PAGE_SHIFT+1
-+ bnez k0, 1f
-+#endif
-+ .set noat
-+ dla k0, handle_vec1_r4k
-+ jr k0
-+ nop
-+
-+1: eret
-+ nop
-+END(except_vec1_sb1)
-+
- __FINIT
-
- .align 5
-@@ -141,6 +158,7 @@
- eret
- END(handle_vec1_r4k)
-
-+
- __INIT
-
- /*
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-glue-r4k.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-r4k.S
---- linux-2.4.20/arch/mips64/mm/tlb-glue-r4k.S 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-r4k.S 2002-09-21 06:55:38.000000000 -0500
-@@ -19,6 +19,10 @@
- STI
- .endm
-
-+ .macro __BUILD_kmode
-+ KMODE
-+ .endm
-+
- .macro tlb_handler name interruptible writebit
- NESTED(__\name, PT_SIZE, sp)
- SAVE_ALL
-@@ -32,6 +36,6 @@
- END(__\name)
- .endm
-
-- tlb_handler xtlb_mod sti 1
-- tlb_handler xtlb_tlbl sti 0
-- tlb_handler xtlb_tlbs sti 1
-+ tlb_handler xtlb_mod kmode 1
-+ tlb_handler xtlb_tlbl kmode 0
-+ tlb_handler xtlb_tlbs kmode 1
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-glue-sb1.S linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-sb1.S
---- linux-2.4.20/arch/mips64/mm/tlb-glue-sb1.S 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-glue-sb1.S 2003-02-19 14:53:05.000000000 -0600
-@@ -0,0 +1,66 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1999 Ralf Baechle
-+ * Copyright (C) 1999 Silicon Graphics, Inc.
-+ */
-+#include <linux/init.h>
-+#include <asm/mipsregs.h>
-+#include <asm/page.h>
-+#include <asm/regdef.h>
-+#include <asm/stackframe.h>
-+#include <asm/war.h>
-+
-+ .macro __BUILD_cli
-+ CLI
-+ .endm
-+
-+ .macro __BUILD_sti
-+ STI
-+ .endm
-+
-+ .macro __BUILD_kmode
-+ KMODE
-+ .endm
-+
-+ .macro tlb_handler name interruptible writebit
-+ NESTED(__\name, PT_SIZE, sp)
-+ SAVE_ALL
-+ dmfc0 a2, CP0_BADVADDR
-+ __BUILD_\interruptible
-+ li a1, \writebit
-+ sd a2, PT_BVADDR(sp)
-+ move a0, sp
-+ jal do_page_fault
-+ j ret_from_exception
-+ END(__\name)
-+ .endm
-+
-+ .macro tlb_handler_m3 name interruptible writebit
-+ NESTED(__\name, PT_SIZE, sp)
-+ dmfc0 k0, CP0_BADVADDR
-+ dmfc0 k1, CP0_ENTRYHI
-+ xor k0, k1
-+ dsrl k0, k0, PAGE_SHIFT + 1
-+ bnez k0, 1f
-+ SAVE_ALL
-+ dmfc0 a2, CP0_BADVADDR
-+ __BUILD_\interruptible
-+ li a1, \writebit
-+ sd a2, PT_BVADDR(sp)
-+ move a0, sp
-+ jal do_page_fault
-+1:
-+ j ret_from_exception
-+ END(__\name)
-+ .endm
-+
-+ tlb_handler xtlb_mod kmode 1
-+#ifdef BCM1250_M3_WAR
-+ tlb_handler_m3 xtlb_tlbl kmode 0
-+#else
-+ tlb_handler xtlb_tlbl kmode 0
-+#endif
-+ tlb_handler xtlb_tlbs kmode 1
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-r4k.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-r4k.c
---- linux-2.4.20/arch/mips64/mm/tlb-r4k.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-r4k.c 2003-02-06 16:53:43.000000000 -0600
-@@ -33,7 +33,7 @@
- #undef DEBUG_TLB
- #undef DEBUG_TLBUPDATE
-
--extern char except_vec1_r4k;
-+extern void except_vec1_r4k(void);
-
- /* CP0 hazard avoidance. */
- #define BARRIER __asm__ __volatile__(".set noreorder\n\t" \
-@@ -50,66 +50,62 @@
- printk("[tlball]");
- #endif
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- set_entryhi(KSEG0);
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ old_ctx = (read_c0_entryhi() & ASID_MASK);
-+ write_c0_entryhi(XKPHYS);
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- BARRIER;
-
-- entry = get_wired();
-+ entry = read_c0_wired();
-
- /* Blast 'em all away. */
- while(entry < mips_cpu.tlbsize) {
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0+entry*0x2000);
-- set_index(entry);
-+ write_c0_entryhi(XKPHYS+entry*0x2000);
-+ write_c0_index(entry);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
- entry++;
- }
- BARRIER;
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_mm(struct mm_struct *mm)
- {
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-- unsigned long flags;
-+ int cpu = smp_processor_id();
-
-+ if (cpu_context(cpu, mm) != 0) {
- #ifdef DEBUG_TLB
- printk("[tlbmm<%d>]", mm->context);
- #endif
-- __save_and_cli(flags);
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm)
-- set_entryhi(CPU_CONTEXT(smp_processor_id(), mm) &
-- 0xff);
-- __restore_flags(flags);
-+ drop_mmu_context(mm,cpu);
- }
- }
-
- void local_flush_tlb_range(struct mm_struct *mm, unsigned long start,
- unsigned long end)
- {
-- if (CPU_CONTEXT(smp_processor_id(), mm) != 0) {
-+ int cpu = smp_processor_id();
-+
-+ if (cpu_context(cpu, mm) != 0) {
- unsigned long flags;
- int size;
-
- #ifdef DEBUG_TLB
-- printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & 0xff),
-+ printk("[tlbrange<%02x,%08lx,%08lx>]", (mm->context & ASID_MASK),
- start, end);
- #endif
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
- size = (size + 1) >> 1;
- if(size <= mips_cpu.tlbsize/2) {
-- int oldpid = (get_entryhi() & 0xff);
-- int newpid = (CPU_CONTEXT(smp_processor_id(), mm) &
-- 0xff);
-+ int oldpid = read_c0_entryhi() & ASID_MASK;
-+ int newpid = cpu_asid(cpu, mm);
-
- start &= (PAGE_MASK << 1);
- end += ((PAGE_SIZE << 1) - 1);
-@@ -117,63 +113,62 @@
- while(start < end) {
- int idx;
-
-- set_entryhi(start | newpid);
-+ write_c0_entryhi(start | newpid);
- start += (PAGE_SIZE << 1);
- BARRIER;
- tlb_probe();
- BARRIER;
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- if(idx < 0)
- continue;
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0+idx*0x2000);
-+ write_c0_entryhi(XKPHYS+idx*0x2000);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
- }
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- } else {
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm)
-- set_entryhi(CPU_CONTEXT(smp_processor_id(),
-- mm) & 0xff);
-+ drop_mmu_context(mm, cpu);
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
- }
-
- void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
- {
-- if (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) != 0) {
-+ int cpu = smp_processor_id();
-+
-+ if (cpu_context(cpu, vma->vm_mm) != 0) {
- unsigned long flags;
- unsigned long oldpid, newpid, idx;
-
- #ifdef DEBUG_TLB
- printk("[tlbpage<%d,%08lx>]", vma->vm_mm->context, page);
- #endif
-- newpid = (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff);
-+ newpid = cpu_asid(cpu, vma->vm_mm);
- page &= (PAGE_MASK << 1);
-- __save_and_cli(flags);
-- oldpid = (get_entryhi() & 0xff);
-- set_entryhi(page | newpid);
-+ local_irq_save(flags);
-+ oldpid = (read_c0_entryhi() & ASID_MASK);
-+ write_c0_entryhi(page | newpid);
- BARRIER;
- tlb_probe();
- BARRIER;
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- if(idx < 0)
- goto finish;
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0+idx*0x2000);
-+ write_c0_entryhi(XKPHYS+idx*0x2000);
- BARRIER;
- tlb_write_indexed();
- finish:
- BARRIER;
-- set_entryhi(oldpid);
-- __restore_flags(flags);
-+ write_c0_entryhi(oldpid);
-+ local_irq_restore(flags);
- }
- }
-
-@@ -195,31 +190,31 @@
- if (current->active_mm != vma->vm_mm)
- return;
-
-- pid = get_entryhi() & 0xff;
-+ pid = read_c0_entryhi() & ASID_MASK;
-
- #ifdef DEBUG_TLB
-- if((pid != (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) & 0xff)) ||
-- (CPU_CONTEXT(smp_processor_id(), vma->vm_mm) == 0)) {
-+ if ((pid != (cpu_asid(smp_processor_id(), vma->vm_mm))) ||
-+ (cpu_context(smp_processor_id(), vma->vm_mm) == 0)) {
- printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d
-- tlbpid=%d\n", (int) (CPU_CONTEXT(smp_processor_id(),
-- vma->vm_mm) & 0xff), pid);
-+ tlbpid=%d\n", (int) (cpu_context(smp_processor_id(),
-+ vma->vm_mm) & ASID_MASK), pid);
- }
- #endif
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (pid));
-+ write_c0_entryhi(address | (pid));
- pgdp = pgd_offset(vma->vm_mm, address);
- BARRIER;
- tlb_probe();
- BARRIER;
- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-+ idx = read_c0_index();
- ptep = pte_offset(pmdp, address);
- BARRIER;
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- set_entryhi(address | (pid));
-+ write_c0_entrylo0(pte_val(*ptep++) >> 6);
-+ write_c0_entrylo1(pte_val(*ptep) >> 6);
-+ write_c0_entryhi(address | (pid));
- BARRIER;
- if(idx < 0) {
- tlb_write_random();
-@@ -227,70 +222,9 @@
- tlb_write_indexed();
- }
- BARRIER;
-- set_entryhi(pid);
-- BARRIER;
-- __restore_flags(flags);
--}
--
--void dump_mm_page(unsigned long addr)
--{
-- pgd_t *page_dir, *pgd;
-- pmd_t *pmd;
-- pte_t *pte, page;
-- unsigned long val;
--
-- page_dir = pgd_offset(current->mm, 0);
-- pgd = pgd_offset(current->mm, addr);
-- pmd = pmd_offset(pgd, addr);
-- pte = pte_offset(pmd, addr);
-- page = *pte;
-- printk("Memory Mapping: VA = %08x, PA = %08x ", addr, (unsigned int) pte_val(page));
-- val = pte_val(page);
-- if (val & _PAGE_PRESENT) printk("present ");
-- if (val & _PAGE_READ) printk("read ");
-- if (val & _PAGE_WRITE) printk("write ");
-- if (val & _PAGE_ACCESSED) printk("accessed ");
-- if (val & _PAGE_MODIFIED) printk("modified ");
-- if (val & _PAGE_R4KBUG) printk("r4kbug ");
-- if (val & _PAGE_GLOBAL) printk("global ");
-- if (val & _PAGE_VALID) printk("valid ");
-- printk("\n");
--}
--
--void show_tlb(void)
--{
-- unsigned int flags;
-- unsigned int old_ctx;
-- unsigned int entry;
-- unsigned int entrylo0, entrylo1, entryhi;
--
-- __save_and_cli(flags);
--
-- /* Save old context */
-- old_ctx = (get_entryhi() & 0xff);
--
-- printk("TLB content:\n");
-- entry = 0;
-- while(entry < mips_cpu.tlbsize) {
-- set_index(entry);
-- BARRIER;
-- tlb_read();
-- BARRIER;
-- entryhi = get_entryhi();
-- entrylo0 = get_entrylo0();
-- entrylo1 = get_entrylo1();
-- printk("%02d: ASID=%02d%s VA=0x%08x ", entry, entryhi & ASID_MASK, (entrylo0 & entrylo1 & 1) ? "(G)" : " ", entryhi & ~ASID_MASK);
-- printk("PA0=0x%08x C0=%x %s%s%s\n", (entrylo0>>6)<<12, (entrylo0>>3) & 7, (entrylo0 & 4) ? "Dirty " : "", (entrylo0 & 2) ? "Valid " : "Invalid ", (entrylo0 & 1) ? "Global" : "");
-- printk("\t\t\t PA1=0x%08x C1=%x %s%s%s\n", (entrylo1>>6)<<12, (entrylo1>>3) & 7, (entrylo1 & 4) ? "Dirty " : "", (entrylo1 & 2) ? "Valid " : "Invalid ", (entrylo1 & 1) ? "Global" : "");
--
-- dump_mm_page(entryhi & ~0xff);
-- dump_mm_page((entryhi & ~0xff) | 0x1000);
-- entry++;
-- }
-+ write_c0_entryhi(pid);
- BARRIER;
-- set_entryhi(old_ctx);
--
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- void add_wired_entry(unsigned long entrylo0, unsigned long entrylo1,
-@@ -301,27 +235,27 @@
- unsigned long old_pagemask;
- unsigned long old_ctx;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- old_pagemask = get_pagemask();
-- wired = get_wired();
-- set_wired (wired + 1);
-- set_index (wired);
-+ old_ctx = (read_c0_entryhi() & ASID_MASK);
-+ old_pagemask = read_c0_pagemask();
-+ wired = read_c0_wired();
-+ write_c0_wired(wired + 1);
-+ write_c0_index(wired);
- BARRIER;
-- set_pagemask (pagemask);
-- set_entryhi(entryhi);
-- set_entrylo0(entrylo0);
-- set_entrylo1(entrylo1);
-+ write_c0_pagemask(pagemask);
-+ write_c0_entryhi(entryhi);
-+ write_c0_entrylo0(entrylo0);
-+ write_c0_entrylo1(entrylo1);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
-
-- set_entryhi(old_ctx);
-+ write_c0_entryhi(old_ctx);
- BARRIER;
-- set_pagemask (old_pagemask);
-+ write_c0_pagemask(old_pagemask);
- local_flush_tlb_all();
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -341,32 +275,32 @@
- unsigned long old_pagemask;
- unsigned long old_ctx;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = get_entryhi() & 0xff;
-- old_pagemask = get_pagemask();
-- wired = get_wired();
-+ old_ctx = read_c0_entryhi() & ASID_MASK;
-+ old_pagemask = read_c0_pagemask();
-+ wired = read_c0_wired();
- if (--temp_tlb_entry < wired) {
- printk(KERN_WARNING "No TLB space left for add_temporary_entry\n");
- ret = -ENOSPC;
- goto out;
- }
-
-- set_index(temp_tlb_entry);
-+ write_c0_index(temp_tlb_entry);
- BARRIER;
-- set_pagemask(pagemask);
-- set_entryhi(entryhi);
-- set_entrylo0(entrylo0);
-- set_entrylo1(entrylo1);
-+ write_c0_pagemask(pagemask);
-+ write_c0_entryhi(entryhi);
-+ write_c0_entrylo0(entrylo0);
-+ write_c0_entrylo1(entrylo1);
- BARRIER;
- tlb_write_indexed();
- BARRIER;
-
-- set_entryhi(old_ctx);
-+ write_c0_entryhi(old_ctx);
- BARRIER;
-- set_pagemask(old_pagemask);
-+ write_c0_pagemask(old_pagemask);
- out:
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- return ret;
- }
-
-@@ -381,7 +315,7 @@
- */
- mips_cpu.tlbsize = 48;
- } else {
-- config1 = read_mips32_cp0_config1();
-+ config1 = read_c0_config1();
- if (!((config >> 7) & 3))
- panic("No MMU present");
- else
-@@ -393,15 +327,15 @@
-
- void __init r4k_tlb_init(void)
- {
-- unsigned long config = read_32bit_cp0_register(CP0_CONFIG);
-+ unsigned long config = read_c0_config();
-
- probe_tlb(config);
- _update_mmu_cache = mips64_update_mmu_cache;
-- set_pagemask(PM_4K);
-- write_32bit_cp0_register(CP0_WIRED, 0);
-+ write_c0_pagemask(PM_4K);
-+ write_c0_wired(0);
- temp_tlb_entry = mips_cpu.tlbsize - 1;
- local_flush_tlb_all();
-
-- memcpy((void *)(KSEG0 + 0x80), &except_vec1_r4k, 0x80);
-+ memcpy((void *)(KSEG0 + 0x80), except_vec1_r4k, 0x80);
- flush_icache_range(KSEG0, KSEG0 + 0x80);
- }
-diff -urNd -urNd linux-2.4.20/arch/mips64/mm/tlb-sb1.c linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-sb1.c
---- linux-2.4.20/arch/mips64/mm/tlb-sb1.c 2002-11-28 17:53:10.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/mips64/mm/tlb-sb1.c 2003-02-19 14:53:05.000000000 -0600
-@@ -22,6 +22,8 @@
- #include <asm/bootinfo.h>
- #include <asm/cpu.h>
-
-+extern void except_vec1_sb1(void);
-+
- /* Dump the current entry* and pagemask registers */
- static inline void dump_cur_tlb_regs(void)
- {
-@@ -65,18 +67,18 @@
- unsigned long old_ctx;
- unsigned long flags;
- int entry;
-- __save_and_cli(flags);
-- old_ctx = get_entryhi();
-+ local_irq_save(flags);
-+ old_ctx = read_c0_entryhi();
- printk("Current TLB registers state:\n"
- " EntryHi EntryLo0 EntryLo1 PageMask Index\n"
- "--------------------------------------------------------------------\n");
- dump_cur_tlb_regs();
-- printk(" %08X\n", read_32bit_cp0_register(CP0_INDEX));
-+ printk(" %08X\n", read_c0_index());
- printk("\n\nFull TLB Dump:\n"
- "Idx EntryHi EntryLo0 EntryLo1 PageMask\n"
- "--------------------------------------------------------------\n");
- for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-- set_index(entry);
-+ write_c0_index(entry);
- printk("\n%02i ", entry);
- __asm__ __volatile__ (
- ".set push \n"
-@@ -87,8 +89,8 @@
- dump_cur_tlb_regs();
- }
- printk("\n");
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_all(void)
-@@ -97,18 +99,18 @@
- unsigned long old_ctx;
- int entry;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- /* Save old context and create impossible VPN2 value */
-- old_ctx = (get_entryhi() & 0xff);
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ old_ctx = (read_c0_entryhi() & 0xff);
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
-- set_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
-- set_index(entry);
-+ write_c0_entryhi(KSEG0 + (PAGE_SIZE << 1) * entry);
-+ write_c0_index(entry);
- tlb_write_indexed();
- }
-- set_entryhi(old_ctx);
-- __restore_flags(flags);
-+ write_c0_entryhi(old_ctx);
-+ local_irq_restore(flags);
- }
-
-
-@@ -126,15 +128,15 @@
-
- long inc = 1<<24; /* 16MB */
- /* Save old context and create impossible VPN2 value */
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- for (entry = 0; entry < mips_cpu.tlbsize; entry++) {
- do {
- addr += inc;
-- set_entryhi(addr);
-+ write_c0_entryhi(addr);
- tlb_probe();
-- } while ((int)(get_index()) >= 0);
-- set_index(entry);
-+ } while ((int)(read_c0_index()) >= 0);
-+ write_c0_index(entry);
- tlb_write_indexed();
- }
- /* Now that we know we're safe from collisions, we can safely flush
-@@ -149,15 +151,15 @@
- unsigned long flags;
- int cpu;
-
-- __save_and_cli(flags);
-+ local_irq_save(flags);
- cpu = smp_processor_id();
-- if(CPU_CONTEXT(cpu, mm) != 0) {
-+ if (cpu_context(cpu, mm) != 0) {
- int size;
- size = (end - start + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
- size = (size + 1) >> 1;
- if(size <= (mips_cpu.tlbsize/2)) {
-- int oldpid = (get_entryhi() & 0xff);
-- int newpid = (CPU_CONTEXT(cpu, mm) & 0xff);
-+ int oldpid = read_c0_entryhi() & ASID_MASK;
-+ int newpid = cpu_asid(cpu, mm) & ASID_MASK;
-
- start &= (PAGE_MASK << 1);
- end += ((PAGE_SIZE << 1) - 1);
-@@ -165,25 +167,23 @@
- while(start < end) {
- int idx;
-
-- set_entryhi(start | newpid);
-+ write_c0_entryhi(start | newpid);
- start += (PAGE_SIZE << 1);
- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-- set_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
-+ write_c0_entryhi(KSEG0 + (idx << (PAGE_SHIFT+1)));
- if(idx < 0)
- continue;
- tlb_write_indexed();
- }
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- } else {
-- get_new_mmu_context(mm, cpu);
-- if (mm == current->active_mm)
-- set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
-+ drop_mmu_context(mm, cpu);
- }
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- void local_flush_tlb_page(struct vm_area_struct *vma, unsigned long page)
-@@ -192,36 +192,33 @@
-
- #ifdef CONFIG_SMP
- /*
-- * This variable is eliminated from CPU_CONTEXT() if SMP isn't defined,
-+ * This variable is eliminated from cpu_context() if SMP isn't defined,
- * so conditional it to get rid of silly "unused variable" compiler
- * complaints
- */
- int cpu = smp_processor_id();
- #endif
-
-- __save_and_cli(flags);
-- if (CPU_CONTEXT(cpu, vma->vm_mm) != 0) {
-+ local_irq_save(flags);
-+ if (cpu_context(cpu, vma->vm_mm) != 0) {
- int oldpid, newpid, idx;
--#ifdef DEBUG_TLB
-- printk("[tlbpage<%d,%08lx>]", CPU_CONTEXT(cpu, vma->vm_mm), page);
--#endif
-- newpid = (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff);
-+ newpid = cpu_asid(cpu, vma->vm_mm);
- page &= (PAGE_MASK << 1);
-- oldpid = (get_entryhi() & 0xff);
-- set_entryhi (page | newpid);
-+ oldpid = read_c0_entryhi() & ASID_MASK;
-+ write_c0_entryhi(page | newpid);
- tlb_probe();
-- idx = get_index();
-- set_entrylo0(0);
-- set_entrylo1(0);
-+ idx = read_c0_index();
-+ write_c0_entrylo0(0);
-+ write_c0_entrylo1(0);
- if(idx < 0)
- goto finish;
- /* Make sure all entries differ. */
-- set_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
-+ write_c0_entryhi(KSEG0+(idx<<(PAGE_SHIFT+1)));
- tlb_write_indexed();
- finish:
-- set_entryhi(oldpid);
-+ write_c0_entryhi(oldpid);
- }
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
-
-@@ -229,17 +226,10 @@
- these entries, we just bump the asid. */
- void local_flush_tlb_mm(struct mm_struct *mm)
- {
-- unsigned long flags;
-- int cpu;
-- __save_and_cli(flags);
-- cpu = smp_processor_id();
-- if (CPU_CONTEXT(cpu, mm) != 0) {
-- get_new_mmu_context(mm, smp_processor_id());
-- if (mm == current->active_mm) {
-- set_entryhi(CPU_CONTEXT(cpu, mm) & 0xff);
-- }
-+ int cpu = smp_processor_id();
-+ if (cpu_context(cpu, mm) != 0) {
-+ drop_mmu_context(mm, cpu);
- }
-- __restore_flags(flags);
- }
-
- /* Stolen from mips32 routines */
-@@ -259,35 +249,24 @@
- if (current->active_mm != vma->vm_mm)
- return;
-
-- __save_and_cli(flags);
--
--
-- pid = get_entryhi() & 0xff;
--
--#ifdef DEBUG_TLB
-- if((pid != (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff)) || (CPU_CONTEXT(cpu, vma->vm_mm) == 0)) {
-- printk("update_mmu_cache: Wheee, bogus tlbpid mmpid=%d tlbpid=%d\n",
-- (int) (CPU_CONTEXT(cpu, vma->vm_mm) & 0xff), pid);
-- }
--#endif
-+ local_irq_save(flags);
-
-+ pid = read_c0_entryhi() & 0xff;
- address &= (PAGE_MASK << 1);
-- set_entryhi(address | (pid));
-+ write_c0_entryhi(address | (pid));
- pgdp = pgd_offset(vma->vm_mm, address);
- tlb_probe();
- pmdp = pmd_offset(pgdp, address);
-- idx = get_index();
-+ idx = read_c0_index();
- ptep = pte_offset(pmdp, address);
-- set_entrylo0(pte_val(*ptep++) >> 6);
-- set_entrylo1(pte_val(*ptep) >> 6);
-- set_entryhi(address | (pid));
-+ write_c0_entrylo0(pte_val(*ptep++) >> 6);
-+ write_c0_entrylo1(pte_val(*ptep) >> 6);
- if (idx < 0) {
- tlb_write_random();
- } else {
- tlb_write_indexed();
- }
-- set_entryhi(pid);
-- __restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -299,7 +278,8 @@
- {
- u32 config1;
-
-- config1 = read_mips32_cp0_config1();
-+ write_c0_pagemask(PM_4K);
-+ config1 = read_c0_config1();
- mips_cpu.tlbsize = ((config1 >> 25) & 0x3f) + 1;
-
- /*
-@@ -309,4 +289,7 @@
- */
- sb1_sanitize_tlb();
- _update_mmu_cache = sb1_update_mmu_cache;
-+
-+ memcpy((void *)KSEG0 + 0x080, except_vec1_sb1, 0x80);
-+ flush_icache_range(KSEG0, KSEG0 + 0x80);
- }
-diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Entries
---- linux-2.4.20/arch/parisc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Entries 2005-01-06 23:08:18.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/config.in/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/vmlinux64.lds/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+D/hpux////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Repository
---- linux-2.4.20/arch/parisc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Repository 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc
-diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Root
---- linux-2.4.20/arch/parisc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Root 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Tag
---- linux-2.4.20/arch/parisc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/CVS/Tag 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Entries
---- linux-2.4.20/arch/parisc/hpux/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Entries 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1,8 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/entry_hpux.S/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/fs.c/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/gate.S/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/ioctl.c/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/sys_hpux.c/1.2.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+/wrappers.S/1.1.2.1/Wed Sep 11 12:44:29 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Repository
---- linux-2.4.20/arch/parisc/hpux/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Repository 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc/hpux
-diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Root
---- linux-2.4.20/arch/parisc/hpux/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Root 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/hpux/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Tag
---- linux-2.4.20/arch/parisc/hpux/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/hpux/CVS/Tag 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Entries
---- linux-2.4.20/arch/parisc/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Entries 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1,52 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/binfmt_elf32.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/cache.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/ccio-dma.c/1.3.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/ccio-rm-dma.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/drivers.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/firmware.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/hardware.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/head.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/head64.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/hpmc.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/init_task.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/inventory.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/ioctl32.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/iosapic.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/iosapic_private.h/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.2.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/irq_smp.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/keyboard.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/lasimap.map/1.1/Wed Jan 10 05:27:28 2001/-ko/Tlinux_2_4_20
-+/lba_pci.c/1.2.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/led.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/pa7300lc.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/pacache.S/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/parisc_ksyms.c/1.1.2.1/Wed Sep 11 12:44:30 2002/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.3.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/pdc_cons.c/1.2.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/perf.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/perf_asm.S/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/perf_images.h/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/power.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/process.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/processor.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.3.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/real2.S/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/sba_iommu.c/1.3.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.1.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/signal32.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/superio.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/sys32.h/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/sys_parisc.c/1.2.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/sys_parisc32.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/syscall.S/1.1.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.2.2.2/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+/unaligned.c/1.1.2.1/Wed Sep 11 12:44:31 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Repository
---- linux-2.4.20/arch/parisc/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Repository 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc/kernel
-diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Root
---- linux-2.4.20/arch/parisc/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Root 2005-01-06 23:00:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Tag
---- linux-2.4.20/arch/parisc/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/kernel/CVS/Tag 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Entries
---- linux-2.4.20/arch/parisc/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Entries 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/bitops.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/checksum.c/1.1/Wed Jan 10 05:27:28 2001/-ko/Tlinux_2_4_20
-+/io.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/lusercopy.S/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/memset.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Repository
---- linux-2.4.20/arch/parisc/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Repository 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc/lib
-diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Root
---- linux-2.4.20/arch/parisc/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Root 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Tag
---- linux-2.4.20/arch/parisc/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/lib/CVS/Tag 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Entries
---- linux-2.4.20/arch/parisc/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Entries 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1,39 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/README/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/cnv_float.h/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dbl_float.h/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/decode_exc.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/denormal.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfadd.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfcmp.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfdiv.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfmpy.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfrem.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfsqrt.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/dfsub.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/driver.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvff.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvfu.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvfut.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvfx.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvfxt.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvuf.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/fcnvxf.c/1.1.2.1/Wed Sep 11 12:44:32 2002/-ko/Tlinux_2_4_20
-+/float.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/fmpyfadd.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/fpbits.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/fpu.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/fpudispatch.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/frnd.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/hppa.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/math-emu.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfadd.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfcmp.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfdiv.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfmpy.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfrem.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfsqrt.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sfsub.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/sgl_float.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/types.h/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Repository
---- linux-2.4.20/arch/parisc/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Repository 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc/math-emu
-diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Root
---- linux-2.4.20/arch/parisc/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Root 2005-01-06 23:00:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Tag
---- linux-2.4.20/arch/parisc/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/math-emu/CVS/Tag 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Entries
---- linux-2.4.20/arch/parisc/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Entries 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/extable.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.2.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Repository
---- linux-2.4.20/arch/parisc/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Repository 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc/mm
-diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Root
---- linux-2.4.20/arch/parisc/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Root 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Tag
---- linux-2.4.20/arch/parisc/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/mm/CVS/Tag 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Entries
---- linux-2.4.20/arch/parisc/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Entries 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/offset.c/1.1.2.1/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Repository
---- linux-2.4.20/arch/parisc/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Repository 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/parisc/tools
-diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Root
---- linux-2.4.20/arch/parisc/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Root 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/parisc/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Tag
---- linux-2.4.20/arch/parisc/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/parisc/tools/CVS/Tag 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Entries
---- linux-2.4.20/arch/ppc/8260_io/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Entries 2005-01-06 23:00:24.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Config.in/1.2.4.2/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/commproc.c/1.4/Tue Nov 6 07:55:48 2001/-ko/Tlinux_2_4_20
-+/enet.c/1.8/Mon Nov 5 20:15:28 2001/-ko/Tlinux_2_4_20
-+/fcc_enet.c/1.4/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/uart.c/1.9.2.2/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Repository
---- linux-2.4.20/arch/ppc/8260_io/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Repository 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/8260_io
-diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Root
---- linux-2.4.20/arch/ppc/8260_io/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Root 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/8260_io/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Tag
---- linux-2.4.20/arch/ppc/8260_io/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8260_io/CVS/Tag 2005-01-06 23:00:24.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Entries
---- linux-2.4.20/arch/ppc/8xx_io/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Entries 2005-01-06 23:00:27.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Thu May 7 02:57:25 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.7/Tue Nov 6 00:54:55 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Fri Oct 19 01:23:39 2001/-ko/Tlinux_2_4_20
-+/commproc.c/1.13/Tue Nov 6 07:55:48 2001/-ko/Tlinux_2_4_20
-+/enet.c/1.20/Tue Nov 6 00:54:55 2001/-ko/Tlinux_2_4_20
-+/fec.c/1.15.2.1/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/micropatch.c/1.2/Sun Dec 2 11:34:38 2001/-ko/Tlinux_2_4_20
-+/uart.c/1.21.2.2/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Repository
---- linux-2.4.20/arch/ppc/8xx_io/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Repository 2005-01-06 23:00:24.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/8xx_io
-diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Root
---- linux-2.4.20/arch/ppc/8xx_io/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Root 2005-01-06 23:00:24.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Tag
---- linux-2.4.20/arch/ppc/8xx_io/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/CVS/Tag 2005-01-06 23:00:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/8xx_io/.cvsignore linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/.cvsignore
---- linux-2.4.20/arch/ppc/8xx_io/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/8xx_io/.cvsignore 1998-05-06 21:57:25.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Entries
---- linux-2.4.20/arch/ppc/amiga/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Entries 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/amiga_ksyms.c/1.2/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/amiints.c/1.10.2.1/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/amisound.c/1.2/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/bootinfo.c/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/chipram.c/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/cia.c/1.4.2.1/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/config.c/1.12.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/ints.c/1.5/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/pcmcia.c/1.2/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/time.c/1.5.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Repository
---- linux-2.4.20/arch/ppc/amiga/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Repository 2005-01-06 23:00:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/amiga
-diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Root
---- linux-2.4.20/arch/ppc/amiga/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Root 2005-01-06 23:00:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/amiga/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Tag
---- linux-2.4.20/arch/ppc/amiga/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/amiga/CVS/Tag 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/chrp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Entries 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.3.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
-+/main.c/1.3.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
-+/misc.S/1.1/Thu Jun 14 04:23:48 2001/-ko/Tlinux_2_4_20
-+/start.c/1.2.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/chrp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Repository 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/chrp
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Root
---- linux-2.4.20/arch/ppc/boot/chrp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Root 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/chrp/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/chrp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/chrp/CVS/Tag 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/common/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Entries 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/crt0.S/1.2.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/dummy.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/misc-common.c/1.4/Fri Oct 19 01:23:40 2001/-ko/Tlinux_2_4_20
-+/misc-simple.c/1.2.2.3/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/ns16550.c/1.2.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/ofcommon.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/relocate.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/string.S/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/util.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/common/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Repository 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/common
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Root
---- linux-2.4.20/arch/ppc/boot/common/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Root 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/common/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/common/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/common/CVS/Tag 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Entries 2005-01-06 23:08:18.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.23.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/ld.script/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+D/chrp////
-+D/common////
-+D/images////
-+D/include////
-+D/lib////
-+D/pmac////
-+D/prep////
-+D/simple////
-+D/utils////
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Repository 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Root
---- linux-2.4.20/arch/ppc/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Root 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/CVS/Tag 2005-01-06 23:00:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/images/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Entries 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1,2 @@
-+/Makefile/1.1.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/images/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Repository 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/images
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Root
---- linux-2.4.20/arch/ppc/boot/images/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Root 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/images/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/images/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/images/CVS/Tag 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/include/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Entries 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1,4 @@
-+/nonstdio.h/1.2/Fri Oct 19 01:23:40 2001/-ko/Tlinux_2_4_20
-+/rs6000.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/zlib.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/include/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Repository 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/include
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Root
---- linux-2.4.20/arch/ppc/boot/include/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Root 2005-01-06 23:00:29.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/include/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/include/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/include/CVS/Tag 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Entries 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/zlib.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Repository 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/lib
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Root
---- linux-2.4.20/arch/ppc/boot/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Root 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/lib/CVS/Tag 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/pmac/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Entries 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.4.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/chrpmain.c/1.3.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/coffmain.c/1.3.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/misc.S/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/start.c/1.2/Fri Oct 19 01:23:40 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/pmac/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Repository 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/pmac
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Root
---- linux-2.4.20/arch/ppc/boot/pmac/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Root 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/pmac/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/pmac/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/pmac/CVS/Tag 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/prep/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Entries 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.5.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/head.S/1.2.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/iso_font.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/kbd.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.4.2.2/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/of1275.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/of1275.h/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/vreset.c/1.2.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/prep/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Repository 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/prep
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Root
---- linux-2.4.20/arch/ppc/boot/prep/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Root 2005-01-06 23:00:30.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/prep/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/prep/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/prep/CVS/Tag 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/simple/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Entries 2005-01-06 23:08:18.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/direct.S/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/embed_config.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/head.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/iic.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/legacy.S/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/m8260_tty.c/1.1.2.1/Wed Jun 26 22:35:20 2002/-ko/Tlinux_2_4_20
-+/m8xx_tty.c/1.1.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
-+/misc-embedded.c/1.1.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/misc-spruce.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/simple/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Repository 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/simple
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Root
---- linux-2.4.20/arch/ppc/boot/simple/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Root 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/simple/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/simple/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/simple/CVS/Tag 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Entries
---- linux-2.4.20/arch/ppc/boot/utils/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Entries 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.2.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
-+/addnote.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/elf.pl/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/hack-coff.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/mkimage.wrapper/1.1.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
-+/mknote.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/mkprep.c/1.1/Thu Jun 14 04:23:49 2001/-ko/Tlinux_2_4_20
-+/mktree.c/1.1.2.1/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Repository
---- linux-2.4.20/arch/ppc/boot/utils/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Repository 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/boot/utils
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Root
---- linux-2.4.20/arch/ppc/boot/utils/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Root 2005-01-06 23:00:31.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/boot/utils/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Tag
---- linux-2.4.20/arch/ppc/boot/utils/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/boot/utils/CVS/Tag 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Entries
---- linux-2.4.20/arch/ppc/chrpboot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Entries 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1,2 @@
-+/.cvsignore/1.1/Tue Mar 17 22:26:37 1998/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Repository
---- linux-2.4.20/arch/ppc/chrpboot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Repository 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/chrpboot
-diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Root
---- linux-2.4.20/arch/ppc/chrpboot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Root 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Tag
---- linux-2.4.20/arch/ppc/chrpboot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/CVS/Tag 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/chrpboot/.cvsignore linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/.cvsignore
---- linux-2.4.20/arch/ppc/chrpboot/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/chrpboot/.cvsignore 1998-03-17 16:26:37.000000000 -0600
-@@ -0,0 +1,3 @@
-+.depend
-+.*.flags
-+mkboot zImage
-diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Entries
---- linux-2.4.20/arch/ppc/configs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Entries 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1,23 @@
-+/IVMS8_defconfig/1.7.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/SM850_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/SPD823TS_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/TQM823L_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/TQM850L_defconfig/1.6.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/TQM860L_defconfig/1.7.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/apus_defconfig/1.9.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/briq_defconfig/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/bseip_defconfig/1.8.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/common_defconfig/1.20.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/est8260_defconfig/1.9.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/gemini_defconfig/1.13.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ibmchrp_defconfig/1.6.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/mbx_defconfig/1.8.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/oak_defconfig/1.11.2.2/Wed Sep 11 12:44:34 2002/-ko/Tlinux_2_4_20
-+/pal4_defconfig/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pmac_defconfig/1.3.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/power3_defconfig/1.6.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/rpxcllf_defconfig/1.9.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/rpxlite_defconfig/1.8.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/spruce_defconfig/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/walnut_defconfig/1.11.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Repository
---- linux-2.4.20/arch/ppc/configs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Repository 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/configs
-diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Root
---- linux-2.4.20/arch/ppc/configs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Root 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Tag
---- linux-2.4.20/arch/ppc/configs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/configs/CVS/Tag 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Entries
---- linux-2.4.20/arch/ppc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Entries 2005-01-06 23:08:18.000000000 -0600
-@@ -0,0 +1,16 @@
-+/Makefile/1.27.2.2/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/config.in/1.46.2.3/Wed Sep 11 12:44:33 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.37.2.3/Sat Jan 11 17:53:10 2003/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.10.2.1/Wed Jun 26 22:35:19 2002/-ko/Tlinux_2_4_20
-+D/8260_io////
-+D/8xx_io////
-+D/amiga////
-+D/boot////
-+D/chrpboot////
-+D/configs////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-+D/platforms////
-+D/xmon////
-diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Repository
---- linux-2.4.20/arch/ppc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Repository 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc
-diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Root
---- linux-2.4.20/arch/ppc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Root 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Tag
---- linux-2.4.20/arch/ppc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/CVS/Tag 2005-01-06 23:00:23.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Entries
---- linux-2.4.20/arch/ppc/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Entries 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1,54 @@
-+/Makefile/1.32.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/align.c/1.9/Thu Jun 14 04:23:50 2001/-ko/Tlinux_2_4_20
-+/bitops.c/1.3/Thu Jun 14 04:23:50 2001/-ko/Tlinux_2_4_20
-+/btext.c/1.1.2.2/Wed Jun 26 22:35:21 2002/-ko/Tlinux_2_4_20
-+/checks.c/1.5/Thu Jun 14 04:23:50 2001/-ko/Tlinux_2_4_20
-+/cputable.c/1.2.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/entry.S/1.20.2.3/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/find_name.c/1.4/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
-+/galaxy_pci.c/1.3.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/head.S/1.34.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/head_4xx.S/1.4.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/head_8xx.S/1.12.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/i8259.c/1.6.2.3/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/idle.c/1.24.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/idle_6xx.S/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/indirect_pci.c/1.5.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.38.2.3/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/l2cr.S/1.1.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/m8260_setup.c/1.14.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/m8xx_setup.c/1.19.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/misc.S/1.36.2.6/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/mk_defs.c/1.18/Fri Oct 19 01:23:43 2001/-ko/Tlinux_2_4_20
-+/open_pic.c/1.19.2.2/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/open_pic_defs.h/1.4/Fri Oct 19 01:23:44 2001/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.3/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.31.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci.h/1.5/Sat Sep 22 12:49:12 2001/-ko/Tlinux_2_4_20
-+/pci_auto.c/1.1.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/ppc-stub.c/1.8/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
-+/ppc4xx_pic.c/1.2.2.1/Wed Sep 11 12:44:35 2002/-ko/Tlinux_2_4_20
-+/ppc8260_pic.c/1.3.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
-+/ppc8260_pic.h/1.2.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/ppc8xx_pic.c/1.6.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
-+/ppc8xx_pic.h/1.4.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/ppc_defs.head/1.1/Fri Sep 12 01:30:44 1997/-ko/Tlinux_2_4_20
-+/ppc_htab.c/1.21/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/ppc_ksyms.c/1.40.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/prep_nvram.c/1.7.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/process.c/1.34.2.1/Sun Dec 2 12:08:03 2001/-ko/Tlinux_2_4_20
-+/prom.c/1.28.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/prom_init.c/1.1.2.1/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.17.2.3/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/qspan_pci.c/1.4.2.2/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.5/Thu Jun 14 04:23:51 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.41.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/signal.c/1.17.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/smp.c/1.29.2.3/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
-+/softemu8xx.c/1.8/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/syscalls.c/1.19.2.1/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
-+/temp.c/1.1/Fri Oct 19 01:23:45 2001/-ko/Tlinux_2_4_20
-+/time.c/1.26.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/todc_time.c/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.29/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Repository
---- linux-2.4.20/arch/ppc/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Repository 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/kernel
-diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Root
---- linux-2.4.20/arch/ppc/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Root 2005-01-06 23:00:32.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Tag
---- linux-2.4.20/arch/ppc/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/kernel/CVS/Tag 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Entries
---- linux-2.4.20/arch/ppc/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Entries 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.11/Sun Dec 2 11:34:39 2001/-ko/Tlinux_2_4_20
-+/checksum.S/1.6.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/dec_and_lock.c/1.1/Sun Dec 2 11:34:39 2001/-ko/Tlinux_2_4_20
-+/locks.c/1.11.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/strcase.c/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/string.S/1.10.2.2/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Repository
---- linux-2.4.20/arch/ppc/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Repository 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/lib
-diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Root
---- linux-2.4.20/arch/ppc/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Root 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Tag
---- linux-2.4.20/arch/ppc/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/lib/CVS/Tag 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Entries
---- linux-2.4.20/arch/ppc/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Entries 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1,54 @@
-+/Makefile/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/double.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fabs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fadd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fadds.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fcmpo.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fcmpu.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fctiw.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fctiwz.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fdiv.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fdivs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmadd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmadds.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmr.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmsub.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmsubs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmul.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fmuls.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fnabs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fneg.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fnmadd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fnmadds.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fnmsub.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fnmsubs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fres.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/frsp.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/frsqrte.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fsel.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fsqrt.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fsqrts.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fsub.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/fsubs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/lfd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/lfs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/math.c/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/mcrfs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/mffs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/mtfsb0.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/mtfsb1.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/mtfsf.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/mtfsfi.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/op-1.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/op-2.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/op-4.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/op-common.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.3/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/single.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/soft-fp.h/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/stfd.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/stfiwx.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/stfs.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/types.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+/udivmodti4.c/1.2/Thu Jun 14 04:23:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Repository
---- linux-2.4.20/arch/ppc/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Repository 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/math-emu
-diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Root
---- linux-2.4.20/arch/ppc/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Root 2005-01-06 23:00:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Tag
---- linux-2.4.20/arch/ppc/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/math-emu/CVS/Tag 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Entries
---- linux-2.4.20/arch/ppc/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Entries 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1,17 @@
-+/4xx_mmu.c/1.2/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/4xx_tlb.c/1.3/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/4xx_tlb.h/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.8/Fri Oct 19 01:23:45 2001/-ko/Tlinux_2_4_20
-+/cachemap.c/1.2/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.5/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.25.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/hashtable.S/1.2.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/init.c/1.44.2.2/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
-+/mem_pieces.c/1.5/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/mem_pieces.h/1.3/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/mmu_context.c/1.2/Mon Nov 5 20:15:29 2001/-ko/Tlinux_2_4_20
-+/mmu_decl.h/1.2.2.2/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/pgtable.c/1.2.2.2/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
-+/ppc_mmu.c/1.1.2.4/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/tlb.c/1.1/Fri Oct 19 01:23:45 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Repository
---- linux-2.4.20/arch/ppc/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Repository 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/mm
-diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Root
---- linux-2.4.20/arch/ppc/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Root 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Tag
---- linux-2.4.20/arch/ppc/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/mm/CVS/Tag 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Entries
---- linux-2.4.20/arch/ppc/platforms/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Entries 2005-01-06 23:08:18.000000000 -0600
-@@ -0,0 +1,55 @@
-+/Makefile/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/apus_pci.c/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/apus_pci.h/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/apus_setup.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/bseip.h/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/chrp_pci.c/1.1.2.1/Wed Sep 11 12:44:36 2002/-ko/Tlinux_2_4_20
-+/chrp_setup.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/chrp_smp.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/chrp_time.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/cpc700.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/cpc700_pic.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/error_log.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/error_log.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/est8260.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/fads.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/gemini.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/gemini_pci.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/gemini_prom.S/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/gemini_serial.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/gemini_setup.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ivms8.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/mbx.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/oak.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/oak_setup.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/oak_setup.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pal4.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pal4_pci.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pal4_serial.h/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pal4_setup.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pmac_backlight.c/1.1.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pmac_feature.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pmac_nvram.c/1.2.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pmac_pci.c/1.2.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pmac_pic.c/1.3.2.1/Wed Sep 11 12:44:37 2002/-ko/Tlinux_2_4_20
-+/pmac_pic.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/pmac_setup.c/1.3.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/pmac_sleep.S/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pmac_smp.c/1.3.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/pmac_time.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/prep_pci.c/1.2.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/prep_setup.c/1.3.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/prep_time.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/proc_rtas.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/residual.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/rpxclassic.h/1.2.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/rpxhiox.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/rpxlite.h/1.2.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/spd8xx.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/spruce.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/spruce_pci.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/spruce_setup.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/tqm8xx.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/walnut.c/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/walnut.h/1.1.2.1/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Repository
---- linux-2.4.20/arch/ppc/platforms/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Repository 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/platforms
-diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Root
---- linux-2.4.20/arch/ppc/platforms/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Root 2005-01-06 23:00:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/platforms/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Tag
---- linux-2.4.20/arch/ppc/platforms/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/platforms/CVS/Tag 2005-01-06 23:00:37.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Entries
---- linux-2.4.20/arch/ppc/xmon/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Entries 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1,14 @@
-+/Makefile/1.5/Wed Aug 22 03:24:01 2001/-ko/Tlinux_2_4_20
-+/adb.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/ansidecl.h/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/nonstdio.h/1.2.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
-+/ppc-dis.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/ppc-opc.c/1.3/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/ppc.h/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/privinst.h/1.4/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/setjmp.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/start.c/1.16.2.2/Wed Jun 26 22:35:22 2002/-ko/Tlinux_2_4_20
-+/start_8xx.c/1.3/Mon Nov 5 20:15:29 2001/-ko/Tlinux_2_4_20
-+/subr_prf.c/1.3.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
-+/xmon.c/1.17.2.1/Tue Feb 26 05:59:06 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Repository
---- linux-2.4.20/arch/ppc/xmon/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Repository 2005-01-06 23:00:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc/xmon
-diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Root
---- linux-2.4.20/arch/ppc/xmon/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Root 2005-01-06 23:00:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc/xmon/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Tag
---- linux-2.4.20/arch/ppc/xmon/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc/xmon/CVS/Tag 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Entries
---- linux-2.4.20/arch/ppc64/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Entries 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1,14 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/addRamDisk.c/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/addSystemMap.c/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/addnote.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/crt0.S/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/mknote.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/ppc32-types.h/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/string.S/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/zImage.c/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/zImage.lds/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/zlib.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/zlib.h/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Repository
---- linux-2.4.20/arch/ppc64/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Repository 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64/boot
-diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Root
---- linux-2.4.20/arch/ppc64/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Root 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Tag
---- linux-2.4.20/arch/ppc64/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/boot/CVS/Tag 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Entries
---- linux-2.4.20/arch/ppc64/configs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Entries 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1,4 @@
-+/iSeries_devfs_defconfig/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/iSeries_nodevfs_ideemul_defconfig/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/pSeries_defconfig/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Repository
---- linux-2.4.20/arch/ppc64/configs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Repository 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64/configs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Root
---- linux-2.4.20/arch/ppc64/configs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Root 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/configs/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Tag
---- linux-2.4.20/arch/ppc64/configs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/configs/CVS/Tag 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Entries
---- linux-2.4.20/arch/ppc64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Entries 2005-01-06 23:08:17.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/config.in/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.1.2.2/Wed Sep 11 12:44:38 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/configs////
-+D/kernel////
-+D/lib////
-+D/mm////
-+D/xmon////
-diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Repository
---- linux-2.4.20/arch/ppc64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Repository 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64
-diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Root
---- linux-2.4.20/arch/ppc64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Root 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Tag
---- linux-2.4.20/arch/ppc64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/CVS/Tag 2005-01-06 23:00:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Entries
---- linux-2.4.20/arch/ppc64/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Entries 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1,83 @@
-+/HvCall.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/HvLpConfig.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/HvLpEvent.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/ItLpQueue.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/LparData.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/XmPciLpEvent.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/align.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/binfmt_elf32.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/bitops.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/checks.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/chrp_setup.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/eeh.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/flight_recorder.c/1.1.2.1/Wed Jun 26 22:35:23 2002/-ko/Tlinux_2_4_20
-+/head.S/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/htab.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/hvCall.S/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/i8259.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/i8259.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/iSeries_IoMmTable.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/iSeries_IoMmTable.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/iSeries_VpdInfo.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/iSeries_irq.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/iSeries_pci.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/iSeries_pci_reset.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/iSeries_proc.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/iSeries_setup.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/iSeries_setup.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/idle.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/ioctl32.c/1.1.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/irq.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/lmb.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/local_irq.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/mf.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/mf_proc.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/misc.S/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/mk_defs.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/nvram.c/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/open_pic.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/open_pic.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/open_pic_defs.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/pSeries_hvCall.S/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/pSeries_lpar.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/pSeries_pci.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/pacaData.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci.h/1.1.2.1/Wed Jun 26 22:35:24 2002/-ko/Tlinux_2_4_20
-+/pci_dma.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/pci_dn.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/perfmon.c/1.1.2.1/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/pmc.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/ppc-stub.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/ppc_asm.h/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/ppc_defs.head/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/ppc_ksyms.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/proc_pcifr.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/proc_pmc.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/process.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/prom.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/ptrace32.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/ras.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/rtas-proc.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/rtas.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/rtas_flash.c/1.1.2.1/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/rtasd.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/rtc.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.1.2.1/Wed Jun 26 22:35:25 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/signal32.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/stab.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/sys32.S/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/sys_ppc32.c/1.1.2.2/Wed Sep 11 12:44:39 2002/-ko/Tlinux_2_4_20
-+/syscalls.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/time.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/udbg.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/xics.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/xics.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Repository
---- linux-2.4.20/arch/ppc64/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Repository 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64/kernel
-diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Root
---- linux-2.4.20/arch/ppc64/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Root 2005-01-06 23:00:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Tag
---- linux-2.4.20/arch/ppc64/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/kernel/CVS/Tag 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Entries
---- linux-2.4.20/arch/ppc64/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Entries 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/checksum.S/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/dec_and_lock.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/strcase.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/string.S/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Repository
---- linux-2.4.20/arch/ppc64/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Repository 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64/lib
-diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Root
---- linux-2.4.20/arch/ppc64/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Root 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Tag
---- linux-2.4.20/arch/ppc64/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/lib/CVS/Tag 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Entries
---- linux-2.4.20/arch/ppc64/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Entries 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/extable.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/imalloc.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Repository
---- linux-2.4.20/arch/ppc64/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Repository 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64/mm
-diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Root
---- linux-2.4.20/arch/ppc64/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Root 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Tag
---- linux-2.4.20/arch/ppc64/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/mm/CVS/Tag 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Entries
---- linux-2.4.20/arch/ppc64/xmon/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Entries 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/ansidecl.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/nonstdio.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/ppc-dis.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/ppc-opc.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/ppc.h/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/privinst.h/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/setjmp.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/start.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/subr_prf.c/1.1.2.1/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/xmon.c/1.1.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Repository
---- linux-2.4.20/arch/ppc64/xmon/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Repository 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/ppc64/xmon
-diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Root linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Root
---- linux-2.4.20/arch/ppc64/xmon/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Root 2005-01-06 23:00:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/ppc64/xmon/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Tag
---- linux-2.4.20/arch/ppc64/xmon/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/ppc64/xmon/CVS/Tag 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Entries
---- linux-2.4.20/arch/s390/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Entries 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.5.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/install.sh/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/ipldump.S/1.2/Fri Mar 9 20:33:48 2001/-ko/Tlinux_2_4_20
-+/ipleckd.S/1.3/Fri Mar 9 20:33:48 2001/-ko/Tlinux_2_4_20
-+/iplfba.S/1.2/Fri May 12 23:48:36 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Repository
---- linux-2.4.20/arch/s390/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Repository 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390/boot
-diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Root
---- linux-2.4.20/arch/s390/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Root 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Tag
---- linux-2.4.20/arch/s390/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/boot/CVS/Tag 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Entries
---- linux-2.4.20/arch/s390/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Entries 2005-01-06 23:08:17.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.6.2.2/Wed Jun 26 22:35:26 2002/-ko/Tlinux_2_4_20
-+/config.in/1.13.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.7.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/vmlinux-shared.lds/1.1.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.4.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Repository
---- linux-2.4.20/arch/s390/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Repository 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390
-diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Root
---- linux-2.4.20/arch/s390/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Root 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Tag
---- linux-2.4.20/arch/s390/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/CVS/Tag 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Entries
---- linux-2.4.20/arch/s390/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Entries 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1,25 @@
-+/Makefile/1.5.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/asm-offsets.c/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/bitmap.S/1.2/Fri May 12 23:48:36 2000/-ko/Tlinux_2_4_20
-+/cpcmd.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
-+/debug.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/ebcdic.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
-+/entry.S/1.13.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/gdb-stub.c/1.3/Tue Nov 6 00:54:56 2001/-ko/Tlinux_2_4_20
-+/head.S/1.8/Sun Dec 2 11:34:39 2001/-ko/Tlinux_2_4_20
-+/init_task.c/1.4.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.8.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/process.c/1.11.2.2/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/reipl.S/1.3.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/s390_ext.c/1.3.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/s390_ksyms.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/s390fpu.c/1.4/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
-+/semaphore.c/1.5/Wed Jun 13 17:27:43 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.7.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.8.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.10.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/sys_s390.c/1.5/Thu Apr 5 04:56:11 2001/-ko/Tlinux_2_4_20
-+/time.c/1.5.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.9.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Repository
---- linux-2.4.20/arch/s390/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Repository 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390/kernel
-diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Root
---- linux-2.4.20/arch/s390/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Root 2005-01-06 23:00:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Tag
---- linux-2.4.20/arch/s390/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/kernel/CVS/Tag 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Entries
---- linux-2.4.20/arch/s390/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Entries 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.4.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/checksum.c/1.3/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/delay.c/1.3/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/memset.S/1.2/Fri May 12 23:48:36 2000/-ko/Tlinux_2_4_20
-+/misaligned.c/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/strcmp.S/1.3/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/strncpy.S/1.3/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/uaccess.S/1.1.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Repository
---- linux-2.4.20/arch/s390/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Repository 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390/lib
-diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Root
---- linux-2.4.20/arch/s390/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Root 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Tag
---- linux-2.4.20/arch/s390/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/lib/CVS/Tag 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Entries
---- linux-2.4.20/arch/s390/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Entries 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/math.c/1.2.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/qrnnd.S/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/sfp-util.h/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Repository
---- linux-2.4.20/arch/s390/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Repository 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390/math-emu
-diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Root
---- linux-2.4.20/arch/s390/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Root 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Tag
---- linux-2.4.20/arch/s390/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/math-emu/CVS/Tag 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Entries
---- linux-2.4.20/arch/s390/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Entries 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.4/Fri Aug 24 03:38:34 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.3/Tue Nov 6 00:54:56 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.9.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/init.c/1.9.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.4/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Repository
---- linux-2.4.20/arch/s390/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Repository 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390/mm
-diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Root
---- linux-2.4.20/arch/s390/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Root 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Tag
---- linux-2.4.20/arch/s390/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390/mm/CVS/Tag 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Entries
---- linux-2.4.20/arch/s390x/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Entries 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.2.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/install.sh/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/ipldump.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/ipleckd.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/iplfba.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Repository
---- linux-2.4.20/arch/s390x/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Repository 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390x/boot
-diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Root
---- linux-2.4.20/arch/s390x/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Root 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390x/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Tag
---- linux-2.4.20/arch/s390x/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/boot/CVS/Tag 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Entries
---- linux-2.4.20/arch/s390x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Entries 2005-01-06 23:08:17.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.3.2.2/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/config.in/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.5.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/vmlinux-shared.lds/1.1.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.3.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/mm////
-diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Repository
---- linux-2.4.20/arch/s390x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Repository 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390x
-diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Root
---- linux-2.4.20/arch/s390x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Root 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390x/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Tag
---- linux-2.4.20/arch/s390x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/CVS/Tag 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Entries
---- linux-2.4.20/arch/s390x/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Entries 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1,33 @@
-+/Makefile/1.3.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/asm-offsets.c/1.1.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/binfmt_elf32.c/1.3/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/bitmap.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/cpcmd.c/1.3/Tue Nov 6 00:54:58 2001/-ko/Tlinux_2_4_20
-+/debug.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/ebcdic.c/1.2/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/entry.S/1.9.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/exec32.c/1.3/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/gdb-stub.c/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/head.S/1.6.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/ieee.h/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/init_task.c/1.3.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/ioctl32.c/1.4.2.1/Tue Feb 26 05:59:07 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.4.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/linux32.c/1.7.2.2/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/linux32.h/1.2/Tue Nov 6 00:54:58 2001/-ko/Tlinux_2_4_20
-+/process.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/reipl.S/1.2.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/s390_ext.c/1.3.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/s390_ksyms.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/s390fpu.c/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/semaphore.c/1.2/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.5.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.4.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/signal32.c/1.3.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.6.2.4/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/sys_s390.c/1.3.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/time.c/1.3.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.4.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/wrapper32.S/1.3.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Repository
---- linux-2.4.20/arch/s390x/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Repository 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390x/kernel
-diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Root
---- linux-2.4.20/arch/s390x/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Root 2005-01-06 23:00:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390x/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Tag
---- linux-2.4.20/arch/s390x/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/kernel/CVS/Tag 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Entries
---- linux-2.4.20/arch/s390x/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Entries 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.2.2.1/Wed Jun 26 22:35:27 2002/-ko/Tlinux_2_4_20
-+/checksum.c/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/delay.c/1.2/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/memset.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/misaligned.c/1.1/Wed Jun 13 17:27:44 2001/-ko/Tlinux_2_4_20
-+/strcmp.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/strncpy.S/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/uaccess.S/1.1.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Repository
---- linux-2.4.20/arch/s390x/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Repository 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390x/lib
-diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Root
---- linux-2.4.20/arch/s390x/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Root 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390x/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Tag
---- linux-2.4.20/arch/s390x/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/lib/CVS/Tag 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Entries
---- linux-2.4.20/arch/s390x/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Entries 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.1/Fri Mar 9 20:33:49 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.2/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.6.2.3/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/init.c/1.5.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.2/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Repository
---- linux-2.4.20/arch/s390x/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Repository 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/s390x/mm
-diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Root
---- linux-2.4.20/arch/s390x/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Root 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/s390x/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Tag
---- linux-2.4.20/arch/s390x/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/s390x/mm/CVS/Tag 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Entries
---- linux-2.4.20/arch/sh/boot/compressed/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Entries 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.4/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/head.S/1.4/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
-+/install.sh/1.1/Mon Jun 19 22:45:41 2000/-ko/Tlinux_2_4_20
-+/misc.c/1.2/Sun Jul 23 14:05:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Repository
---- linux-2.4.20/arch/sh/boot/compressed/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Repository 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh/boot/compressed
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Root
---- linux-2.4.20/arch/sh/boot/compressed/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Root 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Tag
---- linux-2.4.20/arch/sh/boot/compressed/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/compressed/CVS/Tag 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Entries
---- linux-2.4.20/arch/sh/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Entries 2005-01-06 23:08:16.000000000 -0600
-@@ -0,0 +1,2 @@
-+/Makefile/1.3/Mon Jun 19 22:45:41 2000/-ko/Tlinux_2_4_20
-+D/compressed////
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Repository
---- linux-2.4.20/arch/sh/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Repository 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh/boot
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Root
---- linux-2.4.20/arch/sh/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Root 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Tag
---- linux-2.4.20/arch/sh/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/boot/CVS/Tag 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Entries
---- linux-2.4.20/arch/sh/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Entries 2005-01-06 23:08:17.000000000 -0600
-@@ -0,0 +1,9 @@
-+/Makefile/1.10/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/config.in/1.22.2.2/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.16/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/vmlinux.lds.S/1.11.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/mm////
-+D/stboards////
-diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Repository
---- linux-2.4.20/arch/sh/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Repository 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh
-diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Root
---- linux-2.4.20/arch/sh/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Root 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Tag
---- linux-2.4.20/arch/sh/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/CVS/Tag 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Entries
---- linux-2.4.20/arch/sh/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Entries 2005-01-06 23:08:15.000000000 -0600
-@@ -0,0 +1,70 @@
-+/Makefile/1.14/Fri Oct 19 01:23:46 2001/-ko/Tlinux_2_4_20
-+/cf-enabler.c/1.7/Fri Oct 19 01:23:46 2001/-ko/Tlinux_2_4_20
-+/dma.c/1.1/Fri Oct 19 01:23:46 2001/-ko/Tlinux_2_4_20
-+/entry.S/1.19.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/fpu.c/1.4/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
-+/hd64465_gpio.c/1.3/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/head.S/1.8/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
-+/init_task.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/io.c/1.4/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/io_7751se.c/1.1.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+/io_adx.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/io_bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/io_cat68701.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/io_dc.c/1.3/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/io_ec3104.c/1.2/Thu Jun 14 04:23:53 2001/-ko/Tlinux_2_4_20
-+/io_generic.c/1.6/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/io_hd64461.c/1.4/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/io_hd64465.c/1.2/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/io_se.c/1.5/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/io_sh2000.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/io_unknown.c/1.2/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.15/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/irq_imask.c/1.7/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/irq_intc2.c/1.4/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/irq_ipr.c/1.6/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/irq_maskreg.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/led_7751se.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/led_bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/led_se.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/mach_7751se.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/mach_adx.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/mach_bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/mach_cat68701.c/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/mach_dc.c/1.4/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/mach_dmida.c/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/mach_ec3104.c/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/mach_hp600.c/1.3/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/mach_se.c/1.3/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/mach_unknown.c/1.3/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/pci-7751se.c/1.2.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+/pci-bigsur.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/pci-dc.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/pci-sh7751.c/1.3/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/pci_st40.c/1.3/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/pci_st40.h/1.1/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/pcibios.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/process.c/1.16/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/ptrace.c/1.9/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/rtc-aica.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/rtc.c/1.4.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.6/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.19.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/setup_7751se.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/setup_adx.c/1.1/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/setup_bigsur.c/1.2/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/setup_cqreek.c/1.5/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/setup_dc.c/1.4/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/setup_ec3104.c/1.3/Fri Oct 19 01:23:47 2001/-ko/Tlinux_2_4_20
-+/setup_hd64461.c/1.4/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/setup_hd64465.c/1.2/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/setup_se.c/1.3/Fri Aug 25 06:33:45 2000/-ko/Tlinux_2_4_20
-+/setup_sh2000.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/sh_bios.c/1.5/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
-+/sh_ksyms.c/1.10.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.15.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/sys_sh.c/1.9/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/time.c/1.16/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/traps.c/1.9.2.1/Tue Feb 26 05:59:08 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Repository
---- linux-2.4.20/arch/sh/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Repository 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh/kernel
-diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Root
---- linux-2.4.20/arch/sh/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Root 2005-01-06 23:00:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Tag
---- linux-2.4.20/arch/sh/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/kernel/CVS/Tag 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Entries
---- linux-2.4.20/arch/sh/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Entries 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.7/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/checksum.S/1.7/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/delay.c/1.3/Wed Jan 31 22:22:29 2001/-ko/Tlinux_2_4_20
-+/memchr.S/1.2/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/memcpy.S/1.4/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/memmove.S/1.4/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/memset.S/1.4/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/old-checksum.c/1.2/Thu Jan 27 01:05:25 2000/-ko/Tlinux_2_4_20
-+/strcasecmp.c/1.1/Fri Aug 25 06:33:45 2000/-ko/Tlinux_2_4_20
-+/strlen.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Repository
---- linux-2.4.20/arch/sh/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Repository 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh/lib
-diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Root
---- linux-2.4.20/arch/sh/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Root 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Tag
---- linux-2.4.20/arch/sh/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/lib/CVS/Tag 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Entries
---- linux-2.4.20/arch/sh/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Entries 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.5/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/__clear_user_page-sh4.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/__copy_user_page-sh4.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/cache-sh3.c/1.2/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/cache-sh4.c/1.2/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/clear_page.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/copy_page.S/1.1/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/extable.c/1.5/Fri Oct 19 01:23:48 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.17.2.1/Wed Sep 11 12:44:40 2002/-ko/Tlinux_2_4_20
-+/init.c/1.16.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/ioremap.c/1.8/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Repository
---- linux-2.4.20/arch/sh/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Repository 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh/mm
-diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Root
---- linux-2.4.20/arch/sh/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Root 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Tag
---- linux-2.4.20/arch/sh/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/mm/CVS/Tag 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Entries
---- linux-2.4.20/arch/sh/stboards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Entries 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1,8 @@
-+/Makefile/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/harp.h/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/irq.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/led.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/mach.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/pcidma.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.1/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Repository
---- linux-2.4.20/arch/sh/stboards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Repository 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sh/stboards
-diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Root
---- linux-2.4.20/arch/sh/stboards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Root 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sh/stboards/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Tag
---- linux-2.4.20/arch/sh/stboards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sh/stboards/CVS/Tag 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Entries
---- linux-2.4.20/arch/sparc/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Entries 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.6.4.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/btfixupprep.c/1.3/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
-+/piggyback.c/1.5/Wed Jan 10 05:27:28 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Repository
---- linux-2.4.20/arch/sparc/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Repository 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc/boot
-diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Root
---- linux-2.4.20/arch/sparc/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Root 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Tag
---- linux-2.4.20/arch/sparc/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/boot/CVS/Tag 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Entries
---- linux-2.4.20/arch/sparc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Entries 2005-01-06 23:08:15.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.14/Fri Aug 24 03:38:35 2001/-ko/Tlinux_2_4_20
-+/config.in/1.46.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.42.2.3/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.9/Wed Aug 22 03:24:02 2001/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-+D/prom////
-diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Repository
---- linux-2.4.20/arch/sparc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Repository 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc
-diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Root
---- linux-2.4.20/arch/sparc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Root 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Tag
---- linux-2.4.20/arch/sparc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/CVS/Tag 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Entries
---- linux-2.4.20/arch/sparc/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Entries 2005-01-06 23:00:55.000000000 -0600
-@@ -0,0 +1,50 @@
-+/Makefile/1.20.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/apc.c/1.1.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/auxio.c/1.5/Sat Feb 5 06:47:10 2000/-ko/Tlinux_2_4_20
-+/check_asm.sh/1.4.2.2/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/cpu.c/1.5/Fri Apr 28 01:09:32 2000/-ko/Tlinux_2_4_20
-+/devices.c/1.6.4.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/ebus.c/1.11.2.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.18/Sun Dec 2 11:34:39 2001/-ko/Tlinux_2_4_20
-+/errtbls.c/1.2/Mon Dec 1 17:57:49 1997/-ko/Tlinux_2_4_20
-+/etrap.S/1.5/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
-+/head.S/1.16/Sat Sep 22 12:49:14 2001/-ko/Tlinux_2_4_20
-+/idprom.c/1.4/Sat Oct 9 00:01:04 1999/-ko/Tlinux_2_4_20
-+/init_task.c/1.7.2.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
-+/ioport.c/1.17.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.25.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/muldiv.c/1.3/Tue Mar 17 22:08:18 1998/-ko/Tlinux_2_4_20
-+/pcic.c/1.16.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pmc.c/1.1.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/process.c/1.29.2.2/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.17.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/rtrap.S/1.13/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
-+/sclow.S/1.2/Thu May 7 02:57:56 1998/-ko/Tlinux_2_4_20
-+/semaphore.c/1.7/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.24.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.24.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.16.2.1/Sat Dec 29 05:37:50 2001/-ko/Tlinux_2_4_20
-+/sparc-stub.c/1.10/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/sparc_ksyms.c/1.32.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/sun4c_irq.c/1.9/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/sun4d_irq.c/1.13/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
-+/sun4d_smp.c/1.18.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/sun4m_irq.c/1.11/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/sun4m_smp.c/1.18/Sun Dec 2 11:34:39 2001/-ko/Tlinux_2_4_20
-+/sun4setup.c/1.2/Sat Oct 9 00:01:04 1999/-ko/Tlinux_2_4_20
-+/sunos_asm.S/1.3/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
-+/sunos_ioctl.c/1.8/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/sys_solaris.c/1.6/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/sys_sparc.c/1.24/Wed Jun 13 17:27:45 2001/-ko/Tlinux_2_4_20
-+/sys_sunos.c/1.40.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/systbls.S/1.20.2.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/tadpole.c/1.3/Sat Oct 9 00:01:04 1999/-ko/Tlinux_2_4_20
-+/tick14.c/1.1.1.1/Sun Jun 1 03:16:51 1997/-ko/Tlinux_2_4_20
-+/time.c/1.19.2.2/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/trampoline.S/1.4/Sat Oct 9 00:01:04 1999/-ko/Tlinux_2_4_20
-+/traps.c/1.11.4.1/Wed Jun 26 22:35:28 2002/-ko/Tlinux_2_4_20
-+/unaligned.c/1.7.4.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
-+/windows.c/1.3/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/wof.S/1.5/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
-+/wuf.S/1.5/Wed Feb 16 01:07:31 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Repository
---- linux-2.4.20/arch/sparc/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Repository 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc/kernel
-diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Root
---- linux-2.4.20/arch/sparc/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Root 2005-01-06 23:00:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Tag
---- linux-2.4.20/arch/sparc/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/kernel/CVS/Tag 2005-01-06 23:00:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Entries
---- linux-2.4.20/arch/sparc/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Entries 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1,31 @@
-+/COPYING.LIB/1.1.1.1/Sun Jun 1 03:16:49 1997/-ko/Tlinux_2_4_20
-+/Makefile/1.12/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
-+/ashldi3.S/1.1/Sat Feb 5 06:47:10 2000/-ko/Tlinux_2_4_20
-+/ashrdi3.S/1.3/Sat Feb 5 06:47:10 2000/-ko/Tlinux_2_4_20
-+/atomic.S/1.5/Fri May 12 21:06:09 2000/-ko/Tlinux_2_4_20
-+/bitops.S/1.6/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
-+/blockops.S/1.4/Thu May 7 02:58:03 1998/-ko/Tlinux_2_4_20
-+/checksum.S/1.2/Mon Feb 15 02:17:16 1999/-ko/Tlinux_2_4_20
-+/copy_user.S/1.4/Fri Apr 28 01:09:33 2000/-ko/Tlinux_2_4_20
-+/debuglocks.c/1.6/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
-+/divdi3.S/1.1.1.1/Sun Jun 1 03:16:49 1997/-ko/Tlinux_2_4_20
-+/locks.S/1.5/Thu Mar 2 02:36:52 2000/-ko/Tlinux_2_4_20
-+/lshrdi3.S/1.1/Sun Jun 13 16:31:12 1999/-ko/Tlinux_2_4_20
-+/memcmp.S/1.1.1.1/Sun Jun 1 03:16:48 1997/-ko/Tlinux_2_4_20
-+/memcpy.S/1.2/Tue Mar 17 22:08:25 1998/-ko/Tlinux_2_4_20
-+/memscan.S/1.2/Mon Dec 1 17:58:01 1997/-ko/Tlinux_2_4_20
-+/memset.S/1.3/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
-+/mul.S/1.2/Mon Dec 1 17:58:01 1997/-ko/Tlinux_2_4_20
-+/muldi3.S/1.1/Thu Mar 23 02:25:43 2000/-ko/Tlinux_2_4_20
-+/rem.S/1.2/Mon Dec 1 17:58:02 1997/-ko/Tlinux_2_4_20
-+/rwsem.S/1.4/Thu Jun 15 01:55:59 2000/-ko/Tlinux_2_4_20
-+/sdiv.S/1.2/Mon Dec 1 17:58:02 1997/-ko/Tlinux_2_4_20
-+/strlen.S/1.1.1.1/Sun Jun 1 03:16:49 1997/-ko/Tlinux_2_4_20
-+/strlen_user.S/1.2/Sat Feb 5 06:47:10 2000/-ko/Tlinux_2_4_20
-+/strncmp.S/1.2/Mon Dec 1 17:58:02 1997/-ko/Tlinux_2_4_20
-+/strncpy_from_user.S/1.1.1.1/Sun Jun 1 03:16:48 1997/-ko/Tlinux_2_4_20
-+/udiv.S/1.2/Mon Dec 1 17:58:03 1997/-ko/Tlinux_2_4_20
-+/udivdi3.S/1.1.1.1/Sun Jun 1 03:16:48 1997/-ko/Tlinux_2_4_20
-+/umul.S/1.2/Mon Dec 1 17:58:03 1997/-ko/Tlinux_2_4_20
-+/urem.S/1.2/Mon Dec 1 17:58:03 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Repository
---- linux-2.4.20/arch/sparc/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Repository 2005-01-06 23:00:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc/lib
-diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Root
---- linux-2.4.20/arch/sparc/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Root 2005-01-06 23:00:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Tag
---- linux-2.4.20/arch/sparc/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/lib/CVS/Tag 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Entries
---- linux-2.4.20/arch/sparc/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Entries 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.7/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
-+/ashldi3.S/1.1/Thu May 7 02:58:05 1998/-ko/Tlinux_2_4_20
-+/math.c/1.5/Fri Feb 4 07:40:30 2000/-ko/Tlinux_2_4_20
-+/sfp-util.h/1.1/Thu Jun 17 13:26:23 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Repository
---- linux-2.4.20/arch/sparc/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Repository 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc/math-emu
-diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Root
---- linux-2.4.20/arch/sparc/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Root 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Tag
---- linux-2.4.20/arch/sparc/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/math-emu/CVS/Tag 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Entries
---- linux-2.4.20/arch/sparc/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Entries 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1,19 @@
-+/Makefile/1.15.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/btfixup.c/1.5/Thu Jun 15 01:55:59 2000/-ko/Tlinux_2_4_20
-+/extable.c/1.3.2.1/Sat Dec 29 05:37:50 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.18.2.1/Sat Dec 29 05:37:50 2001/-ko/Tlinux_2_4_20
-+/generic.c/1.9/Thu Aug 23 22:24:26 2001/-ko/Tlinux_2_4_20
-+/highmem.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/hypersparc.S/1.10/Fri Jul 21 22:00:57 2000/-ko/Tlinux_2_4_20
-+/init.c/1.37.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/io-unit.c/1.11.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/iommu.c/1.11.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/loadmmu.c/1.7/Wed Feb 23 00:41:05 2000/-ko/Tlinux_2_4_20
-+/nosrmmu.c/1.4/Sat Feb 5 06:47:11 2000/-ko/Tlinux_2_4_20
-+/nosun4c.c/1.3/Thu Feb 24 00:12:47 2000/-ko/Tlinux_2_4_20
-+/srmmu.c/1.42.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/sun4c.c/1.34.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/swift.S/1.6.4.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/tsunami.S/1.8.4.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/viking.S/1.11/Fri Jul 21 22:00:57 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Repository
---- linux-2.4.20/arch/sparc/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Repository 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc/mm
-diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Root
---- linux-2.4.20/arch/sparc/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Root 2005-01-06 23:00:56.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Tag
---- linux-2.4.20/arch/sparc/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/mm/CVS/Tag 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Entries
---- linux-2.4.20/arch/sparc/prom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Entries 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1,16 @@
-+/Makefile/1.5/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
-+/bootstr.c/1.7/Wed Feb 23 00:41:05 2000/-ko/Tlinux_2_4_20
-+/console.c/1.10/Tue Nov 6 07:55:49 2001/-ko/Tlinux_2_4_20
-+/devmap.c/1.4/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/devops.c/1.5/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/init.c/1.5/Fri Feb 18 22:06:14 2000/-ko/Tlinux_2_4_20
-+/memory.c/1.6/Fri Feb 18 22:06:14 2000/-ko/Tlinux_2_4_20
-+/misc.c/1.5/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/mp.c/1.5/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/palloc.c/1.2/Mon Dec 1 17:58:13 1997/-ko/Tlinux_2_4_20
-+/printf.c/1.4/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
-+/ranges.c/1.6.4.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
-+/segment.c/1.4/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/sun4prom.c/1.2/Sat Oct 9 00:01:06 1999/-ko/Tlinux_2_4_20
-+/tree.c/1.7/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Repository
---- linux-2.4.20/arch/sparc/prom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Repository 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc/prom
-diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Root
---- linux-2.4.20/arch/sparc/prom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Root 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Tag
---- linux-2.4.20/arch/sparc/prom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc/prom/CVS/Tag 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Entries
---- linux-2.4.20/arch/sparc64/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Entries 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.4/Tue Mar 17 22:08:32 1998/-ko/Tlinux_2_4_20
-+/piggyback.c/1.4/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Repository
---- linux-2.4.20/arch/sparc64/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Repository 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/boot
-diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Root
---- linux-2.4.20/arch/sparc64/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Root 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Tag
---- linux-2.4.20/arch/sparc64/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/boot/CVS/Tag 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Entries
---- linux-2.4.20/arch/sparc64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Entries 2005-01-06 23:08:15.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.20.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/config.in/1.57.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/defconfig/1.60.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.12/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
-+D/boot////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-+D/prom////
-+D/solaris////
-diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Repository
---- linux-2.4.20/arch/sparc64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Repository 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64
-diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Root
---- linux-2.4.20/arch/sparc64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Root 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Tag
---- linux-2.4.20/arch/sparc64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/CVS/Tag 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Entries
---- linux-2.4.20/arch/sparc64/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Entries 2005-01-06 23:01:01.000000000 -0600
-@@ -0,0 +1,56 @@
-+/Makefile/1.30.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/auxio.c/1.9/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
-+/binfmt_aout32.c/1.20.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/binfmt_elf32.c/1.8.4.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/central.c/1.6.4.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/check_asm.sh/1.5.2.1/Tue Feb 26 05:59:09 2002/-ko/Tlinux_2_4_20
-+/chmc.c/1.1.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/cpu.c/1.9.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/devices.c/1.13.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/dtlb_backend.S/1.9/Mon Nov 5 21:57:11 2001/-ko/Tlinux_2_4_20
-+/dtlb_base.S/1.9.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/dtlb_prot.S/1.10/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
-+/ebus.c/1.16.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.25.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/etrap.S/1.13.2.1/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/head.S/1.18.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/idprom.c/1.4/Sat Oct 9 00:01:07 1999/-ko/Tlinux_2_4_20
-+/init_task.c/1.7/Fri Oct 19 01:23:49 2001/-ko/Tlinux_2_4_20
-+/ioctl32.c/1.47.2.5/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/iommu_common.c/1.6.2.1/Tue Feb 26 05:59:10 2002/-ko/Tlinux_2_4_20
-+/iommu_common.h/1.3.2.1/Tue Feb 26 05:59:10 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.31.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/isa.c/1.2/Sun Dec 2 11:34:39 2001/-ko/Tlinux_2_4_20
-+/itlb_base.S/1.6/Fri Oct 19 01:23:50 2001/-ko/Tlinux_2_4_20
-+/pci.c/1.16.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci_common.c/1.10.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/pci_impl.h/1.7/Wed Aug 22 03:24:03 2001/-ko/Tlinux_2_4_20
-+/pci_iommu.c/1.11/Tue Nov 6 00:54:59 2001/-ko/Tlinux_2_4_20
-+/pci_psycho.c/1.20.2.3/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/pci_sabre.c/1.20.2.2/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/pci_schizo.c/1.9.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/power.c/1.5.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/process.c/1.39.2.4/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.20.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/rtrap.S/1.18.2.3/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/sbus.c/1.11.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.7.2.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
-+/setup.c/1.32.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.25.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/signal32.c/1.28.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.36.2.4/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/sparc64_ksyms.c/1.41.2.3/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/starfire.c/1.8/Wed Jun 13 17:27:46 2001/-ko/Tlinux_2_4_20
-+/sunos_ioctl32.c/1.7/Tue Aug 8 18:54:50 2000/-ko/Tlinux_2_4_20
-+/sys32.S/1.11.4.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/sys_sparc.c/1.34.2.3/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/sys_sparc32.c/1.60.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/sys_sunos32.c/1.42.2.2/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/systbls.S/1.27.2.1/Wed Jun 26 22:35:29 2002/-ko/Tlinux_2_4_20
-+/time.c/1.23.2.4/Wed Sep 11 12:44:41 2002/-ko/Tlinux_2_4_20
-+/trampoline.S/1.13.2.3/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.26.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ttable.S/1.18.2.3/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/unaligned.c/1.13/Wed Jun 13 17:27:47 2001/-ko/Tlinux_2_4_20
-+/winfixup.S/1.10/Wed Apr 19 04:00:07 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Repository
---- linux-2.4.20/arch/sparc64/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Repository 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/kernel
-diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Root
---- linux-2.4.20/arch/sparc64/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Root 2005-01-06 23:00:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Tag
---- linux-2.4.20/arch/sparc64/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/kernel/CVS/Tag 2005-01-06 23:01:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Entries
---- linux-2.4.20/arch/sparc64/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Entries 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1,29 @@
-+/Makefile/1.14.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/PeeCeeI.c/1.2/Sat Oct 9 00:01:07 1999/-ko/Tlinux_2_4_20
-+/U3copy_from_user.S/1.1.4.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/U3copy_in_user.S/1.2/Thu Apr 5 04:56:12 2001/-ko/Tlinux_2_4_20
-+/U3copy_to_user.S/1.1.4.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/U3memcpy.S/1.1.4.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/VIS.h/1.4/Thu Jun 17 13:26:32 1999/-ko/Tlinux_2_4_20
-+/VISbzero.S/1.6/Thu Apr 5 04:56:12 2001/-ko/Tlinux_2_4_20
-+/VIScopy.S/1.11.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/VIScsum.S/1.7.4.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/VIScsumcopy.S/1.6/Thu Mar 2 02:36:52 2000/-ko/Tlinux_2_4_20
-+/VIScsumcopyusr.S/1.2/Thu Mar 2 02:36:52 2000/-ko/Tlinux_2_4_20
-+/VISmemset.S/1.6/Sat Feb 5 06:47:13 2000/-ko/Tlinux_2_4_20
-+/VISsave.S/1.4/Thu Apr 5 04:56:12 2001/-ko/Tlinux_2_4_20
-+/atomic.S/1.3.4.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
-+/bitops.S/1.2.2.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
-+/blockops.S/1.18.2.3/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/checksum.S/1.9/Fri Feb 18 00:24:32 2000/-ko/Tlinux_2_4_20
-+/debuglocks.c/1.6.2.1/Sat Dec 29 05:37:51 2001/-ko/Tlinux_2_4_20
-+/dec_and_lock.S/1.3.4.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/mcount.S/1.1.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/memcmp.S/1.4/Mon Mar 27 23:54:19 2000/-ko/Tlinux_2_4_20
-+/memscan.S/1.5/Fri Feb 18 22:06:14 2000/-ko/Tlinux_2_4_20
-+/rwlock.S/1.4/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/strlen.S/1.2/Mon Jan 4 16:04:55 1999/-ko/Tlinux_2_4_20
-+/strlen_user.S/1.6/Sat Feb 5 06:47:13 2000/-ko/Tlinux_2_4_20
-+/strncmp.S/1.3/Mon Dec 1 17:58:33 1997/-ko/Tlinux_2_4_20
-+/strncpy_from_user.S/1.5/Thu Jun 17 13:26:35 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Repository
---- linux-2.4.20/arch/sparc64/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Repository 2005-01-06 23:01:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/lib
-diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Root
---- linux-2.4.20/arch/sparc64/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Root 2005-01-06 23:01:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Tag
---- linux-2.4.20/arch/sparc64/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/lib/CVS/Tag 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Entries
---- linux-2.4.20/arch/sparc64/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Entries 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.7/Wed Jan 10 17:17:56 2001/-ko/Tlinux_2_4_20
-+/math.c/1.8.4.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/sfp-util.h/1.3/Wed Aug 22 03:24:04 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Repository
---- linux-2.4.20/arch/sparc64/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Repository 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/math-emu
-diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Root
---- linux-2.4.20/arch/sparc64/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Root 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Tag
---- linux-2.4.20/arch/sparc64/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/math-emu/CVS/Tag 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Entries
---- linux-2.4.20/arch/sparc64/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Entries 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1,8 @@
-+/Makefile/1.10.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/extable.c/1.2.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/fault.c/1.24.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/generic.c/1.13/Wed Jun 13 17:27:47 2001/-ko/Tlinux_2_4_20
-+/init.c/1.43.2.4/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/modutil.c/1.10.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/ultra.S/1.26.2.3/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Repository
---- linux-2.4.20/arch/sparc64/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Repository 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/mm
-diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Root
---- linux-2.4.20/arch/sparc64/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Root 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Tag
---- linux-2.4.20/arch/sparc64/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/mm/CVS/Tag 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Entries
---- linux-2.4.20/arch/sparc64/prom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Entries 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.7.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/bootstr.c/1.6.4.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/console.c/1.5/Tue Mar 17 22:09:00 1998/-ko/Tlinux_2_4_20
-+/devops.c/1.4/Tue Mar 17 22:09:00 1998/-ko/Tlinux_2_4_20
-+/init.c/1.6/Sat Feb 5 06:47:17 2000/-ko/Tlinux_2_4_20
-+/map.S/1.1/Sat Feb 5 06:47:17 2000/-ko/Tlinux_2_4_20
-+/memory.c/1.5/Sat Oct 9 00:01:08 1999/-ko/Tlinux_2_4_20
-+/misc.c/1.15.2.2/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/p1275.c/1.11/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/printf.c/1.3/Mon Dec 1 17:58:40 1997/-ko/Tlinux_2_4_20
-+/tree.c/1.4/Tue Mar 17 22:09:01 1998/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Repository
---- linux-2.4.20/arch/sparc64/prom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Repository 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/prom
-diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Root
---- linux-2.4.20/arch/sparc64/prom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Root 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/prom/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Tag
---- linux-2.4.20/arch/sparc64/prom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/prom/CVS/Tag 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Entries
---- linux-2.4.20/arch/sparc64/solaris/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Entries 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1,15 @@
-+/Makefile/1.6.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/conv.h/1.3/Mon Jan 4 16:04:59 1999/-ko/Tlinux_2_4_20
-+/entry64.S/1.4/Wed Feb 16 01:07:32 2000/-ko/Tlinux_2_4_20
-+/fs.c/1.22/Fri Oct 19 01:23:51 2001/-ko/Tlinux_2_4_20
-+/ioctl.c/1.10.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/ipc.c/1.5/Sat Feb 5 06:47:17 2000/-ko/Tlinux_2_4_20
-+/misc.c/1.24.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/signal.c/1.3/Thu Oct 5 01:18:44 2000/-ko/Tlinux_2_4_20
-+/signal.h/1.2/Tue Aug 25 09:15:54 1998/-ko/Tlinux_2_4_20
-+/socket.c/1.6/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/socksys.c/1.16/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/socksys.h/1.1/Thu May 7 02:58:43 1998/-ko/Tlinux_2_4_20
-+/systbl.S/1.6/Sun Mar 19 01:28:44 2000/-ko/Tlinux_2_4_20
-+/timod.c/1.12.2.3/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Repository
---- linux-2.4.20/arch/sparc64/solaris/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Repository 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/sparc64/solaris
-diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Root linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Root
---- linux-2.4.20/arch/sparc64/solaris/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Root 2005-01-06 23:01:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/sparc64/solaris/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Tag
---- linux-2.4.20/arch/sparc64/solaris/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/sparc64/solaris/CVS/Tag 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Entries
---- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Entries 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1,5 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/head.S/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/miscsetup.h/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Repository
---- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Repository 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/boot/compressed
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Root
---- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Root 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/compressed/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Tag
---- linux-2.4.20/arch/x86_64/boot/compressed/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/compressed/CVS/Tag 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Entries
---- linux-2.4.20/arch/x86_64/boot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Entries 2005-01-06 23:08:14.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/bootsect.S/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/install.sh/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/setup.S/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/video.S/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+D/compressed////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Repository
---- linux-2.4.20/arch/x86_64/boot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Repository 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/boot
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Root
---- linux-2.4.20/arch/x86_64/boot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Root 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Tag
---- linux-2.4.20/arch/x86_64/boot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/CVS/Tag 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Entries
---- linux-2.4.20/arch/x86_64/boot/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Entries 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1,2 @@
-+/build.c/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Repository
---- linux-2.4.20/arch/x86_64/boot/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Repository 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/boot/tools
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Root
---- linux-2.4.20/arch/x86_64/boot/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Root 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/boot/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Tag
---- linux-2.4.20/arch/x86_64/boot/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/boot/tools/CVS/Tag 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Entries
---- linux-2.4.20/arch/x86_64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Entries 2005-01-06 23:08:14.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.2.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/config.in/1.6.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/defconfig/1.9.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/vmlinux.lds/1.3.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+D/boot////
-+D/ia32////
-+D/kernel////
-+D/lib////
-+D/math-emu////
-+D/mm////
-+D/tools////
-diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Repository
---- linux-2.4.20/arch/x86_64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Repository 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64
-diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Root
---- linux-2.4.20/arch/x86_64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Root 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Tag
---- linux-2.4.20/arch/x86_64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/CVS/Tag 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Entries
---- linux-2.4.20/arch/x86_64/ia32/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Entries 2005-01-06 23:01:05.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.4.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/fpu32.c/1.1.2.1/Wed Sep 11 12:44:42 2002/-ko/Tlinux_2_4_20
-+/ia32_binfmt.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/ia32_ioctl.c/1.6.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ia32_signal.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/ia32entry.S/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ipc32.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ptrace32.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/socket32.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/sys_ia32.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Repository
---- linux-2.4.20/arch/x86_64/ia32/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Repository 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/ia32
-diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Root
---- linux-2.4.20/arch/x86_64/ia32/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Root 2005-01-06 23:01:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/ia32/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Tag
---- linux-2.4.20/arch/x86_64/ia32/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/ia32/CVS/Tag 2005-01-06 23:01:05.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Entries
---- linux-2.4.20/arch/x86_64/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Entries 2005-01-06 23:08:14.000000000 -0600
-@@ -0,0 +1,46 @@
-+/Makefile/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/acpitable.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/acpitable.h/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/aperture.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/apic.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/bluesmoke.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/cpuid.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/e820.c/1.2.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/early_printk.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/entry.S/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/head.S/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/head64.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/i387.c/1.3.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/i8259.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/init_task.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/io_apic.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ioport.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/irq.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ldt.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/mpparse.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/msr.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/mtrr.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/nmi.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/pci-dma.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci-gart.c/1.1.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci-irq.c/1.2.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/pci-nommu.c/1.1.2.1/Wed Sep 11 12:44:43 2002/-ko/Tlinux_2_4_20
-+/pci-pc.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci-x86_64.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pci-x86_64.h/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/process.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ptrace.c/1.3.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/semaphore.c/1.2.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/setup.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/setup64.c/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/signal.c/1.3.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/smp.c/1.3.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/smpboot.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/sys_x86_64.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/syscall.c/1.2.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/time.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/trampoline.S/1.2.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/traps.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/vsyscall.c/1.3.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/x8664_ksyms.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Repository
---- linux-2.4.20/arch/x86_64/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Repository 2005-01-06 23:01:05.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/kernel
-diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Root
---- linux-2.4.20/arch/x86_64/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Root 2005-01-06 23:01:05.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Tag
---- linux-2.4.20/arch/x86_64/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/kernel/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Entries
---- linux-2.4.20/arch/x86_64/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Entries 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1,21 @@
-+/Makefile/1.4.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/bitstr.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/clear_page.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/copy_page.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/copy_user.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/csum-copy.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/csum-partial.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/csum-wrappers.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/dec_and_lock.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/delay.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/getuser.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/io.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/iodebug.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/memcpy.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/memmove.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/memset.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/old-checksum.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/putuser.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/thunk.S/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/usercopy.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Repository
---- linux-2.4.20/arch/x86_64/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/lib
-diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Root
---- linux-2.4.20/arch/x86_64/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Tag
---- linux-2.4.20/arch/x86_64/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/lib/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Entries
---- linux-2.4.20/arch/x86_64/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Entries 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1,2 @@
-+/README/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Repository
---- linux-2.4.20/arch/x86_64/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/math-emu
-diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Root
---- linux-2.4.20/arch/x86_64/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Tag
---- linux-2.4.20/arch/x86_64/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/math-emu/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Entries
---- linux-2.4.20/arch/x86_64/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Entries 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.2.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/extable.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/fault.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/init.c/1.6.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/ioremap.c/1.4.2.2/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/k8topology.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/modutil.c/1.1.2.1/Wed Sep 11 12:44:44 2002/-ko/Tlinux_2_4_20
-+/numa.c/1.1.2.1/Sat Jan 11 17:53:11 2003/-ko/Tlinux_2_4_20
-+/pageattr.c/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Repository
---- linux-2.4.20/arch/x86_64/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/mm
-diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Root
---- linux-2.4.20/arch/x86_64/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Tag
---- linux-2.4.20/arch/x86_64/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/mm/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Entries linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Entries
---- linux-2.4.20/arch/x86_64/tools/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Entries 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1,4 @@
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/offset.c/1.3.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/offset.sed/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Repository linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Repository
---- linux-2.4.20/arch/x86_64/tools/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/arch/x86_64/tools
-diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Root linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Root
---- linux-2.4.20/arch/x86_64/tools/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/arch/x86_64/tools/CVS/Tag linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Tag
---- linux-2.4.20/arch/x86_64/tools/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/arch/x86_64/tools/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/CVS/Entries linux-2.4.20-mipscvs-20050106/CVS/Entries
---- linux-2.4.20/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/CVS/Entries 2005-01-06 23:08:28.000000000 -0600
-@@ -0,0 +1,20 @@
-+/.cvsignore/1.6/Mon Jan 17 23:32:45 2000/-ko/Tlinux_2_4_20
-+/COPYING/1.5.2.1/Wed Jun 26 22:34:58 2002/-ko/Tlinux_2_4_20
-+/CREDITS/1.73.2.6/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/MAINTAINERS/1.76.2.10/Mon Jan 20 18:19:34 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.119.2.8/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/README/1.16.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/REPORTING-BUGS/1.5/Wed Jun 13 17:27:35 2001/-ko/Tlinux_2_4_20
-+/Rules.make/1.14.2.3/Tue Sep 10 15:32:47 2002/-ko/Tlinux_2_4_20
-+D/Documentation////
-+D/arch////
-+D/drivers////
-+D/fs////
-+D/include////
-+D/init////
-+D/ipc////
-+D/kernel////
-+D/lib////
-+D/mm////
-+D/net////
-+D/scripts////
-diff -urNd -urNd linux-2.4.20/CVS/Repository linux-2.4.20-mipscvs-20050106/CVS/Repository
---- linux-2.4.20/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/CVS/Repository 2005-01-06 22:58:26.000000000 -0600
-@@ -0,0 +1 @@
-+linux
-diff -urNd -urNd linux-2.4.20/CVS/Root linux-2.4.20-mipscvs-20050106/CVS/Root
---- linux-2.4.20/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/CVS/Root 2005-01-06 22:58:26.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/CVS/Tag linux-2.4.20-mipscvs-20050106/CVS/Tag
---- linux-2.4.20/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/CVS/Tag 2005-01-06 22:58:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/.cvsignore linux-2.4.20-mipscvs-20050106/.cvsignore
---- linux-2.4.20/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/.cvsignore 2000-01-17 17:32:45.000000000 -0600
-@@ -0,0 +1,13 @@
-+!core
-+.SUMS
-+.config
-+.depend
-+.hdepend
-+.tmpconfig
-+.tmpconfig.h
-+.version
-+System.map
-+vmlinux
-+vmlinux.64
-+modules
-+nohup.out
-diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Entries
---- linux-2.4.20/Documentation/arm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Entries 2005-01-06 23:08:28.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Netwinder/1.1/Sun Jun 13 16:29:34 1999/-ko/Tlinux_2_4_20
-+/README/1.6/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/Setup/1.2/Fri Apr 28 01:09:26 2000/-ko/Tlinux_2_4_20
-+D/SA1100////
-+D/empeg////
-+D/nwfpe////
-diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Repository
---- linux-2.4.20/Documentation/arm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Repository 2005-01-06 22:58:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/arm
-diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Root
---- linux-2.4.20/Documentation/arm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Root 2005-01-06 22:58:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/arm/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Tag
---- linux-2.4.20/Documentation/arm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/CVS/Tag 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Entries
---- linux-2.4.20/Documentation/arm/empeg/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Entries 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1,4 @@
-+/README/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/ir.txt/1.2/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/mkdevs/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Repository
---- linux-2.4.20/Documentation/arm/empeg/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Repository 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/arm/empeg
-diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Root
---- linux-2.4.20/Documentation/arm/empeg/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Root 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/arm/empeg/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Tag
---- linux-2.4.20/Documentation/arm/empeg/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/empeg/CVS/Tag 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Entries
---- linux-2.4.20/Documentation/arm/nwfpe/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Entries 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1,5 @@
-+/NOTES/1.1/Sun Jun 13 16:29:35 1999/-ko/Tlinux_2_4_20
-+/README/1.4/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/README.FPE/1.2/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/TODO/1.1/Sun Jun 13 16:29:36 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Repository
---- linux-2.4.20/Documentation/arm/nwfpe/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Repository 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/arm/nwfpe
-diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Root
---- linux-2.4.20/Documentation/arm/nwfpe/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Root 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/arm/nwfpe/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Tag
---- linux-2.4.20/Documentation/arm/nwfpe/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/nwfpe/CVS/Tag 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Entries
---- linux-2.4.20/Documentation/arm/SA1100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Entries 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1,21 @@
-+/ADSBitsy/1.1/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/Assabet/1.4/Tue Nov 6 07:55:44 2001/-ko/Tlinux_2_4_20
-+/Brutus/1.5/Thu Apr 5 04:56:06 2001/-ko/Tlinux_2_4_20
-+/CERF/1.1/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/DMA/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/FreeBird/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/GraphicsClient/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/GraphicsMaster/1.1/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/HUW_WEBPANEL/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/Itsy/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/LART/1.3/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+/PCMCIA/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/PLEB/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/Pangolin/1.3/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/Tifon/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/Victor/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/Yopy/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/empeg/1.1/Thu Jan 27 01:05:21 2000/-ko/Tlinux_2_4_20
-+/nanoEngine/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/serial_UART/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Repository
---- linux-2.4.20/Documentation/arm/SA1100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Repository 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/arm/SA1100
-diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Root
---- linux-2.4.20/Documentation/arm/SA1100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Root 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/arm/SA1100/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Tag
---- linux-2.4.20/Documentation/arm/SA1100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/arm/SA1100/CVS/Tag 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Entries
---- linux-2.4.20/Documentation/BK-usage/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Entries 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1,8 @@
-+/bk-kernel-howto.txt/1.4.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/bk-make-sum/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/bksend/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/bz64wrap/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/cset-to-linus/1.2.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/csets-to-patches/1.2.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/unbz64wrap/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Repository
---- linux-2.4.20/Documentation/BK-usage/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Repository 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/BK-usage
-diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Root
---- linux-2.4.20/Documentation/BK-usage/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Root 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/BK-usage/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Tag
---- linux-2.4.20/Documentation/BK-usage/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/BK-usage/CVS/Tag 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Entries
---- linux-2.4.20/Documentation/cdrom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Entries 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1,16 @@
-+/00-INDEX/1.3/Tue Aug 25 09:12:52 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Tue Dec 16 06:06:26 1997/-ko/Tlinux_2_4_20
-+/aztcd/1.5/Tue Aug 25 09:12:52 1998/-ko/Tlinux_2_4_20
-+/cdrom-standard.tex/1.8/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/cdu31a/1.2/Thu May 7 02:56:00 1998/-ko/Tlinux_2_4_20
-+/cm206/1.3/Thu May 7 02:56:00 1998/-ko/Tlinux_2_4_20
-+/gscd/1.3/Thu May 7 02:56:00 1998/-ko/Tlinux_2_4_20
-+/ide-cd/1.9/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/isp16/1.3/Thu May 7 02:56:01 1998/-ko/Tlinux_2_4_20
-+/mcd/1.1.1.1/Sun Jun 1 03:17:48 1997/-ko/Tlinux_2_4_20
-+/mcdx/1.3/Mon Feb 15 02:15:44 1999/-ko/Tlinux_2_4_20
-+/optcd/1.1.1.1/Sun Jun 1 03:17:49 1997/-ko/Tlinux_2_4_20
-+/sbpcd/1.4/Tue Aug 25 09:12:53 1998/-ko/Tlinux_2_4_20
-+/sjcd/1.3/Thu May 7 02:56:02 1998/-ko/Tlinux_2_4_20
-+/sonycd535/1.4.6.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Repository
---- linux-2.4.20/Documentation/cdrom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Repository 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/cdrom
-diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Root
---- linux-2.4.20/Documentation/cdrom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Root 2005-01-06 22:58:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/cdrom/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Tag
---- linux-2.4.20/Documentation/cdrom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cdrom/CVS/Tag 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/Configure.help linux-2.4.20-mipscvs-20050106/Documentation/Configure.help
---- linux-2.4.20/Documentation/Configure.help 2002-11-28 17:53:08.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/Configure.help 2003-02-14 12:43:54.000000000 -0600
-@@ -459,6 +459,18 @@
- "real" root file system, etc. See <file:Documentation/initrd.txt>
- for details.
-
-+Embed root filesystem ramdisk into the kernel
-+CONFIG_EMBEDDED_RAMDISK
-+ Select this option if you want to build the ramdisk image into the
-+ the final kernel binary.
-+
-+Filename of gziped ramdisk image
-+CONFIG_EMBEDDED_RAMDISK_IMAGE
-+ This is the filename of the ramdisk image to be built into the
-+ kernel. Relative pathnames are relative to arch/mips/ramdisk/.
-+ The ramdisk image is not part of the kernel distribution; you must
-+ provide one yourself.
-+
- Loopback device support
- CONFIG_BLK_DEV_LOOP
- Saying Y here will allow you to use a regular file as a block
-@@ -2078,6 +2090,71 @@
- This enables support for the VR5000-based MIPS Malta evaluation
- board.
-
-+# Choice: bcmboard
-+Support for Broadcom SiByte boards
-+CONFIG_SIBYTE_SWARM
-+ Enable support for boards based on the Broadcom SiByte family:
-+
-+ BCM91250A-SWARM BCM1250 ATX size Eval Board (BCM91250A-SWARM)
-+
-+ BCM91250E-Sentosa BCM1250 PCI card Eval Board (BCM91250E-Sentosa)
-+
-+ BCM91125E-Rhone BCM1125 PCI card Eval Board (BCM91125E-Rhone)
-+
-+ Other Non-Broadcom SiByte-based platform
-+
-+# Choice: bcmsoc
-+Support for Broadcom BCM1xxx SOCs
-+CONFIG_SIBYTE_SB1250
-+
-+ BCM1250 Dual-CPU SB1 with PCI and HyperTransport.
-+
-+ BCM1120 Uniprocessor SB1.
-+
-+ BCM1125 Uniprocessor SB1 with PCI (and HyperTransport for 1125H).
-+
-+BCM1250 Pass
-+CONFIG_CPU_SB1_PASS_1
-+ Which pass of the SOC is supported (see the "system_revision"
-+ register in the User Manual for more discussion of revisions):
-+
-+ Pass1 1250 "Pass 1"
-+
-+ A3-A10 1250 "Pass 2"
-+
-+ B0-B3 1250 "Pass 2.2"
-+
-+BCM1xxx Pass
-+CONFIG_CPU_SB1_PASS_2
-+ Which pass of the SOC is supported (see the "system_revision"
-+ register in the User Manual for more discussion of revisions):
-+
-+ Hybrid 1250 "Pass 2"
-+
-+ A1-A2 112x A1-A2
-+
-+Booting from CFE
-+CONFIG_SIBYTE_CFE
-+ Make use of the CFE API for enumerating available memory,
-+ controlling secondary CPUs, and possibly console output.
-+
-+Use firmware console
-+CONFIG_SIBYTE_CFE_CONSOLE
-+ Use the CFE API's console write routines during boot. Other console
-+ options (VT console, sb1250 duart console, etc.) should not be
-+ configured.
-+
-+Support SWARM (BCM912500A) peripherals
-+CONFIG_SIBYTE_SWARM
-+ Indicates that the target is a SWARM board. Most devices (IDE,
-+ video decoder, audio codec, etc) still require additional
-+ configuration options under the appropriate sections.
-+
-+Corelis Debugger
-+CONFIG_SB1XXX_CORELIS
-+ Select compile flags that produce code that can be processed by the
-+ Corelis mksym utility and UDB Emulator.
-+
- Support for Galileo Evaluation board or CoSine Orion
- CONFIG_ORION
- Say Y if configuring for the Galileo evaluation board
-@@ -2164,16 +2241,31 @@
- workstations). Say Y here to make sure it gets initialized
- correctly before the Linux kernel tries to talk to the controller.
-
--Kernel floating-point instruction emulation
--CONFIG_MIPS_FPU_EMULATOR
-- This option enables the MIPS software floating support. Due to
-- the way floating point works you should always enable this option
-- unless you exactly know what you're doing.
--
- SGI PROM Console Support
- CONFIG_SGI_PROM_CONSOLE
- Say Y here to set up the boot console on serial port 0.
-
-+DECstation serial support
-+CONFIG_SERIAL_DEC
-+ This selects whether you want to be asked about drivers for
-+ DECstation serial ports.
-+
-+ Note that the answer to this question won't directly affect the
-+ kernel: saying N will just cause the configurator to skip all
-+ the questions about DECstation serial ports.
-+
-+ If unsure, say Y.
-+
-+Support for console on a DECstation serial port
-+CONFIG_SERIAL_DEC_CONSOLE
-+ If you say Y here, it will be possible to use a serial port as the
-+ system console (the system console is the device which receives all
-+ kernel messages and warnings and which allows logins in single user
-+ mode). Note that the firmware uses ttyS0 as the serial console on
-+ the Maxine and ttyS2 on the others.
-+
-+ If unsure, say Y.
-+
- DZ11 Serial Support
- CONFIG_DZ
- DZ11-family serial controllers for VAXstations, including the
-@@ -2293,6 +2385,8 @@
-
- R10000 MIPS Technologies R10000-series processors.
-
-+ SB1 Broadcom SiByte SB1 processor.
-+
- R6000
- CONFIG_CPU_R6000
- MIPS Technologies R6000-series processors, including the 64474,
-@@ -2323,6 +2417,10 @@
- CONFIG_CPU_R10000
- MIPS Technologies R10000-series processors.
-
-+SB1
-+CONFIG_CPU_SB1
-+ Broadcom SiByte SB1 processor.
-+
- Discontiguous Memory Support
- CONFIG_DISCONTIGMEM
- Say Y to support efficient handling of discontiguous physical memory,
-@@ -3392,9 +3490,9 @@
- servicing. Say Y here to enable the serial driver to take advantage
- of those special I/O ports.
-
--SGI Zilog85C30 serial support
--CONFIG_SGI_SERIAL
-- If you want to use your SGI's built-in serial ports under Linux,
-+SGI IP22 Zilog85C30 serial support
-+CONFIG_IP22_SERIAL
-+ If you want to use your IP22's built-in serial ports under Linux,
- answer Y.
-
- SGI Newport Graphics support
-@@ -4442,21 +4540,20 @@
-
- Maxine (Personal DECstation) onboard framebuffer support
- CONFIG_FB_MAXINE
-- Say Y here to directly support the on-board framebuffer in the
-- Maxine (5000/20, /25, /33) version of the DECstation. There is a
-- page dedicated to Linux on DECstations at <http://decstation.unix-ag.org/>.
-+ Support for the onboard framebuffer (1024x768x8) in the Personal
-+ DECstation series (Personal DECstation 5000/20, /25, /33, /50,
-+ Codename "Maxine").
-
- PMAG-BA TURBOchannel framebuffer support
- CONFIG_FB_PMAG_BA
-- Say Y here to directly support the on-board PMAG-BA framebuffer in
-- the 5000/1xx versions of the DECstation. There is a page dedicated
-- to Linux on DECstations at <http://decstation.unix-ag.org/>.
-+ Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8)
-+ used mainly in the MIPS-based DECstation series.
-
- PMAGB-B TURBOchannel framebuffer support
- CONFIG_FB_PMAGB_B
-- Say Y here to directly support the on-board PMAGB-B framebuffer in
-- the 5000/1xx versions of the DECstation. There is a page dedicated
-- to Linux on DECstations at <http://decstation.unix-ag.org/>.
-+ Support for the PMAGB-B TURBOchannel framebuffer card used mainly
-+ in the MIPS-based DECstation series. The card is currently only
-+ supported in 1280x1024x8 mode.
-
- FutureTV PCI card
- CONFIG_ARCH_FTVPCI
-@@ -13395,6 +13492,18 @@
- <file:Documentation/modules.txt>. The module will be called
- slram.o
-
-+DEC MS02-NV NVRAM module support
-+CONFIG_MTD_MS02NV
-+ This is a MTD driver for the DEC's MS02-type (54-20948-01) battery
-+ backed-up NVRAM module. The module was originally meant as an NFS
-+ accelerator. Say Y here if you have a DECstation 5000/2x0 or a
-+ DECsystem 5900 equipped with such a module.
-+
-+ If you want to compile this driver as a module ( = code which can be
-+ inserted in and removed from the running kernel whenever you want),
-+ say M here and read <file:Documentation/modules.txt>. The module will
-+ be called ms02-nv.o.
-+
- Debugging RAM test driver
- CONFIG_MTD_MTDRAM
- This enables a test MTD device driver which uses vmalloc() to
-@@ -20282,6 +20391,23 @@
- compatibility. Since all software available for Linux/MIPS is
- currently 32-bit you should say Y here.
-
-+Kernel support for o32 binaries
-+CONFIG_MIPS32_O32
-+ Select this option if you want to run o32 binaries. These are pure
-+ 32-bit binaries as used by the 32-bit Linux/MIPS port. Most of
-+ existing binaries are in this format.
-+
-+ If unsure, say Y.
-+
-+Kernel support for n32 binaries
-+CONFIG_MIPS32_N32
-+ Select this option if you want to run n32 binaries. These are
-+ 64-bit binaries using 32-bit quantities for addressing and certain
-+ data that would normally be 64-bit. They are used in special
-+ cases.
-+
-+ If unsure, say N.
-+
- Build fp exception handler module
- CONFIG_MIPS_FPE_MODULE
- Build the floating point exception handler module. This option is
-@@ -20356,6 +20482,13 @@
- Currently used only by the time services code in the MIPS port.
- Don't turn this on unless you know what you are doing.
-
-+Enable run-time debugging
-+CONFIG_DEBUG
-+ If you say Y here, some debugging macros will do run-time checking.
-+ If you say N here, those macros will mostly turn to no-ops. For
-+ MIPS boards only. See include/asm-mips/debug.h for debuging macros.
-+ If unsure, say N.
-+
- Remote GDB kernel debugging
- CONFIG_REMOTE_DEBUG
- If you say Y here, it will be possible to remotely debug the MIPS
-diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Entries
---- linux-2.4.20/Documentation/cris/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Entries 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+/README/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Repository
---- linux-2.4.20/Documentation/cris/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Repository 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/cris
-diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Root
---- linux-2.4.20/Documentation/cris/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Root 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/cris/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Tag
---- linux-2.4.20/Documentation/cris/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/cris/CVS/Tag 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/CVS/Entries
---- linux-2.4.20/Documentation/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Entries 2005-01-06 23:08:28.000000000 -0600
-@@ -0,0 +1,114 @@
-+/00-INDEX/1.15/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
-+/BUG-HUNTING/1.2/Fri Feb 4 07:40:19 2000/-ko/Tlinux_2_4_20
-+/Changes/1.49.2.4/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/CodingStyle/1.4/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
-+/Configure.help/1.109.2.17/Fri Feb 14 18:43:54 2003/-ko/Tlinux_2_4_20
-+/DMA-mapping.txt/1.11.2.3/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/IO-mapping.txt/1.5/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
-+/IRQ-affinity.txt/1.1.4.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/LVM-HOWTO/1.1/Thu Feb 24 00:12:35 2000/-ko/Tlinux_2_4_20
-+/README.DAC960/1.6/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/README.moxa/1.1/Wed Feb 16 01:07:26 2000/-ko/Tlinux_2_4_20
-+/README.nsp_cs.eng/1.2/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/SAK.txt/1.1/Thu Apr 5 04:56:06 2001/-ko/Tlinux_2_4_20
-+/SubmittingDrivers/1.5.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/SubmittingPatches/1.1.2.1/Wed Sep 11 12:44:23 2002/-ko/Tlinux_2_4_20
-+/VGA-softcursor.txt/1.2/Tue Aug 25 09:12:43 1998/-ko/Tlinux_2_4_20
-+/binfmt_misc.txt/1.7/Thu Apr 5 04:56:06 2001/-ko/Tlinux_2_4_20
-+/cachetlb.txt/1.8.2.2/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/cciss.txt/1.4.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/computone.txt/1.7/Tue Nov 6 07:55:44 2001/-ko/Tlinux_2_4_20
-+/cpqarray.txt/1.5/Thu Oct 5 01:18:40 2000/-ko/Tlinux_2_4_20
-+/devices.txt/1.17/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/digiboard.txt/1.8/Thu Oct 5 01:18:40 2000/-ko/Tlinux_2_4_20
-+/digiepca.txt/1.4/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/dnotify.txt/1.3/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
-+/exception.txt/1.5/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
-+/floppy.txt/1.3/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/ftape.txt/1.5/Sat Jan 29 01:41:55 2000/-ko/Tlinux_2_4_20
-+/hayes-esp.txt/1.5/Sat Jan 29 01:41:55 2000/-ko/Tlinux_2_4_20
-+/highuid.txt/1.2/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/i810_rng.txt/1.2.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/ide.txt/1.10.2.1/Wed Sep 11 12:44:23 2002/-ko/Tlinux_2_4_20
-+/initrd.txt/1.3.2.1/Wed Sep 11 12:44:23 2002/-ko/Tlinux_2_4_20
-+/ioctl-number.txt/1.21/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
-+/isapnp.txt/1.4.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/java.txt/1.5/Wed Aug 22 03:23:53 2001/-ko/Tlinux_2_4_20
-+/kernel-doc-nano-HOWTO.txt/1.4.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/kernel-docs.txt/1.8.2.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/kernel-parameters.txt/1.17.2.3/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/kmod.txt/1.4/Sat Feb 5 06:47:03 2000/-ko/Tlinux_2_4_20
-+/ldm.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/locks.txt/1.3/Mon Feb 15 02:15:40 1999/-ko/Tlinux_2_4_20
-+/logo.gif/1.1/Wed Mar 4 07:15:06 1998/-kb/Tlinux_2_4_20
-+/logo.txt/1.2/Mon Feb 15 02:15:40 1999/-ko/Tlinux_2_4_20
-+/magic-number.txt/1.5/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+/mandatory.txt/1.2/Thu May 7 02:55:51 1998/-ko/Tlinux_2_4_20
-+/mca.txt/1.6/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+/md.txt/1.3/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/memory.txt/1.3/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/mkdev.cciss/1.1/Thu Oct 5 01:18:40 2000/-ko/Tlinux_2_4_20
-+/mkdev.ida/1.2/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/modules.txt/1.8/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+/moxa-smartio/1.2/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/mtrr.txt/1.7/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
-+/nbd.txt/1.3.4.1/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/nfsroot.txt/1.4/Tue Aug 25 09:12:48 1998/-ko/Tlinux_2_4_20
-+/nmi_watchdog.txt/1.4/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
-+/oops-tracing.txt/1.10/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
-+/paride.txt/1.6/Wed Feb 16 01:07:26 2000/-ko/Tlinux_2_4_20
-+/parport-lowlevel.txt/1.1/Thu Mar 2 02:36:48 2000/-ko/Tlinux_2_4_20
-+/parport.txt/1.18/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/pci.txt/1.15.2.2/Wed Jun 26 22:34:59 2002/-ko/Tlinux_2_4_20
-+/pcwd-watchdog.txt/1.2/Tue Sep 28 22:25:32 1999/-ko/Tlinux_2_4_20
-+/pm.txt/1.4.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/ramdisk.txt/1.3/Tue Aug 25 09:12:49 1998/-ko/Tlinux_2_4_20
-+/riscom8.txt/1.3/Thu May 7 02:55:54 1998/-ko/Tlinux_2_4_20
-+/rtc.txt/1.5/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/scsi-generic.txt/1.7.2.2/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/scsi.txt/1.2.6.2/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/serial-console.txt/1.6/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+/sgi-visws.txt/1.1/Mon Feb 15 02:15:42 1999/-ko/Tlinux_2_4_20
-+/smart-config.txt/1.3/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/smp.tex/1.3/Tue Aug 25 09:12:50 1998/-ko/Tlinux_2_4_20
-+/smp.txt/1.1/Mon Feb 15 02:15:42 1999/-ko/Tlinux_2_4_20
-+/sonypi.txt/1.3.2.3/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/specialix.txt/1.3/Sun Jan 3 17:50:00 1999/-ko/Tlinux_2_4_20
-+/spinlocks.txt/1.3/Tue Aug 25 09:12:50 1998/-ko/Tlinux_2_4_20
-+/stallion.txt/1.9/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/svga.txt/1.5/Thu Jun 17 13:25:15 1999/-ko/Tlinux_2_4_20
-+/sx.txt/1.3/Fri Apr 28 01:09:26 2000/-ko/Tlinux_2_4_20
-+/sysrq.txt/1.11.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/unicode.txt/1.2/Thu May 7 02:55:58 1998/-ko/Tlinux_2_4_20
-+/watchdog-api.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/watchdog.txt/1.6/Fri Oct 19 01:23:29 2001/-ko/Tlinux_2_4_20
-+/xterm-linux.xpm/1.1.1.1/Sun Jun 1 03:17:48 1997/-ko/Tlinux_2_4_20
-+/zorro.txt/1.2/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
-+D/BK-usage////
-+D/DocBook////
-+D/arm////
-+D/cdrom////
-+D/cris////
-+D/fb////
-+D/filesystems////
-+D/i2c////
-+D/i386////
-+D/ia64////
-+D/input////
-+D/isdn////
-+D/kbuild////
-+D/m68k////
-+D/mips////
-+D/networking////
-+D/parisc////
-+D/power////
-+D/powerpc////
-+D/s390////
-+D/sound////
-+D/sparc////
-+D/sysctl////
-+D/telephony////
-+D/usb////
-+D/video4linux////
-+D/vm////
-+D/x86_64////
-diff -urNd -urNd linux-2.4.20/Documentation/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/CVS/Repository
---- linux-2.4.20/Documentation/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Repository 2005-01-06 22:58:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation
-diff -urNd -urNd linux-2.4.20/Documentation/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/CVS/Root
---- linux-2.4.20/Documentation/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Root 2005-01-06 22:58:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/CVS/Tag
---- linux-2.4.20/Documentation/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/CVS/Tag 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Entries
---- linux-2.4.20/Documentation/DocBook/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Entries 2005-01-06 23:08:28.000000000 -0600
-@@ -0,0 +1,21 @@
-+/Makefile/1.21.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/deviceiobook.tmpl/1.2/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/journal-api.tmpl/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/kernel-api.tmpl/1.14.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/kernel-hacking.tmpl/1.6.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/kernel-locking.tmpl/1.7.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/mcabook.tmpl/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
-+/mousedrivers.tmpl/1.3/Mon Nov 5 20:15:20 2001/-ko/Tlinux_2_4_20
-+/parport-multi.fig/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
-+/parport-share.fig/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
-+/parport-structure.fig/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
-+/parportbook.tmpl/1.8.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/procfs-guide.tmpl/1.2/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/procfs_example.c/1.1/Wed Aug 22 03:23:53 2001/-ko/Tlinux_2_4_20
-+/sis900.tmpl/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/tulip-user.tmpl/1.2/Mon Nov 5 20:15:20 2001/-ko/Tlinux_2_4_20
-+/via-audio.tmpl/1.4.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/videobook.tmpl/1.6/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
-+/wanbook.tmpl/1.1/Sun Mar 19 01:28:42 2000/-ko/Tlinux_2_4_20
-+/z8530book.tmpl/1.2/Thu Jan 11 04:02:41 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Repository
---- linux-2.4.20/Documentation/DocBook/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Repository 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/DocBook
-diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Root
---- linux-2.4.20/Documentation/DocBook/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Root 2005-01-06 22:58:42.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/DocBook/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Tag
---- linux-2.4.20/Documentation/DocBook/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/DocBook/CVS/Tag 2005-01-06 22:58:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Entries
---- linux-2.4.20/Documentation/fb/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Entries 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1,14 @@
-+/00-INDEX/1.4/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
-+/README-sstfb.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/aty128fb.txt/1.2/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/clgenfb.txt/1.4/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/framebuffer.txt/1.8/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/internals.txt/1.3/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/matroxfb.txt/1.9.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/modedb.txt/1.2/Fri Jun 16 23:00:36 2000/-ko/Tlinux_2_4_20
-+/pvr2fb.txt/1.1/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
-+/sa1100fb.txt/1.1/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/tgafb.txt/1.3/Fri Apr 28 01:09:26 2000/-ko/Tlinux_2_4_20
-+/tridentfb.txt/1.1.2.2/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/vesafb.txt/1.5/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Repository
---- linux-2.4.20/Documentation/fb/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Repository 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/fb
-diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Root
---- linux-2.4.20/Documentation/fb/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Root 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/fb/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Tag
---- linux-2.4.20/Documentation/fb/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/fb/CVS/Tag 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Entries
---- linux-2.4.20/Documentation/filesystems/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,26 @@
-+/00-INDEX/1.11.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/Locking/1.4.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/adfs.txt/1.1/Sun Jun 13 16:29:39 1999/-ko/Tlinux_2_4_20
-+/affs.txt/1.7/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/befs.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/bfs.txt/1.3/Mon Jun 19 22:45:38 2000/-ko/Tlinux_2_4_20
-+/coda.txt/1.6/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/cramfs.txt/1.4.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/ext2.txt/1.3/Thu Aug 23 22:24:20 2001/-ko/Tlinux_2_4_20
-+/fat_cvf.txt/1.6/Mon Nov 5 20:15:20 2001/-ko/Tlinux_2_4_20
-+/hpfs.txt/1.5/Wed Aug 22 03:23:53 2001/-ko/Tlinux_2_4_20
-+/isofs.txt/1.3.4.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/jfs.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/ncpfs.txt/1.2/Tue Aug 25 09:12:59 1998/-ko/Tlinux_2_4_20
-+/ntfs.txt/1.9.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/proc.txt/1.8.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/romfs.txt/1.4/Tue Aug 25 09:12:59 1998/-ko/Tlinux_2_4_20
-+/smbfs.txt/1.7/Fri Jan 21 22:34:02 2000/-ko/Tlinux_2_4_20
-+/sysv-fs.txt/1.2/Tue Mar 3 01:22:29 1998/-ko/Tlinux_2_4_20
-+/tmpfs.txt/1.1.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/udf.txt/1.5/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/ufs.txt/1.3/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/umsdos.txt/1.3/Sat Sep 19 19:15:14 1998/-ko/Tlinux_2_4_20
-+/vfat.txt/1.9/Tue Nov 6 07:55:44 2001/-ko/Tlinux_2_4_20
-+/vfs.txt/1.11/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+D/devfs////
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Repository
---- linux-2.4.20/Documentation/filesystems/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Repository 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/filesystems
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Root
---- linux-2.4.20/Documentation/filesystems/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Root 2005-01-06 22:58:47.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Tag
---- linux-2.4.20/Documentation/filesystems/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/CVS/Tag 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Entries
---- linux-2.4.20/Documentation/filesystems/devfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Entries 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1,5 @@
-+/ChangeLog/1.14.2.4/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/README/1.10.2.5/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/ToDo/1.3/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/boot-options/1.3/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Repository
---- linux-2.4.20/Documentation/filesystems/devfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Repository 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/filesystems/devfs
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Root
---- linux-2.4.20/Documentation/filesystems/devfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Root 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/filesystems/devfs/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Tag
---- linux-2.4.20/Documentation/filesystems/devfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/filesystems/devfs/CVS/Tag 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Entries
---- linux-2.4.20/Documentation/i2c/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Entries 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1,9 @@
-+/dev-interface/1.4/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/functionality/1.1/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
-+/i2c-protocol/1.3/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/proc-interface/1.1/Sat Feb 5 06:47:04 2000/-ko/Tlinux_2_4_20
-+/smbus-protocol/1.2/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+/summary/1.2/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/ten-bit-addresses/1.1/Sat Feb 5 06:47:04 2000/-ko/Tlinux_2_4_20
-+/writing-clients/1.4/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Repository
---- linux-2.4.20/Documentation/i2c/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Repository 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/i2c
-diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Root
---- linux-2.4.20/Documentation/i2c/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Root 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/i2c/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Tag
---- linux-2.4.20/Documentation/i2c/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i2c/CVS/Tag 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Entries
---- linux-2.4.20/Documentation/i386/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Entries 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1,4 @@
-+/IO-APIC.txt/1.2/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/boot.txt/1.4.2.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/zero-page.txt/1.2/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Repository
---- linux-2.4.20/Documentation/i386/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Repository 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/i386
-diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Root
---- linux-2.4.20/Documentation/i386/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Root 2005-01-06 22:58:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/i386/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Tag
---- linux-2.4.20/Documentation/i386/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/i386/CVS/Tag 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Entries
---- linux-2.4.20/Documentation/ia64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Entries 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1,4 @@
-+/IRQ-redir.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/README/1.4/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
-+/efirtc.txt/1.3/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Repository
---- linux-2.4.20/Documentation/ia64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Repository 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/ia64
-diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Root
---- linux-2.4.20/Documentation/ia64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Root 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/ia64/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Tag
---- linux-2.4.20/Documentation/ia64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/ia64/CVS/Tag 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Entries
---- linux-2.4.20/Documentation/input/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Entries 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1,9 @@
-+/cs461x.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/ff.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/gameport-programming.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/input-programming.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/input.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/joystick-api.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/joystick-parport.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/joystick.txt/1.1/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Repository
---- linux-2.4.20/Documentation/input/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Repository 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/input
-diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Root
---- linux-2.4.20/Documentation/input/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Root 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/input/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Tag
---- linux-2.4.20/Documentation/input/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/input/CVS/Tag 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Entries
---- linux-2.4.20/Documentation/isdn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Entries 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1,24 @@
-+/00-INDEX/1.7/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/CREDITS/1.7/Thu Feb 24 00:12:36 2000/-ko/Tlinux_2_4_20
-+/HiSax.cert/1.4/Fri Aug 24 03:38:27 2001/-ko/Tlinux_2_4_20
-+/INTERFACE/1.7.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/INTERFACE.fax/1.4.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/README/1.12/Fri Oct 19 01:23:30 2001/-ko/Tlinux_2_4_20
-+/README.FAQ/1.1/Sat Jan 29 01:41:55 2000/-ko/Tlinux_2_4_20
-+/README.HiSax/1.12.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/README.act2000/1.5.4.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/README.audio/1.6.4.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/README.avmb1/1.5/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/README.concap/1.5/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/README.diversion/1.4/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+/README.eicon/1.8.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/README.fax/1.4/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/README.hfc-pci/1.4/Fri Mar 9 20:33:40 2001/-ko/Tlinux_2_4_20
-+/README.hysdn/1.5.2.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/README.icn/1.7.4.1/Sat Dec 29 05:37:47 2001/-ko/Tlinux_2_4_20
-+/README.pcbit/1.3/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
-+/README.sc/1.3/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/README.syncppp/1.1.1.1/Sun Jun 1 03:17:48 1997/-ko/Tlinux_2_4_20
-+/README.x25/1.4/Thu Feb 24 00:12:36 2000/-ko/Tlinux_2_4_20
-+/syncPPP.FAQ/1.2/Thu May 7 02:56:11 1998/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Repository
---- linux-2.4.20/Documentation/isdn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Repository 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/isdn
-diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Root
---- linux-2.4.20/Documentation/isdn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Root 2005-01-06 22:58:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/isdn/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Tag
---- linux-2.4.20/Documentation/isdn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/isdn/CVS/Tag 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Entries
---- linux-2.4.20/Documentation/kbuild/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Entries 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1,6 @@
-+/00-INDEX/1.2/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/bug-list.txt/1.1/Sun Jun 13 16:29:41 1999/-ko/Tlinux_2_4_20
-+/commands.txt/1.2/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/config-language.txt/1.8.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/makefiles.txt/1.5.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Repository
---- linux-2.4.20/Documentation/kbuild/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Repository 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/kbuild
-diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Root
---- linux-2.4.20/Documentation/kbuild/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Root 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/kbuild/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Tag
---- linux-2.4.20/Documentation/kbuild/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/kbuild/CVS/Tag 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Entries
---- linux-2.4.20/Documentation/m68k/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Entries 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1,4 @@
-+/00-INDEX/1.2/Sat Dec 6 23:51:45 1997/-ko/Tlinux_2_4_20
-+/README.buddha/1.2/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+/kernel-options.txt/1.7/Tue Aug 8 12:37:17 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Repository
---- linux-2.4.20/Documentation/m68k/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Repository 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/m68k
-diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Root
---- linux-2.4.20/Documentation/m68k/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Root 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/m68k/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Tag
---- linux-2.4.20/Documentation/m68k/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/m68k/CVS/Tag 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Entries
---- linux-2.4.20/Documentation/mips/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,3 @@
-+/GT64120.README/1.1/Mon Feb 5 01:33:01 2001/-ko/Tlinux_2_4_20
-+/time.README/1.1.2.1/Mon Sep 2 15:16:20 2002/-ko/Tlinux_2_4_20
-+D/pci////
-diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Repository
---- linux-2.4.20/Documentation/mips/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Repository 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/mips
-diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Root
---- linux-2.4.20/Documentation/mips/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Root 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/mips/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Tag
---- linux-2.4.20/Documentation/mips/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/CVS/Tag 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Entries
---- linux-2.4.20/Documentation/mips/pci/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Entries 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1,2 @@
-+/pci.README/1.1/Sat Aug 18 14:19:34 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Repository
---- linux-2.4.20/Documentation/mips/pci/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Repository 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/mips/pci
-diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Root
---- linux-2.4.20/Documentation/mips/pci/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Root 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/mips/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Tag
---- linux-2.4.20/Documentation/mips/pci/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/pci/CVS/Tag 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/mips/time.README linux-2.4.20-mipscvs-20050106/Documentation/mips/time.README
---- linux-2.4.20/Documentation/mips/time.README 2001-04-20 18:23:12.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/Documentation/mips/time.README 2002-09-02 10:16:20.000000000 -0500
-@@ -103,9 +103,9 @@
- Do you plan to use the CPU counter register as the timer interrupt
- or use an exnternal timer?
-
-- In order to CPU counter register as the timer interrupt source, you must
-- know the counter speed (mips_counter_frequency). It is usually the
-- same as the CPU speed (Or it is ALWAYS the same?)
-+ In order to use CPU counter register as the timer interrupt source, you
-+ must know the counter speed (mips_counter_frequency). It is usually the
-+ same as the CPU speed or an integral divisor of it.
-
- d) decide on whether you want to use high-level or low-level timer
- interrupt routines. The low-level one is presumably faster, but should
-@@ -154,8 +154,45 @@
- for some of the functions in time.c.
-
- For example, you may define your own timer interrupt routine, which does
--its own processing and in turn calls timer_interrupt().
-+some of its own processing and then calls timer_interrupt().
-
- You can also over-ride any of the built-in functions (gettimeoffset,
- RTC routines and/or timer interrupt routine).
-
-+
-+PORTING NOTES FOR SMP
-+----------------------
-+
-+If you have a SMP box, things are slightly more complicated.
-+
-+The time service running every jiffy is logically divided into two parts:
-+
-+ 1) the one for the whole system (defined in timer_interrupt())
-+ 2) the one that should run for each CPU (defined in local_timer_interrupt())
-+
-+You need to decide on your timer interrupt sources.
-+
-+ case 1) - whole system has only one timer interrupt delivered to one CPU
-+
-+ In this case, you set up timer interrupt as in UP systems. In addtion,
-+ you need to set emulate_local_timer_interrupt to 1 so that other
-+ CPUs get to call local_timer_interrupt().
-+
-+ THIS IS CURRENTLY NOT IMPLEMNETED. However, it is rather easy to write
-+ one should such a need arise. You simply make a IPI call.
-+
-+ case 2) - each CPU has a separate timer interrupt
-+
-+ In this case, you need to set up IRQ such that each of them will
-+ call local_timer_interrupt(). In addition, you need to arrange
-+ one and only one of them to call timer_interrupt().
-+
-+ You can also do the low-level version of those interrupt routines,
-+ following similar dispatching routes described above.
-+
-+Note about do_gettimeoffset():
-+
-+ It is very likely the CPU counter registers are not sync'ed up in a SMP box.
-+ Therefore you cannot really use the many of the existing routines that
-+ are based on CPU counter. You should wirte your own gettimeoffset rouinte
-+ if you want intra-jiffy resolution.
-diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Entries
---- linux-2.4.20/Documentation/networking/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,79 @@
-+/00-INDEX/1.6.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/3c359.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/3c505.txt/1.1.1.1/Sun Jun 1 03:17:49 1997/-ko/Tlinux_2_4_20
-+/3c509.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/6pack.txt/1.2/Mon Feb 15 02:15:47 1999/-ko/Tlinux_2_4_20
-+/8139too.txt/1.14.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/Configurable/1.3/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/DLINK.txt/1.4/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/NAPI_HOWTO.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/PLIP.txt/1.4/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/README.sb1000/1.3/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/TODO/1.2/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
-+/alias.txt/1.4/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
-+/arcnet-hardware.txt/1.8.4.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/arcnet.txt/1.6/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/atm.txt/1.1/Wed Feb 23 00:40:55 2000/-ko/Tlinux_2_4_20
-+/ax25.txt/1.3/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/baycom.txt/1.5/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
-+/bonding.txt/1.1.2.1/Wed Jun 26 22:35:00 2002/-ko/Tlinux_2_4_20
-+/bridge.txt/1.2/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
-+/comx.txt/1.3.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/cops.txt/1.5/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/cs89x0.txt/1.10.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/de4x5.txt/1.5/Mon Feb 15 02:15:48 1999/-ko/Tlinux_2_4_20
-+/decnet.txt/1.8.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
-+/depca.txt/1.1/Tue Mar 17 22:06:08 1998/-ko/Tlinux_2_4_20
-+/dgrs.txt/1.3/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+/dl2k.txt/1.3.2.3/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/dmfe.txt/1.3/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/driver.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/e100.txt/1.1.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/e1000.txt/1.1.2.2/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/eql.txt/1.3/Tue Aug 25 09:13:05 1998/-ko/Tlinux_2_4_20
-+/ethertap.txt/1.8/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/ewrk3.txt/1.2.6.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/filter.txt/1.6/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/fore200e.txt/1.2/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
-+/framerelay.txt/1.2/Tue Aug 25 09:13:06 1998/-ko/Tlinux_2_4_20
-+/ifenslave.c/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/ip-sysctl.txt/1.17.2.2/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/ip_dynaddr.txt/1.1/Thu May 7 02:56:18 1998/-ko/Tlinux_2_4_20
-+/ipddp.txt/1.6/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/iphase.txt/1.2/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/irda.txt/1.3/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
-+/khttpd.txt/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/lapb-module.txt/1.5/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
-+/ltpc.txt/1.4/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
-+/multicast.txt/1.6/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/ncsa-telnet/1.1.1.1/Sun Jun 1 03:17:49 1997/-ko/Tlinux_2_4_20
-+/net-modules.txt/1.3/Thu May 7 02:56:20 1998/-ko/Tlinux_2_4_20
-+/netdevices.txt/1.1/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
-+/olympic.txt/1.4/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
-+/pktgen.txt/1.1.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/policy-routing.txt/1.4/Tue Sep 28 22:25:35 1999/-ko/Tlinux_2_4_20
-+/ppp_generic.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/pt.txt/1.3/Sun Jun 13 16:29:44 1999/-ko/Tlinux_2_4_20
-+/ray_cs.txt/1.1/Sat Dec 4 03:58:58 1999/-ko/Tlinux_2_4_20
-+/routing.txt/1.4/Sun Jun 13 16:29:45 1999/-ko/Tlinux_2_4_20
-+/shaper.txt/1.4/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/sis900.txt/1.5/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
-+/sk98lin.txt/1.5/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
-+/skfp.txt/1.2.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/slicecom.hun/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/slicecom.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/smc9.txt/1.2/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/smctr.txt/1.4/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/soundmodem.txt/1.5/Sat Jan 29 01:41:56 2000/-ko/Tlinux_2_4_20
-+/tcp.txt/1.1.1.1/Sun Jun 1 03:17:49 1997/-ko/Tlinux_2_4_20
-+/tlan.txt/1.7/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/tms380tr.txt/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/tuntap.txt/1.3.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/vortex.txt/1.10.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/wan-router.txt/1.8/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
-+/wanpipe.txt/1.6/Wed Jun 13 17:27:36 2001/-ko/Tlinux_2_4_20
-+/wavelan.txt/1.6/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/x25-iface.txt/1.3/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
-+/x25.txt/1.4/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+/z8530drv.txt/1.7/Thu Nov 23 02:00:47 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Repository
---- linux-2.4.20/Documentation/networking/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Repository 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/networking
-diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Root
---- linux-2.4.20/Documentation/networking/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Root 2005-01-06 22:58:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/networking/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Tag
---- linux-2.4.20/Documentation/networking/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/networking/CVS/Tag 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Entries
---- linux-2.4.20/Documentation/parisc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Entries 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1,5 @@
-+/00-INDEX/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/IODC.txt/1.1/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
-+/debugging/1.1/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
-+/registers/1.2.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Repository
---- linux-2.4.20/Documentation/parisc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Repository 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/parisc
-diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Root
---- linux-2.4.20/Documentation/parisc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Root 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/parisc/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Tag
---- linux-2.4.20/Documentation/parisc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/parisc/CVS/Tag 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Entries
---- linux-2.4.20/Documentation/power/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Entries 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1,2 @@
-+/pci.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Repository
---- linux-2.4.20/Documentation/power/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Repository 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/power
-diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Root
---- linux-2.4.20/Documentation/power/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Root 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/power/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Tag
---- linux-2.4.20/Documentation/power/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/power/CVS/Tag 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Entries
---- linux-2.4.20/Documentation/powerpc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Entries 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1,8 @@
-+/00-INDEX/1.6.4.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/SBC8260_memory_mapping.txt/1.2/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/cpu_features.txt/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/ppc_htab.txt/1.5/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/smp.txt/1.5/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/sound.txt/1.5/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/zImage_layout.txt/1.2/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Repository
---- linux-2.4.20/Documentation/powerpc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Repository 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/powerpc
-diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Root
---- linux-2.4.20/Documentation/powerpc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Root 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/powerpc/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Tag
---- linux-2.4.20/Documentation/powerpc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/powerpc/CVS/Tag 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Entries
---- linux-2.4.20/Documentation/s390/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,11 @@
-+/3270.ChangeLog/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/3270.txt/1.3/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/CommonIO/1.2/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/DASD/1.4/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/Debugging390.txt/1.3.2.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/TAPE/1.2/Fri Aug 24 03:38:27 2001/-ko/Tlinux_2_4_20
-+/cds.txt/1.6/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/chandev.8/1.5/Sun Dec 2 11:34:34 2001/-ko/Tlinux_2_4_20
-+/config3270.sh/1.2/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/s390dbf.txt/1.3/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Repository
---- linux-2.4.20/Documentation/s390/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Repository 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/s390
-diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Root
---- linux-2.4.20/Documentation/s390/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Root 2005-01-06 22:58:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/s390/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Tag
---- linux-2.4.20/Documentation/s390/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/s390/CVS/Tag 2005-01-06 22:58:56.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Entries
---- linux-2.4.20/Documentation/sound/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,49 @@
-+/AD1816/1.3.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/ALS/1.3/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
-+/AWE32/1.9/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/AudioExcelDSP16/1.4.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/CMI8330/1.6/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
-+/CMI8338/1.5/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/CS4232/1.2/Tue Aug 25 09:13:10 1998/-ko/Tlinux_2_4_20
-+/ChangeLog.awe/1.2/Sun Jun 13 16:29:47 1999/-ko/Tlinux_2_4_20
-+/ChangeLog.multisound/1.4/Mon Jun 21 22:16:06 1999/-ko/Tlinux_2_4_20
-+/ESS/1.3/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/ESS1868/1.3/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/INSTALL.awe/1.3/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/Introduction/1.9/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/MAD16/1.4/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/Maestro/1.6/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/Maestro3/1.1.2.1/Sat Jan 11 17:53:08 2003/-ko/Tlinux_2_4_20
-+/MultiSound/1.4/Wed Feb 16 01:07:27 2000/-ko/Tlinux_2_4_20
-+/NEWS/1.1.4.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/NM256/1.3/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/OPL3/1.1/Sun Apr 5 11:23:39 1998/-ko/Tlinux_2_4_20
-+/OPL3-SA/1.3/Mon Mar 13 20:55:17 2000/-ko/Tlinux_2_4_20
-+/OPL3-SA2/1.6.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/Opti/1.5/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/PAS16/1.2.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/PSS/1.2/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/PSS-updates/1.1/Thu Oct 5 01:18:41 2000/-ko/Tlinux_2_4_20
-+/README.OSS/1.6.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/README.awe/1.3/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
-+/README.modules/1.4/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/README.ymfsb/1.2/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/SoundPro/1.3/Wed Apr 19 04:00:03 2000/-ko/Tlinux_2_4_20
-+/Soundblaster/1.7/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
-+/Tropez+/1.1/Tue Aug 25 09:13:12 1998/-ko/Tlinux_2_4_20
-+/VIA-chipset/1.1/Mon Feb 15 02:15:54 1999/-ko/Tlinux_2_4_20
-+/VIBRA16/1.1/Sun Jun 13 16:29:50 1999/-ko/Tlinux_2_4_20
-+/WaveArtist/1.1/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/Wavefront/1.5/Mon Mar 13 20:55:17 2000/-ko/Tlinux_2_4_20
-+/btaudio/1.2/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/cs46xx/1.1/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/es1370/1.2/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/es1371/1.2/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/forte/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/mwave/1.3/Sun Jun 13 16:29:50 1999/-ko/Tlinux_2_4_20
-+/rme96xx/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/solo1/1.3/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/sonicvibes/1.2/Wed Jun 13 17:27:37 2001/-ko/Tlinux_2_4_20
-+/ultrasound/1.2/Tue Aug 25 09:13:14 1998/-ko/Tlinux_2_4_20
-+/vwsnd/1.2/Sat Oct 9 00:00:49 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Repository
---- linux-2.4.20/Documentation/sound/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Repository 2005-01-06 22:58:56.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/sound
-diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Root
---- linux-2.4.20/Documentation/sound/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Root 2005-01-06 22:58:56.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/sound/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Tag
---- linux-2.4.20/Documentation/sound/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sound/CVS/Tag 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Entries
---- linux-2.4.20/Documentation/sparc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Entries 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1,2 @@
-+/sbus_drivers.txt/1.1/Mon Aug 28 22:00:11 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Repository
---- linux-2.4.20/Documentation/sparc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Repository 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/sparc
-diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Root
---- linux-2.4.20/Documentation/sparc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Root 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/sparc/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Tag
---- linux-2.4.20/Documentation/sparc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sparc/CVS/Tag 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Entries
---- linux-2.4.20/Documentation/sysctl/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Entries 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1,6 @@
-+/README/1.7/Tue Sep 28 22:25:36 1999/-ko/Tlinux_2_4_20
-+/fs.txt/1.4/Wed Feb 16 01:07:27 2000/-ko/Tlinux_2_4_20
-+/kernel.txt/1.10/Mon Nov 5 20:15:21 2001/-ko/Tlinux_2_4_20
-+/sunrpc.txt/1.2/Tue Sep 28 22:25:37 1999/-ko/Tlinux_2_4_20
-+/vm.txt/1.13.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Repository
---- linux-2.4.20/Documentation/sysctl/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Repository 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/sysctl
-diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Root
---- linux-2.4.20/Documentation/sysctl/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Root 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/sysctl/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Tag
---- linux-2.4.20/Documentation/sysctl/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/sysctl/CVS/Tag 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Entries
---- linux-2.4.20/Documentation/telephony/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Entries 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1,2 @@
-+/ixj.txt/1.1/Sat Feb 5 06:47:05 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Repository
---- linux-2.4.20/Documentation/telephony/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Repository 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/telephony
-diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Root
---- linux-2.4.20/Documentation/telephony/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Root 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/telephony/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Tag
---- linux-2.4.20/Documentation/telephony/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/telephony/CVS/Tag 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Entries
---- linux-2.4.20/Documentation/usb/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Entries 2005-01-06 22:58:59.000000000 -0600
-@@ -0,0 +1,26 @@
-+/CREDITS/1.7/Mon Nov 5 20:15:21 2001/-ko/Tlinux_2_4_20
-+/URB.txt/1.4/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
-+/acm.txt/1.2/Wed Apr 19 04:00:03 2000/-ko/Tlinux_2_4_20
-+/auerswald.txt/1.1.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/bluetooth.txt/1.1/Thu Nov 23 02:00:48 2000/-ko/Tlinux_2_4_20
-+/brlvger.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/dc2xx.txt/1.3/Fri Apr 28 01:09:27 2000/-ko/Tlinux_2_4_20
-+/ehci.txt/1.1.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/error-codes.txt/1.4/Tue Nov 6 00:54:52 2001/-ko/Tlinux_2_4_20
-+/hiddev.txt/1.1/Fri Oct 19 01:23:31 2001/-ko/Tlinux_2_4_20
-+/hotplug.txt/1.3/Thu Jun 14 04:23:45 2001/-ko/Tlinux_2_4_20
-+/ibmcam.txt/1.4.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/ohci.txt/1.2/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/ov511.txt/1.17.4.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/philips.txt/1.4.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
-+/proc_usb_info.txt/1.4.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/rio.txt/1.1/Tue Mar 7 16:02:18 2000/-ko/Tlinux_2_4_20
-+/scanner-hp-sane.txt/1.4/Fri May 12 21:06:01 2000/-ko/Tlinux_2_4_20
-+/scanner.txt/1.6.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
-+/se401.txt/1.1/Wed Aug 22 03:23:54 2001/-ko/Tlinux_2_4_20
-+/silverlink.txt/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/stv680.txt/1.1.2.1/Tue Feb 26 05:58:57 2002/-ko/Tlinux_2_4_20
-+/uhci.txt/1.3/Fri Mar 9 20:33:41 2001/-ko/Tlinux_2_4_20
-+/usb-help.txt/1.3/Wed Jan 10 05:27:25 2001/-ko/Tlinux_2_4_20
-+/usb-serial.txt/1.18.2.2/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Repository
---- linux-2.4.20/Documentation/usb/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Repository 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/usb
-diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Root
---- linux-2.4.20/Documentation/usb/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Root 2005-01-06 22:58:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/usb/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Tag
---- linux-2.4.20/Documentation/usb/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/usb/CVS/Tag 2005-01-06 22:58:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Entries
---- linux-2.4.20/Documentation/video4linux/bttv/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Entries 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1,17 @@
-+/CARDLIST/1.11.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/CONTRIBUTORS/1.4/Fri Jul 21 22:00:57 2000/-ko/Tlinux_2_4_20
-+/Cards/1.2.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/ICs/1.1/Sat Sep 19 19:15:18 1998/-ko/Tlinux_2_4_20
-+/Insmod-options/1.9.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/MAKEDEV/1.1/Sat Feb 5 06:47:06 2000/-ko/Tlinux_2_4_20
-+/Modules.conf/1.2/Wed Jan 10 17:17:53 2001/-ko/Tlinux_2_4_20
-+/PROBLEMS/1.5/Sat Feb 5 06:47:06 2000/-ko/Tlinux_2_4_20
-+/README/1.10.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/README.WINVIEW/1.1/Thu Jun 17 13:25:22 1999/-ko/Tlinux_2_4_20
-+/README.freeze/1.1.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/README.quirks/1.2/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
-+/Sound-FAQ/1.5.2.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/Specs/1.1/Tue Nov 28 03:58:46 2000/-ko/Tlinux_2_4_20
-+/THANKS/1.2/Tue Sep 28 22:25:38 1999/-ko/Tlinux_2_4_20
-+/Tuners/1.1.2.1/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Repository
---- linux-2.4.20/Documentation/video4linux/bttv/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/video4linux/bttv
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Root
---- linux-2.4.20/Documentation/video4linux/bttv/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/bttv/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Tag
---- linux-2.4.20/Documentation/video4linux/bttv/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/bttv/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Entries
---- linux-2.4.20/Documentation/video4linux/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Entries 2005-01-06 23:08:27.000000000 -0600
-@@ -0,0 +1,9 @@
-+/API.html/1.4.4.1/Wed Jun 26 22:35:01 2002/-ko/Tlinux_2_4_20
-+/CQcam.txt/1.2/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/README.cpia/1.3/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/Zoran/1.1.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
-+/meye.txt/1.2.2.2/Wed Sep 11 12:44:24 2002/-ko/Tlinux_2_4_20
-+/radiotrack.txt/1.3/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+/w9966.txt/1.1.2.1/Sat Dec 29 05:37:48 2001/-ko/Tlinux_2_4_20
-+/zr36120.txt/1.3/Tue Aug 8 12:37:18 2000/-ko/Tlinux_2_4_20
-+D/bttv////
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Repository
---- linux-2.4.20/Documentation/video4linux/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Repository 2005-01-06 22:58:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/video4linux
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Root
---- linux-2.4.20/Documentation/video4linux/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Root 2005-01-06 22:58:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/video4linux/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Tag
---- linux-2.4.20/Documentation/video4linux/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/video4linux/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Entries
---- linux-2.4.20/Documentation/vm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Entries 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1,4 @@
-+/balance/1.2/Thu Mar 2 02:36:49 2000/-ko/Tlinux_2_4_20
-+/locking/1.6/Thu Apr 5 04:56:07 2001/-ko/Tlinux_2_4_20
-+/numa/1.3/Tue Aug 8 18:28:31 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Repository
---- linux-2.4.20/Documentation/vm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/vm
-diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Root
---- linux-2.4.20/Documentation/vm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/vm/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Tag
---- linux-2.4.20/Documentation/vm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/vm/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Entries linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Entries
---- linux-2.4.20/Documentation/x86_64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Entries 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1,3 @@
-+/BUGS/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+/mm.txt/1.1.2.1/Wed Sep 11 12:44:25 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Repository linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Repository
---- linux-2.4.20/Documentation/x86_64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Repository 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/Documentation/x86_64
-diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Root linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Root
---- linux-2.4.20/Documentation/x86_64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Root 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/Documentation/x86_64/CVS/Tag linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Tag
---- linux-2.4.20/Documentation/x86_64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Documentation/x86_64/CVS/Tag 2005-01-06 22:59:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Entries
---- linux-2.4.20/drivers/acorn/block/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Entries 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Config.in/1.5/Sat Dec 4 03:59:02 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.8/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/fd1772.c/1.18.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/fd1772dma.S/1.2/Tue Jun 22 23:06:34 1999/-ko/Tlinux_2_4_20
-+/mfm.S/1.2/Tue Jun 22 23:06:35 1999/-ko/Tlinux_2_4_20
-+/mfmhd.c/1.17.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Repository
---- linux-2.4.20/drivers/acorn/block/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acorn/block
-diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Root
---- linux-2.4.20/drivers/acorn/block/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acorn/block/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Tag
---- linux-2.4.20/drivers/acorn/block/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/block/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Entries
---- linux-2.4.20/drivers/acorn/char/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Entries 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1.6.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.13/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
-+/defkeymap-acorn.c/1.4/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
-+/defkeymap-acorn.map/1.1/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
-+/defkeymap-l7200.c/1.1/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
-+/i2c.c/1.3/Thu Apr 5 04:56:12 2001/-ko/Tlinux_2_4_20
-+/keyb_arc.c/1.10/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
-+/keyb_ps2.c/1.11/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/mouse_ps2.c/1.2.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/mouse_rpc.c/1.8/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/pcf8583.c/1.4.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/pcf8583.h/1.2/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/serial-atomwide.c/1.3/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/serial-card.c/1.6/Fri Oct 19 01:23:51 2001/-ko/Tlinux_2_4_20
-+/serial-dualsp.c/1.3/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Repository
---- linux-2.4.20/drivers/acorn/char/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acorn/char
-diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Root
---- linux-2.4.20/drivers/acorn/char/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acorn/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Tag
---- linux-2.4.20/drivers/acorn/char/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/CVS/Tag 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acorn/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acorn/char/.cvsignore
---- linux-2.4.20/drivers/acorn/char/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/char/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Entries
---- linux-2.4.20/drivers/acorn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,6 @@
-+/Makefile/1.2/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/README/1.2/Thu Jan 27 01:05:25 2000/-ko/Tlinux_2_4_20
-+D/block////
-+D/char////
-+D/net////
-+D/scsi////
-diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Repository
---- linux-2.4.20/drivers/acorn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acorn
-diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Root
---- linux-2.4.20/drivers/acorn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acorn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Tag
---- linux-2.4.20/drivers/acorn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Entries
---- linux-2.4.20/drivers/acorn/net/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Entries 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1,8 @@
-+/Config.in/1.3/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/ether1.c/1.14/Fri Oct 19 01:23:51 2001/-ko/Tlinux_2_4_20
-+/ether1.h/1.5/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/ether3.c/1.13/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
-+/ether3.h/1.7/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/etherh.c/1.14.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Repository
---- linux-2.4.20/drivers/acorn/net/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Repository 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acorn/net
-diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Root
---- linux-2.4.20/drivers/acorn/net/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Root 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acorn/net/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Tag
---- linux-2.4.20/drivers/acorn/net/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/net/CVS/Tag 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Entries
---- linux-2.4.20/drivers/acorn/scsi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Entries 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1,21 @@
-+/.cvsignore/1.1/Mon Nov 5 20:15:31 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.5.4.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.9/Fri Mar 9 20:33:53 2001/-ko/Tlinux_2_4_20
-+/acornscsi-io.S/1.2/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/acornscsi.c/1.12.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/acornscsi.h/1.7/Sat Sep 22 12:49:16 2001/-ko/Tlinux_2_4_20
-+/arxescsi.c/1.9/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/arxescsi.h/1.3/Fri May 12 23:48:37 2000/-ko/Tlinux_2_4_20
-+/cumana_1.c/1.6/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
-+/cumana_2.c/1.14/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/ecoscsi.c/1.8.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/eesox.c/1.12/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/fas216.c/1.14/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/fas216.h/1.7/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/msgqueue.c/1.7/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/msgqueue.h/1.5/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+/oak.c/1.7/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/powertec.c/1.14/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/queue.c/1.7/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/queue.h/1.3/Thu Oct 5 01:18:45 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Repository
---- linux-2.4.20/drivers/acorn/scsi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Repository 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acorn/scsi
-diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Root
---- linux-2.4.20/drivers/acorn/scsi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Root 2005-01-06 23:01:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Tag
---- linux-2.4.20/drivers/acorn/scsi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/CVS/Tag 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acorn/scsi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/.cvsignore
---- linux-2.4.20/drivers/acorn/scsi/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acorn/scsi/.cvsignore 2001-11-05 14:15:31.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Entries
---- linux-2.4.20/drivers/acpi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.1/Sat Jul 8 00:53:04 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.1/Wed Aug 22 03:24:04 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.9/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/acpi_ksyms.c/1.4.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/driver.c/1.11/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/os.c/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+D/debugger////
-+D/dispatcher////
-+D/events////
-+D/executer////
-+D/hardware////
-+D/include////
-+D/kdb////
-+D/namespace////
-+D/ospm////
-+D/parser////
-+D/resources////
-+D/tables////
-+D/utilities////
-diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Repository
---- linux-2.4.20/drivers/acpi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Repository 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi
-diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Root
---- linux-2.4.20/drivers/acpi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Root 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Tag
---- linux-2.4.20/drivers/acpi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/CVS/Tag 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/.cvsignore
---- linux-2.4.20/drivers/acpi/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/.cvsignore 2000-07-07 19:53:04.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Entries
---- linux-2.4.20/drivers/acpi/debugger/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Entries 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1,12 @@
-+/Makefile/1.1/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
-+/dbcmds.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbdisasm.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbdisply.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbexec.c/1.2/Fri Oct 19 01:23:52 2001/-ko/Tlinux_2_4_20
-+/dbfileio.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbhistry.c/1.2/Fri Oct 19 01:23:53 2001/-ko/Tlinux_2_4_20
-+/dbinput.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbstats.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbutils.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dbxface.c/1.3/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Repository
---- linux-2.4.20/drivers/acpi/debugger/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Repository 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/debugger
-diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Root
---- linux-2.4.20/drivers/acpi/debugger/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Root 2005-01-06 23:01:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/debugger/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Tag
---- linux-2.4.20/drivers/acpi/debugger/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/debugger/CVS/Tag 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Entries
---- linux-2.4.20/drivers/acpi/dispatcher/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Entries 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
-+/dsfield.c/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/dsmethod.c/1.7/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dsmthdat.c/1.6/Fri Oct 19 01:23:53 2001/-ko/Tlinux_2_4_20
-+/dsobject.c/1.8/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dsopcode.c/1.8/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dsutils.c/1.7/Tue Nov 6 07:55:50 2001/-ko/Tlinux_2_4_20
-+/dswexec.c/1.7.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/dswload.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/dswscope.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/dswstate.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Repository
---- linux-2.4.20/drivers/acpi/dispatcher/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Repository 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/dispatcher
-diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Root
---- linux-2.4.20/drivers/acpi/dispatcher/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Root 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Tag
---- linux-2.4.20/drivers/acpi/dispatcher/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/CVS/Tag 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/dispatcher/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/.cvsignore
---- linux-2.4.20/drivers/acpi/dispatcher/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/dispatcher/.cvsignore 2001-01-14 22:16:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Entries
---- linux-2.4.20/drivers/acpi/events/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Entries 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
-+/evevent.c/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/evmisc.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/evregion.c/1.8/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/evrgnini.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/evsci.c/1.7/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
-+/evxface.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/evxfevnt.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/evxfregn.c/1.7/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Repository
---- linux-2.4.20/drivers/acpi/events/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Repository 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/events
-diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Root
---- linux-2.4.20/drivers/acpi/events/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Root 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/events/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Tag
---- linux-2.4.20/drivers/acpi/events/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/CVS/Tag 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/events/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/events/.cvsignore
---- linux-2.4.20/drivers/acpi/events/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/events/.cvsignore 2001-01-14 22:16:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Entries
---- linux-2.4.20/drivers/acpi/executer/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Entries 2005-01-06 23:01:13.000000000 -0600
-@@ -0,0 +1,26 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
-+/exconfig.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exconvrt.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/excreate.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exdump.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exfield.c/1.2/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
-+/exfldio.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exmisc.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exmutex.c/1.2/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
-+/exnames.c/1.2/Fri Oct 19 01:23:54 2001/-ko/Tlinux_2_4_20
-+/exoparg1.c/1.1/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exoparg2.c/1.1/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exoparg3.c/1.1/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exoparg6.c/1.1/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exprep.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exregion.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exresnte.c/1.3.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/exresolv.c/1.3/Tue Nov 6 07:55:51 2001/-ko/Tlinux_2_4_20
-+/exresop.c/1.3/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/exstore.c/1.3.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/exstoren.c/1.2/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/exstorob.c/1.2/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/exsystem.c/1.2/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/exutils.c/1.3/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Repository
---- linux-2.4.20/drivers/acpi/executer/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Repository 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/executer
-diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Root
---- linux-2.4.20/drivers/acpi/executer/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Root 2005-01-06 23:01:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Tag
---- linux-2.4.20/drivers/acpi/executer/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/CVS/Tag 2005-01-06 23:01:13.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/executer/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/.cvsignore
---- linux-2.4.20/drivers/acpi/executer/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/executer/.cvsignore 2001-08-21 22:24:05.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Entries
---- linux-2.4.20/drivers/acpi/hardware/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Entries 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:05 2001/-ko/Tlinux_2_4_20
-+/hwacpi.c/1.7/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/hwgpe.c/1.7/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/hwregs.c/1.7/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/hwsleep.c/1.5/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/hwtimer.c/1.5/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Repository
---- linux-2.4.20/drivers/acpi/hardware/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Repository 2005-01-06 23:01:13.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/hardware
-diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Root
---- linux-2.4.20/drivers/acpi/hardware/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Root 2005-01-06 23:01:13.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Tag
---- linux-2.4.20/drivers/acpi/hardware/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/CVS/Tag 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/hardware/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/.cvsignore
---- linux-2.4.20/drivers/acpi/hardware/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/hardware/.cvsignore 2001-01-14 22:16:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Entries
---- linux-2.4.20/drivers/acpi/include/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,28 @@
-+/acconfig.h/1.8/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/acdebug.h/1.7/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/acdispat.h/1.6/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/acevents.h/1.6/Tue Nov 6 07:55:52 2001/-ko/Tlinux_2_4_20
-+/acexcep.h/1.6/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/acglobal.h/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/achware.h/1.6/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acinterp.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/aclocal.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acmacros.h/1.6/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acnamesp.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acobject.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acoutput.h/1.6/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/acparser.h/1.5/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acpi.h/1.4/Wed Aug 22 03:24:06 2001/-ko/Tlinux_2_4_20
-+/acpiosxf.h/1.6/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/acpixf.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acresrc.h/1.4/Fri Oct 19 01:23:55 2001/-ko/Tlinux_2_4_20
-+/acstruct.h/1.3/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/actables.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/actbl.h/1.6/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/actbl1.h/1.4/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/actbl2.h/1.5/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/actbl71.h/1.5/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/actypes.h/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/acutils.h/1.3/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/amlcode.h/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+D/platform////
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Repository
---- linux-2.4.20/drivers/acpi/include/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Repository 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/include
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Root
---- linux-2.4.20/drivers/acpi/include/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Root 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Tag
---- linux-2.4.20/drivers/acpi/include/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/CVS/Tag 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Entries
---- linux-2.4.20/drivers/acpi/include/platform/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Entries 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1,4 @@
-+/acenv.h/1.3/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/acgcc.h/1.4.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/aclinux.h/1.2.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Repository
---- linux-2.4.20/drivers/acpi/include/platform/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Repository 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/include/platform
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Root
---- linux-2.4.20/drivers/acpi/include/platform/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Root 2005-01-06 23:01:14.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/include/platform/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Tag
---- linux-2.4.20/drivers/acpi/include/platform/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/include/platform/CVS/Tag 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Entries
---- linux-2.4.20/drivers/acpi/kdb/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Entries 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1,3 @@
-+/README.txt/1.1/Fri Oct 19 01:23:56 2001/-ko/Tlinux_2_4_20
-+/kdbm_acpi.c/1.1/Fri Oct 19 01:23:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Repository
---- linux-2.4.20/drivers/acpi/kdb/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Repository 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/kdb
-diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Root
---- linux-2.4.20/drivers/acpi/kdb/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Root 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/kdb/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Tag
---- linux-2.4.20/drivers/acpi/kdb/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/kdb/CVS/Tag 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Entries
---- linux-2.4.20/drivers/acpi/namespace/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Entries 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/nsaccess.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsalloc.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsdump.c/1.4.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/nseval.c/1.8/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsinit.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsload.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsnames.c/1.8/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsobject.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nssearch.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsutils.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nswalk.c/1.6/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsxfname.c/1.7/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+/nsxfobj.c/1.10/Tue Nov 6 07:55:53 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Repository
---- linux-2.4.20/drivers/acpi/namespace/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Repository 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/namespace
-diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Root
---- linux-2.4.20/drivers/acpi/namespace/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Root 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Tag
---- linux-2.4.20/drivers/acpi/namespace/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/CVS/Tag 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/namespace/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/.cvsignore
---- linux-2.4.20/drivers/acpi/namespace/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/namespace/.cvsignore 2001-01-14 22:16:44.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Entries 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/ac.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/ac_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Repository 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/ac_adapter
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Root 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/ac_adapter/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/CVS/Tag 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ac_adapter/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/ac_adapter/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ac_adapter/.cvsignore 2001-08-21 22:24:08.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Entries 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/bt.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/bt_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Repository 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/battery
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Root 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/battery/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/CVS/Tag 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/battery/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/battery/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/battery/.cvsignore 2001-08-21 22:24:08.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Fri Oct 19 01:23:57 2001/-ko/Tlinux_2_4_20
-+/bm.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/bm_osl.c/1.3.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/bmdriver.c/1.2/Fri Oct 19 01:23:57 2001/-ko/Tlinux_2_4_20
-+/bmnotify.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
-+/bmpm.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
-+/bmpower.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/bmrequest.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
-+/bmsearch.c/1.2/Fri Oct 19 01:23:58 2001/-ko/Tlinux_2_4_20
-+/bmutils.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Repository 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/busmgr
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Root 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/busmgr/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/busmgr/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/busmgr/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/busmgr/.cvsignore 2001-08-21 22:24:08.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/button/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/bn.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/bn_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/button/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/button
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/button/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/button/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/button/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/button/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/button/.cvsignore 2001-08-21 22:24:09.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:08 2001/-ko/Tlinux_2_4_20
-+D/ac_adapter////
-+D/battery////
-+D/busmgr////
-+D/button////
-+D/ec////
-+D/include////
-+D/processor////
-+D/system////
-+D/thermal////
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Repository 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Root 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/CVS/Tag 2005-01-06 23:01:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/.cvsignore 2001-08-21 22:24:08.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/ec_osl.c/1.3.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/ecgpe.c/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
-+/ecmain.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/ecspace.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/ectransx.c/1.2.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/ec
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/ec/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/ec/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/ec/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/ec/.cvsignore 2001-08-21 22:24:09.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/include/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,10 @@
-+/ac.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
-+/bm.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
-+/bmpower.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
-+/bn.h/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/bt.h/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/ec.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
-+/pr.h/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/sm.h/1.2/Fri Oct 19 01:23:59 2001/-ko/Tlinux_2_4_20
-+/tz.h/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/include/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/include
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/include/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/include/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/include/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/include/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/pr.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/pr_osl.c/1.4.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/prperf.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/prpower.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/processor
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/processor/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/processor/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/processor/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/processor/.cvsignore 2001-08-21 22:24:09.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/system/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:09 2001/-ko/Tlinux_2_4_20
-+/sm.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/sm_osl.c/1.3.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/system/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/system
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/system/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/system/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/system/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/system/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/system/.cvsignore 2001-08-21 22:24:09.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Entries
---- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Entries 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
-+/tz.c/1.3/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/tz_osl.c/1.4.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/tzpolicy.c/1.3.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Repository
---- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/ospm/thermal
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Root
---- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Tag
---- linux-2.4.20/drivers/acpi/ospm/thermal/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/CVS/Tag 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/ospm/thermal/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/.cvsignore
---- linux-2.4.20/drivers/acpi/ospm/thermal/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/ospm/thermal/.cvsignore 2001-08-21 22:24:15.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Entries
---- linux-2.4.20/drivers/acpi/parser/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Entries 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
-+/psargs.c/1.7/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/psopcode.c/1.7/Tue Nov 6 07:55:54 2001/-ko/Tlinux_2_4_20
-+/psparse.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/psscope.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/pstree.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/psutils.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/pswalk.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/psxface.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Repository
---- linux-2.4.20/drivers/acpi/parser/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Repository 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/parser
-diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Root
---- linux-2.4.20/drivers/acpi/parser/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Root 2005-01-06 23:01:16.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Tag
---- linux-2.4.20/drivers/acpi/parser/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/CVS/Tag 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/parser/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/.cvsignore
---- linux-2.4.20/drivers/acpi/parser/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/parser/.cvsignore 2001-01-14 22:16:44.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Entries
---- linux-2.4.20/drivers/acpi/resources/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Entries 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:15 2001/-ko/Tlinux_2_4_20
-+/rsaddr.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rscalc.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rscreate.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rsdump.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rsio.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rsirq.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rslist.c/1.7/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rsmemory.c/1.6/Fri Oct 19 01:24:00 2001/-ko/Tlinux_2_4_20
-+/rsmisc.c/1.6/Fri Oct 19 01:24:01 2001/-ko/Tlinux_2_4_20
-+/rsutils.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/rsxface.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Repository
---- linux-2.4.20/drivers/acpi/resources/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Repository 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/resources
-diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Root
---- linux-2.4.20/drivers/acpi/resources/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Root 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Tag
---- linux-2.4.20/drivers/acpi/resources/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/CVS/Tag 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/resources/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/.cvsignore
---- linux-2.4.20/drivers/acpi/resources/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/resources/.cvsignore 2001-01-14 22:16:44.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Entries
---- linux-2.4.20/drivers/acpi/tables/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Entries 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:44 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
-+/tbconvrt.c/1.6/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/tbget.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/tbinstal.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/tbutils.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/tbxface.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/tbxfroot.c/1.5/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Repository
---- linux-2.4.20/drivers/acpi/tables/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Repository 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/tables
-diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Root
---- linux-2.4.20/drivers/acpi/tables/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Root 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Tag
---- linux-2.4.20/drivers/acpi/tables/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/CVS/Tag 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/tables/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/.cvsignore
---- linux-2.4.20/drivers/acpi/tables/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/tables/.cvsignore 2001-01-14 22:16:44.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Entries
---- linux-2.4.20/drivers/acpi/utilities/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Entries 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
-+/utalloc.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utcopy.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utdebug.c/1.3.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/utdelete.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/uteval.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utglobal.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utinit.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utmath.c/1.1/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utmisc.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utobject.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/utxface.c/1.3/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Repository
---- linux-2.4.20/drivers/acpi/utilities/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Repository 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/acpi/utilities
-diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Root
---- linux-2.4.20/drivers/acpi/utilities/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Root 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Tag
---- linux-2.4.20/drivers/acpi/utilities/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/CVS/Tag 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/acpi/utilities/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/.cvsignore
---- linux-2.4.20/drivers/acpi/utilities/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/acpi/utilities/.cvsignore 2001-08-21 22:24:16.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Entries
---- linux-2.4.20/drivers/ap1000/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Entries 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1,2 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Repository
---- linux-2.4.20/drivers/ap1000/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Repository 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/ap1000
-diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Root
---- linux-2.4.20/drivers/ap1000/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Root 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/ap1000/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Tag
---- linux-2.4.20/drivers/ap1000/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/CVS/Tag 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/ap1000/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/ap1000/.cvsignore
---- linux-2.4.20/drivers/ap1000/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ap1000/.cvsignore 1999-10-08 19:01:09.000000000 -0500
-@@ -0,0 +1,4 @@
-+.depend
-+.*.flags
-+aic7xxx_asm
-+aic7xxx_seq.h
-diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Entries
---- linux-2.4.20/drivers/atm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Entries 2005-01-06 23:01:21.000000000 -0600
-@@ -0,0 +1,47 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.10/Sun Dec 2 11:34:40 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.13/Sun Dec 2 11:34:40 2001/-ko/Tlinux_2_4_20
-+/ambassador.c/1.12/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
-+/ambassador.h/1.4/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
-+/atmdev_init.c/1.7/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/atmsar11.data/1.2/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
-+/atmsar11.regions/1.2/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
-+/atmsar11.start/1.2/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
-+/atmtcp.c/1.7.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/eni.c/1.11.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/eni.h/1.6/Sun Jul 9 02:54:55 2000/-ko/Tlinux_2_4_20
-+/firestream.c/1.5.2.3/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/firestream.h/1.3/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
-+/fore200e.c/1.13.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/fore200e.h/1.3/Fri Apr 28 01:09:35 2000/-ko/Tlinux_2_4_20
-+/fore200e_firmware_copyright/1.1/Thu Mar 2 02:36:53 2000/-ko/Tlinux_2_4_20
-+/fore200e_mkfirm.c/1.2/Wed Aug 22 03:24:16 2001/-ko/Tlinux_2_4_20
-+/horizon.c/1.8.2.1/Wed Jun 26 22:35:30 2002/-ko/Tlinux_2_4_20
-+/horizon.h/1.2/Mon Mar 27 23:54:21 2000/-ko/Tlinux_2_4_20
-+/idt77105.c/1.6/Fri Oct 19 01:24:02 2001/-ko/Tlinux_2_4_20
-+/idt77105.h/1.1/Wed Feb 23 00:41:06 2000/-ko/Tlinux_2_4_20
-+/idt77252.c/1.1.2.1/Sat Dec 29 05:37:52 2001/-ko/Tlinux_2_4_20
-+/idt77252.h/1.1/Sun Dec 2 11:34:40 2001/-ko/Tlinux_2_4_20
-+/idt77252_tables.h/1.1/Sun Dec 2 11:34:40 2001/-ko/Tlinux_2_4_20
-+/iphase.c/1.12.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/iphase.h/1.2/Fri Mar 9 20:33:55 2001/-ko/Tlinux_2_4_20
-+/lanai.c/1.1.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/midway.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/nicstar.c/1.16/Fri Oct 19 01:24:03 2001/-ko/Tlinux_2_4_20
-+/nicstar.h/1.6/Tue Nov 6 07:55:55 2001/-ko/Tlinux_2_4_20
-+/nicstarmac.c/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/nicstarmac.copyright/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/nicstarmac.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/pca200e.data/1.1/Thu Mar 2 02:36:53 2000/-ko/Tlinux_2_4_20
-+/pca200e_ecd.data/1.1/Thu Mar 2 02:36:53 2000/-ko/Tlinux_2_4_20
-+/sba200e_ecd.data/1.1/Thu Mar 2 02:36:53 2000/-ko/Tlinux_2_4_20
-+/suni.c/1.6/Sun Dec 2 11:34:40 2001/-ko/Tlinux_2_4_20
-+/suni.h/1.2/Mon Mar 27 23:54:21 2000/-ko/Tlinux_2_4_20
-+/tonga.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/uPD98401.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/uPD98402.c/1.6/Fri Oct 19 01:24:03 2001/-ko/Tlinux_2_4_20
-+/uPD98402.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/zatm.c/1.10/Fri Oct 19 01:24:03 2001/-ko/Tlinux_2_4_20
-+/zatm.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+/zeprom.h/1.1/Sat Oct 9 00:01:09 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Repository
---- linux-2.4.20/drivers/atm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Repository 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/atm
-diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Root
---- linux-2.4.20/drivers/atm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Root 2005-01-06 23:01:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/atm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Tag
---- linux-2.4.20/drivers/atm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/atm/CVS/Tag 2005-01-06 23:01:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/atm/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/atm/.cvsignore
---- linux-2.4.20/drivers/atm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/atm/.cvsignore 1999-10-08 19:01:09.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Entries
---- linux-2.4.20/drivers/block/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,35 @@
-+/.cvsignore/1.2/Tue Mar 17 22:09:07 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.40.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/DAC960.c/1.26.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/DAC960.h/1.9/Tue Nov 6 00:55:00 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.31.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/acsi.c/1.23.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/acsi_slm.c/1.17.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/amiflop.c/1.22.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/ataflop.c/1.22.2.1/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/blkpg.c/1.7.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/cciss.c/1.12.2.3/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/cciss.h/1.4.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/cciss_cmd.h/1.4.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/cciss_scsi.c/1.1.2.2/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/cciss_scsi.h/1.1.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/cpqarray.c/1.25.2.4/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+/cpqarray.h/1.7.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/elevator.c/1.10.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/floppy.c/1.42.2.3/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/genhd.c/1.28.2.5/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ida_cmd.h/1.5/Tue Nov 6 07:55:56 2001/-ko/Tlinux_2_4_20
-+/ida_ioctl.h/1.4.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/ll_rw_blk.c/1.61.2.5/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/loop.c/1.38.2.3/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/nbd.c/1.31.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/ps2esdi.c/1.24.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/rd.c/1.41.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/smart1,2.h/1.4.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/swim3.c/1.18.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/swim_iop.c/1.7.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/umem.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/xd.c/1.28.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/xd.h/1.9.4.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/z2ram.c/1.14.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+D/paride////
-diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Repository
---- linux-2.4.20/drivers/block/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Repository 2005-01-06 23:01:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/block
-diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Root
---- linux-2.4.20/drivers/block/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Root 2005-01-06 23:01:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/block/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Tag
---- linux-2.4.20/drivers/block/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/CVS/Tag 2005-01-06 23:01:22.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/block/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/block/.cvsignore
---- linux-2.4.20/drivers/block/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/.cvsignore 1998-03-17 16:09:07.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Entries
---- linux-2.4.20/drivers/block/paride/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Entries 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1,31 @@
-+/.cvsignore/1.1/Tue Mar 17 22:26:47 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.6.2.1/Sat Dec 29 05:37:53 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.9/Mon Nov 5 20:15:31 2001/-ko/Tlinux_2_4_20
-+/aten.c/1.5/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/bpck.c/1.6/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/bpck6.c/1.3.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/comm.c/1.5/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/dstr.c/1.5/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/epat.c/1.6.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/epia.c/1.5/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/fit2.c/1.4/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/fit3.c/1.4/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/friq.c/1.4/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/frpw.c/1.7/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/jumbo/1.3/Fri May 12 21:06:14 2000/-ko/Tlinux_2_4_20
-+/kbic.c/1.5/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/ktti.c/1.4/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/mkd/1.1/Tue Aug 25 09:16:26 1998/-ko/Tlinux_2_4_20
-+/on20.c/1.5/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/on26.c/1.8/Tue Nov 6 00:55:01 2001/-ko/Tlinux_2_4_20
-+/paride.c/1.13.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/paride.h/1.4.4.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/pcd.c/1.13.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/pd.c/1.21.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/pf.c/1.18.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/pg.c/1.15.2.2/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/ppc6lnx.c/1.3.2.1/Wed Jun 26 22:35:31 2002/-ko/Tlinux_2_4_20
-+/pseudo.h/1.6.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/pt.c/1.17.2.2/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/setup.h/1.3/Fri Mar 9 20:33:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Repository
---- linux-2.4.20/drivers/block/paride/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Repository 2005-01-06 23:01:22.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/block/paride
-diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Root
---- linux-2.4.20/drivers/block/paride/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Root 2005-01-06 23:01:22.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/block/paride/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Tag
---- linux-2.4.20/drivers/block/paride/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/CVS/Tag 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/block/paride/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/block/paride/.cvsignore
---- linux-2.4.20/drivers/block/paride/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/block/paride/.cvsignore 1998-03-17 16:26:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Entries
---- linux-2.4.20/drivers/bluetooth/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Entries 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:36 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.2.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/bluecard_cs.c/1.2.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/bt3c_cs.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/dtl1_cs.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/hci_h4.c/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/hci_h4.h/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/hci_ldisc.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/hci_uart.h/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/hci_usb.c/1.3.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/hci_usb.h/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/hci_vhci.c/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/hci_vhci.h/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Repository
---- linux-2.4.20/drivers/bluetooth/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Repository 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/bluetooth
-diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Root
---- linux-2.4.20/drivers/bluetooth/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Root 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Tag
---- linux-2.4.20/drivers/bluetooth/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/CVS/Tag 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/bluetooth/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/bluetooth/.cvsignore
---- linux-2.4.20/drivers/bluetooth/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/bluetooth/.cvsignore 2001-08-23 22:38:36.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Entries
---- linux-2.4.20/drivers/cdrom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Entries 2005-01-06 23:01:24.000000000 -0600
-@@ -0,0 +1,30 @@
-+/.cvsignore/1.2/Tue Mar 17 22:09:28 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.6/Fri Feb 18 00:24:34 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/aztcd.c/1.19/Tue Nov 6 07:55:56 2001/-ko/Tlinux_2_4_20
-+/aztcd.h/1.1/Tue Dec 16 06:06:32 1997/-ko/Tlinux_2_4_20
-+/cdrom.c/1.36.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/cdu31a.c/1.17.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/cdu31a.h/1.1/Tue Dec 16 06:06:33 1997/-ko/Tlinux_2_4_20
-+/cm206.c/1.21/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/cm206.h/1.2/Fri Mar 9 20:33:56 2001/-ko/Tlinux_2_4_20
-+/gscd.c/1.16/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/gscd.h/1.2/Sat Jul 8 00:53:04 2000/-ko/Tlinux_2_4_20
-+/isp16.c/1.5/Fri Oct 19 01:24:09 2001/-ko/Tlinux_2_4_20
-+/isp16.h/1.2/Fri Feb 4 07:40:32 2000/-ko/Tlinux_2_4_20
-+/mcd.c/1.20/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/mcd.h/1.4/Fri Oct 19 01:24:09 2001/-ko/Tlinux_2_4_20
-+/mcdx.c/1.18/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/mcdx.h/1.3/Sun Jun 13 16:31:58 1999/-ko/Tlinux_2_4_20
-+/optcd.c/1.18/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/optcd.h/1.2/Fri Mar 9 20:33:56 2001/-ko/Tlinux_2_4_20
-+/sbpcd.c/1.24/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/sbpcd.h/1.3/Thu Oct 5 01:18:46 2000/-ko/Tlinux_2_4_20
-+/sbpcd2.c/1.1.1.1/Sun Jun 1 03:17:43 1997/-ko/Tlinux_2_4_20
-+/sbpcd3.c/1.1.1.1/Sun Jun 1 03:17:43 1997/-ko/Tlinux_2_4_20
-+/sbpcd4.c/1.1.1.1/Sun Jun 1 03:17:43 1997/-ko/Tlinux_2_4_20
-+/sjcd.c/1.18/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/sjcd.h/1.1/Tue Dec 16 06:06:34 1997/-ko/Tlinux_2_4_20
-+/sonycd535.c/1.20/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/sonycd535.h/1.1/Tue Dec 16 06:06:35 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Repository
---- linux-2.4.20/drivers/cdrom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Repository 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/cdrom
-diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Root
---- linux-2.4.20/drivers/cdrom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Root 2005-01-06 23:01:23.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/cdrom/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Tag
---- linux-2.4.20/drivers/cdrom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/CVS/Tag 2005-01-06 23:01:24.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/cdrom/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/cdrom/.cvsignore
---- linux-2.4.20/drivers/cdrom/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/cdrom/.cvsignore 1998-03-17 16:09:28.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Entries
---- linux-2.4.20/drivers/char/agp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Entries 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Wed Aug 9 20:52:45 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Thu Apr 5 04:56:13 2001/-ko/Tlinux_2_4_20
-+/agp.h/1.16.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/agpgart_be.c/1.23.2.6/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/agpgart_fe.c/1.12/Sat Sep 22 12:49:18 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Repository
---- linux-2.4.20/drivers/char/agp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Repository 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/agp
-diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Root
---- linux-2.4.20/drivers/char/agp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Root 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/agp/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Tag
---- linux-2.4.20/drivers/char/agp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/CVS/Tag 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/agp/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/agp/.cvsignore
---- linux-2.4.20/drivers/char/agp/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/agp/.cvsignore 2000-08-09 15:52:45.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/au1000_ts.c linux-2.4.20-mipscvs-20050106/drivers/char/au1000_ts.c
---- linux-2.4.20/drivers/char/au1000_ts.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/au1000_ts.c 2003-01-24 23:38:40.000000000 -0600
-@@ -261,7 +261,7 @@
- calc_clkdiv(int baud)
- {
- u32 sys_busclk =
-- (get_au1000_speed() / (int)(inl(PM_POWERUP_CONTROL)&0x03) + 2);
-+ (get_au1x00_speed() / (int)(inl(SYS_POWERCTRL)&0x03) + 2);
- return (sys_busclk / (2 * baud)) - 1;
- }
-
-@@ -269,7 +269,7 @@
- calc_baudrate(u32 clkdiv)
- {
- u32 sys_busclk =
-- (get_au1000_speed() / (int)(inl(PM_POWERUP_CONTROL)&0x03) + 2);
-+ (get_au1x00_speed() / (int)(inl(SYS_POWERCTRL)&0x03) + 2);
- return sys_busclk / (2 * (clkdiv + 1));
- }
-
-@@ -642,7 +642,7 @@
- ts->y_plate_ohms = DEFAULT_Y_PLATE_OHMS;
-
- // set GPIO to SSI0 function
-- outl(inl(PIN_FUNCTION) & ~1, PIN_FUNCTION);
-+ outl(inl(SYS_PINFUNC) & ~1, SYS_PINFUNC);
-
- // enable SSI0 clock and bring SSI0 out of reset
- outl(0, SSI0_CONTROL);
-diff -urNd -urNd linux-2.4.20/drivers/char/au1000_usbraw.c linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbraw.c
---- linux-2.4.20/drivers/char/au1000_usbraw.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbraw.c 2002-07-14 18:07:29.000000000 -0500
-@@ -0,0 +1,575 @@
-+/*
-+ * BRIEF MODULE DESCRIPTION
-+ * Au1x00 USB Device-Side Raw Block Driver (function layer)
-+ *
-+ * Copyright 2001-2002 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * stevel@mvista.com or source@mvista.com
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/ioport.h>
-+#include <linux/sched.h>
-+#include <linux/signal.h>
-+#include <linux/errno.h>
-+#include <linux/poll.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/fcntl.h>
-+#include <linux/module.h>
-+#include <linux/spinlock.h>
-+#include <linux/list.h>
-+#include <linux/smp_lock.h>
-+#undef DEBUG
-+#include <linux/usb.h>
-+
-+#include <asm/io.h>
-+#include <asm/uaccess.h>
-+#include <asm/irq.h>
-+#include <asm/au1000.h>
-+#include <asm/au1000_usbdev.h>
-+
-+#define USBRAW_MAJOR 190 // FIXME: need a legal major
-+#define USBRAW_NAME "usbraw"
-+
-+#define MAX_NUM_PORTS 2
-+
-+#define IN_MAX_PACKET_SIZE 64
-+#define OUT_MAX_PACKET_SIZE 64
-+
-+// FIXME: when Au1x00 endpoints 3 and 5 are fixed, make NUM_PORTS=2
-+#define NUM_PORTS 1
-+#define NUM_EP 2*NUM_PORTS
-+
-+#define CONFIG_DESC_LEN \
-+ USB_DT_CONFIG_SIZE + USB_DT_INTERFACE_SIZE + NUM_EP*USB_DT_ENDPOINT_SIZE
-+
-+/* must be power of two */
-+#define READ_BUF_SIZE (1<<12)
-+
-+struct usb_raw_port {
-+ unsigned char number;
-+ spinlock_t port_lock;
-+
-+ struct usb_endpoint_descriptor* out_desc;
-+ struct usb_endpoint_descriptor* in_desc;
-+
-+ int out_ep_addr; /* endpoint address of OUT endpoint */
-+ int in_ep_addr; /* endpoint address of IN endpoint */
-+
-+ __u8 read_buf[READ_BUF_SIZE]; // FIXME: allocate with get_free_pages
-+ int read_nextin, read_nextout;
-+ int read_count;
-+
-+ wait_queue_head_t wait;
-+ struct fasync_struct *fasync; // asynch notification
-+
-+ int active; /* someone has this device open */
-+ int open_count; /* number of times this port has been opened */
-+};
-+
-+static struct usb_serial {
-+ struct usb_device_descriptor* dev_desc;
-+ struct usb_config_descriptor* config_desc;
-+ struct usb_interface_descriptor* if_desc;
-+ struct usb_string_descriptor * str_desc[6];
-+ void* str_desc_buf;
-+
-+ usbdev_state_t dev_state;
-+
-+ struct usb_raw_port port[NUM_PORTS];
-+} usbraw;
-+
-+static struct usb_device_descriptor dev_desc = {
-+ bLength:USB_DT_DEVICE_SIZE,
-+ bDescriptorType:USB_DT_DEVICE,
-+ bcdUSB:USBDEV_REV, //usb rev
-+ bDeviceClass:USB_CLASS_PER_INTERFACE, //class (none)
-+ bDeviceSubClass:0x00, //subclass (none)
-+ bDeviceProtocol:0x00, //protocol (none)
-+ bMaxPacketSize0:USBDEV_EP0_MAX_PACKET_SIZE, //max packet size for ep0
-+ idVendor:0x6d04, //vendor id
-+ idProduct:0x0bc0, //product id
-+ bcdDevice:0x0001, //BCD rev 0.1
-+ iManufacturer:0x01, //manufactuer string index
-+ iProduct:0x02, //product string index
-+ iSerialNumber:0x03, //serial# string index
-+ bNumConfigurations:0x01 //num configurations
-+};
-+
-+static struct usb_endpoint_descriptor ep_desc[] = {
-+ {
-+ // Bulk IN for Port 0
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_IN,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:IN_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ },
-+ {
-+ // Bulk OUT for Port 0
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_OUT,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:OUT_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ },
-+ {
-+ // Bulk IN for Port 1
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_IN,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:IN_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ },
-+ {
-+ // Bulk OUT for Port 1
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_OUT,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:OUT_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ }
-+};
-+
-+static struct usb_interface_descriptor if_desc = {
-+ bLength:USB_DT_INTERFACE_SIZE,
-+ bDescriptorType:USB_DT_INTERFACE,
-+ bInterfaceNumber:0x00,
-+ bAlternateSetting:0x00,
-+ bNumEndpoints:NUM_EP,
-+ bInterfaceClass:0xff,
-+ bInterfaceSubClass:0xab,
-+ bInterfaceProtocol:0x00,
-+ iInterface:0x05
-+};
-+
-+static struct usb_config_descriptor config_desc = {
-+ bLength:USB_DT_CONFIG_SIZE,
-+ bDescriptorType:USB_DT_CONFIG,
-+ wTotalLength:CONFIG_DESC_LEN,
-+ bNumInterfaces:0x01,
-+ bConfigurationValue:0x01,
-+ iConfiguration:0x04, // configuration string
-+ bmAttributes:0xc0, // self-powered
-+ MaxPower:20 // 40 mA
-+};
-+
-+// String[0] is a list of Language IDs supported by this device
-+static struct usb_string_descriptor string_desc0 = {
-+ bLength:4,
-+ bDescriptorType:USB_DT_STRING,
-+ wData:{0x0409} // English, US
-+};
-+
-+// These strings will be converted to Unicode in string_desc[]
-+static char *strings[5] = {
-+ "Alchemy Semiconductor", // iManufacturer
-+ "USB Raw Block Device", // iProduct
-+ "0.1", // iSerialNumber
-+ "USB Raw Config", // iConfiguration
-+ "USB Raw Interface" // iInterface
-+};
-+
-+
-+static void
-+receive_callback(struct usb_raw_port *port)
-+{
-+ int i, pkt_size;
-+ usbdev_pkt_t* pkt;
-+
-+ if ((pkt_size = usbdev_receive_packet(port->out_ep_addr,
-+ &pkt)) <= 0) {
-+ dbg(__FUNCTION__ ": usbdev_receive_packet returns %d",
-+ pkt_size);
-+ return;
-+ }
-+
-+ dbg(__FUNCTION__ ": ep%d, size=%d", port->out_ep_addr, pkt_size);
-+
-+ spin_lock(&port->port_lock);
-+ for (i=0; i < pkt_size; i++) {
-+ port->read_buf[port->read_nextin++] = pkt->payload[i];
-+ port->read_nextin &= (READ_BUF_SIZE - 1);
-+ if (++port->read_count == READ_BUF_SIZE)
-+ break;
-+ }
-+ spin_unlock(&port->port_lock);
-+
-+ /* free the packet */
-+ kfree(pkt);
-+
-+ // async notify
-+ if (port->fasync)
-+ kill_fasync(&port->fasync, SIGIO, POLL_IN);
-+ // wake up any read call
-+ if (waitqueue_active(&port->wait))
-+ wake_up_interruptible(&port->wait);
-+}
-+
-+static void
-+transmit_callback(struct usb_raw_port *port, usbdev_pkt_t* pkt)
-+{
-+ dbg(__FUNCTION__ ": ep%d", port->in_ep_addr);
-+ /* just free the returned packet */
-+ kfree(pkt);
-+}
-+
-+
-+static void
-+usbraw_callback(usbdev_cb_type_t cb_type, unsigned long arg, void* data)
-+{
-+ usbdev_pkt_t* pkt;
-+ int i;
-+
-+ switch (cb_type) {
-+ case CB_NEW_STATE:
-+ usbraw.dev_state = (usbdev_state_t)arg;
-+ break;
-+ case CB_PKT_COMPLETE:
-+ pkt = (usbdev_pkt_t*)arg;
-+ for (i=0; i<NUM_PORTS; i++) {
-+ struct usb_raw_port *port = &usbraw.port[i];
-+ if (pkt->ep_addr == port->in_ep_addr) {
-+ transmit_callback(port, pkt);
-+ break;
-+ } else if (pkt->ep_addr == port->out_ep_addr) {
-+ receive_callback(port);
-+ break;
-+ }
-+ }
-+ break;
-+ }
-+}
-+
-+/*****************************************************************************
-+ * Here begins the driver interface functions
-+ *****************************************************************************/
-+
-+static unsigned int usbraw_poll(struct file * filp, poll_table * wait)
-+{
-+ struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
-+ unsigned long flags;
-+ int count;
-+
-+ poll_wait(filp, &port->wait, wait);
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+ count = port->read_count;
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+
-+ if (count > 0) {
-+ dbg(__FUNCTION__ ": count=%d", count);
-+ return POLLIN | POLLRDNORM;
-+ }
-+
-+ return 0;
-+}
-+
-+static int usbraw_fasync(int fd, struct file *filp, int mode)
-+{
-+ struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
-+ return fasync_helper(fd, filp, mode, &port->fasync);
-+}
-+
-+static int usbraw_open(struct inode * inode, struct file *filp)
-+{
-+ int portNumber;
-+ struct usb_raw_port *port;
-+ unsigned long flags;
-+
-+ /*
-+ * the device-layer must be in the configured state before the
-+ * function layer can operate.
-+ */
-+ if (usbraw.dev_state != CONFIGURED)
-+ return -ENODEV;
-+
-+ MOD_INC_USE_COUNT;
-+
-+ /* set up our port structure making the tty driver remember
-+ our port object, and us it */
-+ portNumber = MINOR(inode->i_rdev);
-+ port = &usbraw.port[portNumber];
-+ filp->private_data = port;
-+
-+ dbg(__FUNCTION__ ": port %d", port->number);
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+
-+ ++port->open_count;
-+
-+ if (!port->active) {
-+ port->active = 1;
-+ }
-+
-+ /* flush read buffer */
-+ port->read_nextin = port->read_nextout = port->read_count = 0;
-+
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+
-+ return 0;
-+}
-+
-+static int usbraw_release(struct inode * inode, struct file * filp)
-+{
-+ struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
-+ unsigned long flags;
-+
-+ dbg(__FUNCTION__ ": port %d", port->number);
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not opened");
-+ return -ENODEV;
-+ }
-+
-+ usbraw_fasync(-1, filp, 0);
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+
-+ --port->open_count;
-+
-+ if (port->open_count <= 0) {
-+ port->active = 0;
-+ port->open_count = 0;
-+ }
-+
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+ MOD_DEC_USE_COUNT;
-+ return 0;
-+}
-+
-+
-+static ssize_t usbraw_read(struct file * filp, char * buf,
-+ size_t count, loff_t * l)
-+{
-+ struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
-+ unsigned long flags;
-+ int i, cnt;
-+
-+ /*
-+ * the device-layer must be in the configured state before the
-+ * function layer can operate.
-+ */
-+ if (usbraw.dev_state != CONFIGURED)
-+ return -ENODEV;
-+
-+ do {
-+ spin_lock_irqsave(&port->port_lock, flags);
-+ cnt = port->read_count;
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+ if (cnt == 0) {
-+ if (filp->f_flags & O_NONBLOCK)
-+ return -EAGAIN;
-+ interruptible_sleep_on(&port->wait);
-+ if (signal_pending(current))
-+ return -ERESTARTSYS;
-+ }
-+ } while (cnt == 0);
-+
-+ count = (count > cnt) ? cnt : count;
-+
-+ for (i=0; i<count; i++) {
-+ put_user(port->read_buf[port->read_nextout++], &buf[i]);
-+ port->read_nextout &= (READ_BUF_SIZE - 1);
-+ spin_lock_irqsave(&port->port_lock, flags);
-+ port->read_count--;
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+ if (port->read_count == 0)
-+ break;
-+ }
-+
-+ return i+1;
-+}
-+
-+static ssize_t usbraw_write(struct file * filp, const char * buf,
-+ size_t count, loff_t *ppos)
-+{
-+ struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
-+ usbdev_pkt_t* pkt;
-+ int ret, max_pkt_sz;
-+
-+ /*
-+ * the device-layer must be in the configured state before the
-+ * function layer can operate.
-+ */
-+ if (usbraw.dev_state != CONFIGURED)
-+ return -ENODEV;
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not opened");
-+ return -EINVAL;
-+ }
-+
-+ if (count == 0) {
-+ dbg(__FUNCTION__ ": write request of 0 bytes");
-+ return (0);
-+ }
-+
-+ max_pkt_sz = port->in_desc->wMaxPacketSize;
-+ count = (count > max_pkt_sz) ? max_pkt_sz : count;
-+
-+ if ((ret = usbdev_alloc_packet(port->in_ep_addr, count, &pkt)) < 0)
-+ return ret;
-+
-+ copy_from_user(pkt->payload, buf, count);
-+
-+ return usbdev_send_packet(port->in_ep_addr, pkt);
-+}
-+
-+static int usbraw_ioctl(struct inode *inode, struct file *filp,
-+ unsigned int cmd, unsigned long arg)
-+{
-+ struct usb_raw_port *port = (struct usb_raw_port *)filp->private_data;
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not open");
-+ return -ENODEV;
-+ }
-+ // FIXME: need any IOCTLs?
-+
-+ return -ENOIOCTLCMD;
-+}
-+
-+
-+static struct file_operations usbraw_fops = {
-+ owner: THIS_MODULE,
-+ write: usbraw_write,
-+ read: usbraw_read,
-+ poll: usbraw_poll,
-+ ioctl: usbraw_ioctl,
-+ fasync: usbraw_fasync,
-+ open: usbraw_open,
-+ release: usbraw_release,
-+};
-+
-+void usbfn_raw_exit(void)
-+{
-+ /* kill the device layer */
-+ usbdev_exit();
-+
-+ unregister_chrdev(USBRAW_MAJOR, USBRAW_NAME);
-+
-+ if (usbraw.str_desc_buf)
-+ kfree(usbraw.str_desc_buf);
-+}
-+
-+
-+int usbfn_raw_init(void)
-+{
-+ int ret = 0, i, str_desc_len;
-+
-+ /* register our character device */
-+ if ((ret = register_chrdev(USBRAW_MAJOR, USBRAW_NAME,
-+ &usbraw_fops)) < 0) {
-+ err("can't get major number");
-+ return ret;
-+ }
-+ info("registered");
-+
-+ /*
-+ * initialize pointers to descriptors
-+ */
-+ usbraw.dev_desc = &dev_desc;
-+ usbraw.config_desc = &config_desc;
-+ usbraw.if_desc = &if_desc;
-+
-+ /*
-+ * initialize the string descriptors
-+ */
-+
-+ /* alloc buffer big enough for all string descriptors */
-+ str_desc_len = string_desc0.bLength;
-+ for (i = 0; i < 5; i++)
-+ str_desc_len += 2 + 2 * strlen(strings[i]);
-+ usbraw.str_desc_buf = (void *) kmalloc(str_desc_len, GFP_KERNEL);
-+ if (!usbraw.str_desc_buf) {
-+ err(__FUNCTION__ ": failed to alloc string descriptors");
-+ ret = -ENOMEM;
-+ goto out;
-+ }
-+
-+ usbraw.str_desc[0] =
-+ (struct usb_string_descriptor *)usbraw.str_desc_buf;
-+ memcpy(usbraw.str_desc[0], &string_desc0, string_desc0.bLength);
-+ usbraw.str_desc[1] = (struct usb_string_descriptor *)
-+ (usbraw.str_desc_buf + string_desc0.bLength);
-+ for (i = 1; i < 6; i++) {
-+ struct usb_string_descriptor *desc = usbraw.str_desc[i];
-+ char *str = strings[i - 1];
-+ int j, str_len = strlen(str);
-+
-+ desc->bLength = 2 + 2 * str_len;
-+ desc->bDescriptorType = USB_DT_STRING;
-+ for (j = 0; j < str_len; j++) {
-+ desc->wData[j] = (u16) str[j];
-+ }
-+ if (i < 5)
-+ usbraw.str_desc[i + 1] =
-+ (struct usb_string_descriptor *)
-+ ((u8 *) desc + desc->bLength);
-+ }
-+
-+ /*
-+ * start the device layer. The device layer assigns us
-+ * our endpoint addresses
-+ */
-+ if ((ret = usbdev_init(&dev_desc, &config_desc, &if_desc, ep_desc,
-+ usbraw.str_desc, usbraw_callback, NULL))) {
-+ err(__FUNCTION__ ": device-layer init failed");
-+ goto out;
-+ }
-+
-+ /* initialize the devfs nodes for this device and let the user
-+ know what ports we are bound to */
-+ for (i = 0; i < NUM_PORTS; ++i) {
-+ struct usb_raw_port *port = &usbraw.port[i];
-+
-+ port->number = i;
-+ port->in_desc = &ep_desc[NUM_PORTS*i];
-+ port->out_desc = &ep_desc[NUM_PORTS*i + 1];
-+ port->in_ep_addr = port->in_desc->bEndpointAddress & 0x0f;
-+ port->out_ep_addr = port->out_desc->bEndpointAddress & 0x0f;
-+ init_waitqueue_head(&port->wait);
-+ spin_lock_init(&port->port_lock);
-+ }
-+
-+ out:
-+ if (ret)
-+ usbfn_raw_exit();
-+ return ret;
-+}
-+
-+
-+/* Module information */
-+MODULE_AUTHOR("Steve Longerbeam, stevel@mvista.com, www.mvista.com");
-+MODULE_DESCRIPTION("Au1x00 USB Device-Side Raw Block Driver");
-+MODULE_LICENSE("GPL");
-+
-+module_init(usbfn_raw_init);
-+module_exit(usbfn_raw_exit);
-diff -urNd -urNd linux-2.4.20/drivers/char/au1000_usbtty.c linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbtty.c
---- linux-2.4.20/drivers/char/au1000_usbtty.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/au1000_usbtty.c 2002-07-14 18:07:30.000000000 -0500
-@@ -0,0 +1,764 @@
-+/*
-+ * BRIEF MODULE DESCRIPTION
-+ * Au1x00 USB Device-Side Serial TTY Driver (function layer)
-+ *
-+ * Copyright 2001-2002 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * stevel@mvista.com or source@mvista.com
-+ *
-+ * Derived from drivers/usb/serial/usbserial.c:
-+ *
-+ * Copyright (C) 1999 - 2001 Greg Kroah-Hartman (greg@kroah.com)
-+ * Copyright (c) 2000 Peter Berger (pberger@brimson.com)
-+ * Copyright (c) 2000 Al Borchers (borchers@steinerpoint.com)
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/kernel.h>
-+#include <linux/ioport.h>
-+#include <linux/sched.h>
-+#include <linux/signal.h>
-+#include <linux/errno.h>
-+#include <linux/poll.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/fcntl.h>
-+#include <linux/tty.h>
-+#include <linux/tty_driver.h>
-+#include <linux/tty_flip.h>
-+#include <linux/module.h>
-+#include <linux/spinlock.h>
-+#include <linux/list.h>
-+#include <linux/smp_lock.h>
-+#undef DEBUG
-+#include <linux/usb.h>
-+
-+#include <asm/io.h>
-+#include <asm/uaccess.h>
-+#include <asm/irq.h>
-+#include <asm/au1000.h>
-+#include <asm/au1000_usbdev.h>
-+
-+
-+/* local function prototypes */
-+static int serial_open(struct tty_struct *tty, struct file *filp);
-+static void serial_close(struct tty_struct *tty, struct file *filp);
-+static int serial_write(struct tty_struct *tty, int from_user,
-+ const unsigned char *buf, int count);
-+static int serial_write_room(struct tty_struct *tty);
-+static int serial_chars_in_buffer(struct tty_struct *tty);
-+static void serial_throttle(struct tty_struct *tty);
-+static void serial_unthrottle(struct tty_struct *tty);
-+static int serial_ioctl(struct tty_struct *tty, struct file *file,
-+ unsigned int cmd, unsigned long arg);
-+static void serial_set_termios (struct tty_struct *tty, struct termios * old);
-+
-+#define SERIAL_TTY_MAJOR 189 // FIXME: need a legal major
-+
-+#define MAX_NUM_PORTS 2
-+
-+#define IN_MAX_PACKET_SIZE 32
-+#define OUT_MAX_PACKET_SIZE 32
-+
-+// FIXME: when Au1x00 endpoints 3 and 5 are fixed, make NUM_PORTS=2
-+#define NUM_PORTS 2
-+#define NUM_EP 2*NUM_PORTS
-+
-+#define CONFIG_DESC_LEN \
-+ USB_DT_CONFIG_SIZE + USB_DT_INTERFACE_SIZE + NUM_EP*USB_DT_ENDPOINT_SIZE
-+
-+struct usb_serial_port {
-+ struct tty_struct *tty; /* the coresponding tty for this port */
-+ unsigned char number;
-+ spinlock_t port_lock;
-+
-+ struct usb_endpoint_descriptor* out_desc;
-+ struct usb_endpoint_descriptor* in_desc;
-+
-+ int out_ep_addr; /* endpoint address of OUT endpoint */
-+ int in_ep_addr; /* endpoint address of IN endpoint */
-+
-+ /* task queue for line discipline waking up on send packet complete */
-+ struct tq_struct send_complete_tq;
-+ /* task queue for line discipline wakeup on receive packet complete */
-+ struct tq_struct receive_complete_tq;
-+
-+ int active; /* someone has this device open */
-+ int writing; /* a packet write is in progress */
-+ int open_count; /* number of times this port has been opened */
-+
-+};
-+
-+static struct usb_serial {
-+ usbdev_state_t dev_state; // current state of device layer
-+ struct usb_device_descriptor* dev_desc;
-+ struct usb_config_descriptor* config_desc;
-+ struct usb_interface_descriptor* if_desc;
-+ struct usb_string_descriptor * str_desc[6];
-+ void* str_desc_buf;
-+
-+ struct usb_serial_port port[NUM_PORTS];
-+} usbtty;
-+
-+static int serial_refcount;
-+static struct tty_driver serial_tty_driver;
-+static struct tty_struct * serial_tty[NUM_PORTS];
-+static struct termios * serial_termios[NUM_PORTS];
-+static struct termios * serial_termios_locked[NUM_PORTS];
-+
-+static struct usb_device_descriptor dev_desc = {
-+ bLength:USB_DT_DEVICE_SIZE,
-+ bDescriptorType:USB_DT_DEVICE,
-+ bcdUSB:USBDEV_REV, //usb rev
-+ bDeviceClass:USB_CLASS_PER_INTERFACE, //class (none)
-+ bDeviceSubClass:0x00, //subclass (none)
-+ bDeviceProtocol:0x00, //protocol (none)
-+ bMaxPacketSize0:USBDEV_EP0_MAX_PACKET_SIZE, //max packet size for ep0
-+ idVendor:0x6d04, //vendor id
-+ idProduct:0x0bc0, //product id
-+ bcdDevice:0x0001, //BCD rev 0.1
-+ iManufacturer:0x01, //manufactuer string index
-+ iProduct:0x02, //product string index
-+ iSerialNumber:0x03, //serial# string index
-+ bNumConfigurations:0x01 //num configurations
-+};
-+
-+static struct usb_endpoint_descriptor ep_desc[] = {
-+ {
-+ // Bulk IN for Port 0
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_IN,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:IN_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ },
-+ {
-+ // Bulk OUT for Port 0
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_OUT,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:OUT_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ },
-+ {
-+ // Bulk IN for Port 1
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_IN,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:IN_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ },
-+ {
-+ // Bulk OUT for Port 1
-+ bLength:USB_DT_ENDPOINT_SIZE,
-+ bDescriptorType:USB_DT_ENDPOINT,
-+ bEndpointAddress:USB_DIR_OUT,
-+ bmAttributes:USB_ENDPOINT_XFER_BULK,
-+ wMaxPacketSize:OUT_MAX_PACKET_SIZE,
-+ bInterval:0x00 // ignored for bulk
-+ }
-+};
-+
-+static struct usb_interface_descriptor if_desc = {
-+ bLength:USB_DT_INTERFACE_SIZE,
-+ bDescriptorType:USB_DT_INTERFACE,
-+ bInterfaceNumber:0x00,
-+ bAlternateSetting:0x00,
-+ bNumEndpoints:NUM_EP,
-+ bInterfaceClass:0xff,
-+ bInterfaceSubClass:0xab,
-+ bInterfaceProtocol:0x00,
-+ iInterface:0x05
-+};
-+
-+static struct usb_config_descriptor config_desc = {
-+ bLength:USB_DT_CONFIG_SIZE,
-+ bDescriptorType:USB_DT_CONFIG,
-+ wTotalLength:CONFIG_DESC_LEN,
-+ bNumInterfaces:0x01,
-+ bConfigurationValue:0x01,
-+ iConfiguration:0x04, // configuration string
-+ bmAttributes:0xc0, // self-powered
-+ MaxPower:20 // 40 mA
-+};
-+
-+// String[0] is a list of Language IDs supported by this device
-+static struct usb_string_descriptor string_desc0 = {
-+ bLength:4,
-+ bDescriptorType:USB_DT_STRING,
-+ wData:{0x0409} // English, US
-+};
-+
-+// These strings will be converted to Unicode in string_desc[]
-+static char *strings[5] = {
-+ "Alchemy Semiconductor", // iManufacturer
-+ "WutzAMattaU", // iProduct
-+ "1.0.doh!", // iSerialNumber
-+ "Au1000 TTY Config", // iConfiguration
-+ "Au1000 TTY Interface" // iInterface
-+};
-+
-+static inline int
-+port_paranoia_check(struct usb_serial_port *port, const char *function)
-+{
-+ if (!port) {
-+ err("%s: port is NULL", function);
-+ return -1;
-+ }
-+ if (!port->tty) {
-+ err("%s: port->tty is NULL", function);
-+ return -1;
-+ }
-+
-+ return 0;
-+}
-+
-+
-+static void
-+port_rx_callback(struct usb_serial_port *port)
-+{
-+ dbg(__FUNCTION__ ": ep%d", port->out_ep_addr);
-+ // mark a bh to push this data up to the tty
-+ queue_task(&port->receive_complete_tq, &tq_immediate);
-+ mark_bh(IMMEDIATE_BH);
-+}
-+
-+static void
-+port_tx_callback(struct usb_serial_port *port, usbdev_pkt_t* pkt)
-+{
-+ dbg(__FUNCTION__ ": ep%d", port->in_ep_addr);
-+ // mark a bh to wakeup any tty write system call on the port.
-+ queue_task(&port->send_complete_tq, &tq_immediate);
-+ mark_bh(IMMEDIATE_BH);
-+
-+ /* free the returned packet */
-+ kfree(pkt);
-+}
-+
-+static void
-+usbtty_callback(usbdev_cb_type_t cb_type, unsigned long arg, void* data)
-+{
-+ usbdev_pkt_t* pkt;
-+ int i;
-+
-+ switch (cb_type) {
-+ case CB_NEW_STATE:
-+ dbg(__FUNCTION__ ": new dev_state=%d", (int)arg);
-+ usbtty.dev_state = (usbdev_state_t)arg;
-+ break;
-+ case CB_PKT_COMPLETE:
-+ pkt = (usbdev_pkt_t*)arg;
-+ for (i=0; i<NUM_PORTS; i++) {
-+ struct usb_serial_port *port = &usbtty.port[i];
-+ if (pkt->ep_addr == port->in_ep_addr) {
-+ port_tx_callback(port, pkt);
-+ break;
-+ } else if (pkt->ep_addr == port->out_ep_addr) {
-+ port_rx_callback(port);
-+ break;
-+ }
-+ }
-+ break;
-+ }
-+}
-+
-+
-+/*****************************************************************************
-+ * Here begins the tty driver interface functions
-+ *****************************************************************************/
-+
-+static int serial_open(struct tty_struct *tty, struct file *filp)
-+{
-+ int portNumber;
-+ struct usb_serial_port *port;
-+ unsigned long flags;
-+
-+ /* initialize the pointer incase something fails */
-+ tty->driver_data = NULL;
-+
-+ MOD_INC_USE_COUNT;
-+
-+ /* set up our port structure making the tty driver remember
-+ our port object, and us it */
-+ portNumber = MINOR(tty->device);
-+ port = &usbtty.port[portNumber];
-+ tty->driver_data = port;
-+ port->tty = tty;
-+
-+ if (usbtty.dev_state != CONFIGURED ||
-+ port_paranoia_check(port, __FUNCTION__)) {
-+ /*
-+ * the device-layer must be in the configured state before
-+ * the function layer can operate.
-+ */
-+ MOD_DEC_USE_COUNT;
-+ return -ENODEV;
-+ }
-+
-+ dbg(__FUNCTION__ ": port %d", port->number);
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+
-+ ++port->open_count;
-+
-+ if (!port->active) {
-+ port->active = 1;
-+
-+ /*
-+ * force low_latency on so that our tty_push actually forces
-+ * the data through, otherwise it is scheduled, and with high
-+ * data rates (like with OHCI) data can get lost.
-+ */
-+ port->tty->low_latency = 1;
-+
-+ }
-+
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+
-+ return 0;
-+}
-+
-+
-+static void serial_close(struct tty_struct *tty, struct file *filp)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+ unsigned long flags;
-+
-+ dbg(__FUNCTION__ ": port %d", port->number);
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not opened");
-+ return;
-+ }
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+
-+ --port->open_count;
-+
-+ if (port->open_count <= 0) {
-+ port->active = 0;
-+ port->open_count = 0;
-+ }
-+
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+ MOD_DEC_USE_COUNT;
-+}
-+
-+
-+static int serial_write(struct tty_struct *tty, int from_user,
-+ const unsigned char *buf, int count)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+ usbdev_pkt_t* pkt;
-+ int max_pkt_sz, ret;
-+ unsigned long flags;
-+
-+ /*
-+ * the device-layer must be in the configured state before the
-+ * function layer can operate.
-+ */
-+ if (usbtty.dev_state != CONFIGURED)
-+ return -ENODEV;
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not open");
-+ return -EINVAL;
-+ }
-+
-+ if (count == 0) {
-+ dbg(__FUNCTION__ ": request of 0 bytes");
-+ return (0);
-+ }
-+
-+#if 0
-+ if (port->writing) {
-+ dbg(__FUNCTION__ ": already writing");
-+ return 0;
-+ }
-+#endif
-+
-+ max_pkt_sz = port->in_desc->wMaxPacketSize;
-+ count = (count > max_pkt_sz) ? max_pkt_sz : count;
-+
-+ if ((ret = usbdev_alloc_packet(port->in_ep_addr, count, &pkt)))
-+ return ret;
-+
-+ if (from_user)
-+ copy_from_user(pkt->payload, buf, count);
-+ else
-+ memcpy(pkt->payload, buf, count);
-+
-+ ret = usbdev_send_packet(port->in_ep_addr, pkt);
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+ port->writing = 1;
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+
-+ return ret;
-+}
-+
-+
-+static int serial_write_room(struct tty_struct *tty)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+ int room = 0;
-+
-+ /*
-+ * the device-layer must be in the configured state before the
-+ * function layer can operate.
-+ */
-+ if (usbtty.dev_state != CONFIGURED)
-+ return -ENODEV;
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not open");
-+ return -EINVAL;
-+ }
-+
-+ //room = port->writing ? 0 : port->in_desc->wMaxPacketSize;
-+ room = port->in_desc->wMaxPacketSize;
-+
-+ dbg(__FUNCTION__ ": %d", room);
-+ return room;
-+}
-+
-+
-+static int serial_chars_in_buffer(struct tty_struct *tty)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+ int chars = 0;
-+
-+ /*
-+ * the device-layer must be in the configured state before the
-+ * function layer can operate.
-+ */
-+ if (usbtty.dev_state != CONFIGURED)
-+ return -ENODEV;
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not open");
-+ return -EINVAL;
-+ }
-+
-+ //chars = port->writing ? usbdev_get_byte_count(port->in_ep_addr) : 0;
-+ chars = usbdev_get_byte_count(port->in_ep_addr);
-+
-+ dbg(__FUNCTION__ ": %d", chars);
-+ return chars;
-+}
-+
-+
-+static void serial_throttle(struct tty_struct *tty)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+
-+ if (!port->active || usbtty.dev_state != CONFIGURED) {
-+ err(__FUNCTION__ ": port not open");
-+ return;
-+ }
-+
-+ // FIXME: anything to do?
-+ dbg(__FUNCTION__);
-+}
-+
-+
-+static void serial_unthrottle(struct tty_struct *tty)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+
-+ if (!port->active || usbtty.dev_state != CONFIGURED) {
-+ err(__FUNCTION__ ": port not open");
-+ return;
-+ }
-+
-+ // FIXME: anything to do?
-+ dbg(__FUNCTION__);
-+}
-+
-+
-+static int serial_ioctl(struct tty_struct *tty, struct file *file,
-+ unsigned int cmd, unsigned long arg)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+
-+ if (!port->active) {
-+ err(__FUNCTION__ ": port not open");
-+ return -ENODEV;
-+ }
-+ // FIXME: need any IOCTLs?
-+ dbg(__FUNCTION__);
-+
-+ return -ENOIOCTLCMD;
-+}
-+
-+
-+static void serial_set_termios(struct tty_struct *tty, struct termios *old)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+
-+ if (!port->active || usbtty.dev_state != CONFIGURED) {
-+ err(__FUNCTION__ ": port not open");
-+ return;
-+ }
-+
-+ dbg(__FUNCTION__);
-+ // FIXME: anything to do?
-+}
-+
-+
-+static void serial_break(struct tty_struct *tty, int break_state)
-+{
-+ struct usb_serial_port *port =
-+ (struct usb_serial_port *) tty->driver_data;
-+
-+ if (!port->active || usbtty.dev_state != CONFIGURED) {
-+ err(__FUNCTION__ ": port not open");
-+ return;
-+ }
-+
-+ dbg(__FUNCTION__);
-+ // FIXME: anything to do?
-+}
-+
-+
-+static void port_send_complete(void *private)
-+{
-+ struct usb_serial_port *port = (struct usb_serial_port *) private;
-+ struct tty_struct *tty;
-+ unsigned long flags;
-+
-+ dbg(__FUNCTION__ ": port %d, ep%d", port->number, port->in_ep_addr);
-+
-+ tty = port->tty;
-+ if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-+ tty->ldisc.write_wakeup) {
-+ dbg(__FUNCTION__ ": write wakeup call.");
-+ (tty->ldisc.write_wakeup) (tty);
-+ }
-+
-+ wake_up_interruptible(&tty->write_wait);
-+
-+ spin_lock_irqsave(&port->port_lock, flags);
-+ port->writing = usbdev_get_byte_count(port->in_ep_addr) <= 0 ? 0 : 1;
-+ spin_unlock_irqrestore(&port->port_lock, flags);
-+}
-+
-+
-+static void port_receive_complete(void *private)
-+{
-+ struct usb_serial_port *port = (struct usb_serial_port *) private;
-+ struct tty_struct *tty = port->tty;
-+ usbdev_pkt_t* pkt = NULL;
-+ int i, count;
-+
-+ /* while there is a packet available */
-+ while ((count = usbdev_receive_packet(port->out_ep_addr,
-+ &pkt)) != -ENODATA) {
-+ if (count < 0) {
-+ if (pkt)
-+ kfree(pkt);
-+ break; /* exit if error other than ENODATA */
-+ }
-+
-+ dbg(__FUNCTION__ ": port %d, ep%d, size=%d",
-+ port->number, port->out_ep_addr, count);
-+
-+ for (i = 0; i < count; i++) {
-+ /* if we insert more than TTY_FLIPBUF_SIZE characters,
-+ we drop them. */
-+ if (tty->flip.count >= TTY_FLIPBUF_SIZE) {
-+ tty_flip_buffer_push(tty);
-+ }
-+ /* this doesn't actually push the data through
-+ unless tty->low_latency is set */
-+ tty_insert_flip_char(tty, pkt->payload[i], 0);
-+ }
-+ tty_flip_buffer_push(tty);
-+
-+ kfree(pkt); /* make sure we free the packet */
-+ }
-+
-+}
-+
-+
-+static struct tty_driver serial_tty_driver = {
-+ magic:TTY_DRIVER_MAGIC,
-+ driver_name:"usbfn-tty",
-+ name:"usb/ttsdev/%d",
-+ major:SERIAL_TTY_MAJOR,
-+ minor_start:0,
-+ num:NUM_PORTS,
-+ type:TTY_DRIVER_TYPE_SERIAL,
-+ subtype:SERIAL_TYPE_NORMAL,
-+ flags:TTY_DRIVER_REAL_RAW | TTY_DRIVER_NO_DEVFS,
-+ refcount:&serial_refcount,
-+ table:serial_tty,
-+ termios:serial_termios,
-+ termios_locked:serial_termios_locked,
-+
-+ open:serial_open,
-+ close:serial_close,
-+ write:serial_write,
-+ write_room:serial_write_room,
-+ ioctl:serial_ioctl,
-+ set_termios:serial_set_termios,
-+ throttle:serial_throttle,
-+ unthrottle:serial_unthrottle,
-+ break_ctl:serial_break,
-+ chars_in_buffer:serial_chars_in_buffer,
-+};
-+
-+
-+void usbfn_tty_exit(void)
-+{
-+ int i;
-+
-+ /* kill the device layer */
-+ usbdev_exit();
-+
-+ for (i=0; i < NUM_PORTS; i++) {
-+ tty_unregister_devfs(&serial_tty_driver, i);
-+ info("usb serial converter now disconnected from ttyUSBdev%d",
-+ i);
-+ }
-+
-+ tty_unregister_driver(&serial_tty_driver);
-+
-+ if (usbtty.str_desc_buf)
-+ kfree(usbtty.str_desc_buf);
-+}
-+
-+
-+int usbfn_tty_init(void)
-+{
-+ int ret = 0, i, str_desc_len;
-+
-+ /* register the tty driver */
-+ serial_tty_driver.init_termios = tty_std_termios;
-+ serial_tty_driver.init_termios.c_cflag =
-+ B9600 | CS8 | CREAD | HUPCL | CLOCAL;
-+
-+ if (tty_register_driver(&serial_tty_driver)) {
-+ err(__FUNCTION__ ": failed to register tty driver");
-+ ret = -ENXIO;
-+ goto out;
-+ }
-+
-+ /*
-+ * initialize pointers to descriptors
-+ */
-+ usbtty.dev_desc = &dev_desc;
-+ usbtty.config_desc = &config_desc;
-+ usbtty.if_desc = &if_desc;
-+
-+ /*
-+ * initialize the string descriptors
-+ */
-+
-+ /* alloc buffer big enough for all string descriptors */
-+ str_desc_len = string_desc0.bLength;
-+ for (i = 0; i < 5; i++)
-+ str_desc_len += 2 + 2 * strlen(strings[i]);
-+ usbtty.str_desc_buf = (void *) kmalloc(str_desc_len, GFP_KERNEL);
-+ if (!usbtty.str_desc_buf) {
-+ err(__FUNCTION__ ": failed to alloc string descriptors");
-+ ret = -ENOMEM;
-+ goto out;
-+ }
-+
-+ usbtty.str_desc[0] =
-+ (struct usb_string_descriptor *)usbtty.str_desc_buf;
-+ memcpy(usbtty.str_desc[0], &string_desc0, string_desc0.bLength);
-+ usbtty.str_desc[1] = (struct usb_string_descriptor *)
-+ (usbtty.str_desc_buf + string_desc0.bLength);
-+ for (i = 1; i < 6; i++) {
-+ struct usb_string_descriptor *desc = usbtty.str_desc[i];
-+ char *str = strings[i - 1];
-+ int j, str_len = strlen(str);
-+
-+ desc->bLength = 2 + 2 * str_len;
-+ desc->bDescriptorType = USB_DT_STRING;
-+ for (j = 0; j < str_len; j++) {
-+ desc->wData[j] = (u16) str[j];
-+ }
-+ if (i < 5)
-+ usbtty.str_desc[i + 1] =
-+ (struct usb_string_descriptor *)
-+ ((u8 *) desc + desc->bLength);
-+ }
-+
-+ /*
-+ * start the device layer. The device layer assigns us
-+ * our endpoint addresses
-+ */
-+ if ((ret = usbdev_init(&dev_desc, &config_desc, &if_desc, ep_desc,
-+ usbtty.str_desc, usbtty_callback, NULL))) {
-+ err(__FUNCTION__ ": device-layer init failed");
-+ goto out;
-+ }
-+
-+ /* initialize the devfs nodes for this device and let the user
-+ know what ports we are bound to */
-+ for (i = 0; i < NUM_PORTS; ++i) {
-+ struct usb_serial_port *port;
-+ tty_register_devfs(&serial_tty_driver, 0, i);
-+ info("usbdev serial attached to ttyUSBdev%d "
-+ "(or devfs usb/ttsdev/%d)", i, i);
-+ port = &usbtty.port[i];
-+ port->number = i;
-+ port->in_desc = &ep_desc[NUM_PORTS*i];
-+ port->out_desc = &ep_desc[NUM_PORTS*i + 1];
-+ port->in_ep_addr = port->in_desc->bEndpointAddress & 0x0f;
-+ port->out_ep_addr = port->out_desc->bEndpointAddress & 0x0f;
-+ port->send_complete_tq.routine = port_send_complete;
-+ port->send_complete_tq.data = port;
-+ port->receive_complete_tq.routine = port_receive_complete;
-+ port->receive_complete_tq.data = port;
-+ spin_lock_init(&port->port_lock);
-+ }
-+
-+ out:
-+ if (ret)
-+ usbfn_tty_exit();
-+ return ret;
-+}
-+
-+
-+/* Module information */
-+MODULE_AUTHOR("Steve Longerbeam, stevel@mvista.com, www.mvista.com");
-+MODULE_DESCRIPTION("Au1x00 USB Device-Side Serial TTY Driver");
-+MODULE_LICENSE("GPL");
-+
-+module_init(usbfn_tty_init);
-+module_exit(usbfn_tty_exit);
-diff -urNd -urNd linux-2.4.20/drivers/char/Config.in linux-2.4.20-mipscvs-20050106/drivers/char/Config.in
---- linux-2.4.20/drivers/char/Config.in 2002-11-28 17:53:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/Config.in 2003-02-19 14:37:43.000000000 -0600
-@@ -74,29 +74,45 @@
- tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION
- fi
- if [ "$CONFIG_MIPS" = "y" ]; then
-- bool ' TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
-- dep_bool ' Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
-- bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART
-- if [ "$CONFIG_AU1000_UART" = "y" ]; then
-- bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
-- fi
-- bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL
-- if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then
-- bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE
-- fi
-- if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
-- bool ' Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART
-- if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then
-- bool ' Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE
-- if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then
-- define_bool CONFIG_SERIAL_CONSOLE y
-- fi
-- int ' Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024
-- bool ' Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-- fi
-- fi
-- fi
-+ bool ' TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
-+ dep_bool ' Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
-+ if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
-+ bool ' Enable Au1x00 UART Support' CONFIG_AU1X00_UART
-+ if [ "$CONFIG_AU1X00_UART" = "y" ]; then
-+ bool ' Enable Au1x00 serial console' CONFIG_AU1X00_SERIAL_CONSOLE
-+ fi
-+ if [ "$CONFIG_AU1000_USB_DEVICE" = "y" ]; then
-+ dep_tristate ' Au1x00 USB TTY Device support' CONFIG_AU1X00_USB_TTY $CONFIG_AU1000_USB_DEVICE
-+ if [ "$CONFIG_AU1000_USB_TTY" != "y" ]; then
-+ dep_tristate ' Au1x00 USB Raw Device support' CONFIG_AU1X00_USB_RAW $CONFIG_AU1000_USB_DEVICE
-+ fi
-+ fi
-+ fi
-+ bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL
-+ if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then
-+ bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE
-+ fi
-+ if [ "$CONFIG_SIBYTE_SB1xxx_SOC" = "y" ]; then
-+ bool ' Support for BCM1xxx onchip DUART' CONFIG_SIBYTE_SB1250_DUART
-+ if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then
-+ bool ' Console on BCM1xxx DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE
-+ if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then
-+ define_bool CONFIG_SERIAL_CONSOLE y
-+ fi
-+ if [ "$CONFIG_REMOTE_DEBUG" = "y" ]; then
-+ define_bool CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 y
-+ fi
-+ fi
-+ fi
-+ fi
-+ if [ "$CONFIG_DECSTATION" = "y" ]; then
-+ bool ' DECstation serial support' CONFIG_SERIAL_DEC
-+ dep_bool ' Support for console on a DECstation serial port' CONFIG_SERIAL_DEC_CONSOLE $CONFIG_SERIAL_DEC
-+ dep_bool ' DZ11 serial support' CONFIG_DZ $CONFIG_SERIAL_DEC $CONFIG_MIPS32
-+ dep_bool ' Z85C30 serial support' CONFIG_ZS $CONFIG_SERIAL_DEC $CONFIG_TC
-+ fi
- fi
-+
- if [ "$CONFIG_EXPERIMENTAL" = "y" -a "$CONFIG_ZORRO" = "y" ]; then
- tristate 'Commodore A2232 serial support (EXPERIMENTAL)' CONFIG_A2232
- fi
-@@ -108,14 +124,6 @@
- fi
- bool ' Console on DC21285 serial port' CONFIG_SERIAL_21285_CONSOLE
- fi
-- if [ "$CONFIG_MIPS" = "y" ]; then
-- bool ' TMPTX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912
-- dep_bool ' Console on TMPTX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912
-- bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART
-- if [ "$CONFIG_AU1000_UART" = "y" ]; then
-- bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE
-- fi
-- fi
- if [ "$CONFIG_PARISC" = "y" ]; then
- bool ' PDC software console support' CONFIG_PDC_CONSOLE
- fi
-@@ -165,6 +173,9 @@
- if [ "$CONFIG_ADB" = "y" -a "$CONFIG_ADB_KEYBOARD" = "y" ]; then
- dep_tristate ' Apple Desktop Bus mouse support (old driver)' CONFIG_ADBMOUSE $CONFIG_BUSMOUSE
- fi
-+# if [ "$CONFIG_DECSTATION" = "y" ]; then
-+# dep_bool ' MAXINE Access.Bus mouse (VSXXX-BB/GB) support' CONFIG_DTOP_MOUSE $CONFIG_ACCESSBUS
-+# fi
- fi
-
- tristate 'Mouse Support (not serial and bus mice)' CONFIG_MOUSE
-@@ -209,9 +220,6 @@
- tristate ' Eurotech CPU-1220/1410 Watchdog Timer' CONFIG_EUROTECH_WDT
- tristate ' IB700 SBC Watchdog Timer' CONFIG_IB700_WDT
- tristate ' ICP ELectronics Wafer 5823 Watchdog' CONFIG_WAFER_WDT
-- if [ "$CONFIG_SGI_IP22" = "y" ]; then
-- dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
-- fi
- tristate ' Intel i810 TCO timer / Watchdog' CONFIG_I810_TCO
- tristate ' Mixcom Watchdog' CONFIG_MIXCOMWD
- tristate ' SBC-60XX Watchdog Timer' CONFIG_60XX_WDT
-@@ -227,6 +235,7 @@
- fi
- fi
- tristate ' ZF MachZ Watchdog' CONFIG_MACHZ_WDT
-+ dep_tristate ' Indy/I2 Hardware Watchdog' CONFIG_INDYDOG $CONFIG_SGI_IP22
- dep_tristate ' AMD 766/768 TCO Timer/Watchdog' CONFIG_AMD7XX_TCO $CONFIG_EXPERIMENTAL
- fi
- endmenu
-@@ -269,6 +278,7 @@
- if [ "$CONFIG_FTAPE" != "n" ]; then
- source drivers/char/ftape/Config.in
- fi
-+
- endmenu
-
- if [ "$CONFIG_GART_IOMMU" = "y" ]; then
-@@ -309,16 +319,11 @@
- if [ "$CONFIG_HOTPLUG" = "y" -a "$CONFIG_PCMCIA" != "n" ]; then
- source drivers/char/pcmcia/Config.in
- fi
--if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
-- tristate ' Alchemy Au1000 GPIO device support' CONFIG_AU1000_GPIO
-- tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1000_ADS7846
-+if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
-+ tristate ' Alchemy Au1x00 GPIO device support' CONFIG_AU1X00_GPIO
-+ tristate ' Au1000/ADS7846 touchscreen support' CONFIG_TS_AU1X00_ADS7846
- fi
- if [ "$CONFIG_MIPS_ITE8172" = "y" ]; then
- tristate ' ITE GPIO' CONFIG_ITE_GPIO
- fi
--
--if [ "$CONFIG_X86" = "y" ]; then
-- tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE
--fi
--
- endmenu
-diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Entries
---- linux-2.4.20/drivers/char/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,182 @@
-+/.cvsignore/1.4.2.1/Sun Dec 2 12:08:03 2001/-ko/Tlinux_2_4_20
-+/ChangeLog/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/Config.in/1.72.2.19/Wed Feb 19 20:37:43 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.68.2.9/Sat Jan 25 05:38:40 2003/-ko/Tlinux_2_4_20
-+/README.computone/1.6/Tue Nov 6 07:55:57 2001/-ko/Tlinux_2_4_20
-+/README.cycladesZ/1.1/Sat Dec 6 23:52:22 1997/-ko/Tlinux_2_4_20
-+/README.cyclomY/1.1.1.1/Sun Jun 1 03:17:28 1997/-ko/Tlinux_2_4_20
-+/README.epca/1.8/Fri Mar 9 20:33:56 2001/-ko/Tlinux_2_4_20
-+/README.scc/1.1.1.1/Sun Jun 1 03:17:27 1997/-ko/Tlinux_2_4_20
-+/acquirewdt.c/1.17.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/adbmouse.c/1.14/Tue Nov 6 00:55:02 2001/-ko/Tlinux_2_4_20
-+/advantechwdt.c/1.3.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/alim1535d_wdt.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/alim7101_wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/amd768_rng.c/1.1.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/amd76x_pm.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/amd76x_pm.h/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/amd7xx_tco.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/amigamouse.c/1.12/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
-+/amikeyb.c/1.9/Wed Jan 10 05:27:29 2001/-ko/Tlinux_2_4_20
-+/amiserial.c/1.10.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/applicom.c/1.12.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/applicom.h/1.1/Sat Oct 9 00:01:13 1999/-ko/Tlinux_2_4_20
-+/atarimouse.c/1.11/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
-+/atixlmouse.c/1.12/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
-+/au1000_gpio.c/1.1.2.1/Fri Feb 15 21:05:48 2002/-ko/Tlinux_2_4_20
-+/au1000_ts.c/1.1.2.1/Sat Jan 25 05:38:40 2003/-ko/Tlinux_2_4_20
-+/au1000_usbraw.c/1.1.2.1/Sun Jul 14 23:07:29 2002/-ko/Tlinux_2_4_20
-+/au1000_usbtty.c/1.1.2.1/Sun Jul 14 23:07:30 2002/-ko/Tlinux_2_4_20
-+/busmouse.c/1.21/Fri Oct 19 01:24:10 2001/-ko/Tlinux_2_4_20
-+/busmouse.h/1.4/Mon Jun 19 22:45:44 2000/-ko/Tlinux_2_4_20
-+/cd1865.h/1.3/Fri Mar 9 20:33:56 2001/-ko/Tlinux_2_4_20
-+/conmakehash.c/1.4/Tue Aug 25 09:16:38 1998/-ko/Tlinux_2_4_20
-+/console.c/1.37.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/console_macros.h/1.2/Mon Jan 4 16:05:23 1999/-ko/Tlinux_2_4_20
-+/consolemap.c/1.8/Fri Mar 9 20:33:56 2001/-ko/Tlinux_2_4_20
-+/cp437.uni/1.1.1.1/Sun Jun 1 03:17:27 1997/-ko/Tlinux_2_4_20
-+/cyclades.c/1.27.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/decserial.c/1.1.2.1/Tue Nov 12 15:01:32 2002/-ko/Tlinux_2_4_20
-+/defkeymap.c/1.6/Sat Dec 4 03:59:02 1999/-ko/Tlinux_2_4_20
-+/defkeymap.map/1.1.1.1/Sun Jun 1 03:17:29 1997/-ko/Tlinux_2_4_20
-+/digi.h/1.1.1.1/Sun Jun 1 03:17:29 1997/-ko/Tlinux_2_4_20
-+/digi1.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/digiFep1.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/digiPCI.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/digi_bios.h/1.1.1.1/Sun Jun 1 03:17:29 1997/-ko/Tlinux_2_4_20
-+/digi_fep.h/1.1.1.1/Sun Jun 1 03:17:26 1997/-ko/Tlinux_2_4_20
-+/dn_keyb.c/1.11.4.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/ds1620.c/1.5/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
-+/dsp56k.c/1.22/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
-+/dtlk.c/1.16/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
-+/dummy_keyb.c/1.3/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
-+/dz.c/1.23.2.6/Tue Nov 12 15:01:32 2002/-ko/Tlinux_2_4_20
-+/dz.h/1.3/Thu Sep 6 00:34:52 2001/-ko/Tlinux_2_4_20
-+/ec3104_keyb.c/1.2/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
-+/efirtc.c/1.8.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/epca.c/1.26.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/epca.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/epcaconfig.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/esp.c/1.21.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/eurotechwdt.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/fep.h/1.1.1.1/Sun Jun 1 03:17:28 1997/-ko/Tlinux_2_4_20
-+/generic_serial.c/1.12.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/h8.c/1.13/Fri Oct 19 01:24:11 2001/-ko/Tlinux_2_4_20
-+/h8.h/1.3/Thu Mar 2 02:36:59 2000/-ko/Tlinux_2_4_20
-+/hcdp_serial.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/hp600_keyb.c/1.6/Fri Oct 19 01:24:12 2001/-ko/Tlinux_2_4_20
-+/hp_keyb.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/hp_psaux.c/1.1.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/hvc_console.c/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/i810-tco.c/1.7.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/i810-tco.h/1.1.4.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/i810_rng.c/1.9.2.1/Wed Jun 26 22:35:32 2002/-ko/Tlinux_2_4_20
-+/i8k.c/1.1.2.2/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/ib700wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/indydog.c/1.1.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ip2.c/1.7.2.1/Sat Dec 29 05:37:53 2001/-ko/Tlinux_2_4_20
-+/ip2main.c/1.16.2.1/Wed Sep 11 12:44:46 2002/-ko/Tlinux_2_4_20
-+/isicom.c/1.14.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/istallion.c/1.29.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/ite_gpio.c/1.2.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
-+/keyboard.c/1.21.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/lcd.c/1.1.2.2/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
-+/lcd.h/1.1.2.1/Mon Jan 7 03:33:54 2002/-ko/Tlinux_2_4_20
-+/logibusmouse.c/1.4.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/lp.c/1.38.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/machzwd.c/1.5.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/mem.c/1.50.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.44.2.3/Tue Aug 6 01:41:46 2002/-ko/Tlinux_2_4_20
-+/mixcomwd.c/1.9.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/mk712.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/moxa.c/1.9/Tue Nov 6 07:55:58 2001/-ko/Tlinux_2_4_20
-+/msbusmouse.c/1.11.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/mxser.c/1.11.2.3/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/n_hdlc.c/1.13.2.1/Tue Feb 26 05:59:12 2002/-ko/Tlinux_2_4_20
-+/n_r3964.c/1.10/Fri Oct 19 01:24:13 2001/-ko/Tlinux_2_4_20
-+/n_tty.c/1.23.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/nvram.c/1.20.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/nwbutton.c/1.6/Fri Oct 19 01:24:14 2001/-ko/Tlinux_2_4_20
-+/nwbutton.h/1.2/Sat Jul 8 00:53:04 2000/-ko/Tlinux_2_4_20
-+/nwflash.c/1.9/Tue Nov 6 00:55:02 2001/-ko/Tlinux_2_4_20
-+/pc110pad.c/1.18/Fri Oct 19 01:24:14 2001/-ko/Tlinux_2_4_20
-+/pc110pad.h/1.2/Wed Aug 6 19:15:45 1997/-ko/Tlinux_2_4_20
-+/pc_keyb.c/1.39.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/pcwd.c/1.21.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/pcxx.c/1.18.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/pcxx.h/1.4/Thu Jun 14 04:23:56 2001/-ko/Tlinux_2_4_20
-+/pdc_console.c/1.1.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/ppdev.c/1.22.2.3/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/pty.c/1.16.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/q40_keyb.c/1.4.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/qpmouse.c/1.12/Fri Oct 19 01:24:14 2001/-ko/Tlinux_2_4_20
-+/qtronix.c/1.4/Tue Nov 27 01:27:33 2001/-ko/Tlinux_2_4_20
-+/qtronixmap.c/1.1.2.2/Mon Dec 2 00:24:53 2002/-ko/Tlinux_2_4_20
-+/qtronixmap.map/1.1/Wed Feb 21 13:30:36 2001/-ko/Tlinux_2_4_20
-+/random.c/1.26.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/raw.c/1.13.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/riscom8.c/1.16/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
-+/riscom8.h/1.4/Wed Jan 10 05:27:29 2001/-ko/Tlinux_2_4_20
-+/riscom8_reg.h/1.1.1.1/Sun Jun 1 03:17:29 1997/-ko/Tlinux_2_4_20
-+/rocket.c/1.22/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
-+/rocket_int.h/1.3.4.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/rsf16fmi.h/1.1/Tue Aug 25 09:16:54 1998/-ko/Tlinux_2_4_20
-+/rtc.c/1.46.2.5/Wed Sep 4 13:27:38 2002/-ko/Tlinux_2_4_20
-+/sb1250_duart.c/1.3.2.9/Wed Feb 19 20:37:43 2003/-ko/Tlinux_2_4_20
-+/sbc60xxwdt.c/1.10.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/sc1200wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/sc520_wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/scan_keyb.c/1.8/Wed Jun 13 17:27:48 2001/-ko/Tlinux_2_4_20
-+/scan_keyb.h/1.3/Wed Jun 13 17:27:48 2001/-ko/Tlinux_2_4_20
-+/scc.h/1.1/Fri Feb 18 22:06:15 2000/-ko/Tlinux_2_4_20
-+/selection.c/1.11/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
-+/ser_a2232.c/1.2/Fri Oct 19 01:24:15 2001/-ko/Tlinux_2_4_20
-+/ser_a2232.h/1.1/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/ser_a2232fw.ax/1.1/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/ser_a2232fw.h/1.1/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/serial.c/1.62.2.6/Mon Dec 2 01:51:56 2002/-ko/Tlinux_2_4_20
-+/serial167.c/1.9.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/serial_21285.c/1.4.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/serial_amba.c/1.4.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/serial_tx3912.c/1.6.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/serial_tx3912.h/1.2/Sat Nov 24 14:03:19 2001/-ko/Tlinux_2_4_20
-+/serial_txx927.c/1.1.2.3/Sun Dec 1 19:02:27 2002/-ko/Tlinux_2_4_20
-+/sh-sci.c/1.15.2.2/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/sh-sci.h/1.9/Wed Aug 22 03:24:22 2001/-ko/Tlinux_2_4_20
-+/shwdt.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/softdog.c/1.18.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/sonypi.c/1.3.2.3/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/sonypi.h/1.3.2.4/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/specialix.c/1.17.2.1/Wed Jun 26 22:35:33 2002/-ko/Tlinux_2_4_20
-+/specialix_io8.h/1.4/Thu Jun 17 13:27:38 1999/-ko/Tlinux_2_4_20
-+/stallion.c/1.33.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/sx.c/1.22.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/sx.h/1.5.2.1/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
-+/sxboards.h/1.3.4.1/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
-+/sxwindow.h/1.2/Sat Oct 9 00:01:14 1999/-ko/Tlinux_2_4_20
-+/synclink.c/1.20.2.4/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/synclinkmp.c/1.2.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/sysrq.c/1.21.2.2/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
-+/toshiba.c/1.4.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/tpqic02.c/1.25.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/tty_io.c/1.62.2.9/Thu Jan 9 20:17:07 2003/-ko/Tlinux_2_4_20
-+/tty_ioctl.c/1.10.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/vc_screen.c/1.19/Fri Oct 19 01:24:17 2001/-ko/Tlinux_2_4_20
-+/vme_scc.c/1.6.2.1/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
-+/vt.c/1.34.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/w83877f_wdt.c/1.3.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/wafer5823wdt.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/wd501p.h/1.4/Fri Mar 9 20:33:59 2001/-ko/Tlinux_2_4_20
-+/wdt.c/1.21.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/wdt285.c/1.8.2.2/Wed Jun 26 22:35:34 2002/-ko/Tlinux_2_4_20
-+/wdt977.c/1.6.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/wdt_pci.c/1.8.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+D/agp////
-+D/drm////
-+D/drm-4.0////
-+D/ftape////
-+D/ip2////
-+D/joystick////
-+D/mwave////
-+D/pcmcia////
-+D/rio////
-diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Repository
---- linux-2.4.20/drivers/char/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Repository 2005-01-06 23:01:24.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char
-diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Root
---- linux-2.4.20/drivers/char/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Root 2005-01-06 23:01:24.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Tag
---- linux-2.4.20/drivers/char/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/CVS/Tag 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/.cvsignore
---- linux-2.4.20/drivers/char/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/.cvsignore 2001-12-02 06:08:03.000000000 -0600
-@@ -0,0 +1,5 @@
-+.depend
-+.*.flags
-+conmakehash
-+consolemap_deftbl.c
-+uni_hash.tbl
-diff -urNd -urNd linux-2.4.20/drivers/char/decserial.c linux-2.4.20-mipscvs-20050106/drivers/char/decserial.c
---- linux-2.4.20/drivers/char/decserial.c 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/decserial.c 2002-11-12 09:01:32.000000000 -0600
-@@ -28,7 +28,7 @@
- extern int dz_init(void);
- #endif
-
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
-
- #ifdef CONFIG_ZS
- extern void zs_serial_console_init(void);
-@@ -43,7 +43,7 @@
- /* rs_init - starts up the serial interface -
- handle normal case of starting up the serial interface */
-
--#ifdef CONFIG_SERIAL
-+#ifdef CONFIG_SERIAL_DEC
-
- int __init rs_init(void)
- {
-@@ -70,12 +70,12 @@
-
- #endif
-
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
-
--/* serial_console_init handles the special case of starting
-+/* dec_serial_console_init handles the special case of starting
- * up the console on the serial port
- */
--void __init serial_console_init(void)
-+void __init dec_serial_console_init(void)
- {
- #if defined(CONFIG_ZS) && defined(CONFIG_DZ)
- if (IOASIC)
-diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Entries
---- linux-2.4.20/drivers/char/drm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Entries 2005-01-06 23:01:41.000000000 -0600
-@@ -0,0 +1,72 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:14 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.5.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.13.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/README.drm/1.3/Fri Aug 25 05:30:00 2000/-ko/Tlinux_2_4_20
-+/ati_pcigart.h/1.4.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/drm.h/1.8.2.2/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/drmP.h/1.18.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/drm_agpsupport.h/1.3.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/drm_auth.h/1.1.2.1/Wed Sep 11 12:44:47 2002/-ko/Tlinux_2_4_20
-+/drm_bufs.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_context.h/1.3.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_dma.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_drawable.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_drv.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_fops.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_init.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_ioctl.h/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_lists.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_lock.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_memory.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_proc.h/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_scatter.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_stub.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/drm_vm.h/1.6.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ffb.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/ffb_context.c/1.4/Sat Sep 22 12:49:19 2001/-ko/Tlinux_2_4_20
-+/ffb_drv.c/1.13/Tue Nov 6 00:55:02 2001/-ko/Tlinux_2_4_20
-+/ffb_drv.h/1.1/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
-+/gamma.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/gamma_dma.c/1.7.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/gamma_drv.c/1.13/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/gamma_drv.h/1.6/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/i810.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/i810_dma.c/1.10.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/i810_drm.h/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i810_drv.c/1.8.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i810_drv.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i830.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i830_dma.c/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i830_drm.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i830_drv.c/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i830_drv.h/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/mga.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/mga_dma.c/1.6.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/mga_drm.h/1.3/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/mga_drv.c/1.9/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/mga_drv.h/1.7.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/mga_state.c/1.5.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/mga_ucode.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/mga_warp.c/1.1.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/r128.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/r128_cce.c/1.4.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/r128_drm.h/1.4/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/r128_drv.c/1.11.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/r128_drv.h/1.8.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/r128_state.c/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/radeon.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/radeon_cp.c/1.4.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/radeon_drm.h/1.2/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/radeon_drv.c/1.2/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/radeon_drv.h/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/radeon_state.c/1.2.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/sis.h/1.1.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/sis_drm.h/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/sis_drv.c/1.1.2.2/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/sis_drv.h/1.1.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/sis_ds.c/1.1.2.4/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/sis_ds.h/1.1.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/sis_mm.c/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/tdfx.h/1.1/Fri Aug 24 03:38:37 2001/-ko/Tlinux_2_4_20
-+/tdfx_drv.c/1.15/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Repository
---- linux-2.4.20/drivers/char/drm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Repository 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/drm
-diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Root
---- linux-2.4.20/drivers/char/drm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Root 2005-01-06 23:01:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/drm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Tag
---- linux-2.4.20/drivers/char/drm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/CVS/Tag 2005-01-06 23:01:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/drm/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/drm/.cvsignore
---- linux-2.4.20/drivers/char/drm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm/.cvsignore 1999-10-08 19:01:14.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Entries
---- linux-2.4.20/drivers/char/drm-4.0/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Entries 2005-01-06 23:01:44.000000000 -0600
-@@ -0,0 +1,58 @@
-+/.cvsignore/1.1.2.1/Mon Mar 18 22:06:50 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/README.drm/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/agpsupport.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/auth.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/bufs.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/context.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/ctxbitmap.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/dma.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/drawable.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/drm.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/drmP.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/ffb_context.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/ffb_drv.c/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/ffb_drv.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/fops.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/gamma_dma.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/gamma_drv.c/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/gamma_drv.h/1.1.2.1/Tue Feb 26 05:59:17 2002/-ko/Tlinux_2_4_20
-+/i810_bufs.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/i810_context.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/i810_dma.c/1.1.2.3/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/i810_drm.h/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/i810_drv.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/i810_drv.h/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/ioctl.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/lists.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/lock.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/memory.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/mga_bufs.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/mga_context.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/mga_dma.c/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/mga_drm.h/1.1.2.1/Tue Feb 26 05:59:18 2002/-ko/Tlinux_2_4_20
-+/mga_drv.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/mga_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/mga_state.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/proc.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_bufs.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_cce.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_context.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_drm.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_drv.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/r128_state.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_bufs.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_context.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_cp.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_drm.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_drv.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/radeon_state.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/tdfx_context.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/tdfx_drv.c/1.1.2.2/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/tdfx_drv.h/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+/vm.c/1.1.2.1/Tue Feb 26 05:59:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Repository
---- linux-2.4.20/drivers/char/drm-4.0/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Repository 2005-01-06 23:01:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/drm-4.0
-diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Root
---- linux-2.4.20/drivers/char/drm-4.0/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Root 2005-01-06 23:01:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Tag
---- linux-2.4.20/drivers/char/drm-4.0/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/CVS/Tag 2005-01-06 23:01:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/drm-4.0/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/.cvsignore
---- linux-2.4.20/drivers/char/drm-4.0/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/drm-4.0/.cvsignore 2002-03-18 16:06:50.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/dz.c linux-2.4.20-mipscvs-20050106/drivers/char/dz.c
---- linux-2.4.20/drivers/char/dz.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/dz.c 2002-11-12 09:01:32.000000000 -0600
-@@ -35,28 +35,27 @@
- #include <linux/param.h>
- #include <linux/tqueue.h>
- #include <linux/interrupt.h>
--#include <asm-mips/wbflush.h>
--#include <asm/dec/interrupts.h>
-
- #include <linux/console.h>
- #include <linux/tty.h>
- #include <linux/tty_flip.h>
- #include <linux/serial.h>
-
--#include <asm/uaccess.h>
--#include <asm/irq.h>
--#include <asm/dec/machtype.h>
--#include <asm/dec/kn01.h>
--#include <asm/dec/kn02.h>
--
- #include <linux/ptrace.h>
- #include <linux/fs.h>
-+
- #include <asm/bootinfo.h>
-+#include <asm/dec/interrupts.h>
-+#include <asm/dec/kn01.h>
-+#include <asm/dec/kn02.h>
-+#include <asm/dec/machtype.h>
-+#include <asm/dec/prom.h>
-+#include <asm/irq.h>
-+#include <asm/system.h>
-+#include <asm/uaccess.h>
-
- #define CONSOLE_LINE (3) /* for definition of struct console */
-
--extern int (*prom_printf) (char *,...);
--
- #include "dz.h"
-
- #define DZ_INTR_DEBUG 1
-@@ -211,13 +210,12 @@
- if (!(status & DZ_DVAL))
- goto ignore_char;
-
--
- ch = UCHAR(status); /* grab the char */
-
- #if 0
- if (info->is_console) {
- if (ch == 0)
-- return; /* it's a break ... */
-+ return; /* it's a break ... */
- }
- #endif
-
-@@ -862,7 +860,7 @@
- tmp.type = info->type;
- tmp.line = info->line;
- tmp.port = info->port;
-- tmp.irq = SERIAL;
-+ tmp.irq = dec_interrupt[DEC_IRQ_DZ11];
- tmp.flags = info->flags;
- tmp.baud_base = info->baud_base;
- tmp.close_delay = info->close_delay;
-@@ -1404,7 +1402,7 @@
- return 0;
-
- printk("ttyS%02d at 0x%08x (irq = %d)\n", info->line,
-- info->port, SERIAL);
-+ info->port, dec_interrupt[DEC_IRQ_DZ11]);
-
- tty_register_devfs(&serial_driver, 0,
- serial_driver.minor_start + info->line);
-@@ -1413,10 +1411,10 @@
- }
-
- /* reset the chip */
--#ifndef CONFIG_SERIAL_CONSOLE
-+#ifndef CONFIG_SERIAL_DEC_CONSOLE
- dz_out(info, DZ_CSR, DZ_CLR);
- while ((tmp = dz_in(info, DZ_CSR)) & DZ_CLR);
-- wbflush();
-+ iob();
-
- /* enable scanning */
- dz_out(info, DZ_CSR, DZ_MSE);
-@@ -1428,13 +1426,14 @@
- restore_flags(flags);
-
-
-- if (request_irq(SERIAL, dz_interrupt, SA_INTERRUPT, "DZ", lines[0]))
-+ if (request_irq(dec_interrupt[DEC_IRQ_DZ11], dz_interrupt,
-+ SA_INTERRUPT, "DZ", lines[0]))
- panic("Unable to register DZ interrupt");
-
- return 0;
- }
-
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
- static void dz_console_put_char(unsigned char ch)
- {
- unsigned long flags;
-@@ -1575,12 +1574,12 @@
-
- static struct console dz_sercons =
- {
-- name: "ttyS",
-- write: dz_console_print,
-- device: dz_console_device,
-- setup: dz_console_setup,
-- flags: CON_CONSDEV | CON_PRINTBUFFER,
-- index: CONSOLE_LINE,
-+ .name = "ttyS",
-+ .write = dz_console_print,
-+ .device = dz_console_device,
-+ .setup = dz_console_setup,
-+ .flags = CON_CONSDEV | CON_PRINTBUFFER,
-+ .index = CONSOLE_LINE,
- };
-
- void __init dz_serial_console_init(void)
-@@ -1588,6 +1587,6 @@
- register_console(&dz_sercons);
- }
-
--#endif /* CONFIG_SERIAL_CONSOLE */
-+#endif /* CONFIG_SERIAL_DEC_CONSOLE */
-
- MODULE_LICENSE("GPL");
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Entries
---- linux-2.4.20/drivers/char/ftape/compressor/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Entries 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.2/Tue Mar 17 22:09:59 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/lzrw3.c/1.1/Sat Dec 6 23:52:48 1997/-ko/Tlinux_2_4_20
-+/lzrw3.h/1.1/Sat Dec 6 23:52:49 1997/-ko/Tlinux_2_4_20
-+/zftape-compress.c/1.4/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
-+/zftape-compress.h/1.1/Sat Dec 6 23:52:49 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Repository
---- linux-2.4.20/drivers/char/ftape/compressor/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Repository 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/ftape/compressor
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Root
---- linux-2.4.20/drivers/char/ftape/compressor/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Root 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Tag
---- linux-2.4.20/drivers/char/ftape/compressor/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/CVS/Tag 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/compressor/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/.cvsignore
---- linux-2.4.20/drivers/char/ftape/compressor/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/compressor/.cvsignore 1998-03-17 16:09:59.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Entries
---- linux-2.4.20/drivers/char/ftape/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.2/Tue Mar 17 22:09:58 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.5.4.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/README.PCI/1.2/Sat Dec 6 23:52:41 1997/-ko/Tlinux_2_4_20
-+/RELEASE-NOTES/1.3/Mon Feb 15 02:18:05 1999/-ko/Tlinux_2_4_20
-+D/compressor////
-+D/lowlevel////
-+D/zftape////
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Repository
---- linux-2.4.20/drivers/char/ftape/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Repository 2005-01-06 23:01:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/ftape
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Root
---- linux-2.4.20/drivers/char/ftape/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Root 2005-01-06 23:01:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Tag
---- linux-2.4.20/drivers/char/ftape/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/CVS/Tag 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/.cvsignore
---- linux-2.4.20/drivers/char/ftape/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/.cvsignore 1998-03-17 16:09:58.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Entries
---- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Entries 2005-01-06 23:01:46.000000000 -0600
-@@ -0,0 +1,38 @@
-+/.cvsignore/1.2/Tue Mar 17 22:10:01 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/fc-10.c/1.1/Sat Dec 6 23:52:50 1997/-ko/Tlinux_2_4_20
-+/fc-10.h/1.1/Sat Dec 6 23:52:50 1997/-ko/Tlinux_2_4_20
-+/fdc-io.c/1.9/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/fdc-io.h/1.2/Thu Jun 17 13:27:44 1999/-ko/Tlinux_2_4_20
-+/fdc-isr.c/1.3/Fri Mar 9 20:33:59 2001/-ko/Tlinux_2_4_20
-+/fdc-isr.h/1.1/Sat Dec 6 23:52:51 1997/-ko/Tlinux_2_4_20
-+/ftape-bsm.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/ftape-bsm.h/1.1/Sat Dec 6 23:52:52 1997/-ko/Tlinux_2_4_20
-+/ftape-buffer.c/1.5/Fri Mar 9 20:33:59 2001/-ko/Tlinux_2_4_20
-+/ftape-buffer.h/1.1/Sat Dec 6 23:52:52 1997/-ko/Tlinux_2_4_20
-+/ftape-calibr.c/1.3.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/ftape-calibr.h/1.1/Sat Dec 6 23:52:53 1997/-ko/Tlinux_2_4_20
-+/ftape-ctl.c/1.5/Tue Nov 28 03:58:49 2000/-ko/Tlinux_2_4_20
-+/ftape-ctl.h/1.2/Fri Feb 4 07:40:33 2000/-ko/Tlinux_2_4_20
-+/ftape-ecc.c/1.1/Sat Dec 6 23:52:53 1997/-ko/Tlinux_2_4_20
-+/ftape-ecc.h/1.1/Sat Dec 6 23:52:54 1997/-ko/Tlinux_2_4_20
-+/ftape-format.c/1.2/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/ftape-format.h/1.1/Sat Dec 6 23:52:54 1997/-ko/Tlinux_2_4_20
-+/ftape-init.c/1.5/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
-+/ftape-init.h/1.3/Fri Feb 4 07:40:33 2000/-ko/Tlinux_2_4_20
-+/ftape-io.c/1.5/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/ftape-io.h/1.1/Sat Dec 6 23:52:55 1997/-ko/Tlinux_2_4_20
-+/ftape-proc.c/1.5/Sat Jan 29 01:42:02 2000/-ko/Tlinux_2_4_20
-+/ftape-proc.h/1.2/Fri Feb 4 07:40:33 2000/-ko/Tlinux_2_4_20
-+/ftape-read.c/1.1/Sat Dec 6 23:52:56 1997/-ko/Tlinux_2_4_20
-+/ftape-read.h/1.1/Sat Dec 6 23:52:56 1997/-ko/Tlinux_2_4_20
-+/ftape-rw.c/1.4/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/ftape-rw.h/1.2.4.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
-+/ftape-setup.c/1.3/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+/ftape-tracing.c/1.2/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/ftape-tracing.h/1.4/Thu Oct 5 01:18:46 2000/-ko/Tlinux_2_4_20
-+/ftape-write.c/1.2/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/ftape-write.h/1.1/Sat Dec 6 23:52:58 1997/-ko/Tlinux_2_4_20
-+/ftape_syms.c/1.3/Fri Jul 21 22:00:58 2000/-ko/Tlinux_2_4_20
-+/ftape_syms.h/1.1/Sat Dec 6 23:52:58 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Repository
---- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Repository 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/ftape/lowlevel
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Root
---- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Root 2005-01-06 23:01:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Tag
---- linux-2.4.20/drivers/char/ftape/lowlevel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/CVS/Tag 2005-01-06 23:01:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/lowlevel/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/.cvsignore
---- linux-2.4.20/drivers/char/ftape/lowlevel/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/lowlevel/.cvsignore 1998-03-17 16:10:01.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Entries
---- linux-2.4.20/drivers/char/ftape/zftape/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Entries 2005-01-06 23:01:47.000000000 -0600
-@@ -0,0 +1,21 @@
-+/.cvsignore/1.2/Tue Mar 17 22:10:04 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/zftape-buffers.c/1.4/Fri Mar 9 20:33:59 2001/-ko/Tlinux_2_4_20
-+/zftape-buffers.h/1.1/Sat Dec 6 23:52:59 1997/-ko/Tlinux_2_4_20
-+/zftape-ctl.c/1.4/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/zftape-ctl.h/1.1/Sat Dec 6 23:53:00 1997/-ko/Tlinux_2_4_20
-+/zftape-eof.c/1.2/Fri Feb 4 07:40:33 2000/-ko/Tlinux_2_4_20
-+/zftape-eof.h/1.1/Sat Dec 6 23:53:00 1997/-ko/Tlinux_2_4_20
-+/zftape-init.c/1.14/Fri Oct 19 01:24:19 2001/-ko/Tlinux_2_4_20
-+/zftape-init.h/1.1/Sat Dec 6 23:53:01 1997/-ko/Tlinux_2_4_20
-+/zftape-read.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/zftape-read.h/1.1/Sat Dec 6 23:53:01 1997/-ko/Tlinux_2_4_20
-+/zftape-rw.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/zftape-rw.h/1.2/Tue Mar 17 22:10:05 1998/-ko/Tlinux_2_4_20
-+/zftape-vtbl.c/1.4/Wed Jun 13 17:27:49 2001/-ko/Tlinux_2_4_20
-+/zftape-vtbl.h/1.1.8.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
-+/zftape-write.c/1.3/Thu Nov 23 02:00:51 2000/-ko/Tlinux_2_4_20
-+/zftape-write.h/1.1/Sat Dec 6 23:53:03 1997/-ko/Tlinux_2_4_20
-+/zftape_syms.c/1.4/Fri Jul 21 22:00:58 2000/-ko/Tlinux_2_4_20
-+/zftape_syms.h/1.1/Sat Dec 6 23:53:03 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Repository
---- linux-2.4.20/drivers/char/ftape/zftape/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Repository 2005-01-06 23:01:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/ftape/zftape
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Root
---- linux-2.4.20/drivers/char/ftape/zftape/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Root 2005-01-06 23:01:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Tag
---- linux-2.4.20/drivers/char/ftape/zftape/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/CVS/Tag 2005-01-06 23:01:47.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/ftape/zftape/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/.cvsignore
---- linux-2.4.20/drivers/char/ftape/zftape/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ftape/zftape/.cvsignore 1998-03-17 16:10:04.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/indydog.c linux-2.4.20-mipscvs-20050106/drivers/char/indydog.c
---- linux-2.4.20/drivers/char/indydog.c 2002-11-28 17:53:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/indydog.c 2003-01-11 11:53:12.000000000 -0600
-@@ -25,7 +25,6 @@
- #include <asm/sgi/sgimc.h>
-
- static unsigned long indydog_alive;
--static struct sgimc_misc_ctrl *mcmisc_regs;
- static int expect_close = 0;
-
- #ifdef CONFIG_WATCHDOG_NOWAYOUT
-@@ -37,12 +36,11 @@
- MODULE_PARM(nowayout,"i");
- MODULE_PARM_DESC(nowayout, "Watchdog cannot be stopped once started (default=CONFIG_WATCHDOG_NOWAYOUT)");
-
--static void indydog_ping()
-+static inline void indydog_ping(void)
- {
- mcmisc_regs->watchdogt = 0;
- }
-
--
- /*
- * Allow only one person to hold it open
- */
-@@ -51,21 +49,23 @@
- {
- u32 mc_ctrl0;
-
-- if( test_and_set_bit(0,&indydog_alive) )
-+ if (test_and_set_bit(0,&indydog_alive))
- return -EBUSY;
-+
- if (nowayout) {
- MOD_INC_USE_COUNT;
- }
-+
- /*
- * Activate timer
- */
-- mcmisc_regs = (struct sgimc_misc_ctrl *)(KSEG1+0x1fa00000);
--
- mc_ctrl0 = mcmisc_regs->cpuctrl0 | SGIMC_CCTRL0_WDOG;
- mcmisc_regs->cpuctrl0 = mc_ctrl0;
- indydog_ping();
-
-+ indydog_alive = 1;
- printk("Started watchdog timer.\n");
-+
- return 0;
- }
-
-@@ -73,11 +73,12 @@
- {
- /*
- * Shut off the timer.
-- * Lock it in if it's a module and we set nowayout.
-+ * Lock it in if it's a module and we set nowayout.
- */
-+ lock_kernel();
- if (expect_close)
- {
-- u32 mc_ctrl0 = mcmisc_regs->cpuctrl0;
-+ u32 mc_ctrl0 = mcmisc_regs->cpuctrl0;
- mc_ctrl0 &= ~SGIMC_CCTRL0_WDOG;
- mcmisc_regs->cpuctrl0 = mc_ctrl0;
- printk("Stopped watchdog timer.\n");
-@@ -86,7 +87,9 @@
- {
- printk(KERN_CRIT "WDT device closed unexpectedly. WDT will not stop!\n");
- }
-- clear_bit(0,&indydog_alive);
-+ clear_bit(0, &indydog_alive);
-+ unlock_kernel();
-+
- return 0;
- }
-
-@@ -99,13 +102,13 @@
- /*
- * Refresh the timer.
- */
-- if(len) {
-+ if (len) {
- if (!nowayout) {
- size_t i;
-
- /* In case it was set long ago */
- expect_close = 0;
--
-+
- for (i = 0; i != len; i++) {
- char c;
- if (get_user(c, data + i))
-@@ -161,9 +164,7 @@
-
- static int __init watchdog_init(void)
- {
-- int ret;
--
-- ret = misc_register(&indydog_miscdev);
-+ int ret = misc_register(&indydog_miscdev);
-
- if (ret)
- return ret;
-diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Entries
---- linux-2.4.20/drivers/char/ip2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Entries 2005-01-06 23:01:49.000000000 -0600
-@@ -0,0 +1,20 @@
-+/.cvsignore/1.2/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+/fip_firm.h/1.3/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
-+/i2cmd.c/1.5.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/i2cmd.h/1.2/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+/i2ellis.c/1.5/Tue Nov 6 07:55:58 2001/-ko/Tlinux_2_4_20
-+/i2ellis.h/1.5/Tue Nov 6 07:55:59 2001/-ko/Tlinux_2_4_20
-+/i2hw.h/1.3/Fri Mar 9 20:34:00 2001/-ko/Tlinux_2_4_20
-+/i2lib.c/1.5.2.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
-+/i2lib.h/1.6/Tue Nov 6 07:55:59 2001/-ko/Tlinux_2_4_20
-+/i2os.h/1.3/Sat Jul 8 00:53:05 2000/-ko/Tlinux_2_4_20
-+/i2pack.h/1.2/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+/ip2.h/1.4/Tue Nov 6 07:55:59 2001/-ko/Tlinux_2_4_20
-+/ip2ioctl.h/1.2/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+/ip2mkdev.c/1.1/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
-+/ip2stat.c/1.1/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
-+/ip2trace.c/1.1/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
-+/ip2trace.h/1.3/Fri Apr 28 01:09:37 2000/-ko/Tlinux_2_4_20
-+/ip2types.h/1.2/Sat Oct 9 00:01:15 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Repository
---- linux-2.4.20/drivers/char/ip2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Repository 2005-01-06 23:01:47.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/ip2
-diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Root
---- linux-2.4.20/drivers/char/ip2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Root 2005-01-06 23:01:47.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/ip2/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Tag
---- linux-2.4.20/drivers/char/ip2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/CVS/Tag 2005-01-06 23:01:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/ip2/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/ip2/.cvsignore
---- linux-2.4.20/drivers/char/ip2/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ip2/.cvsignore 1999-10-08 19:01:15.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/ite_gpio.c linux-2.4.20-mipscvs-20050106/drivers/char/ite_gpio.c
---- linux-2.4.20/drivers/char/ite_gpio.c 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/ite_gpio.c 2002-05-29 03:12:07.000000000 -0500
-@@ -30,9 +30,7 @@
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
--
- #include <linux/module.h>
--#include <linux/config.h>
- #include <linux/types.h>
- #include <linux/kernel.h>
- #include <linux/miscdevice.h>
-diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Entries
---- linux-2.4.20/drivers/char/joystick/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Entries 2005-01-06 23:01:50.000000000 -0600
-@@ -0,0 +1,31 @@
-+/.cvsignore/1.1/Mon Dec 6 23:13:20 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.9.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/a3d.c/1.3.2.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
-+/adi.c/1.5/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
-+/amijoy.c/1.4/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
-+/analog.c/1.6.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/cobra.c/1.4/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
-+/cs461x.c/1.3.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/db9.c/1.3/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
-+/emu10k1-gp.c/1.2.2.2/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
-+/gamecon.c/1.4/Fri Oct 19 01:24:20 2001/-ko/Tlinux_2_4_20
-+/gameport.c/1.4/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/gf2k.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/grip.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/iforce.c/1.6.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/interact.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/lightning.c/1.3.2.1/Wed Jun 26 22:35:37 2002/-ko/Tlinux_2_4_20
-+/magellan.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/ns558.c/1.7/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/pcigame.c/1.4.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/serio.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/serport.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/sidewinder.c/1.6/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/spaceball.c/1.5/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/spaceorb.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/stinger.c/1.2/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/tmdc.c/1.4/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/turbografx.c/1.2/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+/warrior.c/1.3/Fri Oct 19 01:24:21 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Repository
---- linux-2.4.20/drivers/char/joystick/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Repository 2005-01-06 23:01:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/joystick
-diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Root
---- linux-2.4.20/drivers/char/joystick/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Root 2005-01-06 23:01:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/joystick/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Tag
---- linux-2.4.20/drivers/char/joystick/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/CVS/Tag 2005-01-06 23:01:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/joystick/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/joystick/.cvsignore
---- linux-2.4.20/drivers/char/joystick/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/joystick/.cvsignore 1999-12-06 17:13:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/lcd.c linux-2.4.20-mipscvs-20050106/drivers/char/lcd.c
---- linux-2.4.20/drivers/char/lcd.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/lcd.c 2002-05-29 03:12:07.000000000 -0500
-@@ -14,6 +14,7 @@
-
- #define RTC_IO_EXTENT 0x10 /*Only really two ports, but... */
-
-+#include <linux/config.h>
- #include <linux/types.h>
- #include <linux/errno.h>
- #include <linux/miscdevice.h>
-diff -urNd -urNd linux-2.4.20/drivers/char/Makefile linux-2.4.20-mipscvs-20050106/drivers/char/Makefile
---- linux-2.4.20/drivers/char/Makefile 2002-11-28 17:53:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/Makefile 2003-01-24 23:38:40.000000000 -0600
-@@ -126,7 +126,6 @@
- ifeq ($(CONFIG_DECSTATION),y)
- KEYMAP =
- KEYBD =
-- SERIAL = decserial.o
- endif
-
- ifeq ($(CONFIG_BAGET_MIPS),y)
-@@ -157,7 +156,8 @@
- obj-$(CONFIG_SERIAL_21285) += serial_21285.o
- obj-$(CONFIG_SERIAL_SA1100) += serial_sa1100.o
- obj-$(CONFIG_SERIAL_AMBA) += serial_amba.o
--obj-$(CONFIG_TS_AU1000_ADS7846) += au1000_ts.o
-+obj-$(CONFIG_TS_AU1X00_ADS7846) += au1000_ts.o
-+obj-$(CONFIG_SERIAL_DEC) += decserial.o
-
- ifndef CONFIG_SUN_KEYBOARD
- obj-$(CONFIG_VT) += keyboard.o $(KEYMAP) $(KEYBD)
-@@ -234,7 +234,9 @@
- obj-$(CONFIG_AMD_PM768) += amd76x_pm.o
-
- obj-$(CONFIG_ITE_GPIO) += ite_gpio.o
--obj-$(CONFIG_AU1000_GPIO) += au1000_gpio.o
-+obj-$(CONFIG_AU1X00_GPIO) += au1000_gpio.o
-+obj-$(CONFIG_AU1000_USB_TTY) += au1000_usbtty.o
-+obj-$(CONFIG_AU1000_USB_RAW) += au1000_usbraw.o
- obj-$(CONFIG_COBALT_LCD) += lcd.o
-
- obj-$(CONFIG_QIC02_TAPE) += tpqic02.o
-@@ -283,6 +285,7 @@
- obj-$(CONFIG_WAFER_WDT) += wafer5823wdt.o
- obj-$(CONFIG_SOFT_WATCHDOG) += softdog.o
- obj-$(CONFIG_AMD7XX_TCO) += amd7xx_tco.o
-+obj-$(CONFIG_INDYDOG) += indydog.o
-
- subdir-$(CONFIG_MWAVE) += mwave
- ifeq ($(CONFIG_MWAVE),y)
-diff -urNd -urNd linux-2.4.20/drivers/char/misc.c linux-2.4.20-mipscvs-20050106/drivers/char/misc.c
---- linux-2.4.20/drivers/char/misc.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/misc.c 2002-08-05 20:41:46.000000000 -0500
-@@ -66,9 +66,7 @@
- static unsigned char misc_minors[DYNAMIC_MINORS / 8];
-
- extern int psaux_init(void);
--#ifdef CONFIG_SGI_NEWPORT_GFX
- extern void gfx_register(void);
--#endif
- extern void streamable_init(void);
- extern int rtc_DP8570A_init(void);
- extern int rtc_MK48T08_init(void);
-diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Entries
---- linux-2.4.20/drivers/char/mwave/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Entries 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
-+/3780i.c/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/3780i.h/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/README/1.2/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
-+/mwavedd.c/1.2.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
-+/mwavedd.h/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/mwavepub.h/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/smapi.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/smapi.h/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/tp3780i.c/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/tp3780i.h/1.1/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Repository
---- linux-2.4.20/drivers/char/mwave/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Repository 2005-01-06 23:01:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/mwave
-diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Root
---- linux-2.4.20/drivers/char/mwave/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Root 2005-01-06 23:01:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/mwave/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Tag
---- linux-2.4.20/drivers/char/mwave/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/CVS/Tag 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/mwave/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/mwave/.cvsignore
---- linux-2.4.20/drivers/char/mwave/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/mwave/.cvsignore 2001-11-15 10:02:31.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Entries
---- linux-2.4.20/drivers/char/pcmcia/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Entries 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Sat Jan 29 01:42:03 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.5.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+/serial_cs.c/1.7.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/synclink_cs.c/1.2.2.1/Wed Sep 11 12:44:48 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Repository
---- linux-2.4.20/drivers/char/pcmcia/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Repository 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/pcmcia
-diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Root
---- linux-2.4.20/drivers/char/pcmcia/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Root 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Tag
---- linux-2.4.20/drivers/char/pcmcia/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/CVS/Tag 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/.cvsignore
---- linux-2.4.20/drivers/char/pcmcia/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/pcmcia/.cvsignore 2000-01-28 19:42:03.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/qtronixmap.c linux-2.4.20-mipscvs-20050106/drivers/char/qtronixmap.c
---- linux-2.4.20/drivers/char/qtronixmap.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/qtronixmap.c 2002-12-01 18:24:53.000000000 -0600
-@@ -226,40 +226,40 @@
- };
-
- struct kbdiacr accent_table[MAX_DIACR] = {
-- {'`', 'A', 'À'}, {'`', 'a', 'à'},
-- {'\'', 'A', 'Á'}, {'\'', 'a', 'á'},
-- {'^', 'A', 'Â'}, {'^', 'a', 'â'},
-- {'~', 'A', 'Ã'}, {'~', 'a', 'ã'},
-- {'"', 'A', 'Ä'}, {'"', 'a', 'ä'},
-- {'O', 'A', 'Å'}, {'o', 'a', 'å'},
-- {'0', 'A', 'Å'}, {'0', 'a', 'å'},
-- {'A', 'A', 'Å'}, {'a', 'a', 'å'},
-- {'A', 'E', 'Æ'}, {'a', 'e', 'æ'},
-- {',', 'C', 'Ç'}, {',', 'c', 'ç'},
-- {'`', 'E', 'È'}, {'`', 'e', 'è'},
-- {'\'', 'E', 'É'}, {'\'', 'e', 'é'},
-- {'^', 'E', 'Ê'}, {'^', 'e', 'ê'},
-- {'"', 'E', 'Ë'}, {'"', 'e', 'ë'},
-- {'`', 'I', 'Ì'}, {'`', 'i', 'ì'},
-- {'\'', 'I', 'Í'}, {'\'', 'i', 'í'},
-- {'^', 'I', 'Î'}, {'^', 'i', 'î'},
-- {'"', 'I', 'Ï'}, {'"', 'i', 'ï'},
-- {'-', 'D', 'Ð'}, {'-', 'd', 'ð'},
-- {'~', 'N', 'Ñ'}, {'~', 'n', 'ñ'},
-- {'`', 'O', 'Ò'}, {'`', 'o', 'ò'},
-- {'\'', 'O', 'Ó'}, {'\'', 'o', 'ó'},
-- {'^', 'O', 'Ô'}, {'^', 'o', 'ô'},
-- {'~', 'O', 'Õ'}, {'~', 'o', 'õ'},
-- {'"', 'O', 'Ö'}, {'"', 'o', 'ö'},
-- {'/', 'O', 'Ø'}, {'/', 'o', 'ø'},
-- {'`', 'U', 'Ù'}, {'`', 'u', 'ù'},
-- {'\'', 'U', 'Ú'}, {'\'', 'u', 'ú'},
-- {'^', 'U', 'Û'}, {'^', 'u', 'û'},
-- {'"', 'U', 'Ü'}, {'"', 'u', 'ü'},
-- {'\'', 'Y', 'Ý'}, {'\'', 'y', 'ý'},
-- {'T', 'H', 'Þ'}, {'t', 'h', 'þ'},
-- {'s', 's', 'ß'}, {'"', 'y', 'ÿ'},
-- {'s', 'z', 'ß'}, {'i', 'j', 'ÿ'},
-+ {'`', 'A', '\300'}, {'`', 'a', '\340'},
-+ {'\'', 'A', '\301'}, {'\'', 'a', '\341'},
-+ {'^', 'A', '\302'}, {'^', 'a', '\342'},
-+ {'~', 'A', '\303'}, {'~', 'a', '\343'},
-+ {'"', 'A', '\304'}, {'"', 'a', '\344'},
-+ {'O', 'A', '\305'}, {'o', 'a', '\345'},
-+ {'0', 'A', '\305'}, {'0', 'a', '\345'},
-+ {'A', 'A', '\305'}, {'a', 'a', '\345'},
-+ {'A', 'E', '\306'}, {'a', 'e', '\346'},
-+ {',', 'C', '\307'}, {',', 'c', '\347'},
-+ {'`', 'E', '\310'}, {'`', 'e', '\350'},
-+ {'\'', 'E', '\311'}, {'\'', 'e', '\351'},
-+ {'^', 'E', '\312'}, {'^', 'e', '\352'},
-+ {'"', 'E', '\313'}, {'"', 'e', '\353'},
-+ {'`', 'I', '\314'}, {'`', 'i', '\354'},
-+ {'\'', 'I', '\315'}, {'\'', 'i', '\355'},
-+ {'^', 'I', '\316'}, {'^', 'i', '\356'},
-+ {'"', 'I', '\317'}, {'"', 'i', '\357'},
-+ {'-', 'D', '\320'}, {'-', 'd', '\360'},
-+ {'~', 'N', '\321'}, {'~', 'n', '\361'},
-+ {'`', 'O', '\322'}, {'`', 'o', '\362'},
-+ {'\'', 'O', '\323'}, {'\'', 'o', '\363'},
-+ {'^', 'O', '\324'}, {'^', 'o', '\364'},
-+ {'~', 'O', '\325'}, {'~', 'o', '\365'},
-+ {'"', 'O', '\326'}, {'"', 'o', '\366'},
-+ {'/', 'O', '\330'}, {'/', 'o', '\370'},
-+ {'`', 'U', '\331'}, {'`', 'u', '\371'},
-+ {'\'', 'U', '\332'}, {'\'', 'u', '\372'},
-+ {'^', 'U', '\333'}, {'^', 'u', '\373'},
-+ {'"', 'U', '\334'}, {'"', 'u', '\374'},
-+ {'\'', 'Y', '\335'}, {'\'', 'y', '\375'},
-+ {'T', 'H', '\336'}, {'t', 'h', '\376'},
-+ {'s', 's', '\337'}, {'"', 'y', '\377'},
-+ {'s', 'z', '\337'}, {'i', 'j', '\377'},
- };
-
- unsigned int accent_table_size = 68;
-diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Entries
---- linux-2.4.20/drivers/char/rio/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Entries 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1,80 @@
-+/.cvsignore/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/board.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/bootpkt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/brates.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/cdproto.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/chan.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/cirrus.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/cmd.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/cmdblk.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/cmdpkt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/control.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/daemon.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/data.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/debug.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/defaults.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/eisa.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/enable.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/error.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/errors.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/formpkt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/func.h/1.2/Thu Jun 15 01:56:00 2000/-ko/Tlinux_2_4_20
-+/host.h/1.3/Wed Jan 10 05:27:29 2001/-ko/Tlinux_2_4_20
-+/hosthw.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/link.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/linux_compat.h/1.4.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/list.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/lrt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/ltt.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/lttwake.h/1.1/Fri May 12 21:06:17 2000/-ko/Tlinux_2_4_20
-+/map.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/mca.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/mesg.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/param.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/parmmap.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/phb.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/pkt.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/port.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/proto.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/protsts.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/qbuf.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rio.h/1.3/Sat Sep 22 12:49:19 2001/-ko/Tlinux_2_4_20
-+/rio_linux.c/1.11.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
-+/rio_linux.h/1.4.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/rioboard.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rioboot.c/1.5/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/riocmd.c/1.6.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/rioctrl.c/1.5/Wed Jun 13 17:27:49 2001/-ko/Tlinux_2_4_20
-+/riodrvr.h/1.2/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/rioinfo.h/1.2/Fri Mar 9 20:34:00 2001/-ko/Tlinux_2_4_20
-+/rioinit.c/1.5/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/riointr.c/1.5/Fri Oct 19 01:24:22 2001/-ko/Tlinux_2_4_20
-+/rioioctl.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/riolocks.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rioparam.c/1.3/Fri Mar 9 20:34:00 2001/-ko/Tlinux_2_4_20
-+/riopcicopy.c/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rioroute.c/1.4/Wed Aug 22 03:24:23 2001/-ko/Tlinux_2_4_20
-+/riospace.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/riotable.c/1.5/Fri Oct 19 01:24:22 2001/-ko/Tlinux_2_4_20
-+/riotime.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/riotty.c/1.5/Thu Aug 23 22:24:28 2001/-ko/Tlinux_2_4_20
-+/riotypes.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/riowinif.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/riscos.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rom.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/route.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rtahw.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rup.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/rupstat.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/sam.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/selftest.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/space.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/sysmap.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/timeouts.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/top.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/typdef.h/1.1/Fri May 12 21:06:18 2000/-ko/Tlinux_2_4_20
-+/unixrup.h/1.2/Thu Jun 15 01:56:00 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Repository
---- linux-2.4.20/drivers/char/rio/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Repository 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/char/rio
-diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Root
---- linux-2.4.20/drivers/char/rio/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Root 2005-01-06 23:01:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/char/rio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Tag
---- linux-2.4.20/drivers/char/rio/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/CVS/Tag 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/char/rio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/char/rio/.cvsignore
---- linux-2.4.20/drivers/char/rio/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/rio/.cvsignore 2000-05-12 16:06:17.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/char/rtc.c linux-2.4.20-mipscvs-20050106/drivers/char/rtc.c
---- linux-2.4.20/drivers/char/rtc.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/rtc.c 2002-09-04 08:27:38.000000000 -0500
-@@ -35,17 +35,16 @@
- * 1.09a Pete Zaitcev: Sun SPARC
- * 1.09b Jeff Garzik: Modularize, init cleanup
- * 1.09c Jeff Garzik: SMP cleanup
-- * 1.10 Paul Barton-Davis: add support for async I/O
-+ * 1.10 Paul Barton-Davis: add support for async I/O
- * 1.10a Andrea Arcangeli: Alpha updates
- * 1.10b Andrew Morton: SMP lock fix
- * 1.10c Cesar Barros: SMP locking fixes and cleanup
- * 1.10d Paul Gortmaker: delete paranoia check in rtc_exit
- * 1.10e Maciej W. Rozycki: Handle DECstation's year weirdness.
-+ * 1.10f Maciej W. Rozycki: Handle memory-mapped chips properly.
- */
-
--#define RTC_VERSION "1.10e"
--
--#define RTC_IO_EXTENT 0x10 /* Only really two ports, but... */
-+#define RTC_VERSION "1.10f"
-
- /*
- * Note that *all* calls to CMOS_READ and CMOS_WRITE are done with
-@@ -83,7 +82,9 @@
- static int rtc_irq = PCI_IRQ_NONE;
- #endif
-
-+#if RTC_IRQ
- static int rtc_has_irq = 1;
-+#endif
-
- /*
- * We sponge a minor off of the misc major. No need slurping
-@@ -96,7 +97,9 @@
-
- static DECLARE_WAIT_QUEUE_HEAD(rtc_wait);
-
-+#if RTC_IRQ
- static struct timer_list rtc_irq_timer;
-+#endif
-
- static ssize_t rtc_read(struct file *file, char *buf,
- size_t count, loff_t *ppos);
-@@ -237,7 +240,15 @@
- if (rtc_has_irq == 0)
- return -EIO;
-
-- if (count < sizeof(unsigned long))
-+ /*
-+ * Historically this function used to assume that sizeof(unsigned long)
-+ * is the same in userspace and kernelspace. This lead to problems
-+ * for configurations with multiple ABIs such a the MIPS o32 and 64
-+ * ABIs supported on the same kernel. So now we support read of both
-+ * 4 and 8 bytes and assume that's the sizeof(unsigned long) in the
-+ * userspace ABI.
-+ */
-+ if (count != sizeof(unsigned int) && count != sizeof(unsigned long))
- return -EINVAL;
-
- add_wait_queue(&rtc_wait, &wait);
-@@ -267,9 +278,12 @@
- schedule();
- } while (1);
-
-- retval = put_user(data, (unsigned long *)buf);
-+ if (count == sizeof(unsigned int))
-+ retval = put_user(data, (unsigned int *)buf);
-+ else
-+ retval = put_user(data, (unsigned long *)buf);
- if (!retval)
-- retval = sizeof(unsigned long);
-+ retval = count;
- out:
- current->state = TASK_RUNNING;
- remove_wait_queue(&rtc_wait, &wait);
-@@ -709,6 +723,9 @@
- struct isa_device *isa_dev;
- #endif
- #endif
-+#ifndef __sparc__
-+ void *r;
-+#endif
-
- #ifdef __sparc__
- for_each_ebus(ebus) {
-@@ -755,18 +772,24 @@
- }
- no_irq:
- #else
-- if (!request_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc"))
-- {
-- printk(KERN_ERR "rtc: I/O port %d is not free.\n", RTC_PORT (0));
-+ if (RTC_IOMAPPED)
-+ r = request_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc");
-+ else
-+ r = request_mem_region(RTC_PORT(0), RTC_IO_EXTENT, "rtc");
-+ if (!r) {
-+ printk(KERN_ERR "rtc: I/O resource %lx is not free.\n",
-+ (long)(RTC_PORT(0)));
- return -EIO;
- }
-
- #if RTC_IRQ
-- if(request_irq(RTC_IRQ, rtc_interrupt, SA_INTERRUPT, "rtc", NULL))
-- {
-+ if(request_irq(RTC_IRQ, rtc_interrupt, SA_INTERRUPT, "rtc", NULL)) {
- /* Yeah right, seeing as irq 8 doesn't even hit the bus. */
- printk(KERN_ERR "rtc: IRQ %d is not free.\n", RTC_IRQ);
-- release_region(RTC_PORT(0), RTC_IO_EXTENT);
-+ if (RTC_IOMAPPED)
-+ release_region(RTC_PORT(0), RTC_IO_EXTENT);
-+ else
-+ release_mem_region(RTC_PORT(0), RTC_IO_EXTENT);
- return -EIO;
- }
- #endif
-@@ -850,7 +873,10 @@
- if (rtc_has_irq)
- free_irq (rtc_irq, &rtc_port);
- #else
-- release_region (RTC_PORT (0), RTC_IO_EXTENT);
-+ if (RTC_IOMAPPED)
-+ release_region(RTC_PORT(0), RTC_IO_EXTENT);
-+ else
-+ release_mem_region(RTC_PORT(0), RTC_IO_EXTENT);
- #if RTC_IRQ
- if (rtc_has_irq)
- free_irq (RTC_IRQ, NULL);
-diff -urNd -urNd linux-2.4.20/drivers/char/sb1250_duart.c linux-2.4.20-mipscvs-20050106/drivers/char/sb1250_duart.c
---- linux-2.4.20/drivers/char/sb1250_duart.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/sb1250_duart.c 2003-02-19 14:37:43.000000000 -0600
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-+ * Copyright (C) 2000, 2001, 2002, 2003 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -24,10 +24,10 @@
- *
- * The non-console part of this code is based heavily on the serial_21285.c
- * driver also in this directory. See tty_driver.h for a description of some
-- * of the driver functions, though it (like most of the inline code documentation :)
-- * is a bit out of date.
-+ * of the driver functions, though it (like most of the inline code
-+ * documentation :) is a bit out of date.
- */
--
-+#include <linux/config.h>
- #include <linux/types.h>
- #include <linux/serial.h>
- #include <linux/module.h>
-@@ -43,13 +43,14 @@
- #include <linux/tty_flip.h>
- #include <linux/timer.h>
- #include <linux/init.h>
-+#include <linux/mm.h>
- #include <asm/io.h>
- #include <asm/uaccess.h>
- #include <asm/sibyte/swarm.h>
--#include <asm/sibyte/sb1250.h>
- #include <asm/sibyte/sb1250_regs.h>
- #include <asm/sibyte/sb1250_uart.h>
- #include <asm/sibyte/sb1250_int.h>
-+#include <asm/sibyte/sb1250.h>
- #include <asm/sibyte/64bit.h>
-
- /* Toggle spewing of debugging output */
-@@ -57,44 +58,63 @@
-
- #define DEFAULT_CFLAGS (CS8 | B115200)
-
-+#define SB1250_DUART_MINOR_BASE 64
-
--/*
-- Still not sure what the termios structures set up here are for,
-- but we have to supply pointers to them to register the tty driver
--*/
-+#ifndef MIN
-+#define MIN(a,b) ((a) < (b) ? (a) : (b))
-+#endif
-
-+#ifdef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-+#define DUART_MAX_LINE 1
-+#else
-+#define DUART_MAX_LINE 2
-+#endif
-+
-+/*
-+ * Still not sure what the termios structures set up here are for,
-+ * but we have to supply pointers to them to register the tty driver
-+ */
- static struct tty_driver sb1250_duart_driver, sb1250_duart_callout_driver;
--static int ref_count;
--static struct tty_struct *duart_table[2];
--static struct termios *duart_termios[2];
--static struct termios *duart_termios_locked[2];
-+static int duart_refcount;
-+static struct tty_struct *duart_table[DUART_MAX_LINE];
-+static struct termios *duart_termios[DUART_MAX_LINE];
-+static struct termios *duart_termios_locked[DUART_MAX_LINE];
-
--/* This lock protects both the open flags for all the uart states as
-- well as the reference count for the module */
--static spinlock_t open_lock = SPIN_LOCK_UNLOCKED;
-+/*
-+ * tmp_buf is used as a temporary buffer by serial_write. We need to
-+ * lock it in case the copy_from_user blocks while swapping in a page,
-+ * and some other program tries to do a serial write at the same time.
-+ * Since the lock will only come under contention when the system is
-+ * swapping and available memory is low, it makes sense to share one
-+ * buffer across all the serial ports, since it significantly saves
-+ * memory if large numbers of serial ports are open.
-+ */
-+static unsigned char *tmp_buf = 0;
-+DECLARE_MUTEX(tmp_buf_sem);
-
--/* Protect the writing stuff from contention */
--//static spinlock_t console_lock = SPIN_LOCK_UNLOCKED;
-+/*
-+ * This lock protects both the open flags for all the uart states as
-+ * well as the reference count for the module
-+ */
-+static spinlock_t open_lock = SPIN_LOCK_UNLOCKED;
-
- /* Bit fields of flags in the flags field below */
-
--#define SD_WRITE_WAKE 0x000000001
--
--
- typedef struct {
- struct tty_struct *tty;
-- unsigned char outp_buf[CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE];
-+ unsigned char outp_buf[SERIAL_XMIT_SIZE];
- unsigned int outp_head;
- unsigned int outp_tail;
- unsigned int outp_count;
- spinlock_t outp_lock;
- unsigned int outp_stopped;
- unsigned int open;
-- unsigned long flags;
-+ unsigned int line;
- unsigned int last_cflags;
-+ unsigned long flags;
- } uart_state_t;
-
--static uart_state_t uart_states[2] = { [0 ... 1] = {
-+static uart_state_t uart_states[DUART_MAX_LINE] = { [0 ... DUART_MAX_LINE-1] = {
- tty: 0,
- outp_head: 0,
- outp_tail: 0,
-@@ -134,23 +154,20 @@
-
- static inline unsigned long get_status_reg(unsigned int line)
- {
-- return in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_STATUS));
--}
--
--/* Derive which uart a call is for from the passed tty line. */
--static inline unsigned int get_line(struct tty_struct *tty)
--{
-- unsigned int line = MINOR(tty->device) - 64;
-- if (line > 1)
-- printk(KERN_CRIT "Invalid line\n");
-+ uint64_t status;
-
-- return line;
-+ /* Workaround the UART synchronizer bug XXXKW Pass 2 Workaround */
-+#ifdef CONFIG_SB1_PASS_2_WORKAROUNDS
-+ in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_CMD));
-+#endif
-+ status = in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_STATUS));
-+#ifdef CONFIG_SB1_PASS_2_WORKAROUNDS
-+ in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_CMD));
-+#endif
-+ return status;
- }
-
-
--
--#define MIN(a, b) (((a)<(b))?(a):(b))
--
- /*
- * Generic interrupt handler for both channels. dev_id is a pointer
- * to the proper uart_states structure, so from that we can derive
-@@ -159,23 +176,26 @@
-
- static void duart_int(int irq, void *dev_id, struct pt_regs *regs)
- {
-- unsigned int line;
- uart_state_t *us = (uart_state_t *)dev_id;
-- line = us-uart_states;
-+ unsigned int line = us->line;
-+ struct tty_struct *tty = us->tty;
-+
- #ifdef DUART_SPEW
--// setleds("INT!");
-- printk("DUART INT\n");
-+ printk("DUART INT\n");
- #endif
-- /* We could query the ISR to figure out why we are here, but since
-- we are here, we may as well just take care of both rx and tx */
-+ /*
-+ * We could query the ISR to figure out why we are here, but since
-+ * we are here, we may as well just take care of both rx and tx
-+ */
- spin_lock(&us->outp_lock);
- if (get_status_reg(line) & M_DUART_RX_RDY) {
- do {
- unsigned int status = get_status_reg(line);
-- unsigned int ch = in64(IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_RX_HOLD));
-+ unsigned int ch = in64(IO_SPACE_BASE |
-+ A_DUART_CHANREG(line, R_DUART_RX_HOLD));
- unsigned int flag = 0;
-- if (status & 0x10) {
-- tty_insert_flip_char(us->tty, 0, TTY_OVERRUN); }
-+ if (status & 0x10)
-+ tty_insert_flip_char(tty, 0, TTY_OVERRUN);
- if (status & 0x20) {
- printk("Parity error!\n");
- flag = TTY_PARITY;
-@@ -183,26 +203,32 @@
- printk("Frame error!\n");
- flag = TTY_FRAME;
- }
-- tty_insert_flip_char(us->tty, ch, flag);
-+ tty_insert_flip_char(tty, ch, flag);
- } while (get_status_reg(line) & M_DUART_RX_RDY);
-- tty_flip_buffer_push(us->tty);
-+ tty_flip_buffer_push(tty);
- }
- if ((get_status_reg(line) & M_DUART_TX_RDY) && us->outp_count) {
- do {
- out64(us->outp_buf[us->outp_head], IO_SPACE_BASE | A_DUART_CHANREG(line, R_DUART_TX_HOLD));
-- us->outp_head = (us->outp_head + 1) & (CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE-1);
-+ us->outp_head = (us->outp_head + 1) & (SERIAL_XMIT_SIZE-1);
- us->outp_count--;
-- } while ((get_status_reg(line) & M_DUART_TX_RDY) && us->outp_count);
-+ } while ((get_status_reg(line) & M_DUART_TX_RDY) &&
-+ us->outp_count);
-
-- if (us->open && (us->flags & SD_WRITE_WAKE) &&
-- (us->outp_count < (CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE/2))) {
-- /* We told the discipline at one point that we had no space, so it went
-- to sleep. Wake it up when we hit half empty */
-- wake_up_interruptible(&us->tty->write_wait);
-+ if (us->open &&
-+ (us->outp_count < (SERIAL_XMIT_SIZE/2))) {
-+ /*
-+ * We told the discipline at one point that we had no
-+ * space, so it went to sleep. Wake it up when we hit
-+ * half empty
-+ */
-+ if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-+ tty->ldisc.write_wakeup)
-+ tty->ldisc.write_wakeup(tty);
-+ wake_up_interruptible(&tty->write_wait);
- }
-- if (!us->outp_count) {
-+ if (!us->outp_count)
- duart_mask_ints(line, M_DUART_IMR_TX);
-- }
- }
- spin_unlock(&us->outp_lock);
- }
-@@ -214,19 +240,15 @@
- /* Return the number of characters we can accomodate in a write at this instant */
- static int duart_write_room(struct tty_struct *tty)
- {
-- unsigned long flags;
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- int retval;
-- uart_state_t *us = &uart_states[get_line(tty)];
-
-- spin_lock_irqsave(&us->outp_lock, flags);
-- retval = CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE - uart_states[get_line(tty)].outp_count;
-- if (!retval) {
-- us->flags |= SD_WRITE_WAKE;
-- }
-- spin_unlock_irqrestore(&us->outp_lock, flags);
-+ retval = SERIAL_XMIT_SIZE - us->outp_count;
-+
- #ifdef DUART_SPEW
- printk("duart_write_room called, returning %i\n", retval);
- #endif
-+
- return retval;
- }
-
-@@ -242,69 +264,102 @@
- return size;
- }
-
--/* Buffer up to count characters from buf to be written. If we don't have other
-- characters buffered, enable the tx interrupt to start sending */
-+/*
-+ * Buffer up to count characters from buf to be written. If we don't have
-+ * other characters buffered, enable the tx interrupt to start sending
-+ */
- static int duart_write(struct tty_struct * tty, int from_user,
-- const unsigned char *buf, int count)
-+ const unsigned char *buf, int count)
- {
-- uart_state_t *us;
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
-+ int c, total = 0;
- unsigned long flags;
-- unsigned int line;
-- int chars_written = 0;
-+
- if (from_user && verify_area(VERIFY_READ, buf, count)) {
- return -EINVAL;
- }
- #ifdef DUART_SPEW
- printk("duart_write called for %i chars by %i (%s)\n", count, current->pid, current->comm);
- #endif
-- line = get_line(tty);
-- us = &uart_states[line];
-- spin_lock_irqsave(&us->outp_lock, flags);
-- if (!count || (us->outp_count == CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE)) {
-- spin_unlock_irqrestore(&us->outp_lock, flags);
-+ if (!count ||
-+ (us->outp_count == SERIAL_XMIT_SIZE)) {
- return 0;
- }
-- if (us->outp_tail < us->outp_head) {
-- /* Straightforward case; copy from tail to head */
-- chars_written += copy_buf(us->outp_buf + us->outp_tail, buf,
-- MIN(count, us->outp_head - us->outp_tail), from_user);
-- } else {
-- /* Copy from tail to end of buffer, wrap around and then
-- copy to head */
-- chars_written += copy_buf(us->outp_buf + us->outp_tail, buf,
-- MIN(CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE - us->outp_tail, count),
-- from_user);
-- if (chars_written < count) {
-- chars_written += copy_buf(us->outp_buf, buf + chars_written,
-- MIN(us->outp_head, count - chars_written), from_user);
-+ if (from_user) {
-+ down(&tmp_buf_sem);
-+ while (1) {
-+ c = MIN(count, MIN(PAGE_SIZE - us->outp_count - 1,
-+ PAGE_SIZE - us->outp_tail));
-+ if (c <= 0)
-+ break;
-+
-+ c -= copy_from_user(tmp_buf, buf, c);
-+ if (!c) {
-+ if (!total)
-+ total = -EFAULT;
-+ break;
-+ }
-+
-+ spin_lock_irqsave(&us->outp_lock, flags);
-+ c = MIN(c, MIN(SERIAL_XMIT_SIZE - us->outp_count - 1,
-+ SERIAL_XMIT_SIZE - us->outp_tail));
-+ memcpy(us->outp_buf + us->outp_tail, tmp_buf, c);
-+ us->outp_tail = (us->outp_tail + c) & (SERIAL_XMIT_SIZE-1);
-+ us->outp_count += c;
-+ spin_unlock_irqrestore(&us->outp_lock, flags);
-+
-+ buf += c;
-+ count -= c;
-+ total += c;
- }
-+ up(&tmp_buf_sem);
-+ } else {
-+ while (1) {
-+ spin_lock_irqsave(&us->outp_lock, flags);
-+ c = MIN(count, MIN(SERIAL_XMIT_SIZE - us->outp_count - 1,
-+ SERIAL_XMIT_SIZE - us->outp_tail));
-+ if (c <= 0) {
-+ spin_unlock_irqrestore(&us->outp_lock, flags);
-+ break;
-+ }
-+
-+ memcpy(us->outp_buf + us->outp_tail, buf, c);
-+ us->outp_tail = (us->outp_tail + c) & (SERIAL_XMIT_SIZE-1);
-+ us->outp_count += c;
-+ spin_unlock_irqrestore(&us->outp_lock, flags);
-+
-+ buf += c;
-+ count -= c;
-+ total += c;
-+ }
- }
-- us->outp_tail = (us->outp_tail + chars_written) &(CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE-1);
-- if (!(us->outp_count || us->outp_stopped)) {
-- duart_unmask_ints(line, M_DUART_IMR_TX);
-+ /* Excessive... */
-+ if (us->outp_count && !us->outp_stopped) {
-+ spin_lock_irqsave(&us->outp_lock, flags);
-+ duart_unmask_ints(us->line, M_DUART_IMR_TX);
-+ spin_unlock_irqrestore(&us->outp_lock, flags);
- }
-- us->outp_count += chars_written;
-- spin_unlock_irqrestore(&us->outp_lock, flags);
-- return chars_written;
--}
-+
-+ return total;
-+}
-
-
- /* Buffer one character to be written. If there's not room for it, just drop
- it on the floor. This is used for echo, among other things */
- static void duart_put_char(struct tty_struct *tty, u_char ch)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- unsigned long flags;
-- unsigned int line = get_line(tty);
-- uart_state_t *us = &uart_states[line];
-+
- #ifdef DUART_SPEW
- printk("duart_put_char called. Char is %x (%c)\n", (int)ch, ch);
- #endif
- spin_lock_irqsave(&us->outp_lock, flags);
-- if (us->outp_count != CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE) {
-+ if (us->outp_count != SERIAL_XMIT_SIZE) {
- us->outp_buf[us->outp_tail] = ch;
-- us->outp_tail = (us->outp_tail + 1) &(CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE-1);
-+ us->outp_tail = (us->outp_tail + 1) &(SERIAL_XMIT_SIZE-1);
- if (!(us->outp_count || us->outp_stopped)) {
-- duart_unmask_ints(line, M_DUART_IMR_TX);
-+ duart_unmask_ints(us->line, M_DUART_IMR_TX);
- }
- us->outp_count++;
- }
-@@ -315,15 +370,11 @@
- written */
- static int duart_chars_in_buffer(struct tty_struct *tty)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- int retval;
-- unsigned long flags;
-- uart_state_t *us = &uart_states[get_line(tty)];
-- spin_lock_irqsave(&us->outp_lock, flags);
-+
- retval = us->outp_count;
-- if (retval) {
-- us->flags |= SD_WRITE_WAKE;
-- }
-- spin_unlock_irqrestore(&us->outp_lock, flags);
-+
- #ifdef DUART_SPEW
- printk("duart_chars_in_buffer returning %i\n", retval);
- #endif
-@@ -334,19 +385,22 @@
- transmit interrupt since we've nothing more to transmit */
- static void duart_flush_buffer(struct tty_struct *tty)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- unsigned long flags;
-- unsigned int line = get_line(tty);
-- uart_state_t *us = &uart_states[get_line(tty)];
-+
- #ifdef DUART_SPEW
- printk("duart_flush_buffer called\n");
- #endif
-- duart_mask_ints(line, M_DUART_IMR_TX);
-+ duart_mask_ints(us->line, M_DUART_IMR_TX);
- spin_lock_irqsave(&us->outp_lock, flags);
- us->outp_head = us->outp_tail = us->outp_count = 0;
-- if (us->flags & SD_WRITE_WAKE) {
-- wake_up_interruptible(&us->tty->write_wait);
-- }
- spin_unlock_irqrestore(&us->outp_lock, flags);
-+
-+ wake_up_interruptible(&us->tty->write_wait);
-+
-+ if ((tty->flags & (1 << TTY_DO_WRITE_WAKEUP)) &&
-+ tty->ldisc.write_wakeup)
-+ tty->ldisc.write_wakeup(tty);
- }
-
-
-@@ -355,6 +409,7 @@
- {
- unsigned int mode_reg1 = 0, mode_reg2 = 0;
- unsigned int clk_divisor;
-+
- switch (cflag & CSIZE) {
- case CS7:
- mode_reg1 |= V_DUART_BITS_PER_CHAR_7;
-@@ -402,26 +457,28 @@
- /* Handle notification of a termios change. */
- static void duart_set_termios(struct tty_struct *tty, struct termios *old)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
-+
- #ifdef DUART_SPEW
- printk("duart_set_termios called by %i (%s)\n", current->pid, current->comm);
- #endif
- if (old && tty->termios->c_cflag == old->c_cflag)
- return;
-- duart_set_cflag(get_line(tty), tty->termios->c_cflag);
-+ duart_set_cflag(us->line, tty->termios->c_cflag);
- }
-
- /* Stop pushing stuff into the fifo, now. Do the mask under the
- outp_lock to avoid races involving turning the interrupt line on/off */
- static void duart_stop(struct tty_struct *tty)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- unsigned long flags;
-- unsigned int line = get_line(tty);
-- uart_state_t *us = &uart_states[line];
-+
- #ifdef DUART_SPEW
- printk("duart_stop called\n");
- #endif
- spin_lock_irqsave(&us->outp_lock, flags);
-- duart_mask_ints(get_line(tty), M_DUART_IMR_TX);
-+ duart_mask_ints(us->line, M_DUART_IMR_TX);
- us->outp_stopped = 1;
- spin_unlock_irqrestore(&us->outp_lock, flags);
- }
-@@ -512,15 +569,15 @@
- outp_lock to avoid races involving turning the interrupt line on/off */
- static void duart_start(struct tty_struct *tty)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- unsigned long flags;
-- unsigned int line = get_line(tty);
-- uart_state_t *us = &uart_states[line];
-+
- #ifdef DUART_SPEW
- printk("duart_start called\n");
- #endif
- spin_lock_irqsave(&us->outp_lock, flags);
- if (us->outp_count) {
-- duart_unmask_ints(get_line(tty), M_DUART_IMR_TX);
-+ duart_unmask_ints(us->line, M_DUART_IMR_TX);
- }
- us->outp_stopped = 0;
- spin_unlock_irqrestore(&us->outp_lock, flags);
-@@ -534,17 +591,20 @@
-
- static void duart_wait_until_sent(struct tty_struct *tty, int timeout)
- {
-- unsigned long target_time;
-- unsigned int line;
-- uart_state_t *us;
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
-+ unsigned long orig_jiffies;
-+
-+ orig_jiffies = jiffies;
- #ifdef DUART_SPEW
- printk("duart_wait_until_sent(%d)+\n", timeout);
- #endif
-- target_time = jiffies + timeout;
-- line = get_line(tty);
-- us = &uart_states[line];
-- while (!(get_status_reg(line) & M_DUART_TX_EMT) && (jiffies < target_time)) {
-+ while (!(get_status_reg(us->line) & M_DUART_TX_EMT)) {
-+ set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(1);
-+ if (signal_pending(current))
-+ break;
-+ if (timeout && time_after(jiffies, orig_jiffies + timeout))
-+ break;
- }
- #ifdef DUART_SPEW
- printk("duart_wait_until_sent()-\n");
-@@ -552,53 +612,60 @@
- }
-
- /*
-+ * duart_hangup() --- called by tty_hangup() when a hangup is signaled.
-+ */
-+static void duart_hangup(struct tty_struct *tty)
-+{
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
-+
-+ duart_flush_buffer(tty);
-+ us->open = 0;
-+ us->tty = 0;
-+}
-+
-+/*
- * Open a tty line. Note that this can be called multiple times, so ->open can
- * be >1. Only set up the tty struct if this is a "new" open, e.g. ->open was
- * zero
- */
- static int duart_open(struct tty_struct *tty, struct file *filp)
- {
-- unsigned long flags;
-- unsigned int line;
- uart_state_t *us;
-+ unsigned int line = MINOR(tty->device) - tty->driver.minor_start;
-+ unsigned long flags;
-
- MOD_INC_USE_COUNT;
--#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-- if (get_line(tty) > 1)
--#else
-- if (get_line(tty) > 0)
--#endif
-- {
-+
-+ if ((line < 0) || (line >= DUART_MAX_LINE)) {
- MOD_DEC_USE_COUNT;
- return -ENODEV;
- }
-+
- #ifdef DUART_SPEW
-- printk("duart_open called by %i (%s), tty is %p, rw is %p, ww is %p\n", current->pid, current->comm, tty,
-- tty->read_wait, tty->write_wait);
-+ printk("duart_open called by %i (%s), tty is %p, rw is %p, ww is %p\n",
-+ current->pid, current->comm, tty, tty->read_wait,
-+ tty->write_wait);
- #endif
-- line = get_line(tty);
-- tty->driver_data = NULL;
-- us = &uart_states[line];
--
-+
-+ us = uart_states + line;
-+ tty->driver_data = us;
-+
-+ if (!tmp_buf) {
-+ tmp_buf = (unsigned char *) get_free_page(GFP_KERNEL);
-+ if (!tmp_buf){
-+ return -ENOMEM;
-+ }
-+ }
-+
- spin_lock_irqsave(&open_lock, flags);
- if (!us->open) {
- us->tty = tty;
- us->tty->termios->c_cflag = us->last_cflags;
- }
- us->open++;
--#ifdef FORCED_INPUT
-- if (!line && (us->open == 1)) {
-- next_inp = inp_cmds;
-- init_timer(&inp_timer);
-- inp_timer.expires = jiffies + 20;
-- inp_timer.data = 0;
-- inp_timer.function = stuff_char;
-- stuff_char_tty = tty;
-- add_timer(&inp_timer);
-- }
--#endif
- duart_unmask_ints(line, M_DUART_IMR_RX);
- spin_unlock_irqrestore(&open_lock, flags);
-+
- return 0;
- }
-
-@@ -610,26 +677,43 @@
- */
- static void duart_close(struct tty_struct *tty, struct file *filp)
- {
-+ uart_state_t *us = (uart_state_t *) tty->driver_data;
- unsigned long flags;
-- unsigned int line = get_line(tty);
-- uart_state_t *us = &uart_states[line];
-+
- #ifdef DUART_SPEW
- printk("duart_close called by %i (%s)\n", current->pid, current->comm);
- #endif
-+
-+ if (!us || !us->open)
-+ return;
-+
- spin_lock_irqsave(&open_lock, flags);
-- us->open--;
--#if 0
-- if (!us->open) {
-- /* Flushing TX stuff here is conservative */
-- duart_mask_ints(line, M_DUART_IMR_IN | M_DUART_IMR_BRK | M_DUART_IMR_RX | M_DUART_IMR_TX);
-- spin_lock(&us->outp_lock);
-- us->outp_head = us->outp_tail = us->outp_count = us->outp_stopped = 0;
-- us->tty = NULL;
-- spin_unlock(&us->outp_lock);
-+ if (tty_hung_up_p(filp)) {
-+ MOD_DEC_USE_COUNT;
-+ spin_unlock_irqrestore(&open_lock, flags);
-+ return;
- }
--#endif
-- ref_count--;
-+
-+ if (--us->open < 0) {
-+ us->open = 0;
-+ printk(KERN_ERR "duart: bad open count: %d\n", us->open);
-+ }
-+ if (us->open) {
-+ spin_unlock_irqrestore(&open_lock, flags);
-+ return;
-+ }
-+
- spin_unlock_irqrestore(&open_lock, flags);
-+
-+ tty->closing = 1;
-+ duart_mask_ints(us-uart_states, M_DUART_IMR_TX);
-+
-+ if (tty->driver.flush_buffer)
-+ tty->driver.flush_buffer(tty);
-+ if (tty->ldisc.flush_buffer)
-+ tty->ldisc.flush_buffer(tty);
-+ tty->closing = 0;
-+
- MOD_DEC_USE_COUNT;
- }
-
-@@ -638,6 +722,8 @@
- is called from tty_init, or as a part of the module init */
- static int __init sb1250_duart_init(void)
- {
-+ int i;
-+
- sb1250_duart_driver.magic = TTY_DRIVER_MAGIC;
- sb1250_duart_driver.driver_name = "serial";
- #ifdef CONFIG_DEVFS_FS
-@@ -646,13 +732,13 @@
- sb1250_duart_driver.name = "ttyS";
- #endif
- sb1250_duart_driver.major = TTY_MAJOR;
-- sb1250_duart_driver.minor_start = 64;
-- sb1250_duart_driver.num = 2;
-+ sb1250_duart_driver.minor_start = SB1250_DUART_MINOR_BASE;
-+ sb1250_duart_driver.num = DUART_MAX_LINE;
- sb1250_duart_driver.type = TTY_DRIVER_TYPE_SERIAL;
- sb1250_duart_driver.subtype = SERIAL_TYPE_NORMAL;
- sb1250_duart_driver.init_termios = tty_std_termios;
- sb1250_duart_driver.flags = TTY_DRIVER_REAL_RAW;
-- sb1250_duart_driver.refcount = &ref_count;
-+ sb1250_duart_driver.refcount = &duart_refcount;
- sb1250_duart_driver.table = duart_table;
- sb1250_duart_driver.termios = duart_termios;
- sb1250_duart_driver.termios_locked = duart_termios_locked;
-@@ -668,6 +754,7 @@
- sb1250_duart_driver.set_termios = duart_set_termios;
- sb1250_duart_driver.stop = duart_stop;
- sb1250_duart_driver.start = duart_start;
-+ sb1250_duart_driver.hangup = duart_hangup;
- sb1250_duart_driver.wait_until_sent = duart_wait_until_sent;
-
- sb1250_duart_callout_driver = sb1250_duart_driver;
-@@ -679,16 +766,16 @@
- sb1250_duart_callout_driver.major = TTYAUX_MAJOR;
- sb1250_duart_callout_driver.subtype = SERIAL_TYPE_CALLOUT;
-
-- duart_mask_ints(0, 0xf);
-- if (request_irq(K_INT_UART_0, duart_int, 0, "uart0", &uart_states[0])) {
-- panic("Couldn't get uart0 interrupt line");
-- }
--#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-- duart_mask_ints(1, 0xf);
-- if (request_irq(K_INT_UART_1, duart_int, 0, "uart1", &uart_states[1])) {
-- panic("Couldn't get uart1 interrupt line");
-+ for (i=0; i<DUART_MAX_LINE; i++) {
-+ duart_mask_ints(i, 0xf);
-+ if (request_irq(K_INT_UART_0+i, duart_int, 0, "uart", &uart_states[i])) {
-+ panic("Couldn't get uart0 interrupt line");
-+ }
-+ out64(M_DUART_RX_EN|M_DUART_TX_EN,
-+ IO_SPACE_BASE | A_DUART_CHANREG(i, R_DUART_CMD));
-+ duart_set_cflag(i, DEFAULT_CFLAGS);
-+ uart_states[i].line = i;
- }
--#endif
-
- /* Interrupts are now active, our ISR can be called. */
-
-@@ -698,10 +785,6 @@
- if (tty_register_driver(&sb1250_duart_callout_driver)) {
- printk(KERN_ERR "Couldn't register sb1250 duart callout driver\n");
- }
-- duart_set_cflag(0, DEFAULT_CFLAGS);
--#ifndef CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1
-- duart_set_cflag(1, DEFAULT_CFLAGS);
--#endif
- return 0;
- }
-
-@@ -709,10 +792,10 @@
- static void __exit sb1250_duart_fini(void)
- {
- unsigned long flags;
-+ int i;
- int ret;
-
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
- ret = tty_unregister_driver(&sb1250_duart_callout_driver);
- if (ret) {
- printk(KERN_ERR "Unable to unregister sb1250 duart callout driver (%d)\n", ret);
-@@ -721,13 +804,10 @@
- if (ret) {
- printk(KERN_ERR "Unable to unregister sb1250 duart serial driver (%d)\n", ret);
- }
-- free_irq(K_INT_UART_0, &uart_states[0]);
-- free_irq(K_INT_UART_1, &uart_states[1]);
--
-- /* mask lines in the scd */
-- disable_irq(K_INT_UART_0);
-- disable_irq(K_INT_UART_1);
--
-+ for (i=0; i<DUART_MAX_LINE; i++) {
-+ free_irq(K_INT_UART_0+i, &uart_states[i]);
-+ disable_irq(K_INT_UART_0+i);
-+ }
- restore_flags(flags);
- }
-
-@@ -736,22 +816,19 @@
- MODULE_DESCRIPTION("SB1250 Duart serial driver");
- MODULE_AUTHOR("Justin Carlson <carlson@sibyte.com>");
-
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SIBYTE_SB1250_DUART_CONSOLE
-
- /*
-- * Serial console stuff.
-- * Very basic, polling driver for doing serial console output.
-- * FIXME; there is a race here; we can't be sure that
-- * the tx is still empty without holding outp_lock for this line.
-- * Worst that can happen for now, though, is dropped characters.
-+ * Serial console stuff. Very basic, polling driver for doing serial
-+ * console output. The console_sem is held by the caller, so we
-+ * shouldn't be interrupted for more console activity.
-+ * XXXKW What about getting interrupted by uart driver activity?
- */
-
- static void ser_console_write(struct console *cons, const char *str,
-- unsigned int count)
-+ unsigned int count)
- {
- unsigned int i;
-- unsigned long flags;
-- spin_lock_irqsave(&uart_states[0].outp_lock, flags);
-
- for (i = 0; i < count; i++) {
- if (str[i] == '\n') {
-@@ -766,24 +843,30 @@
- }
- out64(str[i], IO_SPACE_BASE | A_DUART_CHANREG(0, R_DUART_TX_HOLD));
- }
-- spin_unlock_irqrestore(&uart_states[0].outp_lock, flags);
-+ /*
-+ * Make sure we leave room, in case the higher-level uart
-+ * driver expects it
-+ */
-+ while (!(get_status_reg(0) & M_DUART_TX_RDY)) {
-+ /* Spin, doing nothing. */
-+ }
- }
-
- static kdev_t ser_console_device(struct console *c)
- {
-- return MKDEV(TTY_MAJOR, 64 + c->index);
-+ return MKDEV(TTY_MAJOR, SB1250_DUART_MINOR_BASE + c->index);
- }
-
- static int ser_console_setup(struct console *cons, char *str)
- {
- /* Initialize the transmitter */
--
-+
- duart_set_cflag(0, DEFAULT_CFLAGS);
- return 0;
- }
-
- static struct console sb1250_ser_cons = {
-- name: "ttyS",
-+ name: "duart",
- write: ser_console_write,
- device: ser_console_device,
- setup: ser_console_setup,
-@@ -796,4 +879,4 @@
- register_console(&sb1250_ser_cons);
- }
-
--#endif /* CONFIG_SERIAL_CONSOLE */
-+#endif /* CONFIG_SIBYTE_SB1250_DUART_CONSOLE */
-diff -urNd -urNd linux-2.4.20/drivers/char/serial.c linux-2.4.20-mipscvs-20050106/drivers/char/serial.c
---- linux-2.4.20/drivers/char/serial.c 2002-11-28 17:53:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/serial.c 2002-12-01 19:51:56.000000000 -0600
-@@ -62,6 +62,12 @@
- * Robert Schwebel <robert@schwebel.de>,
- * Juergen Beisert <jbeisert@eurodsn.de>,
- * Theodore Ts'o <tytso@mit.edu>
-+ *
-+ * 10/00: Added suport for MIPS Atlas board.
-+ * 11/00: Hooks for serial kernel debug port support added.
-+ * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard,
-+ * carstenl@mips.com
-+ * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
- */
-
- static char *serial_version = "5.05c";
-@@ -413,6 +419,22 @@
- return 0;
- }
-
-+#if defined(CONFIG_MIPS_ATLAS) || defined(CONFIG_MIPS_SEAD)
-+
-+#include <asm/mips-boards/atlas.h>
-+
-+static _INLINE_ unsigned int serial_in(struct async_struct *info, int offset)
-+{
-+ return (*(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) & 0xff);
-+}
-+
-+static _INLINE_ void serial_out(struct async_struct *info, int offset, int value)
-+{
-+ *(volatile unsigned int *)(mips_io_port_base + ATLAS_UART_REGS_BASE + offset*8) = value;
-+}
-+
-+#else
-+
- static _INLINE_ unsigned int serial_in(struct async_struct *info, int offset)
- {
- switch (info->io_type) {
-@@ -447,6 +469,8 @@
- outb(value, info->port+offset);
- }
- }
-+#endif
-+
-
- /*
- * We used to support using pause I/O for certain machines. We
-diff -urNd -urNd linux-2.4.20/drivers/char/serial_tx3912.c linux-2.4.20-mipscvs-20050106/drivers/char/serial_tx3912.c
---- linux-2.4.20/drivers/char/serial_tx3912.c 2002-08-02 19:39:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/serial_tx3912.c 2002-06-26 17:35:33.000000000 -0500
-@@ -752,6 +752,21 @@
- outl(int2, TX3912_INT2_ENABLE);
- }
-
-+static int serial_console_wait_key(struct console *co)
-+{
-+ unsigned int int2, res;
-+
-+ int2 = inl(TX3912_INT2_ENABLE);
-+ outl(0, TX3912_INT2_ENABLE);
-+
-+ while (!(inl(TX3912_UARTA_CTRL1) & TX3912_UART_CTRL1_RXHOLDFULL));
-+ res = inl(TX3912_UARTA_DATA);
-+ udelay(10);
-+
-+ outl(int2, TX3912_INT2_ENABLE);
-+ return res;
-+}
-+
- static void serial_console_write(struct console *co, const char *s,
- unsigned count)
- {
-diff -urNd -urNd linux-2.4.20/drivers/char/tty_io.c linux-2.4.20-mipscvs-20050106/drivers/char/tty_io.c
---- linux-2.4.20/drivers/char/tty_io.c 2002-11-28 17:53:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/char/tty_io.c 2003-01-09 14:17:07.000000000 -0600
-@@ -148,6 +148,7 @@
- extern int serial167_init(void);
- extern long serial167_console_init(void);
- extern void console_8xx_init(void);
-+extern void au1x00_serial_console_init(void);
- extern int rs_8xx_init(void);
- extern void mac_scc_console_init(void);
- extern void hwc_console_init(void);
-@@ -160,10 +161,12 @@
- extern void sa1100_rs_console_init(void);
- extern void sgi_serial_console_init(void);
- extern void sci_console_init(void);
-+extern void dec_serial_console_init(void);
- extern void tx3912_console_init(void);
- extern void tx3912_rs_init(void);
- extern void txx927_console_init(void);
- extern void sb1250_serial_console_init(void);
-+extern void arc_console_init(void);
-
- #ifndef MIN
- #define MIN(a,b) ((a) < (b) ? (a) : (b))
-@@ -2208,8 +2211,8 @@
- #ifdef CONFIG_VT
- con_init();
- #endif
--#ifdef CONFIG_AU1000_SERIAL_CONSOLE
-- au1000_serial_console_init();
-+#ifdef CONFIG_AU1X00_SERIAL_CONSOLE
-+ au1x00_serial_console_init();
- #endif
- #ifdef CONFIG_SERIAL_CONSOLE
- #if (defined(CONFIG_8xx) || defined(CONFIG_8260))
-@@ -2226,9 +2229,6 @@
- #elif defined(CONFIG_SERIAL)
- serial_console_init();
- #endif /* CONFIG_8xx */
--#ifdef CONFIG_SGI_SERIAL
-- sgi_serial_console_init();
--#endif
- #if defined(CONFIG_MVME162_SCC) || defined(CONFIG_BVME6000_SCC) || defined(CONFIG_MVME147_SCC)
- vme_scc_console_init();
- #endif
-@@ -2239,6 +2239,9 @@
- sci_console_init();
- #endif
- #endif
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
-+ dec_serial_console_init();
-+#endif
- #ifdef CONFIG_TN3270_CONSOLE
- tub3270_con_init();
- #endif
-@@ -2272,6 +2275,9 @@
- #ifdef CONFIG_SIBYTE_SB1250_DUART_CONSOLE
- sb1250_serial_console_init();
- #endif
-+#ifdef CONFIG_IP22_SERIAL
-+ sgi_serial_console_init();
-+#endif
- }
-
- static struct tty_driver dev_tty_driver, dev_syscons_driver;
-diff -urNd -urNd linux-2.4.20/drivers/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/CVS/Entries
---- linux-2.4.20/drivers/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,43 @@
-+/.cvsignore/1.2/Tue Mar 17 22:09:04 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.36.2.3/Wed Sep 11 12:44:45 2002/-ko/Tlinux_2_4_20
-+D/acorn////
-+D/acpi////
-+D/ap1000////
-+D/atm////
-+D/block////
-+D/bluetooth////
-+D/cdrom////
-+D/char////
-+D/dio////
-+D/fc4////
-+D/gsc////
-+D/hil////
-+D/hotplug////
-+D/i2c////
-+D/i2o////
-+D/ide////
-+D/ieee1394////
-+D/input////
-+D/isdn////
-+D/macintosh////
-+D/md////
-+D/media////
-+D/message////
-+D/misc////
-+D/mtd////
-+D/net////
-+D/nubus////
-+D/parport////
-+D/pci////
-+D/pcmcia////
-+D/pnp////
-+D/s390////
-+D/sbus////
-+D/scsi////
-+D/sgi////
-+D/sound////
-+D/tc////
-+D/telephony////
-+D/usb////
-+D/video////
-+D/zorro////
-diff -urNd -urNd linux-2.4.20/drivers/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/CVS/Repository
---- linux-2.4.20/drivers/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Repository 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers
-diff -urNd -urNd linux-2.4.20/drivers/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/CVS/Root
---- linux-2.4.20/drivers/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Root 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/CVS/Tag
---- linux-2.4.20/drivers/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/CVS/Tag 2005-01-06 23:01:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/.cvsignore
---- linux-2.4.20/drivers/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/.cvsignore 1998-03-17 16:09:04.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Entries
---- linux-2.4.20/drivers/dio/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Entries 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.1/Tue Aug 25 09:17:03 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.1.6.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/dio.c/1.3.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Repository
---- linux-2.4.20/drivers/dio/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Repository 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/dio
-diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Root
---- linux-2.4.20/drivers/dio/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Root 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/dio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Tag
---- linux-2.4.20/drivers/dio/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/dio/CVS/Tag 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/dio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/dio/.cvsignore
---- linux-2.4.20/drivers/dio/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/dio/.cvsignore 1998-08-25 04:17:03.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Entries
---- linux-2.4.20/drivers/fc4/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Entries 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Tue Mar 17 22:26:47 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.6.4.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Thu Apr 5 04:56:14 2001/-ko/Tlinux_2_4_20
-+/fc-al.h/1.1/Sun Jun 13 16:32:19 1999/-ko/Tlinux_2_4_20
-+/fc.c/1.10/Fri Oct 19 01:24:22 2001/-ko/Tlinux_2_4_20
-+/fc.h/1.2/Sun Jun 13 16:32:20 1999/-ko/Tlinux_2_4_20
-+/fc_syms.c/1.3/Sun Jun 13 16:32:20 1999/-ko/Tlinux_2_4_20
-+/fcp.h/1.1/Tue Mar 17 22:10:10 1998/-ko/Tlinux_2_4_20
-+/fcp_impl.h/1.3/Fri Feb 18 00:24:35 2000/-ko/Tlinux_2_4_20
-+/soc.c/1.11.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
-+/soc.h/1.3/Sat Feb 5 06:47:20 2000/-ko/Tlinux_2_4_20
-+/socal.c/1.8.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
-+/socal.h/1.2/Sat Feb 5 06:47:20 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Repository
---- linux-2.4.20/drivers/fc4/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Repository 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/fc4
-diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Root
---- linux-2.4.20/drivers/fc4/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Root 2005-01-06 23:01:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/fc4/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Tag
---- linux-2.4.20/drivers/fc4/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/CVS/Tag 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/fc4/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/fc4/.cvsignore
---- linux-2.4.20/drivers/fc4/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/fc4/.cvsignore 1998-03-17 16:26:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Entries
---- linux-2.4.20/drivers/gsc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Entries 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/README.dino/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/asp.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/busdevice.h/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/dino.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/eisa.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/eisa_eeprom.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/eisa_enumerator.c/1.1.2.1/Wed Sep 11 12:44:49 2002/-ko/Tlinux_2_4_20
-+/gsc.c/1.1.2.1/Wed Sep 11 12:44:52 2002/-ko/Tlinux_2_4_20
-+/lasi.c/1.1.2.1/Wed Sep 11 12:44:52 2002/-ko/Tlinux_2_4_20
-+/serial.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/wax.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Repository
---- linux-2.4.20/drivers/gsc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Repository 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/gsc
-diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Root
---- linux-2.4.20/drivers/gsc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Root 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/gsc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Tag
---- linux-2.4.20/drivers/gsc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/CVS/Tag 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/gsc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/gsc/.cvsignore
---- linux-2.4.20/drivers/gsc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/gsc/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Entries
---- linux-2.4.20/drivers/hil/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Entries 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hil_kbd.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hil_mlc.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hil_ptr.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hilkbd.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hp_sdc.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hp_sdc_mlc.c/1.1.2.1/Wed Sep 11 12:44:53 2002/-ko/Tlinux_2_4_20
-+/hp_sdc_rtc.c/1.1.2.1/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Repository
---- linux-2.4.20/drivers/hil/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Repository 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/hil
-diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Root
---- linux-2.4.20/drivers/hil/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Root 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/hil/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Tag
---- linux-2.4.20/drivers/hil/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hil/CVS/Tag 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/hil/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/hil/.cvsignore
---- linux-2.4.20/drivers/hil/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hil/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Entries
---- linux-2.4.20/drivers/hotplug/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Entries 2005-01-06 23:01:58.000000000 -0600
-@@ -0,0 +1,25 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:41 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
-+/acpiphp.h/1.1.2.1/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
-+/acpiphp_core.c/1.1.2.1/Wed Sep 11 12:44:58 2002/-ko/Tlinux_2_4_20
-+/acpiphp_glue.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/acpiphp_pci.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/acpiphp_res.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/cpqphp.h/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/cpqphp_core.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/cpqphp_ctrl.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/cpqphp_nvram.c/1.1.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/cpqphp_nvram.h/1.1/Sun Dec 2 11:34:41 2001/-ko/Tlinux_2_4_20
-+/cpqphp_pci.c/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/cpqphp_proc.c/1.1.2.1/Wed Jun 26 22:35:38 2002/-ko/Tlinux_2_4_20
-+/ibmphp.h/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ibmphp_core.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ibmphp_ebda.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ibmphp_hpc.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ibmphp_pci.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/ibmphp_res.c/1.1.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/pci_hotplug.h/1.1.2.1/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/pci_hotplug_core.c/1.1.2.3/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/pci_hotplug_util.c/1.1/Sun Dec 2 11:34:41 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Repository
---- linux-2.4.20/drivers/hotplug/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Repository 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/hotplug
-diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Root
---- linux-2.4.20/drivers/hotplug/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Root 2005-01-06 23:01:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/hotplug/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Tag
---- linux-2.4.20/drivers/hotplug/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/CVS/Tag 2005-01-06 23:01:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/hotplug/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/hotplug/.cvsignore
---- linux-2.4.20/drivers/hotplug/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/hotplug/.cvsignore 2001-12-02 05:34:41.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Entries
---- linux-2.4.20/drivers/i2c/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Entries 2005-01-06 23:08:13.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.1/Sat Feb 5 06:47:20 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.7.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.1/Tue Feb 26 05:59:20 2002/-ko/Tlinux_2_4_20
-+/i2c-adap-ite.c/1.3.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/i2c-algo-bit.c/1.8.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/i2c-algo-ite.c/1.3/Tue Nov 6 00:55:03 2001/-ko/Tlinux_2_4_20
-+/i2c-algo-pcf.c/1.9/Tue Nov 6 00:55:03 2001/-ko/Tlinux_2_4_20
-+/i2c-core.c/1.14.2.2/Sat Jan 11 17:53:12 2003/-ko/Tlinux_2_4_20
-+/i2c-dev.c/1.13.2.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/i2c-elektor.c/1.8/Tue Nov 6 00:55:03 2001/-ko/Tlinux_2_4_20
-+/i2c-elv.c/1.5/Tue Nov 6 00:55:03 2001/-ko/Tlinux_2_4_20
-+/i2c-ite.h/1.1/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
-+/i2c-keywest.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/i2c-keywest.h/1.1.2.1/Tue Feb 26 05:59:21 2002/-ko/Tlinux_2_4_20
-+/i2c-pcf8584.h/1.3/Fri Mar 9 20:34:00 2001/-ko/Tlinux_2_4_20
-+/i2c-philips-par.c/1.4/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/i2c-proc.c/1.1.2.1/Tue Feb 26 05:59:21 2002/-ko/Tlinux_2_4_20
-+/i2c-velleman.c/1.4/Tue Nov 6 00:55:03 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Repository
---- linux-2.4.20/drivers/i2c/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Repository 2005-01-06 23:01:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/i2c
-diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Root
---- linux-2.4.20/drivers/i2c/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Root 2005-01-06 23:01:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/i2c/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Tag
---- linux-2.4.20/drivers/i2c/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/CVS/Tag 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/i2c/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/i2c/.cvsignore
---- linux-2.4.20/drivers/i2c/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2c/.cvsignore 2000-02-05 00:47:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Entries
---- linux-2.4.20/drivers/i2o/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Entries 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1,2 @@
-+/.cvsignore/1.1/Mon Dec 6 23:13:20 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Repository
---- linux-2.4.20/drivers/i2o/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Repository 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/i2o
-diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Root
---- linux-2.4.20/drivers/i2o/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Root 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/i2o/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Tag
---- linux-2.4.20/drivers/i2o/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/CVS/Tag 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/i2o/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/i2o/.cvsignore
---- linux-2.4.20/drivers/i2o/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/i2o/.cvsignore 1999-12-06 17:13:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/ide/Config.in linux-2.4.20-mipscvs-20050106/drivers/ide/Config.in
---- linux-2.4.20/drivers/ide/Config.in 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/Config.in 2003-01-24 12:05:25.000000000 -0600
-@@ -107,7 +107,7 @@
- define_bool CONFIG_BLK_DEV_IDEPCI $CONFIG_BLK_DEV_IDEDMA_PMAC
- fi
- fi
-- if [ "$CONFIG_SIBYTE_SWARM" = "y" ]; then
-+ if [ "$CONFIG_SIBYTE_GENBUS_IDE" = "y" ]; then
- bool ' Broadcom SiByte onboard IDE support' CONFIG_BLK_DEV_IDE_SIBYTE
- fi
- if [ "$CONFIG_ARCH_ACORN" = "y" ]; then
-diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Entries
---- linux-2.4.20/drivers/ide/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Entries 2005-01-06 23:08:12.000000000 -0600
-@@ -0,0 +1,68 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.15.2.10/Fri Jan 24 18:05:25 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.12.2.3/Tue Aug 20 12:22:10 2002/-ko/Tlinux_2_4_20
-+/aec62xx.c/1.3/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
-+/ali14xx.c/1.4/Thu Aug 23 22:24:29 2001/-ko/Tlinux_2_4_20
-+/alim15x3.c/1.10.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/amd74xx.c/1.1.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/ataraid.c/1.3.2.1/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/ataraid.h/1.2/Mon Nov 5 20:15:33 2001/-ko/Tlinux_2_4_20
-+/buddha.c/1.8.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/cmd640.c/1.4/Fri Mar 9 20:34:01 2001/-ko/Tlinux_2_4_20
-+/cmd64x.c/1.7.4.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/cs5530.c/1.4/Thu Jan 11 04:02:43 2001/-ko/Tlinux_2_4_20
-+/cy82c693.c/1.5/Thu Jun 14 04:23:57 2001/-ko/Tlinux_2_4_20
-+/dtc2278.c/1.3/Fri Apr 28 01:09:39 2000/-ko/Tlinux_2_4_20
-+/falconide.c/1.4.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/gayle.c/1.5.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/hd.c/1.12/Tue Nov 6 00:55:04 2001/-ko/Tlinux_2_4_20
-+/hpt34x.c/1.5/Thu Jun 14 04:23:58 2001/-ko/Tlinux_2_4_20
-+/hpt366.c/1.11.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/hptraid.c/1.3.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/hptraid.h/1.2/Tue Nov 6 00:55:04 2001/-ko/Tlinux_2_4_20
-+/ht6560b.c/1.3/Fri Apr 28 01:09:39 2000/-ko/Tlinux_2_4_20
-+/icside.c/1.9/Tue Nov 6 07:55:59 2001/-ko/Tlinux_2_4_20
-+/ide-adma.c/1.1/Sat Sep 22 12:49:20 2001/-ko/Tlinux_2_4_20
-+/ide-cd.c/1.19.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ide-cd.h/1.7.2.1/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/ide-cs.c/1.6.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ide-disk.c/1.12.2.3/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/ide-dma.c/1.9.2.2/Wed Sep 11 12:44:59 2002/-ko/Tlinux_2_4_20
-+/ide-features.c/1.9.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/ide-floppy.c/1.10.2.2/Wed Jun 26 22:35:44 2002/-ko/Tlinux_2_4_20
-+/ide-geometry.c/1.8.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/ide-m8xx.c/1.1.2.1/Tue Feb 26 05:59:30 2002/-ko/Tlinux_2_4_20
-+/ide-pci.c/1.20.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ide-pmac.c/1.7.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ide-pnp.c/1.7/Sun Dec 2 01:54:30 2001/-ko/Tlinux_2_4_20
-+/ide-probe.c/1.15.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/ide-proc.c/1.7.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ide-sibyte.c/1.1.2.2/Fri Feb 7 20:53:26 2003/-ko/Tlinux_2_4_20
-+/ide-tape.c/1.15.2.2/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ide-taskfile.c/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ide-timing.h/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ide.c/1.27.2.5/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/ide_modes.h/1.4/Mon Nov 5 20:15:34 2001/-ko/Tlinux_2_4_20
-+/it8172.c/1.3/Mon Nov 26 11:24:55 2001/-ko/Tlinux_2_4_20
-+/macide.c/1.3/Thu Jan 11 04:02:43 2001/-ko/Tlinux_2_4_20
-+/ns87415.c/1.4/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
-+/opti621.c/1.5/Thu Jun 14 04:23:58 2001/-ko/Tlinux_2_4_20
-+/pdc202xx.c/1.13.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/pdc4030.c/1.4.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/pdc4030.h/1.2/Thu Aug 23 22:24:29 2001/-ko/Tlinux_2_4_20
-+/pdcraid.c/1.4/Sun Dec 2 11:34:41 2001/-ko/Tlinux_2_4_20
-+/pdcraid.h/1.1/Fri Oct 19 01:24:24 2001/-ko/Tlinux_2_4_20
-+/piix.c/1.14.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/q40ide.c/1.4.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/qd65xx.c/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/qd65xx.h/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/rapide.c/1.6/Tue Nov 6 00:55:05 2001/-ko/Tlinux_2_4_20
-+/rz1000.c/1.4/Thu Jun 14 04:23:58 2001/-ko/Tlinux_2_4_20
-+/serverworks.c/1.2.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/sis5513.c/1.11.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/sl82c105.c/1.5/Fri Oct 19 01:24:24 2001/-ko/Tlinux_2_4_20
-+/slc90e66.c/1.4.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/trm290.c/1.3/Mon Jun 19 22:45:45 2000/-ko/Tlinux_2_4_20
-+/umc8672.c/1.3/Fri Apr 28 01:09:39 2000/-ko/Tlinux_2_4_20
-+/via82cxxx.c/1.14.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Repository
---- linux-2.4.20/drivers/ide/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Repository 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/ide
-diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Root
---- linux-2.4.20/drivers/ide/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Root 2005-01-06 23:01:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/ide/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Tag
---- linux-2.4.20/drivers/ide/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/CVS/Tag 2005-01-06 23:02:05.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/ide/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/ide/.cvsignore
---- linux-2.4.20/drivers/ide/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/ide/ide-sibyte.c linux-2.4.20-mipscvs-20050106/drivers/ide/ide-sibyte.c
---- linux-2.4.20/drivers/ide/ide-sibyte.c 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ide/ide-sibyte.c 2003-02-07 14:53:26.000000000 -0600
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (C) 2001 Broadcom Corporation
-+ * Copyright (C) 2001, 2002, 2003 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -21,262 +21,19 @@
- * Copyright (C) 1998 Paul Mackerras.
- * Copyright (C) 1995-1998 Mark Lord
- */
--#include <linux/config.h>
--#include <linux/types.h>
- #include <linux/kernel.h>
--#include <linux/sched.h>
--#include <linux/init.h>
--#include <linux/delay.h>
- #include <linux/ide.h>
-
--#include <asm/irq.h>
--#include <asm/io.h>
--#include <asm/sibyte/sb1250_regs.h>
--#include <asm/sibyte/sb1250_int.h>
--#include <asm/sibyte/sb1250_genbus.h>
--#include <asm/sibyte/64bit.h>
- #include <asm/sibyte/board.h>
-
--/* Note: this should be general for any board using IDE on GenBus */
--
--extern struct ide_ops std_ide_ops;
-+ide_hwif_t *sb_ide_hwif = NULL;
-
--static ide_hwif_t *sb_ide_hwif = NULL;
- static unsigned long ide_base;
--
- #define SIBYTE_IDE_BASE (KSEG1ADDR(ide_base)-mips_io_port_base)
- #define SIBYTE_IDE_REG(pcaddr) (SIBYTE_IDE_BASE + ((pcaddr)<<5))
-
--/*
-- * We are limiting the number of PCI-IDE devices to leave room for
-- * GenBus IDE (and possibly PCMCIA/CF?)
-- */
--static int sibyte_ide_default_irq(ide_ioreg_t base)
--{
-- return 0;
--}
--
--static ide_ioreg_t sibyte_ide_default_io_base(int index)
--{
-- return 0;
--}
--
--static void sibyte_ide_init_hwif_ports (hw_regs_t *hw, ide_ioreg_t data_port,
-- ide_ioreg_t ctrl_port, int *irq)
--{
-- std_ide_ops.ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
--}
--
--static int sibyte_ide_request_irq(unsigned int irq,
-- void (*handler)(int,void *, struct pt_regs *),
-- unsigned long flags, const char *device,
-- void *dev_id)
--{
-- return request_irq(irq, handler, flags, device, dev_id);
--}
--
--static void sibyte_ide_free_irq(unsigned int irq, void *dev_id)
--{
-- free_irq(irq, dev_id);
--}
--
--static inline int is_sibyte_ide(ide_ioreg_t from)
--{
-- return (sb_ide_hwif &&
-- ((from == sb_ide_hwif->io_ports[IDE_DATA_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_ERROR_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_NSECTOR_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_SECTOR_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_LCYL_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_HCYL_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_SELECT_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_STATUS_OFFSET]) ||
-- (from == sb_ide_hwif->io_ports[IDE_CONTROL_OFFSET])));
--}
--
--static int sibyte_ide_check_region(ide_ioreg_t from, unsigned int extent)
--{
-- /* Figure out if it's the SiByte IDE; if so, don't do anything
-- since our I/O space is in a weird place. */
-- if (is_sibyte_ide(from))
-- return 0;
-- else
--#ifdef CONFIG_BLK_DEV_IDE
-- return std_ide_ops.ide_check_region(from, extent);
--#else
-- return 0;
--#endif
--}
--
--static void sibyte_ide_request_region(ide_ioreg_t from, unsigned int extent,
-- const char *name)
--{
--#ifdef CONFIG_BLK_DEV_IDE
-- if (!is_sibyte_ide(from))
-- std_ide_ops.ide_request_region(from, extent, name);
--#endif
--}
--
--static void sibyte_ide_release_region(ide_ioreg_t from, unsigned int extent)
--{
--#ifdef CONFIG_BLK_DEV_IDE
-- if (!is_sibyte_ide(from))
-- std_ide_ops.ide_release_region(from, extent);
--#endif
--}
--
--struct ide_ops sibyte_ide_ops = {
-- &sibyte_ide_default_irq,
-- &sibyte_ide_default_io_base,
-- &sibyte_ide_init_hwif_ports,
-- &sibyte_ide_request_irq,
-- &sibyte_ide_free_irq,
-- &sibyte_ide_check_region,
-- &sibyte_ide_request_region,
-- &sibyte_ide_release_region
--};
--
--/*
-- * I/O operations. The FPGA for SiByte generic bus IDE deals with
-- * byte-swapping for us, so we can't share the I/O macros with other
-- * IDE (e.g. PCI-IDE) devices.
-- */
--
--#define sibyte_outb(val,port) \
--do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--#define sibyte_outw(val,port) \
--do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--#define sibyte_outl(val,port) \
--do { \
-- *(volatile u32 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--static inline unsigned char sibyte_inb(unsigned long port)
--{
-- return (*(volatile u8 *)(mips_io_port_base + (port)));
--}
--
--static inline unsigned short sibyte_inw(unsigned long port)
--{
-- return (*(volatile u16 *)(mips_io_port_base + (port)));
--}
--
--static inline unsigned int sibyte_inl(unsigned long port)
--{
-- return (*(volatile u32 *)(mips_io_port_base + (port)));
--}
--
--
--static inline void sibyte_outsb(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- sibyte_outb(*(u8 *)addr, port);
-- addr++;
-- }
--}
--
--static inline void sibyte_insb(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u8 *)addr = sibyte_inb(port);
-- addr++;
-- }
--}
--
--static inline void sibyte_outsw(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- sibyte_outw(*(u16 *)addr, port);
-- addr += 2;
-- }
--}
--
--static inline void sibyte_insw(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u16 *)addr = sibyte_inw(port);
-- addr += 2;
-- }
--}
--
--static inline void sibyte_outsl(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- sibyte_outl(*(u32 *)addr, port);
-- addr += 4;
-- }
--}
--
--static inline void sibyte_insl(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u32 *)addr = sibyte_inl(port);
-- addr += 4;
-- }
--}
--
--static void sibyte_ideproc(ide_ide_action_t action, ide_drive_t *drive,
-- void *buffer, unsigned int count)
--{
-- /* slow? vlb_sync? */
-- switch (action) {
-- case ideproc_ide_input_data:
-- if (drive->io_32bit) {
-- sibyte_insl(IDE_DATA_REG, buffer, count);
-- } else {
-- sibyte_insw(IDE_DATA_REG, buffer, count<<1);
-- }
-- break;
-- case ideproc_ide_output_data:
-- if (drive->io_32bit) {
-- sibyte_outsl(IDE_DATA_REG, buffer, count);
-- } else {
-- sibyte_outsw(IDE_DATA_REG, buffer, count<<1);
-- }
-- break;
-- case ideproc_atapi_input_bytes:
-- count++;
-- if (drive->io_32bit) {
-- sibyte_insl(IDE_DATA_REG, buffer, count>>2);
-- } else {
-- sibyte_insw(IDE_DATA_REG, buffer, count>>1);
-- }
-- if ((count & 3) >= 2)
-- sibyte_insw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
-- break;
-- case ideproc_atapi_output_bytes:
-- count++;
-- if (drive->io_32bit) {
-- sibyte_outsl(IDE_DATA_REG, buffer, count>>2);
-- } else {
-- sibyte_outsw(IDE_DATA_REG, buffer, count>>1);
-- }
-- if ((count & 3) >= 2)
-- sibyte_outsw(IDE_DATA_REG, (char *)buffer + (count & ~3), 1);
-- break;
-- }
--}
--
--/*
-- * selectproc and intrproc aren't really necessary, since
-- * byte-swapping doesn't affect byte ops; they are included for
-- * consistency.
-- */
--static void sibyte_selectproc(ide_drive_t *drive)
--{
-- sibyte_outb(drive->select.all, IDE_SELECT_REG);
--}
--
--static void sibyte_intrproc(ide_drive_t *drive)
--{
-- sibyte_outb(drive->ctl|2, IDE_CONTROL_REG);
--}
-+extern void sibyte_ideproc(ide_ide_action_t action, ide_drive_t *drive,
-+ void *buffer, unsigned int count);
-
- void __init sibyte_ide_probe(void)
- {
-@@ -295,14 +52,7 @@
- return;
- }
-
-- /* Find memory base address */
--#ifdef __MIPSEL__
-- /* Pass1 workaround (bug 1624) */
-- if (sb1250_pass == K_SYS_REVISION_PASS1)
-- ide_base = G_IO_START_ADDR(csr_in32(4+(IO_SPACE_BASE|A_IO_EXT_REG(R_IO_EXT_REG(R_IO_EXT_START_ADDR, IDE_CS))))) << S_IO_ADDRBASE;
-- else
--#endif
-- ide_base = G_IO_START_ADDR(csr_in32(IO_SPACE_BASE|A_IO_EXT_REG(R_IO_EXT_REG(R_IO_EXT_START_ADDR, IDE_CS)))) << S_IO_ADDRBASE;
-+ ide_base = IDE_PHYS|IO_SPACE_BASE;
-
- /*
- * Set up our stuff; we're a little odd because our io_ports
-@@ -322,10 +72,9 @@
- hwif->hw.irq = K_INT_GB_IDE;
- hwif->irq = K_INT_GB_IDE;
- hwif->noprobe = 0;
-+ hwif->hw.ack_intr = NULL;
- /* Use our own non-byte-swapping routines */
- hwif->ideproc = sibyte_ideproc;
-- hwif->selectproc = sibyte_selectproc;
-- hwif->intrproc = sibyte_intrproc;
-
- memcpy(hwif->io_ports, hwif->hw.io_ports, sizeof(hwif->io_ports));
- printk("SiByte onboard IDE configured as device %i\n", i);
-diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Entries
---- linux-2.4.20/drivers/ieee1394/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Entries 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1,38 @@
-+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.5.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.9.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/amdtp.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/amdtp.h/1.1.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/cmp.c/1.1.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/cmp.h/1.1.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/csr.c/1.6.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/csr.h/1.3/Thu Apr 5 04:56:14 2001/-ko/Tlinux_2_4_20
-+/dv1394-private.h/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/dv1394.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/dv1394.h/1.1.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/eth1394.c/1.1.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/eth1394.h/1.1.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/highlevel.c/1.6.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/highlevel.h/1.3.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/hosts.c/1.9.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/hosts.h/1.7.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ieee1394.h/1.3.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ieee1394_core.c/1.14.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ieee1394_core.h/1.9.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ieee1394_hotplug.h/1.2/Mon Nov 5 20:15:34 2001/-ko/Tlinux_2_4_20
-+/ieee1394_transactions.c/1.9.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/ieee1394_transactions.h/1.3.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ieee1394_types.h/1.11.2.2/Tue Sep 10 15:32:49 2002/-ko/Tlinux_2_4_20
-+/nodemgr.c/1.6.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/nodemgr.h/1.4.2.1/Wed Jun 26 22:35:45 2002/-ko/Tlinux_2_4_20
-+/ohci1394.c/1.16.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ohci1394.h/1.13.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/pcilynx.c/1.14.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/pcilynx.h/1.8.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/raw1394.c/1.14.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/raw1394.h/1.4/Thu Oct 5 01:18:47 2000/-ko/Tlinux_2_4_20
-+/sbp2.c/1.4.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/sbp2.h/1.4.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/video1394.c/1.12.2.6/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/video1394.h/1.6.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Repository
---- linux-2.4.20/drivers/ieee1394/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Repository 2005-01-06 23:02:05.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/ieee1394
-diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Root
---- linux-2.4.20/drivers/ieee1394/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Root 2005-01-06 23:02:05.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/ieee1394/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Tag
---- linux-2.4.20/drivers/ieee1394/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/CVS/Tag 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/ieee1394/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/ieee1394/.cvsignore
---- linux-2.4.20/drivers/ieee1394/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/ieee1394/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Entries
---- linux-2.4.20/drivers/input/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Entries 2005-01-06 23:08:12.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Fri Sep 1 07:46:58 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.2/Fri Oct 19 01:24:26 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:17:58 2001/-ko/Tlinux_2_4_20
-+/evdev.c/1.5.2.1/Tue Feb 26 05:59:31 2002/-ko/Tlinux_2_4_20
-+/input.c/1.5/Mon Nov 5 20:15:36 2001/-ko/Tlinux_2_4_20
-+/joydev.c/1.5.2.1/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/keybdev.c/1.6/Tue Nov 6 00:55:05 2001/-ko/Tlinux_2_4_20
-+/mousedev.c/1.6/Mon Nov 5 20:15:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Repository
---- linux-2.4.20/drivers/input/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Repository 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/input
-diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Root
---- linux-2.4.20/drivers/input/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Root 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/input/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Tag
---- linux-2.4.20/drivers/input/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/input/CVS/Tag 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/input/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/input/.cvsignore
---- linux-2.4.20/drivers/input/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/input/.cvsignore 2000-09-01 02:46:58.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Entries
---- linux-2.4.20/drivers/isdn/act2000/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Entries 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.3/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:17:59 2001/-ko/Tlinux_2_4_20
-+/act2000.h/1.7.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/act2000_isa.c/1.9.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/act2000_isa.h/1.5.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/capi.c/1.6.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/capi.h/1.6.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/module.c/1.9.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Repository
---- linux-2.4.20/drivers/isdn/act2000/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Repository 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/act2000
-diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Root
---- linux-2.4.20/drivers/isdn/act2000/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Root 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Tag
---- linux-2.4.20/drivers/isdn/act2000/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/CVS/Tag 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/act2000/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/.cvsignore
---- linux-2.4.20/drivers/isdn/act2000/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/act2000/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Entries
---- linux-2.4.20/drivers/isdn/avmb1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Entries 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1,24 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.10/Wed Jan 10 17:17:59 2001/-ko/Tlinux_2_4_20
-+/avm_cs.c/1.6.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/avmcard.h/1.8.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/b1.c/1.14.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/b1dma.c/1.17.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/b1isa.c/1.11.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/b1pci.c/1.20.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/b1pcmcia.c/1.13.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/c4.c/1.16.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/capi.c/1.39.2.2/Tue Feb 26 05:59:31 2002/-ko/Tlinux_2_4_20
-+/capicmd.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capidev.h/1.9.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capidrv.c/1.21.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capidrv.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capifs.c/1.12.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capifs.h/1.3.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capilli.h/1.3.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capiutil.c/1.11.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/capiutil.h/1.6.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/kcapi.c/1.17.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/t1isa.c/1.13.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/t1pci.c/1.16.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Repository
---- linux-2.4.20/drivers/isdn/avmb1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Repository 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/avmb1
-diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Root
---- linux-2.4.20/drivers/isdn/avmb1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Root 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Tag
---- linux-2.4.20/drivers/isdn/avmb1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/CVS/Tag 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/avmb1/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/.cvsignore
---- linux-2.4.20/drivers/isdn/avmb1/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/avmb1/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Entries
---- linux-2.4.20/drivers/isdn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Entries 2005-01-06 23:08:12.000000000 -0600
-@@ -0,0 +1,33 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.21.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.11.2.1/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/isdn_audio.c/1.12.2.2/Tue Feb 26 05:59:31 2002/-ko/Tlinux_2_4_20
-+/isdn_audio.h/1.6.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/isdn_bsdcomp.c/1.6/Mon Nov 5 20:15:36 2001/-ko/Tlinux_2_4_20
-+/isdn_common.c/1.43.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/isdn_common.h/1.13.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/isdn_concap.c/1.6.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/isdn_concap.h/1.3.2.1/Sat Dec 29 05:37:54 2001/-ko/Tlinux_2_4_20
-+/isdn_net.c/1.32.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/isdn_net.h/1.12.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/isdn_ppp.c/1.26.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/isdn_ppp.h/1.10.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_tty.c/1.24.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_tty.h/1.12.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_ttyfax.c/1.7.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_ttyfax.h/1.4.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_v110.c/1.8.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_v110.h/1.5.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_x25iface.c/1.7.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+/isdn_x25iface.h/1.3.2.1/Sat Dec 29 05:37:55 2001/-ko/Tlinux_2_4_20
-+D/act2000////
-+D/avmb1////
-+D/divert////
-+D/eicon////
-+D/hisax////
-+D/hysdn////
-+D/icn////
-+D/isdnloop////
-+D/pcbit////
-+D/sc////
-+D/tpam////
-diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Repository
---- linux-2.4.20/drivers/isdn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Repository 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn
-diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Root
---- linux-2.4.20/drivers/isdn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Root 2005-01-06 23:02:09.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Tag
---- linux-2.4.20/drivers/isdn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/CVS/Tag 2005-01-06 23:02:13.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/.cvsignore
---- linux-2.4.20/drivers/isdn/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Entries
---- linux-2.4.20/drivers/isdn/divert/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Entries 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.2/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+/divert_init.c/1.6/Mon Nov 5 20:15:38 2001/-ko/Tlinux_2_4_20
-+/divert_procfs.c/1.17.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/isdn_divert.c/1.8.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/isdn_divert.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Repository
---- linux-2.4.20/drivers/isdn/divert/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Repository 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/divert
-diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Root
---- linux-2.4.20/drivers/isdn/divert/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Root 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Tag
---- linux-2.4.20/drivers/isdn/divert/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/CVS/Tag 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/divert/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/.cvsignore
---- linux-2.4.20/drivers/isdn/divert/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/divert/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Entries
---- linux-2.4.20/drivers/isdn/eicon/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Entries 2005-01-06 23:02:17.000000000 -0600
-@@ -0,0 +1,39 @@
-+/.cvsignore/1.2/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Divas_mod.c/1.6/Mon Nov 5 20:15:38 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Thu Apr 5 04:56:15 2001/-ko/Tlinux_2_4_20
-+/adapter.h/1.3/Mon Nov 5 20:15:38 2001/-ko/Tlinux_2_4_20
-+/bri.c/1.4/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/common.c/1.7.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/constant.h/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/divalog.h/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/divas.h/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/dsp_defs.h/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/dspdids.h/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/eicon.h/1.10.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/eicon_dsp.h/1.5.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/eicon_idi.c/1.11.2.1/Sat Dec 29 05:37:56 2001/-ko/Tlinux_2_4_20
-+/eicon_idi.h/1.5.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/eicon_io.c/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/eicon_isa.c/1.8.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/eicon_isa.h/1.6.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/eicon_mod.c/1.11.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/eicon_pci.c/1.8.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/eicon_pci.h/1.4.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/fourbri.c/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/fpga.c/1.3/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/idi.c/1.4/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/idi.h/1.4/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/kprintf.c/1.6/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/lincfg.c/1.4/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/linchr.c/1.6/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/linio.c/1.5/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/linsys.c/1.4/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/log.c/1.4/Mon Nov 5 20:15:39 2001/-ko/Tlinux_2_4_20
-+/pc.h/1.4/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+/pc_maint.h/1.3/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+/pr_pc.h/1.3/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+/pri.c/1.3/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+/sys.h/1.4/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+/uxio.h/1.5/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+/xlog.c/1.4/Mon Nov 5 20:15:40 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Repository
---- linux-2.4.20/drivers/isdn/eicon/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Repository 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/eicon
-diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Root
---- linux-2.4.20/drivers/isdn/eicon/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Root 2005-01-06 23:02:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Tag
---- linux-2.4.20/drivers/isdn/eicon/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/CVS/Tag 2005-01-06 23:02:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/eicon/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/.cvsignore
---- linux-2.4.20/drivers/isdn/eicon/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/eicon/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Entries
---- linux-2.4.20/drivers/isdn/hisax/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Entries 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1,103 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.15.2.3/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/amd7930.c/1.9.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/amd7930_fn.c/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/amd7930_fn.h/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/arcofi.c/1.10.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/arcofi.h/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/asuscom.c/1.12.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/avm_a1.c/1.14.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/avm_a1p.c/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/avm_pci.c/1.12.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/avma1_cs.c/1.1.2.1/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/bkm_a4t.c/1.11.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/bkm_a8.c/1.11.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/bkm_ax.h/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/callc.c/1.20.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/cert.c/1.7.2.1/Sat Dec 29 05:37:57 2001/-ko/Tlinux_2_4_20
-+/config.c/1.25.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/diva.c/1.14.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/elsa.c/1.18.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/elsa_cs.c/1.2.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/elsa_ser.c/1.10.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/enternow.h/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/enternow_pci.c/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/fsm.c/1.13.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/fsm.h/1.2.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/gazel.c/1.10.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfc_2bds0.c/1.13.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfc_2bds0.h/1.5.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfc_2bs0.c/1.13.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfc_2bs0.h/1.5.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfc_pci.c/1.18.2.2/Wed Jun 26 22:35:46 2002/-ko/Tlinux_2_4_20
-+/hfc_pci.h/1.6.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfc_sx.c/1.9.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/hfc_sx.h/1.3.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hfcscard.c/1.8.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/hisax.h/1.23.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/hisax_debug.h/1.2.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/hisax_fcpcipnp.c/1.1.2.3/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/hisax_fcpcipnp.h/1.1.2.1/Sat Dec 29 05:37:58 2001/-ko/Tlinux_2_4_20
-+/hisax_if.h/1.2/Mon Nov 5 20:15:43 2001/-ko/Tlinux_2_4_20
-+/hisax_isac.c/1.1.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/hisax_isac.h/1.1.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/hscx.c/1.10.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/hscx.h/1.6.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/hscx_irq.c/1.10.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/icc.c/1.5.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/icc.h/1.3.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/ipac.h/1.6.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/ipacx.c/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/ipacx.h/1.1.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/isac.c/1.11.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isac.h/1.6.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isar.c/1.14.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isar.h/1.8.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isdnl1.c/1.20.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isdnl1.h/1.10.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isdnl2.c/1.15.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isdnl2.h/1.5.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isdnl3.c/1.17.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isdnl3.h/1.9.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/isurf.c/1.9.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/ix1_micro.c/1.14.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/jade.c/1.9.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/jade.h/1.5.2.1/Sat Dec 29 05:37:59 2001/-ko/Tlinux_2_4_20
-+/jade_irq.c/1.8.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/l3_1tr6.c/1.16.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/l3_1tr6.h/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/l3dss1.c/1.19.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/l3dss1.h/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/l3ni1.c/1.6.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/l3ni1.h/1.4.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/lmgr.c/1.6.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/md5sums.asc/1.13.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mic.c/1.9.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/netjet.c/1.17.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/netjet.h/1.4.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/niccy.c/1.13.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/nj_s.c/1.7.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/nj_u.c/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/q931.c/1.10.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/rawhdlc.c/1.7.2.1/Sat Dec 29 05:38:00 2001/-ko/Tlinux_2_4_20
-+/rawhdlc.h/1.4.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/s0box.c/1.7.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/saphir.c/1.9.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/sedlbauer.c/1.15.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/sedlbauer_cs.c/1.4/Mon Nov 5 20:15:44 2001/-ko/Tlinux_2_4_20
-+/sportster.c/1.11.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/st5481.h/1.2.2.1/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/st5481_b.c/1.2.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/st5481_d.c/1.3.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/st5481_hdlc.c/1.1/Fri Oct 19 01:24:29 2001/-ko/Tlinux_2_4_20
-+/st5481_hdlc.h/1.1/Fri Oct 19 01:24:29 2001/-ko/Tlinux_2_4_20
-+/st5481_init.c/1.2.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/st5481_usb.c/1.3.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/tei.c/1.14.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/teleint.c/1.11.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/teles0.c/1.16.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/teles3.c/1.16.2.2/Wed Sep 11 12:45:00 2002/-ko/Tlinux_2_4_20
-+/telespci.c/1.11.2.1/Sat Dec 29 05:38:01 2001/-ko/Tlinux_2_4_20
-+/w6692.c/1.12.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/w6692.h/1.5.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Repository
---- linux-2.4.20/drivers/isdn/hisax/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Repository 2005-01-06 23:02:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/hisax
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Root
---- linux-2.4.20/drivers/isdn/hisax/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Root 2005-01-06 23:02:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Tag
---- linux-2.4.20/drivers/isdn/hisax/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/CVS/Tag 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hisax/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/.cvsignore
---- linux-2.4.20/drivers/isdn/hisax/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hisax/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Entries
---- linux-2.4.20/drivers/isdn/hysdn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Entries 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Thu Feb 24 00:12:58 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+/boardergo.c/1.12.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/boardergo.h/1.3.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hycapi.c/1.8.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_boot.c/1.6.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_defs.h/1.7.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_init.c/1.8.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_net.c/1.9.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_pof.h/1.3.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_procconf.c/1.13.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_proclog.c/1.12.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/hysdn_sched.c/1.9.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/ince1pc.h/1.3/Mon Nov 5 20:15:46 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Repository
---- linux-2.4.20/drivers/isdn/hysdn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Repository 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/hysdn
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Root
---- linux-2.4.20/drivers/isdn/hysdn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Root 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Tag
---- linux-2.4.20/drivers/isdn/hysdn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/CVS/Tag 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/hysdn/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/.cvsignore
---- linux-2.4.20/drivers/isdn/hysdn/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/hysdn/.cvsignore 2000-02-23 18:12:58.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Entries
---- linux-2.4.20/drivers/isdn/icn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Entries 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+/icn.c/1.19.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+/icn.h/1.12.2.1/Sat Dec 29 05:38:02 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Repository
---- linux-2.4.20/drivers/isdn/icn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Repository 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/icn
-diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Root
---- linux-2.4.20/drivers/isdn/icn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Root 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Tag
---- linux-2.4.20/drivers/isdn/icn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/CVS/Tag 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/icn/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/.cvsignore
---- linux-2.4.20/drivers/isdn/icn/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/icn/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Entries
---- linux-2.4.20/drivers/isdn/isdnloop/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Entries 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.3/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+/isdnloop.c/1.12.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/isdnloop.h/1.8.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Repository
---- linux-2.4.20/drivers/isdn/isdnloop/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Repository 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/isdnloop
-diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Root
---- linux-2.4.20/drivers/isdn/isdnloop/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Root 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Tag
---- linux-2.4.20/drivers/isdn/isdnloop/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/CVS/Tag 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/isdnloop/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/.cvsignore
---- linux-2.4.20/drivers/isdn/isdnloop/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/isdnloop/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Entries
---- linux-2.4.20/drivers/isdn/pcbit/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Entries 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+/callbacks.c/1.5/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/callbacks.h/1.3/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/capi.c/1.6/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/capi.h/1.3.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/drv.c/1.16.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/edss1.c/1.4/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/edss1.h/1.3/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/layer2.c/1.10/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/layer2.h/1.5/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/module.c/1.8/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/pcbit.h/1.8/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Repository
---- linux-2.4.20/drivers/isdn/pcbit/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Repository 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/pcbit
-diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Root
---- linux-2.4.20/drivers/isdn/pcbit/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Root 2005-01-06 23:02:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Tag
---- linux-2.4.20/drivers/isdn/pcbit/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/CVS/Tag 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/pcbit/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/.cvsignore
---- linux-2.4.20/drivers/isdn/pcbit/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/pcbit/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Entries
---- linux-2.4.20/drivers/isdn/sc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Entries 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.3/Sat Mar 25 22:41:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+/card.h/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/command.c/1.4.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/debug.c/1.7.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/debug.h/1.5.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/event.c/1.4.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.4/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/includes.h/1.4/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/init.c/1.9/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/interrupt.c/1.7.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/ioctl.c/1.4/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/message.c/1.9.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/message.h/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/packet.c/1.6.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/scioc.h/1.2/Mon Nov 5 20:15:47 2001/-ko/Tlinux_2_4_20
-+/shmem.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/timer.c/1.5.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Repository
---- linux-2.4.20/drivers/isdn/sc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Repository 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/sc
-diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Root
---- linux-2.4.20/drivers/isdn/sc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Root 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Tag
---- linux-2.4.20/drivers/isdn/sc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/CVS/Tag 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/sc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/.cvsignore
---- linux-2.4.20/drivers/isdn/sc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/sc/.cvsignore 2000-03-25 16:41:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Entries
---- linux-2.4.20/drivers/isdn/tpam/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Entries 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:38 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Wed Aug 22 03:24:26 2001/-ko/Tlinux_2_4_20
-+/tpam.h/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_commands.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_crcpc.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_hdlc.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_main.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_memory.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_nco.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/tpam_queues.c/1.2.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Repository
---- linux-2.4.20/drivers/isdn/tpam/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Repository 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/isdn/tpam
-diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Root
---- linux-2.4.20/drivers/isdn/tpam/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Root 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Tag
---- linux-2.4.20/drivers/isdn/tpam/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/CVS/Tag 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/isdn/tpam/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/.cvsignore
---- linux-2.4.20/drivers/isdn/tpam/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/isdn/tpam/.cvsignore 2001-08-23 22:38:38.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Entries
---- linux-2.4.20/drivers/macintosh/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Entries 2005-01-06 23:02:28.000000000 -0600
-@@ -0,0 +1,22 @@
-+/.cvsignore/1.2/Tue Mar 17 22:10:32 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.15.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/adb-iop.c/1.1/Thu Feb 24 00:12:58 2000/-ko/Tlinux_2_4_20
-+/adb.c/1.21.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/adbhid.c/1.3.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/ans-lcd.c/1.1.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/apm_emu.c/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mac_hid.c/1.2.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/mac_keyb.c/1.18.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/macio-adb.c/1.8.4.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mackeymap.map/1.2/Tue Mar 17 22:10:36 1998/-ko/Tlinux_2_4_20
-+/macserial.c/1.24.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/macserial.h/1.9.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/mediabay.c/1.12.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/nvram.c/1.13/Tue Nov 6 00:55:05 2001/-ko/Tlinux_2_4_20
-+/rtc.c/1.5.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/via-cuda.c/1.11.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/via-macii.c/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/via-maciisi.c/1.1.4.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/via-pmu.c/1.20.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/via-pmu68k.c/1.3.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Repository
---- linux-2.4.20/drivers/macintosh/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Repository 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/macintosh
-diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Root
---- linux-2.4.20/drivers/macintosh/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Root 2005-01-06 23:02:26.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/macintosh/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Tag
---- linux-2.4.20/drivers/macintosh/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/CVS/Tag 2005-01-06 23:02:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/macintosh/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/macintosh/.cvsignore
---- linux-2.4.20/drivers/macintosh/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/macintosh/.cvsignore 1998-03-17 16:10:32.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Entries
---- linux-2.4.20/drivers/md/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Entries 2005-01-06 23:08:12.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Mon Oct 9 00:46:00 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.3/Fri Oct 19 01:24:30 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Sun Dec 2 11:34:42 2001/-ko/Tlinux_2_4_20
-+/linear.c/1.4/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+/lvm-fs.c/1.1.2.4/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/lvm-internal.h/1.1.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/lvm-snap.c/1.7.2.3/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/lvm.c/1.11.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/md.c/1.15.2.5/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/multipath.c/1.3.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/raid0.c/1.4/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+/raid1.c/1.10.2.4/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/raid5.c/1.13.2.1/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/xor.c/1.5/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Repository
---- linux-2.4.20/drivers/md/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Repository 2005-01-06 23:02:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/md
-diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Root
---- linux-2.4.20/drivers/md/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Root 2005-01-06 23:02:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/md/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Tag
---- linux-2.4.20/drivers/md/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/md/CVS/Tag 2005-01-06 23:02:30.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/md/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/md/.cvsignore
---- linux-2.4.20/drivers/md/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/md/.cvsignore 2000-10-08 19:46:00.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Entries
---- linux-2.4.20/drivers/media/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Entries 2005-01-06 23:08:12.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Fri Sep 1 07:46:58 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+D/radio////
-+D/video////
-diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Repository
---- linux-2.4.20/drivers/media/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Repository 2005-01-06 23:02:30.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/media
-diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Root
---- linux-2.4.20/drivers/media/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Root 2005-01-06 23:02:30.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/media/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Tag
---- linux-2.4.20/drivers/media/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/CVS/Tag 2005-01-06 23:02:30.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/media/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/media/.cvsignore
---- linux-2.4.20/drivers/media/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/.cvsignore 2000-09-01 02:46:58.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Entries
---- linux-2.4.20/drivers/media/radio/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Entries 2005-01-06 23:02:31.000000000 -0600
-@@ -0,0 +1,21 @@
-+/.cvsignore/1.1/Fri Sep 1 07:46:58 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.8.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Fri Aug 24 03:38:38 2001/-ko/Tlinux_2_4_20
-+/miropcm20-radio.c/1.2/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+/miropcm20-rds-core.c/1.2/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+/miropcm20-rds-core.h/1.1/Wed Aug 22 03:24:29 2001/-ko/Tlinux_2_4_20
-+/miropcm20-rds.c/1.2/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+/radio-aimslab.c/1.7/Mon Nov 5 20:15:48 2001/-ko/Tlinux_2_4_20
-+/radio-aztech.c/1.7/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-cadet.c/1.6/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-gemtek-pci.c/1.2.2.2/Tue Feb 26 05:59:32 2002/-ko/Tlinux_2_4_20
-+/radio-gemtek.c/1.7.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/radio-maestro.c/1.5/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-maxiradio.c/1.3.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/radio-rtrack2.c/1.7/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-sf16fmi.c/1.8.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
-+/radio-terratec.c/1.7/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-trust.c/1.7/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-typhoon.c/1.7/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/radio-zoltrix.c/1.7.2.1/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Repository
---- linux-2.4.20/drivers/media/radio/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Repository 2005-01-06 23:02:30.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/media/radio
-diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Root
---- linux-2.4.20/drivers/media/radio/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Root 2005-01-06 23:02:30.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/media/radio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Tag
---- linux-2.4.20/drivers/media/radio/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/CVS/Tag 2005-01-06 23:02:31.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/media/radio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/media/radio/.cvsignore
---- linux-2.4.20/drivers/media/radio/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/radio/.cvsignore 2000-09-01 02:46:58.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Entries
---- linux-2.4.20/drivers/media/video/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,64 @@
-+/.cvsignore/1.1/Fri Sep 1 07:46:58 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.4.2.1/Sat Dec 29 05:38:03 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.5.2.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/adv7175.c/1.3/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/audiochip.h/1.2/Tue Nov 28 03:58:50 2000/-ko/Tlinux_2_4_20
-+/bt819.c/1.3/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/bt848.h/1.2/Fri Aug 24 03:38:38 2001/-ko/Tlinux_2_4_20
-+/bt856.c/1.3/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/bttv-cards.c/1.9.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/bttv-driver.c/1.13.2.4/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/bttv-if.c/1.5.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/bttv.h/1.9.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/bttvp.h/1.5.2.2/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/bw-qcam.c/1.8.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/bw-qcam.h/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
-+/c-qcam.c/1.7/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/cpia.c/1.7.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/cpia.h/1.3.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/cpia_pp.c/1.3.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/cpia_usb.c/1.7.2.1/Wed Sep 11 12:45:01 2002/-ko/Tlinux_2_4_20
-+/cs8420.h/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
-+/i2c-old.c/1.3/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/i2c-parport.c/1.3/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/ibmmpeg2.h/1.1/Mon Aug 28 22:00:16 2000/-ko/Tlinux_2_4_20
-+/id.h/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/meye.c/1.4.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/meye.h/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/msp3400.c/1.8.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/msp3400.h/1.1/Fri Aug 24 03:38:39 2001/-ko/Tlinux_2_4_20
-+/planb.c/1.9.2.2/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/planb.h/1.2.2.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/pms.c/1.6.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/saa5249.c/1.5/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/saa7110.c/1.5/Sun Dec 2 11:34:42 2001/-ko/Tlinux_2_4_20
-+/saa7111.c/1.5/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/saa7121.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
-+/saa7146.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
-+/saa7146reg.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
-+/saa7185.c/1.5/Mon Nov 5 20:15:49 2001/-ko/Tlinux_2_4_20
-+/saa7196.h/1.1.4.1/Wed Jun 26 22:35:47 2002/-ko/Tlinux_2_4_20
-+/stradis.c/1.7.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
-+/tda7432.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/tda9875.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/tuner-3036.c/1.3/Mon Nov 5 20:15:50 2001/-ko/Tlinux_2_4_20
-+/tuner.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/tuner.h/1.5.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/tvaudio.c/1.7.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/tvaudio.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/tvmixer.c/1.6.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/videodev.c/1.9.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/vino.c/1.4/Fri Oct 5 15:04:00 2001/-ko/Tlinux_2_4_20
-+/vino.h/1.2/Sun Jun 10 22:07:06 2001/-ko/Tlinux_2_4_20
-+/w9966.c/1.2.2.3/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
-+/zoran.h/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
-+/zoran_procfs.c/1.1.2.1/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/zr36057.h/1.2/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
-+/zr36060.h/1.2/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
-+/zr36067.c/1.5.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/zr36120.c/1.11.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
-+/zr36120.h/1.2/Wed Jan 10 05:27:30 2001/-ko/Tlinux_2_4_20
-+/zr36120_i2c.c/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
-+/zr36120_mem.c/1.2/Mon Nov 5 20:15:50 2001/-ko/Tlinux_2_4_20
-+/zr36120_mem.h/1.1/Mon Aug 28 22:00:17 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Repository
---- linux-2.4.20/drivers/media/video/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Repository 2005-01-06 23:02:31.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/media/video
-diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Root
---- linux-2.4.20/drivers/media/video/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Root 2005-01-06 23:02:31.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/media/video/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Tag
---- linux-2.4.20/drivers/media/video/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/CVS/Tag 2005-01-06 23:02:37.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/media/video/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/media/video/.cvsignore
---- linux-2.4.20/drivers/media/video/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/media/video/.cvsignore 2000-09-01 02:46:58.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Entries
---- linux-2.4.20/drivers/message/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,2 @@
-+D/fusion////
-+D/i2o////
-diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Repository
---- linux-2.4.20/drivers/message/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Repository 2005-01-06 23:02:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/message
-diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Root
---- linux-2.4.20/drivers/message/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Root 2005-01-06 23:02:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/message/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Tag
---- linux-2.4.20/drivers/message/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/CVS/Tag 2005-01-06 23:02:37.000000000 -0600
-@@ -0,0 +1 @@
-+Tlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Entries
---- linux-2.4.20/drivers/message/fusion/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/ascq_tbl.c/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
-+/ascq_tbl.sh/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
-+/isense.c/1.3.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/isense.h/1.1/Thu Aug 23 22:24:31 2001/-ko/Tlinux_2_4_20
-+/linux_compat.h/1.1.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mptbase.c/1.3.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/mptbase.h/1.3.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mptctl.c/1.4.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mptctl.h/1.1.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/mptlan.c/1.3.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/mptlan.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mptscsih.c/1.3.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mptscsih.h/1.1.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/scsi3.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/scsiops.c/1.1/Thu Aug 23 22:24:32 2001/-ko/Tlinux_2_4_20
-+D/lsi////
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Repository
---- linux-2.4.20/drivers/message/fusion/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Repository 2005-01-06 23:02:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/message/fusion
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Root
---- linux-2.4.20/drivers/message/fusion/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Root 2005-01-06 23:02:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Tag
---- linux-2.4.20/drivers/message/fusion/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/CVS/Tag 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/message/fusion/.cvsignore
---- linux-2.4.20/drivers/message/fusion/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/.cvsignore 2001-08-23 22:38:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Entries
---- linux-2.4.20/drivers/message/fusion/lsi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Entries 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1,13 @@
-+/fc_log.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_cnfg.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_fc.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_history.txt/1.2/Fri Oct 19 01:24:31 2001/-ko/Tlinux_2_4_20
-+/mpi_init.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_ioc.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_lan.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_raid.h/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_targ.h/1.2.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_tool.h/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/mpi_type.h/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Repository
---- linux-2.4.20/drivers/message/fusion/lsi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Repository 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/message/fusion/lsi
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Root
---- linux-2.4.20/drivers/message/fusion/lsi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Root 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/message/fusion/lsi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Tag
---- linux-2.4.20/drivers/message/fusion/lsi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/fusion/lsi/CVS/Tag 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Entries
---- linux-2.4.20/drivers/message/i2o/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Entries 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.1/Tue Nov 6 00:55:06 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/README/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/README.ioctl/1.1.2.1/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/i2o_block.c/1.2.2.2/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/i2o_config.c/1.1.2.2/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/i2o_core.c/1.1.2.3/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/i2o_lan.c/1.1.2.1/Wed Jun 26 22:35:48 2002/-ko/Tlinux_2_4_20
-+/i2o_lan.h/1.1/Tue Nov 6 00:55:06 2001/-ko/Tlinux_2_4_20
-+/i2o_pci.c/1.2.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/i2o_proc.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/i2o_scsi.c/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/i2o_scsi.h/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Repository
---- linux-2.4.20/drivers/message/i2o/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Repository 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/message/i2o
-diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Root
---- linux-2.4.20/drivers/message/i2o/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Root 2005-01-06 23:02:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/message/i2o/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Tag
---- linux-2.4.20/drivers/message/i2o/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/CVS/Tag 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/message/i2o/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/message/i2o/.cvsignore
---- linux-2.4.20/drivers/message/i2o/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/message/i2o/.cvsignore 2001-11-15 10:02:31.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Entries
---- linux-2.4.20/drivers/misc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.2/Tue Mar 17 22:10:39 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.5/Sat Feb 5 06:47:20 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.13/Wed Jan 10 17:18:00 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Repository
---- linux-2.4.20/drivers/misc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Repository 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/misc
-diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Root
---- linux-2.4.20/drivers/misc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Root 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/misc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Tag
---- linux-2.4.20/drivers/misc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/misc/CVS/Tag 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/misc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/misc/.cvsignore
---- linux-2.4.20/drivers/misc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/misc/.cvsignore 1998-03-17 16:10:39.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Entries
---- linux-2.4.20/drivers/mtd/chips/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Entries 2005-01-06 23:02:43.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.2/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/amd_flash.c/1.3.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/cfi_cmdset_0001.c/1.2/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/cfi_cmdset_0002.c/1.3/Tue Nov 6 07:56:00 2001/-ko/Tlinux_2_4_20
-+/cfi_probe.c/1.2/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/chipreg.c/1.2/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/gen_probe.c/1.1/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/jedec.c/1.3.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/jedec_probe.c/1.1/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/map_absent.c/1.1/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/map_ram.c/1.2/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/map_rom.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/sharp.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Repository
---- linux-2.4.20/drivers/mtd/chips/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Repository 2005-01-06 23:02:42.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/mtd/chips
-diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Root
---- linux-2.4.20/drivers/mtd/chips/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Root 2005-01-06 23:02:42.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Tag
---- linux-2.4.20/drivers/mtd/chips/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/CVS/Tag 2005-01-06 23:02:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/mtd/chips/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/.cvsignore
---- linux-2.4.20/drivers/mtd/chips/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/chips/.cvsignore 2001-08-23 22:38:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Entries
---- linux-2.4.20/drivers/mtd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.1/Sat Jul 8 00:53:05 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.8.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/afs.c/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/bootldr.c/1.2/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/ftl.c/1.9.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/mtdblock.c/1.12.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/mtdblock_ro.c/1.5.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/mtdchar.c/1.9/Mon Nov 5 20:15:51 2001/-ko/Tlinux_2_4_20
-+/mtdconcat.c/1.1.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/mtdcore.c/1.7.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/mtdpart.c/1.4.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/nftlcore.c/1.5.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/nftlmount.c/1.5.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
-+/redboot.c/1.3/Sun Dec 2 11:34:42 2001/-ko/Tlinux_2_4_20
-+D/chips////
-+D/devices////
-+D/maps////
-+D/nand////
-diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Repository
---- linux-2.4.20/drivers/mtd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Repository 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/mtd
-diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Root
---- linux-2.4.20/drivers/mtd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Root 2005-01-06 23:02:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/mtd/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Tag
---- linux-2.4.20/drivers/mtd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/CVS/Tag 2005-01-06 23:02:42.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/mtd/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/.cvsignore
---- linux-2.4.20/drivers/mtd/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/.cvsignore 2000-07-07 19:53:05.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/Config.in linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/Config.in
---- linux-2.4.20/drivers/mtd/devices/Config.in 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/Config.in 2003-01-16 08:17:34.000000000 -0600
-@@ -11,7 +11,7 @@
- bool ' PMC551 Debugging' CONFIG_MTD_PMC551_DEBUG
- fi
- if [ "$CONFIG_DECSTATION" = "y" ]; then
-- dep_tristate ' DEC MS02-NV NVRAM module support' CONFIG_MTD_MS02NV $CONFIG_MTD $CONFIG_DECSTATION
-+ dep_tristate ' DEC MS02-NV NVRAM module support' CONFIG_MTD_MS02NV $CONFIG_MTD
- fi
- dep_tristate ' Uncached system RAM' CONFIG_MTD_SLRAM $CONFIG_MTD
- if [ "$CONFIG_SA1100_LART" = "y" ]; then
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Entries
---- linux-2.4.20/drivers/mtd/devices/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Entries 2005-01-06 23:02:44.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.2.2.3/Thu Jan 16 14:17:34 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Sat Mar 30 08:15:50 2002/-ko/Tlinux_2_4_20
-+/blkmtd.c/1.1.2.2/Wed Sep 11 12:45:02 2002/-ko/Tlinux_2_4_20
-+/doc1000.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/doc2000.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/doc2001.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/docecc.c/1.4/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/docprobe.c/1.3.2.1/Mon Sep 23 01:04:02 2002/-ko/Tlinux_2_4_20
-+/lart.c/1.1/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/ms02-nv.c/1.1.2.2/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
-+/ms02-nv.h/1.1.2.1/Sat Mar 30 08:15:50 2002/-ko/Tlinux_2_4_20
-+/mtdram.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/pmc551.c/1.2.2.1/Wed Jun 26 22:35:49 2002/-ko/Tlinux_2_4_20
-+/slram.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Repository
---- linux-2.4.20/drivers/mtd/devices/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Repository 2005-01-06 23:02:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/mtd/devices
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Root
---- linux-2.4.20/drivers/mtd/devices/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Root 2005-01-06 23:02:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Tag
---- linux-2.4.20/drivers/mtd/devices/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/CVS/Tag 2005-01-06 23:02:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/.cvsignore
---- linux-2.4.20/drivers/mtd/devices/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/.cvsignore 2001-08-23 22:38:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/docprobe.c linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/docprobe.c
---- linux-2.4.20/drivers/mtd/devices/docprobe.c 2001-10-04 17:14:59.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/docprobe.c 2002-09-22 20:04:02.000000000 -0500
-@@ -88,6 +88,9 @@
- 0xe4000000,
- #elif defined(CONFIG_MOMENCO_OCELOT)
- 0x2f000000,
-+ 0xff000000,
-+#elif defined(CONFIG_MOMENCO_OCELOT_G)
-+ 0xff000000,
- #else
- #warning Unknown architecture for DiskOnChip. No default probe locations defined
- #endif
-diff -urNd -urNd linux-2.4.20/drivers/mtd/devices/ms02-nv.c linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/ms02-nv.c
---- linux-2.4.20/drivers/mtd/devices/ms02-nv.c 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/devices/ms02-nv.c 2002-12-12 13:08:50.000000000 -0600
-@@ -296,6 +296,7 @@
- stride = 2;
- break;
- case MACH_DS5000_2X0:
-+ case MACH_DS5900:
- csr = (volatile u32 *)KN03_MCR_BASE;
- if (*csr & KN03_MCR_BNK32M)
- stride = 2;
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/Config.in linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Config.in
---- linux-2.4.20/drivers/mtd/maps/Config.in 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Config.in 2003-02-16 00:25:24.000000000 -0600
-@@ -52,6 +52,11 @@
- bool ' Pb1[015]00 boot flash device' CONFIG_MTD_PB1500_BOOT
- bool ' Pb1[015]00 user flash device (2nd 32MB bank)' CONFIG_MTD_PB1500_USER
- fi
-+ tristate ' Db1x00 MTD support' CONFIG_MTD_DB1X00
-+ if [ "$CONFIG_MTD_DB1X00" = "y" -o "$CONFIG_MTD_DB1X00" = "m" ]; then
-+ bool ' Db1x00 boot flash device' CONFIG_MTD_DB1X00_BOOT
-+ bool ' Db1x00 user flash device (2nd bank)' CONFIG_MTD_DB1X00_USER
-+ fi
- dep_tristate ' Flash chip mapping on ITE QED-4N-S01B, Globespan IVR or custom board' CONFIG_MTD_CSTM_MIPS_IXX $CONFIG_MTD_CFI $CONFIG_MTD_JEDEC $CONFIG_MTD_PARTITIONS
- if [ "$CONFIG_MTD_CSTM_MIPS_IXX" = "y" -o "$CONFIG_MTD_CSTM_MIPS_IXX" = "m" ]; then
- hex ' Physical start address of flash mapping' CONFIG_MTD_CSTM_MIPS_IXX_START 0x8000000
-@@ -59,6 +64,7 @@
- int ' Bus width in octets' CONFIG_MTD_CSTM_MIPS_IXX_BUSWIDTH 2
- fi
- dep_tristate ' Momenco Ocelot boot flash device' CONFIG_MTD_OCELOT $CONFIG_MOMENCO_OCELOT
-+ dep_tristate ' LASAT flash device' CONFIG_MTD_LASAT $CONFIG_MTD_CFI $CONFIG_LASAT
- fi
-
- if [ "$CONFIG_SUPERH" = "y" ]; then
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Entries
---- linux-2.4.20/drivers/mtd/maps/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Entries 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1,38 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.3.2.6/Sun Feb 16 06:25:24 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.6/Sun Feb 16 06:25:24 2003/-ko/Tlinux_2_4_20
-+/amd766rom.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/autcpu12-nvram.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/cdb89712.c/1.1/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/cfi_flagadm.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/cstm_mips_ixx.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/db1x00-flash.c/1.1.2.1/Sun Feb 16 06:25:24 2003/-ko/Tlinux_2_4_20
-+/dbox2-flash.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/dc21285.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/dilnetpc.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/elan-104nc.c/1.2.2.2/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/epxa10db-flash.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/ich2rom.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/integrator-flash.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/iq80310.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/l440gx.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/lasat.c/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/mbx860.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/netsc520.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/nora.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/ocelot.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/octagon-5066.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/pb1xxx-flash.c/1.1.2.3/Sun Jul 14 21:20:58 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.1.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
-+/physmap.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/pnc2000.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/rpxlite.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/sa1100-flash.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/sbc_gxx.c/1.2.2.2/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/sc520cdp.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/solutionengine.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/sun_uflash.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/tqm8xxl.c/1.1/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+/tsunami_flash.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/vmax301.c/1.2/Mon Nov 5 20:15:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Repository
---- linux-2.4.20/drivers/mtd/maps/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Repository 2005-01-06 23:02:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/mtd/maps
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Root
---- linux-2.4.20/drivers/mtd/maps/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Root 2005-01-06 23:02:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Tag
---- linux-2.4.20/drivers/mtd/maps/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/CVS/Tag 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/.cvsignore
---- linux-2.4.20/drivers/mtd/maps/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/.cvsignore 2001-08-23 22:38:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/db1x00-flash.c linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/db1x00-flash.c
---- linux-2.4.20/drivers/mtd/maps/db1x00-flash.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/db1x00-flash.c 2003-02-16 00:25:24.000000000 -0600
-@@ -0,0 +1,285 @@
-+/*
-+ * Flash memory access on Alchemy Db1xxx boards
-+ *
-+ * (C) 2003 Pete Popov <ppopov@pacbell.net>
-+ *
-+ */
-+
-+#include <linux/config.h>
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/partitions.h>
-+
-+#include <asm/io.h>
-+#include <asm/au1000.h>
-+#include <asm/db1x00.h>
-+
-+#ifdef DEBUG_RW
-+#define DBG(x...) printk(x)
-+#else
-+#define DBG(x...)
-+#endif
-+
-+static unsigned long window_addr;
-+static unsigned long window_size;
-+static unsigned long flash_size;
-+
-+static BCSR * const bcsr = (BCSR *)0xAE000000;
-+
-+__u8 physmap_read8(struct map_info *map, unsigned long ofs)
-+{
-+ __u8 ret;
-+ ret = __raw_readb(map->map_priv_1 + ofs);
-+ DBG("read8 from %x, %x\n", (unsigned)(map->map_priv_1 + ofs), ret);
-+ return ret;
-+}
-+
-+__u16 physmap_read16(struct map_info *map, unsigned long ofs)
-+{
-+ __u16 ret;
-+ ret = __raw_readw(map->map_priv_1 + ofs);
-+ DBG("read16 from %x, %x\n", (unsigned)(map->map_priv_1 + ofs), ret);
-+ return ret;
-+}
-+
-+__u32 physmap_read32(struct map_info *map, unsigned long ofs)
-+{
-+ __u32 ret;
-+ ret = __raw_readl(map->map_priv_1 + ofs);
-+ DBG("read32 from %x, %x\n", (unsigned)(map->map_priv_1 + ofs), ret);
-+ return ret;
-+}
-+
-+void physmap_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
-+{
-+ DBG("physmap_copy from %x to %x\n", (unsigned)from, (unsigned)to);
-+ memcpy_fromio(to, map->map_priv_1 + from, len);
-+}
-+
-+void physmap_write8(struct map_info *map, __u8 d, unsigned long adr)
-+{
-+ DBG("write8 at %x, %x\n", (unsigned)(map->map_priv_1 + adr), d);
-+ __raw_writeb(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+void physmap_write16(struct map_info *map, __u16 d, unsigned long adr)
-+{
-+ DBG("write16 at %x, %x\n", (unsigned)(map->map_priv_1 + adr), d);
-+ __raw_writew(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+void physmap_write32(struct map_info *map, __u32 d, unsigned long adr)
-+{
-+ DBG("write32 at %x, %x\n", (unsigned)(map->map_priv_1 + adr), d);
-+ __raw_writel(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+void physmap_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
-+{
-+ DBG("physmap_copy_to %x from %x\n", (unsigned)to, (unsigned)from);
-+ memcpy_toio(map->map_priv_1 + to, from, len);
-+}
-+
-+static struct map_info db1x00_map = {
-+ name: "Db1x00 flash",
-+ read8: physmap_read8,
-+ read16: physmap_read16,
-+ read32: physmap_read32,
-+ copy_from: physmap_copy_from,
-+ write8: physmap_write8,
-+ write16: physmap_write16,
-+ write32: physmap_write32,
-+ copy_to: physmap_copy_to,
-+};
-+
-+static unsigned char flash_buswidth = 4;
-+
-+/*
-+ * The Db1x boards support different flash densities. We setup
-+ * the mtd_partition structures below for default of 64Mbit
-+ * flash densities, and override the partitions sizes, if
-+ * necessary, after we check the board status register.
-+ */
-+
-+#ifdef DB1X00_BOTH_BANKS
-+/* both banks will be used. Combine the first bank and the first
-+ * part of the second bank together into a single jffs/jffs2
-+ * partition.
-+ */
-+static struct mtd_partition db1x00_partitions[] = {
-+ {
-+ name: "User FS",
-+ size: 0x1c00000,
-+ offset: 0x0000000
-+ },{
-+ name: "yamon",
-+ size: 0x0100000,
-+ offset: MTDPART_OFS_APPEND,
-+ mask_flags: MTD_WRITEABLE
-+ },{
-+ name: "raw kernel",
-+ size: (0x300000-0x40000), /* last 256KB is yamon env */
-+ offset: MTDPART_OFS_APPEND,
-+ }
-+};
-+#elif defined(DB1X00_BOOT_ONLY)
-+static struct mtd_partition db1x00_partitions[] = {
-+ {
-+ name: "User FS",
-+ size: 0x00c00000,
-+ offset: 0x0000000
-+ },{
-+ name: "yamon",
-+ size: 0x0100000,
-+ offset: MTDPART_OFS_APPEND,
-+ mask_flags: MTD_WRITEABLE
-+ },{
-+ name: "raw kernel",
-+ size: (0x300000-0x40000), /* last 256KB is yamon env */
-+ offset: MTDPART_OFS_APPEND,
-+ }
-+};
-+#elif defined(DB1X00_USER_ONLY)
-+static struct mtd_partition db1x00_partitions[] = {
-+ {
-+ name: "User FS",
-+ size: 0x0e00000,
-+ offset: 0x0000000
-+ },{
-+ name: "raw kernel",
-+ size: MTDPART_SIZ_FULL,
-+ offset: MTDPART_OFS_APPEND,
-+ }
-+};
-+#else
-+#error MTD_DB1X00 define combo error /* should never happen */
-+#endif
-+
-+
-+#define NB_OF(x) (sizeof(x)/sizeof(x[0]))
-+
-+static struct mtd_partition *parsed_parts;
-+static struct mtd_info *mymtd;
-+
-+/*
-+ * Probe the flash density and setup window address and size
-+ * based on user CONFIG options. There are times when we don't
-+ * want the MTD driver to be probing the boot or user flash,
-+ * so having the option to enable only one bank is important.
-+ */
-+int setup_flash_params()
-+{
-+ switch ((bcsr->status >> 14) & 0x3) {
-+ case 0: /* 64Mbit devices */
-+ flash_size = 0x800000; /* 8MB per part */
-+#if defined(DB1X00_BOTH_BANKS)
-+ window_addr = 0x1E000000;
-+ window_size = 0x2000000;
-+#elif defined(DB1X00_BOOT_ONLY)
-+ window_addr = 0x1F000000;
-+ window_size = 0x1000000;
-+#else /* USER ONLY */
-+ window_addr = 0x1E000000;
-+ window_size = 0x1000000;
-+#endif
-+ break;
-+ case 1:
-+ /* 128 Mbit devices */
-+ flash_size = 0x1000000; /* 16MB per part */
-+#if defined(DB1X00_BOTH_BANKS)
-+ window_addr = 0x1C000000;
-+ window_size = 0x4000000;
-+ /* USERFS from 0x1C00 0000 to 0x1FC0 0000 */
-+ db1x00_partitions[0].size = 0x3C00000;
-+#elif defined(DB1X00_BOOT_ONLY)
-+ window_addr = 0x1E000000;
-+ window_size = 0x2000000;
-+ /* USERFS from 0x1E00 0000 to 0x1FC0 0000 */
-+ db1x00_partitions[0].size = 0x1C00000;
-+#else /* USER ONLY */
-+ window_addr = 0x1C000000;
-+ window_size = 0x2000000;
-+ /* USERFS from 0x1C00 0000 to 0x1DE00000 */
-+ db1x00_partitions[0].size = 0x1DE0000;
-+#endif
-+ break;
-+ case 2:
-+ /* 256 Mbit devices */
-+ flash_size = 0x4000000; /* 64MB per part */
-+#if defined(DB1X00_BOTH_BANKS)
-+ return 1;
-+#elif defined(DB1X00_BOOT_ONLY)
-+ /* Boot ROM flash bank only; no user bank */
-+ window_addr = 0x1C000000;
-+ window_size = 0x4000000;
-+ /* USERFS from 0x1C00 0000 to 0x1FC00000 */
-+ db1x00_partitions[0].size = 0x3C00000;
-+#else /* USER ONLY */
-+ return 1;
-+#endif
-+ break;
-+ default:
-+ return 1;
-+ }
-+ return 0;
-+}
-+
-+int __init db1x00_mtd_init(void)
-+{
-+ struct mtd_partition *parts;
-+ int nb_parts = 0;
-+ char *part_type;
-+
-+ /* Default flash buswidth */
-+ db1x00_map.buswidth = flash_buswidth;
-+
-+ if (setup_flash_params())
-+ return -ENXIO;
-+
-+ /*
-+ * Static partition definition selection
-+ */
-+ part_type = "static";
-+ parts = db1x00_partitions;
-+ nb_parts = NB_OF(db1x00_partitions);
-+ db1x00_map.size = window_size;
-+
-+ /*
-+ * Now let's probe for the actual flash. Do it here since
-+ * specific machine settings might have been set above.
-+ */
-+ printk(KERN_NOTICE "Db1xxx flash: probing %d-bit flash bus\n",
-+ db1x00_map.buswidth*8);
-+ db1x00_map.map_priv_1 =
-+ (unsigned long)ioremap(window_addr, window_size);
-+ mymtd = do_map_probe("cfi_probe", &db1x00_map);
-+ if (!mymtd) return -ENXIO;
-+ mymtd->module = THIS_MODULE;
-+
-+ add_mtd_partitions(mymtd, parts, nb_parts);
-+ return 0;
-+}
-+
-+static void __exit db1x00_mtd_cleanup(void)
-+{
-+ if (mymtd) {
-+ del_mtd_partitions(mymtd);
-+ map_destroy(mymtd);
-+ if (parsed_parts)
-+ kfree(parsed_parts);
-+ }
-+}
-+
-+module_init(db1x00_mtd_init);
-+module_exit(db1x00_mtd_cleanup);
-+
-+MODULE_AUTHOR("Pete Popov");
-+MODULE_DESCRIPTION("Db1x00 mtd map driver");
-+MODULE_LICENSE("GPL");
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/lasat.c linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/lasat.c
---- linux-2.4.20/drivers/mtd/maps/lasat.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/lasat.c 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,134 @@
-+/*
-+ * Flash device on lasat 100 and 200 boards
-+ *
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <asm/io.h>
-+#include <linux/mtd/mtd.h>
-+#include <linux/mtd/map.h>
-+#include <linux/mtd/partitions.h>
-+#include <linux/config.h>
-+#include <asm/lasat/lasat.h>
-+
-+static struct mtd_info *mymtd;
-+
-+static __u8 sp_read8(struct map_info *map, unsigned long ofs)
-+{
-+ return __raw_readb(map->map_priv_1 + ofs);
-+}
-+
-+static __u16 sp_read16(struct map_info *map, unsigned long ofs)
-+{
-+ return __raw_readw(map->map_priv_1 + ofs);
-+}
-+
-+static __u32 sp_read32(struct map_info *map, unsigned long ofs)
-+{
-+ return __raw_readl(map->map_priv_1 + ofs);
-+}
-+
-+static void sp_copy_from(struct map_info *map, void *to, unsigned long from, ssize_t len)
-+{
-+ memcpy_fromio(to, map->map_priv_1 + from, len);
-+}
-+
-+static void sp_write8(struct map_info *map, __u8 d, unsigned long adr)
-+{
-+ __raw_writeb(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+static void sp_write16(struct map_info *map, __u16 d, unsigned long adr)
-+{
-+ __raw_writew(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+static void sp_write32(struct map_info *map, __u32 d, unsigned long adr)
-+{
-+ __raw_writel(d, map->map_priv_1 + adr);
-+ mb();
-+}
-+
-+static void sp_copy_to(struct map_info *map, unsigned long to, const void *from, ssize_t len)
-+{
-+ memcpy_toio(map->map_priv_1 + to, from, len);
-+}
-+
-+static struct map_info sp_map = {
-+ name: "SP flash",
-+ buswidth: 4,
-+ read8: sp_read8,
-+ read16: sp_read16,
-+ read32: sp_read32,
-+ copy_from: sp_copy_from,
-+ write8: sp_write8,
-+ write16: sp_write16,
-+ write32: sp_write32,
-+ copy_to: sp_copy_to
-+};
-+
-+static struct mtd_partition partition_info[LASAT_MTD_LAST];
-+static char *lasat_mtd_partnames[] = {"Bootloader", "Service", "Normal", "Config", "Filesystem"};
-+
-+static int __init init_sp(void)
-+{
-+ int i;
-+ int nparts = 0;
-+ /* this does not play well with the old flash code which
-+ * protects and uprotects the flash when necessary */
-+ printk(KERN_NOTICE "Unprotecting flash\n");
-+ *lasat_misc->flash_wp_reg |= 1 << lasat_misc->flash_wp_bit;
-+
-+ sp_map.map_priv_1 = lasat_flash_partition_start(LASAT_MTD_BOOTLOADER);
-+ sp_map.size = lasat_board_info.li_flash_size;
-+
-+ printk(KERN_NOTICE "sp flash device: %lx at %lx\n",
-+ sp_map.size, sp_map.map_priv_1);
-+
-+ for (i=0; i < LASAT_MTD_LAST; i++)
-+ partition_info[i].name = lasat_mtd_partnames[i];
-+
-+ mymtd = do_map_probe("cfi_probe", &sp_map);
-+ if (mymtd) {
-+ u32 size, offset = 0;
-+
-+ mymtd->module = THIS_MODULE;
-+
-+ for (i=0; i < LASAT_MTD_LAST; i++) {
-+ size = lasat_flash_partition_size(i);
-+ if (size != 0) {
-+ nparts++;
-+ partition_info[i].size = size;
-+ partition_info[i].offset = offset;
-+ offset += size;
-+ }
-+ }
-+
-+ add_mtd_partitions( mymtd, partition_info, nparts );
-+ return 0;
-+ }
-+
-+ return -ENXIO;
-+}
-+
-+static void __exit cleanup_sp(void)
-+{
-+ if (mymtd) {
-+ del_mtd_partitions(mymtd);
-+ map_destroy(mymtd);
-+ }
-+ if (sp_map.map_priv_1) {
-+ sp_map.map_priv_1 = 0;
-+ }
-+}
-+
-+module_init(init_sp);
-+module_exit(cleanup_sp);
-+
-+MODULE_LICENSE("GPL");
-+MODULE_AUTHOR("Brian Murphy <brian@murphy.dk>");
-+MODULE_DESCRIPTION("Lasat Safepipe/Masquerade MTD map driver");
-diff -urNd -urNd linux-2.4.20/drivers/mtd/maps/Makefile linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Makefile
---- linux-2.4.20/drivers/mtd/maps/Makefile 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/maps/Makefile 2003-02-16 00:25:24.000000000 -0600
-@@ -39,6 +39,8 @@
- obj-$(CONFIG_MTD_PB1000) += pb1xxx-flash.o
- obj-$(CONFIG_MTD_PB1100) += pb1xxx-flash.o
- obj-$(CONFIG_MTD_PB1500) += pb1xxx-flash.o
-+obj-$(CONFIG_MTD_DB1X00) += db1x00-flash.o
-+obj-$(CONFIG_MTD_LASAT) += lasat.o
- obj-$(CONFIG_MTD_AUTCPU12) += autcpu12-nvram.o
-
- include $(TOPDIR)/Rules.make
-diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Entries
---- linux-2.4.20/drivers/mtd/nand/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Entries 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:40 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.3/Mon Nov 5 20:15:53 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Mon Nov 5 20:15:53 2001/-ko/Tlinux_2_4_20
-+/nand.c/1.2/Mon Nov 5 20:15:53 2001/-ko/Tlinux_2_4_20
-+/nand_ecc.c/1.1.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/spia.c/1.2.2.1/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Repository
---- linux-2.4.20/drivers/mtd/nand/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Repository 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/mtd/nand
-diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Root
---- linux-2.4.20/drivers/mtd/nand/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Root 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Tag
---- linux-2.4.20/drivers/mtd/nand/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/CVS/Tag 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/mtd/nand/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/.cvsignore
---- linux-2.4.20/drivers/mtd/nand/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/mtd/nand/.cvsignore 2001-08-23 22:38:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Entries
---- linux-2.4.20/drivers/net/appletalk/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Entries 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.1/Tue Mar 14 01:39:27 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.3.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/cops.c/1.12/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
-+/cops.h/1.2/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
-+/cops_ffdrv.h/1.2/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
-+/cops_ltdrv.h/1.2/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
-+/ipddp.c/1.9/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
-+/ipddp.h/1.1/Sun Mar 12 23:15:38 2000/-ko/Tlinux_2_4_20
-+/ltpc.c/1.11/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
-+/ltpc.h/1.1/Sun Mar 12 23:15:38 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Repository
---- linux-2.4.20/drivers/net/appletalk/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Repository 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/appletalk
-diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Root
---- linux-2.4.20/drivers/net/appletalk/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Root 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Tag
---- linux-2.4.20/drivers/net/appletalk/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/CVS/Tag 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/appletalk/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/.cvsignore
---- linux-2.4.20/drivers/net/appletalk/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/appletalk/.cvsignore 2000-03-13 19:39:27.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Entries
---- linux-2.4.20/drivers/net/arcnet/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Entries 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Sat Feb 5 06:47:23 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.2/Thu Apr 5 04:56:54 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Fri Mar 9 20:34:09 2001/-ko/Tlinux_2_4_20
-+/arc-rawmode.c/1.2.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/arc-rimi.c/1.6.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/arcnet.c/1.10.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/com20020-isa.c/1.7.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/com20020-pci.c/1.10.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/com20020.c/1.4.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/com90io.c/1.8.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/com90xx.c/1.8.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/rfc1051.c/1.2.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/rfc1201.c/1.4.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Repository
---- linux-2.4.20/drivers/net/arcnet/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Repository 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/arcnet
-diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Root
---- linux-2.4.20/drivers/net/arcnet/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Root 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Tag
---- linux-2.4.20/drivers/net/arcnet/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/CVS/Tag 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/arcnet/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/.cvsignore
---- linux-2.4.20/drivers/net/arcnet/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/arcnet/.cvsignore 2000-02-05 00:47:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/au1000_eth.c linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.c
---- linux-2.4.20/drivers/net/au1000_eth.c 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.c 2002-12-11 00:12:30.000000000 -0600
-@@ -1,8 +1,9 @@
- /*
- *
-- * Alchemy Semi Au1000 ethernet driver
-+ * Alchemy Au1x00 ethernet driver
- *
-- * Copyright 2001 MontaVista Software Inc.
-+ * Copyright 2001,2002 MontaVista Software Inc.
-+ * Copyright 2002 TimeSys Corp.
- * Author: MontaVista Software, Inc.
- * ppopov@mvista.com or source@mvista.com
- *
-@@ -22,8 +23,15 @@
- * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
- *
- * ########################################################################
-+ *
-+ *
- */
--#include <linux/config.h>
-+
-+#ifndef __mips__
-+#error This driver only works with MIPS architectures!
-+#endif
-+
-+
- #include <linux/module.h>
- #include <linux/kernel.h>
- #include <linux/sched.h>
-@@ -104,24 +112,26 @@
- /*
- * Base address and interupt of the Au1xxx ethernet macs
- */
--static struct {
-+static struct au1if {
- unsigned int port;
- int irq;
--} au1000_iflist[NUM_INTERFACES] = {
-+} au1x00_iflist[] = {
-+#if defined(CONFIG_CPU_AU1000)
- {AU1000_ETH0_BASE, AU1000_ETH0_IRQ},
- {AU1000_ETH1_BASE, AU1000_ETH1_IRQ}
-- },
-- au1500_iflist[NUM_INTERFACES] = {
-+#elif defined(CONFIG_CPU_AU1500)
- {AU1500_ETH0_BASE, AU1000_ETH0_IRQ},
- {AU1500_ETH1_BASE, AU1000_ETH1_IRQ}
-- },
-- au1100_iflist[NUM_INTERFACES] = {
-+#elif defined(CONFIG_CPU_AU1100)
- {AU1000_ETH0_BASE, AU1000_ETH0_IRQ},
-- {NULL, NULL}
-+#else
-+#error "Unsupported Au1x00 CPU"
-+#endif
- };
-+#define NUM_INTERFACES (sizeof(au1x00_iflist) / sizeof(struct au1if))
-
- static char version[] __devinitdata =
-- "au1000eth.c:1.0 ppopov@mvista.com\n";
-+ "au1000eth.c:1.1 ppopov@mvista.com\n";
-
- /* These addresses are only used if yamon doesn't tell us what
- * the mac address is, and the mac address is not passed on the
-@@ -171,11 +181,6 @@
- data |= MII_CNTL_RST_AUTO | MII_CNTL_AUTO;
- mdio_write(dev, phy_addr, MII_CONTROL, data);
-
-- /* Enable TX LED instead of FDX */
-- data = mdio_read(dev, phy_addr, MII_INT);
-- data &= ~MII_FDX_LED;
-- mdio_write(dev, phy_addr, MII_INT, data);
--
- if (au1000_debug > 4) dump_mii(dev, phy_addr);
- return 0;
- }
-@@ -342,6 +347,98 @@
- return 0;
- }
-
-+int am79c874_init(struct net_device *dev, int phy_addr)
-+{
-+ s16 data;
-+
-+ /* 79c874 has quit resembled bit assignments to BCM5201 */
-+ if (au1000_debug > 4)
-+ printk("am79c847_init\n");
-+
-+ /* Stop auto-negotiation */
-+ data = mdio_read(dev, phy_addr, MII_CONTROL);
-+ mdio_write(dev, phy_addr, MII_CONTROL, data & ~MII_CNTL_AUTO);
-+
-+ /* Set advertisement to 10/100 and Half/Full duplex
-+ * (full capabilities) */
-+ data = mdio_read(dev, phy_addr, MII_ANADV);
-+ data |= MII_NWAY_TX | MII_NWAY_TX_FDX | MII_NWAY_T_FDX | MII_NWAY_T;
-+ mdio_write(dev, phy_addr, MII_ANADV, data);
-+
-+ /* Restart auto-negotiation */
-+ data = mdio_read(dev, phy_addr, MII_CONTROL);
-+ data |= MII_CNTL_RST_AUTO | MII_CNTL_AUTO;
-+ mdio_write(dev, phy_addr, MII_CONTROL, data);
-+
-+ if (au1000_debug > 4) dump_mii(dev, phy_addr);
-+ return 0;
-+}
-+
-+int am79c874_reset(struct net_device *dev, int phy_addr)
-+{
-+ s16 mii_control, timeout;
-+
-+ if (au1000_debug > 4)
-+ printk("am79c874_reset\n");
-+
-+ mii_control = mdio_read(dev, phy_addr, MII_CONTROL);
-+ mdio_write(dev, phy_addr, MII_CONTROL, mii_control | MII_CNTL_RESET);
-+ mdelay(1);
-+ for (timeout = 100; timeout > 0; --timeout) {
-+ mii_control = mdio_read(dev, phy_addr, MII_CONTROL);
-+ if ((mii_control & MII_CNTL_RESET) == 0)
-+ break;
-+ mdelay(1);
-+ }
-+ if (mii_control & MII_CNTL_RESET) {
-+ printk(KERN_ERR "%s PHY reset timeout !\n", dev->name);
-+ return -1;
-+ }
-+ return 0;
-+}
-+
-+int
-+am79c874_status(struct net_device *dev, int phy_addr, u16 *link, u16 *speed)
-+{
-+ u16 mii_data;
-+ struct au1000_private *aup;
-+
-+ // printk("am79c874_status\n");
-+ if (!dev) {
-+ printk(KERN_ERR "am79c874_status error: NULL dev\n");
-+ return -1;
-+ }
-+
-+ aup = (struct au1000_private *) dev->priv;
-+ mii_data = mdio_read(dev, aup->phy_addr, MII_STATUS);
-+
-+ if (mii_data & MII_STAT_LINK) {
-+ *link = 1;
-+ mii_data = mdio_read(dev, aup->phy_addr, MII_AUX_CNTRL);
-+ if (mii_data & MII_AUX_100) {
-+ if (mii_data & MII_AUX_FDX) {
-+ *speed = IF_PORT_100BASEFX;
-+ dev->if_port = IF_PORT_100BASEFX;
-+ }
-+ else {
-+ *speed = IF_PORT_100BASETX;
-+ dev->if_port = IF_PORT_100BASETX;
-+ }
-+ }
-+ else {
-+ *speed = IF_PORT_10BASET;
-+ dev->if_port = IF_PORT_10BASET;
-+ }
-+
-+ }
-+ else {
-+ *link = 0;
-+ *speed = 0;
-+ dev->if_port = IF_PORT_UNKNOWN;
-+ }
-+ return 0;
-+}
-+
- struct phy_ops bcm_5201_ops = {
- bcm_5201_init,
- bcm_5201_reset,
-@@ -354,6 +451,12 @@
- am79c901_status,
- };
-
-+struct phy_ops am79c874_ops = {
-+ am79c874_init,
-+ am79c874_reset,
-+ am79c874_status,
-+};
-+
- struct phy_ops lsi_80227_ops = {
- lsi_80227_init,
- lsi_80227_reset,
-@@ -367,9 +470,10 @@
- struct phy_ops *phy_ops;
- } mii_chip_table[] = {
- {"Broadcom BCM5201 10/100 BaseT PHY", 0x0040, 0x6212, &bcm_5201_ops },
-+ {"Broadcom BCM5221 10/100 BaseT PHY", 0x0040, 0x61e4, &bcm_5201_ops },
- {"AMD 79C901 HomePNA PHY", 0x0000, 0x35c8, &am79c901_ops },
-+ {"AMD 79C874 10/100 BaseT PHY", 0x0022, 0x561b, &am79c874_ops },
- {"LSI 80227 10/100 BaseT PHY", 0x0016, 0xf840, &lsi_80227_ops },
-- {"Broadcom BCM5221 10/100 BaseT PHY", 0x0040, 0x61e4, &bcm_5201_ops },
- {0,},
- };
-
-@@ -629,31 +733,15 @@
- static int __init au1000_init_module(void)
- {
- int i;
-- int prid;
- int base_addr, irq;
-
-- prid = read_32bit_cp0_register(CP0_PRID);
- for (i=0; i<NUM_INTERFACES; i++) {
-- if ( (prid & 0xffff0000) == 0x00030000 ) {
-- base_addr = au1000_iflist[i].port;
-- irq = au1000_iflist[i].irq;
-- } else if ( (prid & 0xffff0000) == 0x01030000 ) {
-- base_addr = au1500_iflist[i].port;
-- irq = au1500_iflist[i].irq;
-- } else if ( (prid & 0xffff0000) == 0x02030000 ) {
-- base_addr = au1100_iflist[i].port;
-- irq = au1100_iflist[i].irq;
-- } else {
-- printk(KERN_ERR "au1000 eth: unknown Processor ID\n");
-- return -ENODEV;
-- }
-- // check for valid entries, au1100 only has one entry
-- if (base_addr && irq) {
-+ base_addr = au1x00_iflist[i].port;
-+ irq = au1x00_iflist[i].irq;
- if (au1000_probe1(NULL, base_addr, irq, i) != 0) {
- return -ENODEV;
- }
- }
-- }
- return 0;
- }
-
-@@ -667,7 +755,7 @@
- char *pmac, *argptr;
- char ethaddr[6];
-
-- if (!request_region(ioaddr, MAC_IOSIZE, "Au1000 ENET")) {
-+ if (!request_region(ioaddr, MAC_IOSIZE, "Au1x00 ENET")) {
- return -ENODEV;
- }
-
-@@ -828,9 +916,9 @@
- MAX_BUF_SIZE * (NUM_TX_BUFFS+NUM_RX_BUFFS));
- if (dev->priv != NULL)
- kfree(dev->priv);
-+ kfree(dev);
- printk(KERN_ERR "%s: au1000_probe1 failed. Returns %d\n",
- dev->name, retval);
-- kfree(dev);
- return retval;
- }
-
-@@ -1250,6 +1338,8 @@
- printk(KERN_ERR "%s: au1000_tx_timeout: dev=%p\n", dev->name, dev);
- reset_mac(dev);
- au1000_init(dev);
-+ dev->trans_start = jiffies;
-+ netif_wake_queue(dev);
- }
-
-
-@@ -1308,24 +1398,16 @@
- u16 *data = (u16 *)&rq->ifr_data;
-
- /* fixme */
-- switch (cmd) {
-- case SIOCGMIIPHY: /* Get the address of the PHY in use. */
-- case SIOCDEVPRIVATE: /* binary compat, remove in 2.5 */
-+ switch(cmd) {
-+ case SIOCDEVPRIVATE: /* Get the address of the PHY in use. */
- data[0] = PHY_ADDRESS;
--
-- case SIOCGMIIREG: /* Read the specified MII register. */
-- case SIOCDEVPRIVATE+1: /* binary compat, remove in 2.5 */
-+ case SIOCDEVPRIVATE+1: /* Read the specified MII register. */
- //data[3] = mdio_read(ioaddr, data[0], data[1]);
- return 0;
--
-- case SIOCSMIIREG: /* Write the specified MII register */
-- case SIOCDEVPRIVATE+2: /* binary compat, remove in 2.5 */
-- if (!capable(CAP_NET_ADMIN))
-- return -EPERM;
-+ case SIOCDEVPRIVATE+2: /* Write the specified MII register */
- //mdio_write(ioaddr, data[0], data[1], data[2]);
- return 0;
--
-- default:
-+ default:
- return -EOPNOTSUPP;
- }
- }
-@@ -1389,7 +1471,6 @@
- /* set Speed to 100Mbps, Half Duplex */
- /* disable auto negotiation and enable 100MBit Mode */
- control = mdio_read(dev, aup->phy_addr, MII_CONTROL);
-- printk("read control %x\n", control);
- control &= ~(MII_CNTL_AUTO | MII_CNTL_FDX);
- control |= MII_CNTL_F100;
- mdio_write(dev, aup->phy_addr, MII_CONTROL, control);
-diff -urNd -urNd linux-2.4.20/drivers/net/au1000_eth.h linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.h
---- linux-2.4.20/drivers/net/au1000_eth.h 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/au1000_eth.h 2002-12-11 00:12:30.000000000 -0600
-@@ -1,10 +1,13 @@
- /*
-- * Alchemy Semi Au1000 ethernet driver include file
-+ *
-+ * Alchemy Au1x00 ethernet driver include file
- *
- * Author: Pete Popov <ppopov@mvista.com>
- *
- * Copyright 2001 MontaVista Software Inc.
- *
-+ * ########################################################################
-+ *
- * This program is free software; you can distribute it and/or modify it
- * under the terms of the GNU General Public License (Version 2) as
- * published by the Free Software Foundation.
-@@ -17,14 +20,16 @@
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ *
- */
--#include <linux/config.h>
-
-
--#define NUM_INTERFACES 2
- #define MAC_IOSIZE 0x10000
--#define NUM_RX_DMA 4 /* Au1000 has 4 rx hardware descriptors */
--#define NUM_TX_DMA 4 /* Au1000 has 4 tx hardware descriptors */
-+#define NUM_RX_DMA 4 /* Au1x00 has 4 rx hardware descriptors */
-+#define NUM_TX_DMA 4 /* Au1x00 has 4 tx hardware descriptors */
-
- #define NUM_RX_BUFFS 4
- #define NUM_TX_BUFFS 4
-@@ -33,7 +38,7 @@
- #define ETH_TX_TIMEOUT HZ/4
- #define MAC_MIN_PKT_SIZE 64
-
--#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100)
-+#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1500) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
- #define PHY_ADDRESS 0
- #define PHY_CONTROL_DEFAULT 0x3000
- #define PHY_CONTROL_REG_ADDR 0
-@@ -57,7 +62,6 @@
- #define MII_LSI_CONFIG 0x0011
- #define MII_LSI_STAT 0x0012
- #define MII_AUX_CNTRL 0x0018
--#define MII_INT 0x001A
-
- /* mii registers specific to AMD 79C901 */
- #define MII_STATUS_SUMMARY = 0x0018
-@@ -122,7 +126,6 @@
- #define MII_STSSUM_SPD 0x0001
-
- /* lsi status register */
--
- #define MII_LSI_STAT_FDX 0x0040
- #define MII_LSI_STAT_SPD 0x0080
-
-@@ -131,7 +134,6 @@
- #define MII_AUX_100 0x0002
- #define MII_AUX_F100 0x0004
- #define MII_AUX_ANEG 0x0008
--#define MII_FDX_LED 0x8000
-
- typedef struct mii_phy {
- struct mii_phy * next;
-diff -urNd -urNd linux-2.4.20/drivers/net/Config.in linux-2.4.20-mipscvs-20050106/drivers/net/Config.in
---- linux-2.4.20/drivers/net/Config.in 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/Config.in 2003-01-11 11:53:13.000000000 -0600
-@@ -58,8 +58,8 @@
- if [ "$CONFIG_MIPS_GT96100" = "y" ]; then
- bool ' MIPS GT96100 Ethernet support' CONFIG_MIPS_GT96100ETH
- fi
-- if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
-- bool ' MIPS AU1000 Ethernet support' CONFIG_MIPS_AU1000_ENET
-+ if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
-+ bool ' MIPS Au1x00 Ethernet support' CONFIG_MIPS_AU1X00_ENET
- fi
- if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then
- tristate ' SB1250 Ethernet support' CONFIG_NET_SB1250_MAC
-diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Entries
---- linux-2.4.20/drivers/net/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,238 @@
-+/.cvsignore/1.2/Tue Mar 17 22:10:43 1998/-ko/Tlinux_2_4_20
-+/3c501.c/1.17.2.2/Wed Jun 26 22:35:50 2002/-ko/Tlinux_2_4_20
-+/3c503.c/1.22.2.3/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/3c503.h/1.1.1.1/Sun Jun 1 03:17:21 1997/-ko/Tlinux_2_4_20
-+/3c505.c/1.25.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/3c505.h/1.4/Wed Jan 10 05:27:30 2001/-ko/Tlinux_2_4_20
-+/3c507.c/1.19.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
-+/3c509.c/1.28.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/3c515.c/1.22.2.1/Tue Feb 26 05:59:33 2002/-ko/Tlinux_2_4_20
-+/3c523.c/1.20.2.1/Tue Feb 26 05:59:34 2002/-ko/Tlinux_2_4_20
-+/3c523.h/1.4/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/3c527.c/1.16.2.1/Tue Feb 26 05:59:34 2002/-ko/Tlinux_2_4_20
-+/3c527.h/1.3/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/3c59x.c/1.36.2.2/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/7990.c/1.4.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/7990.h/1.3.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/8139cp.c/1.3.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/8139too.c/1.24.2.6/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/82596.c/1.19.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/8390.c/1.27.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/8390.h/1.12.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.72.2.9/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/LICENSE.SRC/1.2/Fri Mar 9 20:34:06 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.61.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/Space.c/1.45.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/a2065.c/1.15.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/a2065.h/1.3.4.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/ac3200.c/1.20.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/acenic.c/1.30.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/acenic.h/1.16.2.3/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/acenic_firmware.h/1.12/Thu Jun 14 04:24:02 2001/-ko/Tlinux_2_4_20
-+/aironet4500.h/1.9.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/aironet4500_card.c/1.15/Mon Nov 5 20:15:54 2001/-ko/Tlinux_2_4_20
-+/aironet4500_core.c/1.15/Mon Nov 5 20:15:54 2001/-ko/Tlinux_2_4_20
-+/aironet4500_proc.c/1.9/Mon Nov 5 20:15:54 2001/-ko/Tlinux_2_4_20
-+/aironet4500_rid.c/1.3.4.1/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/am79c961a.c/1.13.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/am79c961a.h/1.6/Thu Oct 5 01:18:54 2000/-ko/Tlinux_2_4_20
-+/apne.c/1.10.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/ariadne.c/1.14.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/ariadne.h/1.3/Fri Feb 18 00:24:35 2000/-ko/Tlinux_2_4_20
-+/ariadne2.c/1.10.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/arlan-proc.c/1.8/Mon Nov 5 20:15:54 2001/-ko/Tlinux_2_4_20
-+/arlan.c/1.19.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/arlan.h/1.8/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/at1700.c/1.19.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/atari_bionet.c/1.12/Tue Nov 6 00:55:07 2001/-ko/Tlinux_2_4_20
-+/atari_pamsnet.c/1.12/Tue Nov 6 00:55:07 2001/-ko/Tlinux_2_4_20
-+/atarilance.c/1.11.2.1/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/atp.c/1.18.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/atp.h/1.4/Thu Oct 5 01:18:54 2000/-ko/Tlinux_2_4_20
-+/au1000_eth.c/1.5.2.14/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/au1000_eth.h/1.2.2.7/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/auto_irq.c/1.4/Thu Aug 23 22:24:33 2001/-ko/Tlinux_2_4_20
-+/bagetlance.c/1.8/Tue Nov 6 00:55:07 2001/-ko/Tlinux_2_4_20
-+/bmac.c/1.16.2.2/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/bmac.h/1.1/Tue Aug 25 09:17:27 1998/-ko/Tlinux_2_4_20
-+/bonding.c/1.9.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/bsd_comp.c/1.10/Sun Dec 2 11:34:43 2001/-ko/Tlinux_2_4_20
-+/cs89x0.c/1.23.2.2/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/cs89x0.h/1.4.4.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/daynaport.c/1.11.2.1/Wed Jun 26 22:35:51 2002/-ko/Tlinux_2_4_20
-+/de4x5.c/1.27.2.3/Tue Aug 20 13:34:56 2002/-ko/Tlinux_2_4_20
-+/de4x5.h/1.8/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/de600.c/1.18.2.1/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/de620.c/1.16.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/de620.h/1.1.1.1/Sun Jun 1 03:17:22 1997/-ko/Tlinux_2_4_20
-+/declance.c/1.12.2.8/Thu Jan 30 14:25:16 2003/-ko/Tlinux_2_4_20
-+/defxx.c/1.23.2.1/Sat Dec 29 05:38:04 2001/-ko/Tlinux_2_4_20
-+/defxx.h/1.8/Fri Mar 9 20:34:07 2001/-ko/Tlinux_2_4_20
-+/depca.c/1.19.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/depca.h/1.2/Fri Mar 9 20:34:07 2001/-ko/Tlinux_2_4_20
-+/dgrs.c/1.23.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/dgrs.h/1.1.1.1/Sun Jun 1 03:17:22 1997/-ko/Tlinux_2_4_20
-+/dgrs_asstruct.h/1.2/Mon Dec 1 17:59:36 1997/-ko/Tlinux_2_4_20
-+/dgrs_bcomm.h/1.1.1.1/Sun Jun 1 03:17:23 1997/-ko/Tlinux_2_4_20
-+/dgrs_es4h.h/1.2/Mon Dec 1 17:59:36 1997/-ko/Tlinux_2_4_20
-+/dgrs_ether.h/1.1.1.1/Sun Jun 1 03:17:25 1997/-ko/Tlinux_2_4_20
-+/dgrs_firmware.c/1.2/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/dgrs_i82596.h/1.3/Mon Feb 15 02:18:33 1999/-ko/Tlinux_2_4_20
-+/dgrs_plx9060.h/1.1.1.1/Sun Jun 1 03:17:24 1997/-ko/Tlinux_2_4_20
-+/dl2k.c/1.4.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/dl2k.h/1.3.2.3/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/dmfe.c/1.21.2.2/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/dummy.c/1.12/Mon Nov 5 20:15:55 2001/-ko/Tlinux_2_4_20
-+/e2100.c/1.18.2.2/Wed Sep 11 12:45:03 2002/-ko/Tlinux_2_4_20
-+/eepro.c/1.25.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/eepro100.c/1.39.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/eexpress.c/1.22.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/eexpress.h/1.2/Tue Dec 16 05:35:32 1997/-ko/Tlinux_2_4_20
-+/epic100.c/1.23.2.5/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/eql.c/1.19/Mon Nov 5 20:15:55 2001/-ko/Tlinux_2_4_20
-+/es3210.c/1.17.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/eth16i.c/1.22/Mon Nov 5 20:15:55 2001/-ko/Tlinux_2_4_20
-+/ethertap.c/1.14/Mon Nov 5 20:15:55 2001/-ko/Tlinux_2_4_20
-+/ewrk3.c/1.19.2.4/Sat Jan 11 17:53:13 2003/-ko/Tlinux_2_4_20
-+/ewrk3.h/1.2/Fri Mar 9 20:34:08 2001/-ko/Tlinux_2_4_20
-+/fealnx.c/1.5.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/fmv18x.c/1.17/Tue Nov 6 00:55:07 2001/-ko/Tlinux_2_4_20
-+/gmac.c/1.12.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/gmac.h/1.5/Fri Oct 19 01:24:34 2001/-ko/Tlinux_2_4_20
-+/gt96100eth.c/1.6.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/gt96100eth.h/1.3.2.2/Wed May 29 03:03:18 2002/-ko/Tlinux_2_4_20
-+/hamachi.c/1.10.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/hp-plus.c/1.19.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/hp.c/1.18.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/hp100.c/1.23.2.2/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/hp100.h/1.6/Thu Jun 14 04:24:03 2001/-ko/Tlinux_2_4_20
-+/hplance.c/1.9.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/hplance.h/1.1/Tue Aug 25 09:17:35 1998/-ko/Tlinux_2_4_20
-+/hydra.c/1.14.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/hydra.h/1.1.1.1/Sun Jun 1 03:17:21 1997/-ko/Tlinux_2_4_20
-+/i82586.h/1.2/Fri Mar 9 20:34:08 2001/-ko/Tlinux_2_4_20
-+/ibmlana.c/1.8/Tue Nov 6 00:55:07 2001/-ko/Tlinux_2_4_20
-+/ibmlana.h/1.3/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/ioc3-eth.c/1.56.2.8/Thu Jan 2 13:58:06 2003/-ko/Tlinux_2_4_20
-+/isa-skeleton.c/1.6/Tue Nov 6 00:55:08 2001/-ko/Tlinux_2_4_20
-+/jazzsonic.c/1.7/Tue Jul 24 01:03:27 2001/-ko/Tlinux_2_4_20
-+/lance.c/1.25.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/lasi_82596.c/1.6.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/lne390.c/1.15.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/loopback.c/1.11/Thu Aug 23 22:24:33 2001/-ko/Tlinux_2_4_20
-+/lp486e.c/1.3/Mon Nov 5 20:15:56 2001/-ko/Tlinux_2_4_20
-+/mac89x0.c/1.8.2.1/Wed Sep 11 12:45:04 2002/-ko/Tlinux_2_4_20
-+/mace.c/1.19.2.2/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/mace.h/1.2/Thu May 7 03:00:09 1998/-ko/Tlinux_2_4_20
-+/macmace.c/1.4.2.2/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
-+/macsonic.c/1.8.2.2/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
-+/meth.c/1.1.2.3/Mon Jul 1 20:01:26 2002/-ko/Tlinux_2_4_20
-+/meth.h/1.1.2.1/Mon Jul 1 20:01:26 2002/-ko/Tlinux_2_4_20
-+/mii.c/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/mvme147.c/1.6/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/myri_code.h/1.1.1.1.8.1/Tue Feb 26 05:59:35 2002/-ko/Tlinux_2_4_20
-+/myri_sbus.c/1.19.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/myri_sbus.h/1.4/Sat Feb 5 06:47:23 2000/-ko/Tlinux_2_4_20
-+/natsemi.c/1.14.2.6/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/ne.c/1.26.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/ne2.c/1.16/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/ne2k-pci.c/1.19.2.2/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/ne3210.c/1.13.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/net_init.c/1.26/Fri Oct 19 01:24:34 2001/-ko/Tlinux_2_4_20
-+/ni5010.c/1.15/Mon Nov 5 20:15:56 2001/-ko/Tlinux_2_4_20
-+/ni5010.h/1.2/Fri Mar 9 20:34:08 2001/-ko/Tlinux_2_4_20
-+/ni52.c/1.16/Mon Nov 5 20:15:56 2001/-ko/Tlinux_2_4_20
-+/ni52.h/1.4/Thu Apr 5 04:56:53 2001/-ko/Tlinux_2_4_20
-+/ni65.c/1.14.2.1/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
-+/ni65.h/1.2/Fri Mar 9 20:34:08 2001/-ko/Tlinux_2_4_20
-+/ns83820.c/1.3.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/oaknet.c/1.7/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/pci-skeleton.c/1.6.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/pcnet32.c/1.33.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/plip.c/1.27/Mon Nov 5 20:15:56 2001/-ko/Tlinux_2_4_20
-+/ppp_async.c/1.12.2.1/Wed Jun 26 22:35:52 2002/-ko/Tlinux_2_4_20
-+/ppp_deflate.c/1.8.2.2/Wed Sep 11 12:45:05 2002/-ko/Tlinux_2_4_20
-+/ppp_generic.c/1.23.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/ppp_synctty.c/1.10.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/pppoe.c/1.17.2.2/Tue Sep 10 15:32:50 2002/-ko/Tlinux_2_4_20
-+/pppox.c/1.7.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/ptifddi.c/1.9/Wed Jun 13 17:27:54 2001/-ko/Tlinux_2_4_20
-+/ptifddi.h/1.2/Sat Oct 9 00:01:22 1999/-ko/Tlinux_2_4_20
-+/ptifddi_asm.h/1.1/Sat Dec 6 23:53:47 1997/-ko/Tlinux_2_4_20
-+/rcif.h/1.2/Wed Aug 22 03:24:41 2001/-ko/Tlinux_2_4_20
-+/rclanmtl.c/1.7.2.1/Tue Feb 26 05:59:35 2002/-ko/Tlinux_2_4_20
-+/rclanmtl.h/1.6.2.1/Tue Feb 26 05:59:35 2002/-ko/Tlinux_2_4_20
-+/rcpci45.c/1.20.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/rrunner.c/1.17.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/rrunner.h/1.5/Sun Dec 2 11:34:43 2001/-ko/Tlinux_2_4_20
-+/saa9730.c/1.5/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/saa9730.h/1.2/Fri Dec 29 16:35:43 2000/-ko/Tlinux_2_4_20
-+/sb1000.c/1.15.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/sb1250-mac.c/1.1.2.9/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/seeq8005.c/1.18/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/seeq8005.h/1.1.1.1/Sun Jun 1 03:17:24 1997/-ko/Tlinux_2_4_20
-+/setup.c/1.17/Thu Aug 23 22:24:33 2001/-ko/Tlinux_2_4_20
-+/sgiseeq.c/1.31/Tue Nov 6 07:56:00 2001/-ko/Tlinux_2_4_20
-+/sgiseeq.h/1.5.4.1/Fri Jul 5 14:17:30 2002/-ko/Tlinux_2_4_20
-+/shaper.c/1.22.2.1/Sat Dec 29 05:38:04 2001/-ko/Tlinux_2_4_20
-+/sis900.c/1.24.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/sis900.h/1.11.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/sk_g16.c/1.21/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/sk_g16.h/1.3/Fri Mar 9 20:34:08 2001/-ko/Tlinux_2_4_20
-+/sk_mca.c/1.14/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/sk_mca.h/1.4/Wed Jul 12 01:43:09 2000/-ko/Tlinux_2_4_20
-+/slhc.c/1.14/Sun Dec 2 11:34:43 2001/-ko/Tlinux_2_4_20
-+/slip.c/1.19.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/slip.h/1.5/Wed Jan 10 05:27:31 2001/-ko/Tlinux_2_4_20
-+/smc-mca.c/1.17/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/smc-mca.h/1.2/Sat Oct 9 00:01:24 1999/-ko/Tlinux_2_4_20
-+/smc-ultra.c/1.22.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/smc-ultra32.c/1.14.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/smc9194.c/1.20.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/smc9194.h/1.3/Fri Oct 19 01:24:35 2001/-ko/Tlinux_2_4_20
-+/sonic.c/1.14/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/sonic.h/1.7.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/starfire.c/1.18.2.4/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/stnic.c/1.9/Tue Nov 6 00:55:09 2001/-ko/Tlinux_2_4_20
-+/strip.c/1.21/Sun Dec 2 11:34:43 2001/-ko/Tlinux_2_4_20
-+/sun3_82586.c/1.1.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/sun3_82586.h/1.1.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/sun3lance.c/1.9.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/sunbmac.c/1.20.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/sunbmac.h/1.6/Wed Jul 12 01:56:28 2000/-ko/Tlinux_2_4_20
-+/sundance.c/1.9.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/sungem.c/1.8.2.3/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/sungem.h/1.3.2.3/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/sunhme.c/1.34.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/sunhme.h/1.12.2.1/Wed Jun 26 22:35:53 2002/-ko/Tlinux_2_4_20
-+/sunlance.c/1.30.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sunqe.c/1.20.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sunqe.h/1.5/Wed Feb 23 00:41:14 2000/-ko/Tlinux_2_4_20
-+/tc35815.c/1.1.2.1/Sun Mar 3 01:53:51 2002/-ko/Tlinux_2_4_20
-+/tg3.c/1.1.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/tg3.h/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/tlan.c/1.25.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/tlan.h/1.16/Wed Aug 22 03:24:42 2001/-ko/Tlinux_2_4_20
-+/tun.c/1.10.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/via-rhine.c/1.26.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/wavelan.c/1.25.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/wavelan.h/1.6/Fri Mar 9 20:34:09 2001/-ko/Tlinux_2_4_20
-+/wavelan.p.h/1.13.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/wd.c/1.17.2.2/Wed Sep 11 12:45:06 2002/-ko/Tlinux_2_4_20
-+/winbond-840.c/1.10.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/yellowfin.c/1.24.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/znet.c/1.11/Thu Aug 23 22:24:34 2001/-ko/Tlinux_2_4_20
-+D/appletalk////
-+D/arcnet////
-+D/e100////
-+D/e1000////
-+D/fc////
-+D/hamradio////
-+D/irda////
-+D/pcmcia////
-+D/sk98lin////
-+D/skfp////
-+D/tokenring////
-+D/tulip////
-+D/wan////
-+D/wireless////
-diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Repository
---- linux-2.4.20/drivers/net/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Repository 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net
-diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Root
---- linux-2.4.20/drivers/net/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Root 2005-01-06 23:02:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Tag
---- linux-2.4.20/drivers/net/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/CVS/Tag 2005-01-06 23:03:19.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/.cvsignore
---- linux-2.4.20/drivers/net/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/.cvsignore 1998-03-17 16:10:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/de4x5.c linux-2.4.20-mipscvs-20050106/drivers/net/de4x5.c
---- linux-2.4.20/drivers/net/de4x5.c 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/de4x5.c 2002-08-20 08:34:56.000000000 -0500
-@@ -999,7 +999,7 @@
- static void srom_repair(struct net_device *dev, int card);
- static int test_bad_enet(struct net_device *dev, int status);
- static int an_exception(struct de4x5_bus_type *lp);
--#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
-+#ifdef CONFIG_EISA
- static void eisa_probe(struct net_device *dev, u_long iobase);
- #endif
- static void pci_probe(struct net_device *dev, u_long iobase);
-@@ -1053,7 +1053,7 @@
- #endif /* MODULE */
-
- static char name[DE4X5_NAME_LENGTH + 1];
--#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
-+#ifdef CONFIG_EISA
- static u_char de4x5_irq[] = EISA_ALLOWED_IRQ_LIST;
- static int lastEISA;
- # ifdef DE4X5_FORCE_EISA /* Force an EISA bus probe or not */
-@@ -1131,7 +1131,7 @@
- u_long iobase = dev->base_addr;
-
- pci_probe(dev, iobase);
--#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
-+#ifdef CONFIG_EISA
- if ((lastPCI == NO_MORE_PCI) && ((num_de4x5s == 0) || forceEISA)) {
- eisa_probe(dev, iobase);
- }
-@@ -2092,7 +2092,7 @@
- return;
- }
-
--#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
-+#ifdef CONFIG_EISA
- /*
- ** EISA bus I/O device probe. Probe from slot 1 since slot 0 is usually
- ** the motherboard. Upto 15 EISA devices are supported.
-@@ -5362,7 +5362,7 @@
- t = *q;
- *q = '\0';
-
--#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
-+#ifdef CONFIG_EISA
- if (strstr(p, "force_eisa") || strstr(p, "FORCE_EISA")) forceEISA = 1;
- #endif
- if (strstr(p, "fdx") || strstr(p, "FDX")) lp->params.fdx = 1;
-@@ -5864,7 +5864,7 @@
- u_int class = DE4X5_CLASS_CODE;
- u_int device;
-
--#if !defined(__sparc_v9__) && !defined(__powerpc__) && !defined(__alpha__)
-+#ifdef CONFIG_EISA
- char name[DE4X5_STRLEN];
- u_long iobase = 0x1000;
-
-diff -urNd -urNd linux-2.4.20/drivers/net/declance.c linux-2.4.20-mipscvs-20050106/drivers/net/declance.c
---- linux-2.4.20/drivers/net/declance.c 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/declance.c 2003-01-30 08:25:16.000000000 -0600
-@@ -52,6 +52,7 @@
- #include <linux/module.h>
- #include <linux/netdevice.h>
- #include <linux/etherdevice.h>
-+#include <linux/spinlock.h>
- #include <linux/stddef.h>
- #include <linux/string.h>
-
-@@ -787,15 +788,23 @@
- return -EAGAIN;
- }
- if (lp->dma_irq >= 0) {
-+ unsigned long flags;
-+
- if (request_irq(lp->dma_irq, &lance_dma_merr_int, 0,
- "lance error", dev)) {
- free_irq(dev->irq, dev);
- printk("lance: Can't get DMA IRQ %d\n", lp->dma_irq);
- return -EAGAIN;
- }
-+
-+ spin_lock_irqsave(&ioasic_ssr_lock, flags);
-+
-+ fast_mb();
- /* Enable I/O ASIC LANCE DMA. */
-- fast_wmb();
- ioasic_write(SSR, ioasic_read(SSR) | LANCE_DMA_EN);
-+
-+ fast_mb();
-+ spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
- }
-
- status = init_restart_lance(lp);
-@@ -821,9 +830,17 @@
- writereg(&ll->rdp, LE_C0_STOP);
-
- if (lp->dma_irq >= 0) {
-+ unsigned long flags;
-+
-+ spin_lock_irqsave(&ioasic_ssr_lock, flags);
-+
-+ fast_mb();
- /* Disable I/O ASIC LANCE DMA. */
- ioasic_write(SSR, ioasic_read(SSR) & ~LANCE_DMA_EN);
-+
- fast_iob();
-+ spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
-+
- free_irq(lp->dma_irq, dev);
- }
- free_irq(dev->irq, dev);
-diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Entries
---- linux-2.4.20/drivers/net/e100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Entries 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/LICENSE/1.1.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100.h/1.3.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e100_config.c/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_config.h/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_eeprom.c/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_main.c/1.4.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e100_phy.c/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_phy.h/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_proc.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e100_test.c/1.1.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_ucode.h/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e100_vendor.h/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Repository
---- linux-2.4.20/drivers/net/e100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Repository 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/e100
-diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Root
---- linux-2.4.20/drivers/net/e100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Root 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/e100/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Tag
---- linux-2.4.20/drivers/net/e100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/CVS/Tag 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/e100/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/e100/.cvsignore
---- linux-2.4.20/drivers/net/e100/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e100/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Entries
---- linux-2.4.20/drivers/net/e1000/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Entries 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/LICENSE/1.2.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/e1000.h/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_ethtool.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_hw.c/1.1.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_hw.h/1.1.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_main.c/1.4.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_osdep.h/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_param.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/e1000_proc.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Repository
---- linux-2.4.20/drivers/net/e1000/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Repository 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/e1000
-diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Root
---- linux-2.4.20/drivers/net/e1000/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Root 2005-01-06 23:03:20.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/e1000/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Tag
---- linux-2.4.20/drivers/net/e1000/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/CVS/Tag 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/e1000/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/e1000/.cvsignore
---- linux-2.4.20/drivers/net/e1000/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/e1000/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Entries
---- linux-2.4.20/drivers/net/fc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Entries 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.2/Sat Oct 9 00:01:25 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5.2.1/Tue Feb 26 05:59:38 2002/-ko/Tlinux_2_4_20
-+/iph5526.c/1.16.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/iph5526_ip.h/1.2/Sat Oct 9 00:01:25 1999/-ko/Tlinux_2_4_20
-+/iph5526_novram.c/1.2/Sat Oct 9 00:01:25 1999/-ko/Tlinux_2_4_20
-+/iph5526_scsi.h/1.2/Sat Oct 9 00:01:25 1999/-ko/Tlinux_2_4_20
-+/tach.h/1.3/Mon Nov 5 20:15:59 2001/-ko/Tlinux_2_4_20
-+/tach_structs.h/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Repository
---- linux-2.4.20/drivers/net/fc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Repository 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/fc
-diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Root
---- linux-2.4.20/drivers/net/fc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Root 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/fc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Tag
---- linux-2.4.20/drivers/net/fc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/CVS/Tag 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/fc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/fc/.cvsignore
---- linux-2.4.20/drivers/net/fc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/fc/.cvsignore 1999-10-08 19:01:25.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Entries
---- linux-2.4.20/drivers/net/hamradio/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.2/Tue Mar 17 22:11:30 1998/-ko/Tlinux_2_4_20
-+/6pack.c/1.11.2.1/Tue Feb 26 05:59:38 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.7.4.1/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.10.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/baycom_epp.c/1.14.2.3/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/baycom_par.c/1.13.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/baycom_ser_fdx.c/1.12.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/baycom_ser_hdx.c/1.12.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/bpqether.c/1.16.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/dmascc.c/1.11.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/hdlcdrv.c/1.14.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/mkiss.c/1.14.2.2/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/mkiss.h/1.4.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/scc.c/1.22.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/yam.c/1.12.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/yam1200.h/1.2/Sat Oct 9 00:01:25 1999/-ko/Tlinux_2_4_20
-+/yam9600.h/1.2/Sat Oct 9 00:01:25 1999/-ko/Tlinux_2_4_20
-+/z8530.h/1.2/Mon Jan 4 16:06:35 1999/-ko/Tlinux_2_4_20
-+D/soundmodem////
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Repository
---- linux-2.4.20/drivers/net/hamradio/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Repository 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/hamradio
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Root
---- linux-2.4.20/drivers/net/hamradio/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Root 2005-01-06 23:03:22.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Tag
---- linux-2.4.20/drivers/net/hamradio/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/CVS/Tag 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/.cvsignore
---- linux-2.4.20/drivers/net/hamradio/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/.cvsignore 1998-03-17 16:11:30.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Entries
---- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Entries 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.3/Fri Sep 1 07:46:58 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/gentbl.c/1.6/Thu Apr 5 04:56:54 2001/-ko/Tlinux_2_4_20
-+/sm.c/1.13/Wed Jun 13 17:27:56 2001/-ko/Tlinux_2_4_20
-+/sm.h/1.7.2.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sm_afsk1200.c/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sm_afsk2400_7.c/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sm_afsk2400_8.c/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sm_afsk2666.c/1.1.6.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+/sm_fsk9600.c/1.1/Tue Dec 16 06:32:14 1997/-ko/Tlinux_2_4_20
-+/sm_hapn4800.c/1.1/Tue Dec 16 06:32:14 1997/-ko/Tlinux_2_4_20
-+/sm_psk4800.c/1.1/Tue Aug 25 09:17:59 1998/-ko/Tlinux_2_4_20
-+/sm_sbc.c/1.4.4.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/sm_wss.c/1.5.2.2/Wed Sep 11 12:45:07 2002/-ko/Tlinux_2_4_20
-+/smdma.h/1.1.8.1/Wed Jun 26 22:35:54 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Repository
---- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Repository 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/hamradio/soundmodem
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Root
---- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Root 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Tag
---- linux-2.4.20/drivers/net/hamradio/soundmodem/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/CVS/Tag 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/hamradio/soundmodem/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/.cvsignore
---- linux-2.4.20/drivers/net/hamradio/soundmodem/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/hamradio/soundmodem/.cvsignore 2000-09-01 02:46:58.000000000 -0500
-@@ -0,0 +1,10 @@
-+.depend
-+.*.flags
-+gentbl
-+sm_tbl_afsk1200.h
-+sm_tbl_afsk2666.h
-+sm_tbl_psk4800.h
-+sm_tbl_hapn4800.h
-+sm_tbl_fsk9600.h
-+sm_tbl_afsk2400_8.h
-+sm_tbl_afsk2400_7.h
-diff -urNd -urNd linux-2.4.20/drivers/net/ioc3-eth.c linux-2.4.20-mipscvs-20050106/drivers/net/ioc3-eth.c
---- linux-2.4.20/drivers/net/ioc3-eth.c 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/ioc3-eth.c 2003-01-02 07:58:06.000000000 -0600
-@@ -460,30 +460,25 @@
- */
- static void ioc3_get_eaddr(struct ioc3_private *ip)
- {
-- void (*do_get_eaddr)(struct ioc3_private *ip) = NULL;
- int i;
-
-+
-+#ifdef CONFIG_SGI_IP27
-+ ioc3_get_eaddr_nic(ip);
-+#elif defined(CONFIG_IA64_SGI_SN1) || defined(CONFIG_IA64_SGI_SN2)
- /*
- * We should also use this code for PCI cards, no matter what host
- * machine but how to know that we're a PCI card?
- */
--#ifdef CONFIG_SGI_IP27
-- do_get_eaddr = ioc3_get_eaddr_nic;
--#endif
--#if defined(CONFIG_IA64_SGI_SN1) || defined(CONFIG_IA64_SGI_SN2)
-- do_get_eaddr = ioc3_get_eaddr_sn;
-+ ioc3_get_eaddr_sn(ip);
-+#else
-+#error No clue how to read IOC3 MAC address for this configuration.
- #endif
-
-- if (!do_get_eaddr) {
-- printk(KERN_ERR "Don't know how to read MAC address of this "
-- "IOC3 NIC\n");
-- return;
-- }
--
- printk("Ethernet address is ");
- for (i = 0; i < 6; i++) {
- printk("%02x", ip->dev->dev_addr[i]);
-- if (i < 7)
-+ if (i < 5)
- printk(":");
- }
- printk(".\n");
-@@ -588,7 +583,7 @@
- ip->stats.rx_frame_errors++;
- next:
- ip->rx_skbs[n_entry] = new_skb;
-- rxr[n_entry] = cpu_to_be32((0xa5UL << 56) |
-+ rxr[n_entry] = cpu_to_be64((0xa5UL << 56) |
- ((unsigned long) rxb & TO_PHYS_MASK));
- rxb->w0 = 0; /* Clear valid flag */
- n_entry = (n_entry + 1) & 511; /* Update erpir */
-@@ -1622,10 +1617,10 @@
- MODULE_DEVICE_TABLE(pci, ioc3_pci_tbl);
-
- static struct pci_driver ioc3_driver = {
-- name: "ioc3-eth",
-- id_table: ioc3_pci_tbl,
-- probe: ioc3_probe,
-- remove: __devexit_p(ioc3_remove_one),
-+ .name = "ioc3-eth",
-+ .id_table = ioc3_pci_tbl,
-+ .probe = ioc3_probe,
-+ .remove = __devexit_p(ioc3_remove_one),
- };
-
- static int __init ioc3_init_module(void)
-diff -urNd -urNd linux-2.4.20/drivers/net/irda/au1k_ir.c linux-2.4.20-mipscvs-20050106/drivers/net/irda/au1k_ir.c
---- linux-2.4.20/drivers/net/irda/au1k_ir.c 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/au1k_ir.c 2002-11-05 13:33:50.000000000 -0600
-@@ -75,6 +75,8 @@
-
- #define RUN_AT(x) (jiffies + (x))
-
-+static spinlock_t ir_lock = SPIN_LOCK_UNLOCKED;
-+
- /*
- * IrDA peripheral bug. You have to read the register
- * twice to get the right value.
-@@ -703,8 +705,7 @@
- if (speed == aup->speed)
- return ret;
-
-- save_flags(flags);
-- cli();
-+ spin_lock_irqsave(&ir_lock, flags);
-
- /* disable PHY first */
- writel(read_ir_reg(IR_ENABLE) & ~0x8000, IR_ENABLE);
-@@ -805,7 +806,7 @@
- printk(KERN_INFO "%s RX enabled\n", dev->name);
- }
-
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&ir_lock, flags);
- return ret;
- }
-
-diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Entries
---- linux-2.4.20/drivers/net/irda/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Entries 2005-01-06 23:03:26.000000000 -0600
-@@ -0,0 +1,25 @@
-+/.cvsignore/1.1/Mon Feb 15 02:18:57 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.12.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.17.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/act200l.c/1.1.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/actisys.c/1.8.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/ali-ircc.c/1.4.2.3/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/au1k_ir.c/1.2.2.1/Tue Nov 5 19:33:50 2002/-ko/Tlinux_2_4_20
-+/ep7211_ir.c/1.1/Tue Nov 6 07:56:01 2001/-ko/Tlinux_2_4_20
-+/esi.c/1.8/Mon Nov 5 20:15:59 2001/-ko/Tlinux_2_4_20
-+/girbil.c/1.9.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/irda-usb.c/1.5.2.3/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/irport.c/1.22.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/irtty.c/1.22.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/litelink.c/1.7/Mon Nov 5 20:15:59 2001/-ko/Tlinux_2_4_20
-+/ma600.c/1.1.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/mcp2120.c/1.1.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/nsc-ircc.c/1.18.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/old_belkin.c/1.2/Mon Nov 5 20:15:59 2001/-ko/Tlinux_2_4_20
-+/sa1100_ir.c/1.1.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/smc-ircc.c/1.18.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/tekram.c/1.8.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/toshoboe.c/1.20.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/vlsi_ir.c/1.4.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
-+/w83977af_ir.c/1.20.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Repository
---- linux-2.4.20/drivers/net/irda/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Repository 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/irda
-diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Root
---- linux-2.4.20/drivers/net/irda/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Root 2005-01-06 23:03:24.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/irda/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Tag
---- linux-2.4.20/drivers/net/irda/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/CVS/Tag 2005-01-06 23:03:26.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/irda/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/irda/.cvsignore
---- linux-2.4.20/drivers/net/irda/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/irda/.cvsignore 1999-02-14 20:18:57.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/Makefile linux-2.4.20-mipscvs-20050106/drivers/net/Makefile
---- linux-2.4.20/drivers/net/Makefile 2002-11-28 17:53:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/Makefile 2003-01-11 11:53:13.000000000 -0600
-@@ -209,7 +209,7 @@
- obj-$(CONFIG_EQUALIZER) += eql.o
- obj-$(CONFIG_MIPS_JAZZ_SONIC) += jazzsonic.o
- obj-$(CONFIG_MIPS_GT96100ETH) += gt96100eth.o
--obj-$(CONFIG_MIPS_AU1000_ENET) += au1000_eth.o
-+obj-$(CONFIG_MIPS_AU1X00_ENET) += au1000_eth.o
- obj-$(CONFIG_SGI_IOC3_ETH) += ioc3-eth.o
- obj-$(CONFIG_BAGETLANCE) += bagetlance.o
- obj-$(CONFIG_DECLANCE) += declance.o
-diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Entries
---- linux-2.4.20/drivers/net/pcmcia/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Entries 2005-01-06 23:03:28.000000000 -0600
-@@ -0,0 +1,26 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:26 1999/-ko/Tlinux_2_4_20
-+/3c574_cs.c/1.15.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/3c589_cs.c/1.16.2.1/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.23.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.17/Sun Dec 2 11:34:44 2001/-ko/Tlinux_2_4_20
-+/aironet4500_cs.c/1.12.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/axnet_cs.c/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/com20020_cs.c/1.7.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/fmvj18x_cs.c/1.11.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/i82593.h/1.2/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+/ibmtr_cs.c/1.8.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/netwave_cs.c/1.14.2.2/Tue Feb 26 05:59:39 2002/-ko/Tlinux_2_4_20
-+/nmclan_cs.c/1.12.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/ositech.h/1.2/Fri Mar 9 20:34:13 2001/-ko/Tlinux_2_4_20
-+/pcnet_cs.c/1.15.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/ray_cs.c/1.22.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/ray_cs.h/1.5/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/rayctl.h/1.2/Sat Dec 4 03:59:04 1999/-ko/Tlinux_2_4_20
-+/smc91c92_cs.c/1.12.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/wavelan.h/1.2.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/wavelan_cs.c/1.10.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/wavelan_cs.h/1.9.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/xirc2ps_cs.c/1.14.2.1/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/xircom_cb.c/1.3.2.3/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/xircom_tulip_cb.c/1.17.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Repository
---- linux-2.4.20/drivers/net/pcmcia/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Repository 2005-01-06 23:03:26.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/pcmcia
-diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Root
---- linux-2.4.20/drivers/net/pcmcia/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Root 2005-01-06 23:03:26.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Tag
---- linux-2.4.20/drivers/net/pcmcia/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/CVS/Tag 2005-01-06 23:03:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/.cvsignore
---- linux-2.4.20/drivers/net/pcmcia/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcmcia/.cvsignore 1999-10-08 19:01:26.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/pcnet32.c linux-2.4.20-mipscvs-20050106/drivers/net/pcnet32.c
---- linux-2.4.20/drivers/net/pcnet32.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/pcnet32.c 2003-01-11 11:53:14.000000000 -0600
-@@ -758,8 +758,12 @@
- if (irq_line) {
- dev->irq = irq_line;
- }
--
-+
-+#ifdef CONFIG_LASAT
-+ if (dev->irq >= 0)
-+#else
- if (dev->irq >= 2)
-+#endif
- printk(" assigned IRQ %d.\n", dev->irq);
- else {
- unsigned long irq_mask = probe_irq_on();
-@@ -821,7 +825,10 @@
- u16 val;
- int i;
-
-- if (dev->irq == 0 ||
-+ if (
-+#ifndef CONFIG_LASAT
-+ dev->irq == 0 ||
-+#endif
- request_irq(dev->irq, &pcnet32_interrupt,
- lp->shared_irq ? SA_SHIRQ : 0, lp->name, (void *)dev)) {
- return -EAGAIN;
-@@ -1361,6 +1368,10 @@
- if (!rx_in_place) {
- skb_reserve(skb,2); /* 16 byte align */
- skb_put(skb,pkt_len); /* Make room */
-+ pci_dma_sync_single(lp->pci_dev,
-+ lp->rx_dma_addr[entry],
-+ pkt_len,
-+ PCI_DMA_FROMDEVICE);
- eth_copy_and_sum(skb,
- (unsigned char *)(lp->rx_skbuff[entry]->tail),
- pkt_len,0);
-diff -urNd -urNd linux-2.4.20/drivers/net/sb1250-mac.c linux-2.4.20-mipscvs-20050106/drivers/net/sb1250-mac.c
---- linux-2.4.20/drivers/net/sb1250-mac.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sb1250-mac.c 2003-01-21 23:11:38.000000000 -0600
-@@ -44,8 +44,10 @@
- static int full_duplex[MAX_UNITS] = {-1, -1, -1};
- #endif
-
-+#ifdef CONFIG_SBMAC_COALESCE
- static int int_pktcnt = 0;
- static int int_timeout = 0;
-+#endif
-
- /* Operational parameters that usually are not changed. */
-
-@@ -76,6 +78,7 @@
- #include <asm/io.h>
- #include <asm/sibyte/sb1250.h>
- #include <asm/sibyte/64bit.h>
-+#include <asm/cache.h>
-
- /* This is only here until the firmware is ready. In that case,
- the firmware leaves the ethernet address in the register for us. */
-@@ -117,8 +120,6 @@
-
-
- typedef unsigned long sbmac_port_t;
--typedef uint64_t sbmac_physaddr_t;
--typedef uint64_t sbmac_enetaddr_t;
-
- typedef enum { sbmac_speed_auto, sbmac_speed_10,
- sbmac_speed_100, sbmac_speed_1000 } sbmac_speed_t;
-@@ -142,17 +143,11 @@
- (d)->sbdma_dscrtable : (d)->f+1)
-
-
--#define CACHELINESIZE 32
--#define NUMCACHEBLKS(x) (((x)+CACHELINESIZE-1)/CACHELINESIZE)
--#define KMALLOC(x) kmalloc((x),GFP_KERNEL)
--#define KFREE(x) kfree(x)
--#define KVTOPHYS(x) virt_to_bus((void *)(x))
-+#define NUMCACHEBLKS(x) (((x)+SMP_CACHE_BYTES-1)/SMP_CACHE_BYTES)
-
-+#define SBMAC_READCSR(t) in64((unsigned long)t)
-+#define SBMAC_WRITECSR(t,v) out64(v, (unsigned long)t)
-
--#define SBMAC_READCSR(t) (in64((unsigned long)(t)))
--#define SBMAC_WRITECSR(t,v) (out64(v, (unsigned long)(t)))
--
--#define PKSEG1(x) ((sbmac_port_t) KSEG1ADDR(x))
-
- #define SBMAC_MAX_TXDESCR 32
- #define SBMAC_MAX_RXDESCR 32
-@@ -172,7 +167,6 @@
- } sbdmadscr_t;
-
- typedef unsigned long paddr_t;
--typedef unsigned long vaddr_t;
-
- /**********************************************************************
- * DMA Controller structure
-@@ -212,7 +206,6 @@
- paddr_t sbdma_dscrtable_phys; /* and also the phys addr */
- sbdmadscr_t *sbdma_addptr; /* next dscr for sw to add */
- sbdmadscr_t *sbdma_remptr; /* next dscr for sw to remove */
--
- } sbmacdma_t;
-
-
-@@ -244,7 +237,7 @@
- * Controller-specific things
- */
-
-- sbmac_port_t sbm_base; /* MAC's base address */
-+ unsigned long sbm_base; /* MAC's base address */
- sbmac_state_t sbm_state; /* current state */
-
- sbmac_port_t sbm_macenable; /* MAC Enable Register */
-@@ -260,13 +253,12 @@
- sbmac_duplex_t sbm_duplex; /* current duplex */
- sbmac_fc_t sbm_fc; /* current flow control setting */
-
-- u_char sbm_hwaddr[ETHER_ADDR_LEN];
-+ unsigned char sbm_hwaddr[ETHER_ADDR_LEN];
-
- sbmacdma_t sbm_txdma; /* for now, only use channel 0 */
- sbmacdma_t sbm_rxdma;
- int rx_hw_checksum;
- int sbe_idx;
--
- };
-
-
-@@ -300,7 +292,7 @@
- static void sbmac_intr(int irq,void *dev_instance,struct pt_regs *rgs);
- static int sbmac_start_tx(struct sk_buff *skb, struct net_device *dev);
- static void sbmac_setmulti(struct sbmac_softc *sc);
--static int sbmac_init(struct net_device *dev);
-+static int sbmac_init(struct net_device *dev, int idx);
- static int sbmac_set_speed(struct sbmac_softc *s,sbmac_speed_t speed);
- static int sbmac_set_duplex(struct sbmac_softc *s,sbmac_duplex_t duplex,sbmac_fc_t fc);
-
-@@ -347,8 +339,8 @@
- #define BMCR_DUPLEX 0x0100
- #define BMCR_COLTEST 0x0080
- #define BMCR_SPEED1 0x0040
--#define BMCR_SPEED1000 (BMCR_SPEED1)
--#define BMCR_SPEED100 (BMCR_SPEED0)
-+#define BMCR_SPEED1000 BMCR_SPEED1
-+#define BMCR_SPEED100 BMCR_SPEED0
- #define BMCR_SPEED10 0
-
- #define BMSR_100BT4 0x8000
-@@ -511,7 +503,8 @@
- curmask = 1 << (bitcnt - 1);
-
- for (i = 0; i < bitcnt; i++) {
-- if (data & curmask) bits |= M_MAC_MDIO_OUT;
-+ if (data & curmask)
-+ bits |= M_MAC_MDIO_OUT;
- else bits &= ~M_MAC_MDIO_OUT;
- SBMAC_WRITECSR(s->sbm_mdio,bits);
- SBMAC_WRITECSR(s->sbm_mdio,bits | M_MAC_MDC);
-@@ -592,7 +585,8 @@
- regval <<= 1;
-
- if (error == 0) {
-- if (SBMAC_READCSR(s->sbm_mdio) & M_MAC_MDIO_IN) regval |= 1;
-+ if (SBMAC_READCSR(s->sbm_mdio) & M_MAC_MDIO_IN)
-+ regval |= 1;
- }
-
- SBMAC_WRITECSR(s->sbm_mdio,M_MAC_MDIO_DIR_INPUT | M_MAC_MDC);
-@@ -602,7 +596,8 @@
- /* Switch back to output */
- SBMAC_WRITECSR(s->sbm_mdio,M_MAC_MDIO_DIR_OUTPUT);
-
-- if (error == 0) return regval;
-+ if (error == 0)
-+ return regval;
- return 0;
- }
-
-@@ -672,50 +667,52 @@
- d->sbdma_channel = chan;
- d->sbdma_txdir = txrx;
-
-+#if 0
- /* RMON clearing */
- s->sbe_idx =(s->sbm_base - A_MAC_BASE_0)/MAC_SPACING;
-+#endif
-
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_BYTES)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_COLLISIONS)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_LATE_COL)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_EX_COL)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_FCS_ERROR)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_ABORT)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_BAD)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_GOOD)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_RUNT)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_TX_OVERSIZE)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_BYTES)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_MCAST)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_BCAST)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_BAD)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_GOOD)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_RUNT)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_OVERSIZE)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_FCS_ERROR)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_LENGTH_ERROR)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_CODE_ERROR)), 0);
-- SBMAC_WRITECSR(PKSEG1(
-+ SBMAC_WRITECSR(KSEG1ADDR(
- A_MAC_REGISTER(s->sbe_idx, R_MAC_RMON_RX_ALIGN_ERROR)), 0);
-
- /*
-@@ -723,15 +720,15 @@
- */
-
- d->sbdma_config0 =
-- PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG0));
-+ s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG0);
- d->sbdma_config1 =
-- PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG1));
-+ s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CONFIG1);
- d->sbdma_dscrbase =
-- PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_BASE));
-+ s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_BASE);
- d->sbdma_dscrcnt =
-- PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_CNT));
-+ s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_DSCR_CNT);
- d->sbdma_curdscr =
-- PKSEG1(s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CUR_DSCRADDR));
-+ s->sbm_base + R_MAC_DMA_REGISTER(txrx,chan,R_MAC_DMA_CUR_DSCRADDR);
-
- /*
- * Allocate memory for the ring
-@@ -740,20 +737,20 @@
- d->sbdma_maxdescr = maxdescr;
-
- d->sbdma_dscrtable = (sbdmadscr_t *)
-- KMALLOC(d->sbdma_maxdescr*sizeof(sbdmadscr_t));
-+ kmalloc(d->sbdma_maxdescr*sizeof(sbdmadscr_t), GFP_KERNEL);
-
- memset(d->sbdma_dscrtable,0,d->sbdma_maxdescr*sizeof(sbdmadscr_t));
-
- d->sbdma_dscrtable_end = d->sbdma_dscrtable + d->sbdma_maxdescr;
-
-- d->sbdma_dscrtable_phys = KVTOPHYS(d->sbdma_dscrtable);
-+ d->sbdma_dscrtable_phys = virt_to_phys(d->sbdma_dscrtable);
-
- /*
- * And context table
- */
-
- d->sbdma_ctxtable = (struct sk_buff **)
-- KMALLOC(d->sbdma_maxdescr*sizeof(struct sk_buff *));
-+ kmalloc(d->sbdma_maxdescr*sizeof(struct sk_buff *), GFP_KERNEL);
-
- memset(d->sbdma_ctxtable,0,d->sbdma_maxdescr*sizeof(struct sk_buff *));
-
-@@ -921,7 +918,7 @@
- if (nextdsc == d->sbdma_remptr) {
- return -ENOSPC;
- }
--
-+
- /*
- * Allocate a sk_buff if we don't already have one.
- * If we do have an sk_buff, reset it so that it's empty.
-@@ -942,15 +939,15 @@
- */
-
- if (sb == NULL) {
-- sb_new = dev_alloc_skb(ENET_PACKET_SIZE + CACHELINESIZE*2 + ETHER_ALIGN);
-+ sb_new = dev_alloc_skb(ENET_PACKET_SIZE + SMP_CACHE_BYTES * 2 + ETHER_ALIGN);
- if (sb_new == NULL) {
- printk(KERN_INFO "%s: sk_buff allocation failed\n",
- d->sbdma_eth->sbm_dev->name);
- return -ENOBUFS;
- }
--
-- sbdma_align_skb(sb_new,CACHELINESIZE,ETHER_ALIGN);
--
-+
-+ sbdma_align_skb(sb_new, SMP_CACHE_BYTES, ETHER_ALIGN);
-+
- /* mark skbuff owned by our device */
- sb_new->dev = d->sbdma_eth->sbm_dev;
- }
-@@ -970,11 +967,11 @@
- /*
- * Do not interrupt per DMA transfer.
- */
-- dsc->dscr_a = KVTOPHYS(sb_new->tail) |
-+ dsc->dscr_a = virt_to_phys(sb_new->tail) |
- V_DMA_DSCRA_A_SIZE(NUMCACHEBLKS(pktsize+ETHER_ALIGN)) |
- 0;
- #else
-- dsc->dscr_a = KVTOPHYS(sb_new->tail) |
-+ dsc->dscr_a = virt_to_phys(sb_new->tail) |
- V_DMA_DSCRA_A_SIZE(NUMCACHEBLKS(pktsize+ETHER_ALIGN)) |
- M_DMA_DSCRA_INTERRUPT;
- #endif
-@@ -1057,9 +1054,9 @@
- * while doing the calculation.
- */
-
-- phys = KVTOPHYS(sb->data);
-- ncb = NUMCACHEBLKS(length+(phys & (CACHELINESIZE-1)));
--
-+ phys = virt_to_phys(sb->data);
-+ ncb = NUMCACHEBLKS(length+(phys & (SMP_CACHE_BYTES - 1)));
-+
- dsc->dscr_a = phys |
- V_DMA_DSCRA_A_SIZE(ncb) |
- M_DMA_DSCRA_INTERRUPT |
-@@ -1139,7 +1136,8 @@
- int idx;
-
- for (idx = 0; idx < SBMAC_MAX_RXDESCR-1; idx++) {
-- if (sbdma_add_rcvbuffer(d,NULL) != 0) break;
-+ if (sbdma_add_rcvbuffer(d,NULL) != 0)
-+ break;
- }
- }
-
-@@ -1190,7 +1188,8 @@
- * the hardware is working on right now.
- */
-
-- if (curidx == hwidx) break;
-+ if (curidx == hwidx)
-+ break;
-
- /*
- * Otherwise, get the packet's sk_buff ptr back
-@@ -1210,11 +1209,6 @@
-
- if (!(dsc->dscr_a & M_DMA_ETHRX_BAD)) {
-
-- /*
-- * Set length into the packet
-- */
-- skb_put(sb,len);
--
- /*
- * Add a new buffer to replace the old one. If we fail
- * to allocate a buffer, we're going to drop this
-@@ -1222,10 +1216,16 @@
- */
-
- if (sbdma_add_rcvbuffer(d,NULL) == -ENOBUFS) {
-+ sc->sbm_stats.rx_dropped++;
- sbdma_add_rcvbuffer(d,sb); /* re-add old buffer */
- }
- else {
- /*
-+ * Set length into the packet
-+ */
-+ skb_put(sb,len);
-+
-+ /*
- * Buffer has been replaced on the receive ring.
- * Pass the buffer to the kernel
- */
-@@ -1254,6 +1254,7 @@
- * Packet was mangled somehow. Just drop it and
- * put it back on the receive ring.
- */
-+ sc->sbm_stats.rx_errors++;
- sbdma_add_rcvbuffer(d,sb);
- }
-
-@@ -1338,7 +1339,8 @@
- * the hardware is working on right now.
- */
-
-- if (curidx == hwidx) break;
-+ if (curidx == hwidx)
-+ break;
-
- /*
- * Otherwise, get the packet's sk_buff ptr back
-@@ -1405,14 +1407,14 @@
- * figure out the addresses of some ports
- */
-
-- s->sbm_macenable = PKSEG1(s->sbm_base + R_MAC_ENABLE);
-- s->sbm_maccfg = PKSEG1(s->sbm_base + R_MAC_CFG);
-- s->sbm_fifocfg = PKSEG1(s->sbm_base + R_MAC_THRSH_CFG);
-- s->sbm_framecfg = PKSEG1(s->sbm_base + R_MAC_FRAMECFG);
-- s->sbm_rxfilter = PKSEG1(s->sbm_base + R_MAC_ADFILTER_CFG);
-- s->sbm_isr = PKSEG1(s->sbm_base + R_MAC_STATUS);
-- s->sbm_imr = PKSEG1(s->sbm_base + R_MAC_INT_MASK);
-- s->sbm_mdio = PKSEG1(s->sbm_base + R_MAC_MDIO);
-+ s->sbm_macenable = s->sbm_base + R_MAC_ENABLE;
-+ s->sbm_maccfg = s->sbm_base + R_MAC_CFG;
-+ s->sbm_fifocfg = s->sbm_base + R_MAC_THRSH_CFG;
-+ s->sbm_framecfg = s->sbm_base + R_MAC_FRAMECFG;
-+ s->sbm_rxfilter = s->sbm_base + R_MAC_ADFILTER_CFG;
-+ s->sbm_isr = s->sbm_base + R_MAC_STATUS;
-+ s->sbm_imr = s->sbm_base + R_MAC_INT_MASK;
-+ s->sbm_mdio = s->sbm_base + R_MAC_MDIO;
-
- s->sbm_phys[0] = 1;
- s->sbm_phys[1] = 0;
-@@ -1451,12 +1453,12 @@
- static void sbdma_uninitctx(struct sbmacdma_s *d)
- {
- if (d->sbdma_dscrtable) {
-- KFREE(d->sbdma_dscrtable);
-+ kfree(d->sbdma_dscrtable);
- d->sbdma_dscrtable = NULL;
- }
-
- if (d->sbdma_ctxtable) {
-- KFREE(d->sbdma_ctxtable);
-+ kfree(d->sbdma_ctxtable);
- d->sbdma_ctxtable = NULL;
- }
- }
-@@ -1492,7 +1494,8 @@
- * Don't do this if running
- */
-
-- if (s->sbm_state == sbmac_state_on) return;
-+ if (s->sbm_state == sbmac_state_on)
-+ return;
-
- /*
- * Bring the controller out of reset, but leave it off.
-@@ -1542,7 +1545,7 @@
- * Clear out the hash address map
- */
-
-- port = PKSEG1(s->sbm_base + R_MAC_HASH_BASE);
-+ port = s->sbm_base + R_MAC_HASH_BASE;
- for (idx = 0; idx < MAC_HASH_COUNT; idx++) {
- SBMAC_WRITECSR(port,0);
- port += sizeof(uint64_t);
-@@ -1552,7 +1555,7 @@
- * Clear out the exact-match table
- */
-
-- port = PKSEG1(s->sbm_base + R_MAC_ADDR_BASE);
-+ port = s->sbm_base + R_MAC_ADDR_BASE;
- for (idx = 0; idx < MAC_ADDR_COUNT; idx++) {
- SBMAC_WRITECSR(port,0);
- port += sizeof(uint64_t);
-@@ -1562,14 +1565,14 @@
- * Clear out the DMA Channel mapping table registers
- */
-
-- port = PKSEG1(s->sbm_base + R_MAC_CHUP0_BASE);
-+ port = s->sbm_base + R_MAC_CHUP0_BASE;
- for (idx = 0; idx < MAC_CHMAP_COUNT; idx++) {
- SBMAC_WRITECSR(port,0);
- port += sizeof(uint64_t);
- }
-
-
-- port = PKSEG1(s->sbm_base + R_MAC_CHLO0_BASE);
-+ port = s->sbm_base + R_MAC_CHLO0_BASE;
- for (idx = 0; idx < MAC_CHMAP_COUNT; idx++) {
- SBMAC_WRITECSR(port,0);
- port += sizeof(uint64_t);
-@@ -1582,9 +1585,9 @@
-
- reg = sbmac_addr2reg(s->sbm_hwaddr);
-
-- port = PKSEG1(s->sbm_base + R_MAC_ADDR_BASE);
-+ port = s->sbm_base + R_MAC_ADDR_BASE;
- SBMAC_WRITECSR(port,reg);
-- port = PKSEG1(s->sbm_base + R_MAC_ETHERNET_ADDR);
-+ port = s->sbm_base + R_MAC_ETHERNET_ADDR;
-
- #ifdef CONFIG_SB1_PASS_1_WORKAROUNDS
- /*
-@@ -1702,7 +1705,8 @@
- {
- /* don't do this if already stopped */
-
-- if (s->sbm_state == sbmac_state_off) return;
-+ if (s->sbm_state == sbmac_state_off)
-+ return;
-
- /* don't accept any packets, disable all interrupts */
-
-@@ -1795,7 +1799,8 @@
- {
- uint64_t reg;
-
-- if (sc->sbm_state != sbmac_state_on) return;
-+ if (sc->sbm_state != sbmac_state_on)
-+ return;
-
- if (onoff) {
- reg = SBMAC_READCSR(sc->sbm_rxfilter);
-@@ -1832,7 +1837,7 @@
- SBMAC_WRITECSR(sc->sbm_rxfilter,reg);
-
- /* read system identification to determine revision */
-- if (sb1250_pass >= K_SYS_REVISION_PASS2) {
-+ if (soc_pass >= K_SYS_REVISION_PASS2) {
- printk(KERN_INFO "pass2 - enabling Rx rcv tcp checksum\n");
- sc->rx_hw_checksum = ENABLE;
- } else {
-@@ -1866,11 +1871,7 @@
- #endif
-
-
--/**********************************************************************
-- * SBMAC_ADDR2REG(ptr)
-- *
-- * Convert six bytes into the 64-bit register value that
-- * we typically write into the SBMAC's address/mcast registers
-+/****************************************BMAC's address/mcast registers
- *
- * Input parameters:
- * ptr - pointer to 6 bytes
-@@ -1927,7 +1928,8 @@
-
- s->sbm_speed = speed;
-
-- if (s->sbm_state == sbmac_state_on) return 0; /* save for next restart */
-+ if (s->sbm_state == sbmac_state_on)
-+ return 0; /* save for next restart */
-
- /*
- * Read current register values
-@@ -2017,7 +2019,8 @@
- s->sbm_duplex = duplex;
- s->sbm_fc = fc;
-
-- if (s->sbm_state == sbmac_state_on) return 0; /* save for next restart */
-+ if (s->sbm_state == sbmac_state_on)
-+ return 0; /* save for next restart */
-
- /*
- * Read current register values
-@@ -2116,7 +2119,8 @@
-
- isr = SBMAC_READCSR(sc->sbm_isr) & ~M_MAC_COUNTER_ADDR;
-
-- if (isr == 0) break;
-+ if (isr == 0)
-+ break;
-
- /*
- * Transmits on channel 0
-@@ -2224,12 +2228,12 @@
- */
-
- for (idx = 1; idx < MAC_ADDR_COUNT; idx++) {
-- port = PKSEG1(sc->sbm_base + R_MAC_ADDR_BASE+(idx*sizeof(uint64_t)));
-+ port = sc->sbm_base + R_MAC_ADDR_BASE+(idx*sizeof(uint64_t));
- SBMAC_WRITECSR(port,0);
- }
-
- for (idx = 0; idx < MAC_HASH_COUNT; idx++) {
-- port = PKSEG1(sc->sbm_base + R_MAC_HASH_BASE+(idx*sizeof(uint64_t)));
-+ port = sc->sbm_base + R_MAC_HASH_BASE+(idx*sizeof(uint64_t));
- SBMAC_WRITECSR(port,0);
- }
-
-@@ -2266,8 +2270,7 @@
- mclist = dev->mc_list;
- while (mclist && (idx < MAC_ADDR_COUNT)) {
- reg = sbmac_addr2reg(mclist->dmi_addr);
-- port = PKSEG1(sc->sbm_base +
-- R_MAC_ADDR_BASE+(idx*sizeof(uint64_t)));
-+ port = sc->sbm_base + R_MAC_ADDR_BASE+(idx * sizeof(uint64_t));
- SBMAC_WRITECSR(port,reg);
- idx++;
- mclist = mclist->next;
-@@ -2304,10 +2307,14 @@
- {
- int digit;
-
-- if ((str >= '0') && (str <= '9')) digit = str - '0';
-- else if ((str >= 'a') && (str <= 'f')) digit = str - 'a' + 10;
-- else if ((str >= 'A') && (str <= 'F')) digit = str - 'A' + 10;
-- else return -1;
-+ if ((str >= '0') && (str <= '9'))
-+ digit = str - '0';
-+ else if ((str >= 'a') && (str <= 'f'))
-+ digit = str - 'a' + 10;
-+ else if ((str >= 'A') && (str <= 'F'))
-+ digit = str - 'A' + 10;
-+ else
-+ return -1;
-
- return digit;
- }
-@@ -2326,16 +2333,18 @@
- * 0 if ok, else -1
- ********************************************************************* */
-
--static int sbmac_parse_hwaddr(char *str,u_char *hwaddr)
-+static int sbmac_parse_hwaddr(char *str, unsigned char *hwaddr)
- {
- int digit1,digit2;
- int idx = 6;
-
- while (*str && (idx > 0)) {
- digit1 = sbmac_parse_xdigit(*str);
-- if (digit1 < 0) return -1;
-+ if (digit1 < 0)
-+ return -1;
- str++;
-- if (!*str) return -1;
-+ if (!*str)
-+ return -1;
-
- if ((*str == ':') || (*str == '-')) {
- digit2 = digit1;
-@@ -2343,15 +2352,18 @@
- }
- else {
- digit2 = sbmac_parse_xdigit(*str);
-- if (digit2 < 0) return -1;
-+ if (digit2 < 0)
-+ return -1;
- str++;
- }
-
- *hwaddr++ = (digit1 << 4) | digit2;
- idx--;
-
-- if (*str == '-') str++;
-- if (*str == ':') str++;
-+ if (*str == '-')
-+ str++;
-+ if (*str == ':')
-+ str++;
- }
- return 0;
- }
-@@ -2378,19 +2390,20 @@
- * status
- ********************************************************************* */
-
--static int sbmac_init(struct net_device *dev)
-+static int sbmac_init(struct net_device *dev, int idx)
- {
- struct sbmac_softc *sc;
-- u_char *eaddr;
-+ unsigned char *eaddr;
- uint64_t ea_reg;
-- int idx;
-+ int i;
-
- sc = (struct sbmac_softc *)dev->priv;
-
- /* Determine controller base address */
-
-- sc->sbm_base = (sbmac_port_t) dev->base_addr;
-+ sc->sbm_base = KSEG1ADDR(dev->base_addr);
- sc->sbm_dev = dev;
-+ sc->sbe_idx = idx;
-
- eaddr = sc->sbm_hwaddr;
-
-@@ -2399,16 +2412,15 @@
- * for us in the ethernet address register for each mac.
- */
-
-- ea_reg = SBMAC_READCSR(PKSEG1(sc->sbm_base + R_MAC_ETHERNET_ADDR));
-- SBMAC_WRITECSR(PKSEG1(sc->sbm_base + R_MAC_ETHERNET_ADDR), 0);
-- for (idx = 0; idx < 6; idx++) {
-- eaddr[idx] = (uint8_t) (ea_reg & 0xFF);
-+ ea_reg = SBMAC_READCSR(sc->sbm_base + R_MAC_ETHERNET_ADDR);
-+ SBMAC_WRITECSR(sc->sbm_base + R_MAC_ETHERNET_ADDR, 0);
-+ for (i = 0; i < 6; i++) {
-+ eaddr[i] = (uint8_t) (ea_reg & 0xFF);
- ea_reg >>= 8;
- }
-
--
-- for (idx = 0; idx < 6; idx++) {
-- dev->dev_addr[idx] = eaddr[idx];
-+ for (i = 0; i < 6; i++) {
-+ dev->dev_addr[i] = eaddr[i];
- }
-
-
-@@ -2416,8 +2428,8 @@
- * Init packet size
- */
-
-- sc->sbm_buffersize = ENET_PACKET_SIZE + CACHELINESIZE*2 + ETHER_ALIGN;
--
-+ sc->sbm_buffersize = ENET_PACKET_SIZE + SMP_CACHE_BYTES * 2 + ETHER_ALIGN;
-+
- /*
- * Initialize context (get pointers to registers and stuff), then
- * allocate the memory for the descriptor tables.
-@@ -2432,8 +2444,7 @@
- */
- printk(KERN_INFO
- "%s: SB1250 Ethernet at 0x%08lX, address: %02X-%02X-%02X-%02X-%02X-%02X\n",
-- dev->name,
-- (unsigned long) sc->sbm_base,
-+ dev->name, dev->base_addr,
- eaddr[0],eaddr[1],eaddr[2],eaddr[3],eaddr[4],eaddr[5]);
-
- /*
-@@ -2454,7 +2465,7 @@
-
- dev->change_mtu = sb1250_change_mtu;
-
-- if (sb1250_pass >= K_SYS_REVISION_PASS3) {
-+ if (soc_pass >= K_SYS_REVISION_PASS3) {
- /* In pass3 we do dumb checksum in TX */
- dev->features |= NETIF_F_IP_CSUM;
- }
-@@ -2572,7 +2583,8 @@
- chg = 1;
- }
-
-- if (chg == 0) return 0;
-+ if (chg == 0)
-+ return 0;
-
- p += sprintf(p,"Link speed: ");
-
-@@ -2627,8 +2639,6 @@
- }
-
-
--
--
- static void sbmac_timer(unsigned long data)
- {
- struct net_device *dev = (struct net_device *)data;
-@@ -2827,8 +2837,8 @@
- port = A_MAC_CHANNEL_BASE(chan);
- sbmac_parse_hwaddr(addr,eaddr);
- val = sbmac_addr2reg(eaddr);
-- SBMAC_WRITECSR(PKSEG1(port+R_MAC_ETHERNET_ADDR),val);
-- val = SBMAC_READCSR(PKSEG1(port+R_MAC_ETHERNET_ADDR));
-+ SBMAC_WRITECSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR),val);
-+ val = SBMAC_READCSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR));
- }
- #endif
-
-@@ -2862,15 +2872,16 @@
- * Walk through the Ethernet controllers and find
- * those who have their MAC addresses set.
- */
-- chip_revision = SBMAC_READCSR(PKSEG1(A_SCD_SYSTEM_REVISION));
-+ chip_revision = SBMAC_READCSR(KSEG1ADDR(A_SCD_SYSTEM_REVISION));
- switch ((int)G_SYS_PART(chip_revision)) {
- case 0x1150:
- case 0x1250:
- chip_max_units = 3;
- break;
-- case 0x1120:
-- case 0x1125:
-- case 0x1126:
-+ case 0x1121:
-+ case 0x1123:
-+ case 0x1124:
-+ case 0x1125: // Hybrid.
- chip_max_units = 2;
- break;
- default:
-@@ -2894,9 +2905,10 @@
- * If we find a zero, skip this MAC.
- */
-
-- sbmac_orig_hwaddr[idx] = SBMAC_READCSR(PKSEG1(port+R_MAC_ETHERNET_ADDR));
-+ sbmac_orig_hwaddr[idx] = SBMAC_READCSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR));
- if (sbmac_orig_hwaddr[idx] == 0) {
-- printk( KERN_DEBUG "sbmac: not configuring MAC at %x\n",(uint32_t)port);
-+ printk(KERN_DEBUG "sbmac: not configuring MAC at "
-+ "%lx\n", port);
- continue;
- }
-
-@@ -2908,15 +2920,16 @@
- if (!dev)
- return -ENOMEM; /* return ENOMEM */
-
-+printk(KERN_DEBUG "sbmac: configuring MAC at %lx\n", port);
-+
- dev->irq = K_INT_MAC_0 + idx;
- dev->base_addr = port;
- dev->mem_end = 0;
- /*dev->init = sbmac_init;*/
-- sbmac_init(dev);
-+ sbmac_init(dev, macidx);
-
- dev_sbmac[macidx] = dev;
- macidx++;
--
- }
-
- /*
-@@ -2935,7 +2948,8 @@
- sbmac_port_t port;
- for (idx = 0; idx < MAX_UNITS; idx++) {
- dev = dev_sbmac[idx];
-- if (dev == NULL) continue;
-+ if (dev == NULL)
-+ continue;
- if (dev->priv != NULL) {
- struct sbmac_softc *sc = (struct sbmac_softc *) dev->priv;
-
-@@ -2946,8 +2960,8 @@
- }
-
- port = A_MAC_CHANNEL_BASE(idx);
-- SBMAC_WRITECSR(PKSEG1(port+R_MAC_ETHERNET_ADDR), sbmac_orig_hwaddr[idx] );
-- KFREE(dev);
-+ SBMAC_WRITECSR(KSEG1ADDR(port+R_MAC_ETHERNET_ADDR), sbmac_orig_hwaddr[idx] );
-+ kfree(dev);
- dev_sbmac[idx] = NULL;
- }
- }
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Entries
---- linux-2.4.20/drivers/net/sk98lin/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.1/Fri Feb 4 07:40:39 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Thu Aug 23 22:24:35 2001/-ko/Tlinux_2_4_20
-+/skaddr.c/1.3.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/skcsum.c/1.3/Thu Aug 23 22:24:35 2001/-ko/Tlinux_2_4_20
-+/skge.c/1.14.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/skgehwt.c/1.3/Thu Aug 23 22:24:35 2001/-ko/Tlinux_2_4_20
-+/skgeinit.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgepnmi.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgesirq.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/ski2c.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/sklm80.c/1.2/Thu Oct 5 01:18:55 2000/-ko/Tlinux_2_4_20
-+/skproc.c/1.4/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/skqueue.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skrlmt.c/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/sktimer.c/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skvpd.c/1.5/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/skxmac2.c/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+D/h////
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Repository
---- linux-2.4.20/drivers/net/sk98lin/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Repository 2005-01-06 23:03:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/sk98lin
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Root
---- linux-2.4.20/drivers/net/sk98lin/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Root 2005-01-06 23:03:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Tag
---- linux-2.4.20/drivers/net/sk98lin/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/CVS/Tag 2005-01-06 23:03:30.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/.cvsignore
---- linux-2.4.20/drivers/net/sk98lin/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/.cvsignore 2000-02-04 01:40:39.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Entries
---- linux-2.4.20/drivers/net/sk98lin/h/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Entries 2005-01-06 23:03:31.000000000 -0600
-@@ -0,0 +1,25 @@
-+/.cvsignore/1.1/Fri Feb 4 07:40:39 2000/-ko/Tlinux_2_4_20
-+/lm80.h/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skaddr.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skcsum.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skdebug.h/1.2/Thu Oct 5 01:18:55 2000/-ko/Tlinux_2_4_20
-+/skdrv1st.h/1.5.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/skdrv2nd.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skerror.h/1.2/Thu Oct 5 01:18:55 2000/-ko/Tlinux_2_4_20
-+/skgedrv.h/1.2/Thu Oct 5 01:18:55 2000/-ko/Tlinux_2_4_20
-+/skgehw.h/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgehwt.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgei2c.h/1.2/Thu Oct 5 01:18:55 2000/-ko/Tlinux_2_4_20
-+/skgeinit.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgepnm2.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgepnmi.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skgesirq.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/ski2c.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skqueue.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skrlmt.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/sktimer.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/sktypes.h/1.2/Thu Oct 5 01:18:55 2000/-ko/Tlinux_2_4_20
-+/skversion.h/1.1/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/skvpd.h/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/xmac_ii.h/1.4/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Repository
---- linux-2.4.20/drivers/net/sk98lin/h/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Repository 2005-01-06 23:03:30.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/sk98lin/h
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Root
---- linux-2.4.20/drivers/net/sk98lin/h/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Root 2005-01-06 23:03:30.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Tag
---- linux-2.4.20/drivers/net/sk98lin/h/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/CVS/Tag 2005-01-06 23:03:31.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/sk98lin/h/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/.cvsignore
---- linux-2.4.20/drivers/net/sk98lin/h/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/sk98lin/h/.cvsignore 2000-02-04 01:40:39.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Entries
---- linux-2.4.20/drivers/net/skfp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,23 @@
-+/.cvsignore/1.2/Sun Jun 24 22:16:41 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/can.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/cfm.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/drvfbi.c/1.3/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+/ecm.c/1.2/Sat Jul 8 00:53:05 2000/-ko/Tlinux_2_4_20
-+/ess.c/1.3/Thu Aug 23 22:24:36 2001/-ko/Tlinux_2_4_20
-+/fplustm.c/1.4/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+/hwmtm.c/1.2/Fri May 12 23:48:40 2000/-ko/Tlinux_2_4_20
-+/hwt.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/lnkstat.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/pcmplc.c/1.2/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+/pmf.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/queue.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/rmt.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/skfddi.c/1.12.2.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/smt.c/1.2/Sat Jul 8 00:53:05 2000/-ko/Tlinux_2_4_20
-+/smtdef.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/smtinit.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/smtparse.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/smttimer.c/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/srf.c/1.3/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+D/h////
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Repository
---- linux-2.4.20/drivers/net/skfp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Repository 2005-01-06 23:03:31.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/skfp
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Root
---- linux-2.4.20/drivers/net/skfp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Root 2005-01-06 23:03:31.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Tag
---- linux-2.4.20/drivers/net/skfp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/CVS/Tag 2005-01-06 23:03:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/skfp/.cvsignore
---- linux-2.4.20/drivers/net/skfp/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/.cvsignore 2001-06-24 17:16:41.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Entries
---- linux-2.4.20/drivers/net/skfp/h/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Entries 2005-01-06 23:03:33.000000000 -0600
-@@ -0,0 +1,21 @@
-+/cmtdef.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/fddi.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/fddimib.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/fplustm.h/1.2.4.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/hwmtm.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/lnkstat.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/mbuf.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/osdef1st.h/1.2/Fri May 12 23:48:40 2000/-ko/Tlinux_2_4_20
-+/sba.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/sba_def.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/skfbi.h/1.2/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+/skfbiinc.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/smc.h/1.2/Thu Apr 5 04:57:18 2001/-ko/Tlinux_2_4_20
-+/smt.h/1.2.4.1/Wed Jun 26 22:35:55 2002/-ko/Tlinux_2_4_20
-+/smt_p.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/smtstate.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/supern_2.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/targethw.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+/targetos.h/1.2/Fri May 12 23:48:40 2000/-ko/Tlinux_2_4_20
-+/types.h/1.1/Thu Feb 24 00:13:05 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Repository
---- linux-2.4.20/drivers/net/skfp/h/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Repository 2005-01-06 23:03:32.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/skfp/h
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Root
---- linux-2.4.20/drivers/net/skfp/h/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Root 2005-01-06 23:03:32.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/skfp/h/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Tag
---- linux-2.4.20/drivers/net/skfp/h/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/skfp/h/CVS/Tag 2005-01-06 23:03:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/tc35815.c linux-2.4.20-mipscvs-20050106/drivers/net/tc35815.c
---- linux-2.4.20/drivers/net/tc35815.c 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tc35815.c 2002-03-02 19:53:51.000000000 -0600
-@@ -7,9 +7,6 @@
- * Based on skelton.c by Donald Becker.
- * Copyright (C) 2000-2001 Toshiba Corporation
- *
-- * Cleaned up various non portable stuff (save_and_cli etc) and made it
-- * build on x86 platforms -- Alan Cox <alan@redhat.com> 20020302
-- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License as published by the
- * Free Software Foundation; either version 2 of the License, or (at your
-@@ -29,13 +26,10 @@
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write to the Free Software Foundation, Inc.,
- * 675 Mass Ave, Cambridge, MA 02139, USA.
-- *
-- * TODO:
-- * Switch to spin_lock not lock_kernel for scalability.
- */
-
- static const char *version =
-- "tc35815.c:v0.00-ac 26/07/2000 by Toshiba Corporation\n";
-+ "tc35815.c:v0.00 26/07/2000 by Toshiba Corporation\n";
-
- #include <linux/module.h>
-
-@@ -405,14 +399,8 @@
- };
-
-
--#if defined(__mips__)
--/* MIPS weirdness */
- extern unsigned long tc_readl(volatile __u32 *addr);
- extern void tc_writel(unsigned long data, volatile __u32 *addr);
--#else
--#define tc_readl readl
--#define tc_writel writel
--#endif
-
- dma_addr_t priv_dma_handle;
-
-@@ -477,6 +465,7 @@
- static void tc35815_chip_reset(struct net_device *dev);
- static void tc35815_chip_init(struct net_device *dev);
- static void tc35815_phy_chip_init(struct net_device *dev);
-+static int tc35815_proc_info(char *buffer, char **start, off_t offset, int length, int *eof, void *data);
-
- /* A list of all installed tc35815 devices. */
- static struct net_device *root_tc35815_dev = NULL;
-@@ -507,7 +496,7 @@
- return -ENODEV;
-
- if (pdev) {
-- unsigned long pci_memaddr;
-+ unsigned int pci_memaddr;
- unsigned int pci_irq_line;
-
- printk(KERN_INFO "tc35815_probe: found device %#08x.%#08x\n", ent->vendor, ent->device);
-@@ -571,12 +560,12 @@
-
- /* Retrieve and print the ethernet address. */
- while (tc_readl(&tr->PROM_Ctl) & PROM_Busy)
-- cpu_relax();
-+ ;
- for (i = 0; i < 6; i += 2) {
- unsigned short data;
- tc_writel(PROM_Busy | PROM_Read | (i / 2 + 2), &tr->PROM_Ctl);
- while (tc_readl(&tr->PROM_Ctl) & PROM_Busy)
-- cpu_relax();
-+ ;
- data = tc_readl(&tr->PROM_Data);
- dev->dev_addr[i] = data & 0xff;
- dev->dev_addr[i+1] = data >> 8;
-@@ -842,7 +831,6 @@
- panic("%s: Illegal queue state.", dev->name);
- }
-
--#if 0
- static void print_buf(char *add, int length)
- {
- int i;
-@@ -859,7 +847,6 @@
- }
- printk("\n");
- }
--#endif
-
- static void print_eth(char *add)
- {
-@@ -920,8 +907,7 @@
- struct tc35815_regs *tr = (struct tc35815_regs *)dev->base_addr;
- int flags;
-
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
- printk(KERN_WARNING "%s: transmit timed out, status %#x\n",
- dev->name, tc_readl(&tr->Tx_Stat));
- /* Try to restart the adaptor. */
-@@ -977,8 +963,7 @@
- dma_cache_wback_inv((unsigned long)buf, length);
- #endif
-
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
-
- /* failsafe... */
- if (lp->tfd_start != lp->tfd_end)
-@@ -1428,8 +1413,7 @@
- unsigned long flags;
-
- if (netif_running(dev)) {
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
- /* Update the statistics from the device registers. */
- lp->stats.rx_missed_errors = tc_readl(&tr->Miss_Cnt);
- restore_flags(flags);
-@@ -1537,11 +1521,10 @@
- {
- unsigned long data;
- int flags;
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
- tc_writel(MD_CA_Busy | (phy << 5) | phy_reg, &tr->MD_CA);
- while (tc_readl(&tr->MD_CA) & MD_CA_Busy)
-- cpu_relax();
-+ ;
- data = tc_readl(&tr->MD_Data);
- restore_flags(flags);
- return data;
-@@ -1550,12 +1533,11 @@
- static void tc_phy_write(unsigned long d, struct tc35815_regs *tr, int phy, int phy_reg)
- {
- int flags;
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
- tc_writel(d, &tr->MD_Data);
- tc_writel(MD_CA_Busy | MD_CA_Wr | (phy << 5) | phy_reg, &tr->MD_CA);
- while (tc_readl(&tr->MD_CA) & MD_CA_Busy)
-- cpu_relax();
-+ ;
- restore_flags(flags);
- }
-
-@@ -1643,7 +1625,7 @@
- /* reset the controller */
- tc_writel(MAC_Reset, &tr->MAC_Ctl);
- while (tc_readl(&tr->MAC_Ctl) & MAC_Reset)
-- cpu_relax();
-+ ;
-
- tc_writel(0, &tr->MAC_Ctl);
-
-@@ -1680,8 +1662,7 @@
- tc_writel(CAM_Ena_Bit(CAM_ENTRY_SOURCE), &tr->CAM_Ena);
- tc_writel(CAM_CompEn | CAM_BroadAcc, &tr->CAM_Ctl);
-
-- save_flags(flags);
-- cli();
-+ save_and_cli(flags);
-
- tc_writel(DMA_BURST_SIZE, &tr->DMA_Ctl);
-
-@@ -1715,6 +1696,39 @@
- restore_flags(flags);
- }
-
-+static int tc35815_proc_info(char *buffer, char **start, off_t offset, int length, int *eof, void *data)
-+{
-+ int len = 0;
-+ off_t pos = 0;
-+ off_t begin = 0;
-+ struct net_device *dev;
-+
-+ len += sprintf(buffer, "TC35815 statistics:\n");
-+ for (dev = root_tc35815_dev; dev; dev = ((struct tc35815_local *)dev->priv)->next_module) {
-+ struct tc35815_local *lp = (struct tc35815_local *)dev->priv;
-+ len += sprintf(buffer + len,
-+ "%s: tx_ints %d, rx_ints %d, max_tx_qlen %d\n",
-+ dev->name,
-+ lp->lstats.tx_ints,
-+ lp->lstats.rx_ints,
-+ lp->lstats.max_tx_qlen);
-+ pos = begin + len;
-+
-+ if (pos < offset) {
-+ len = 0;
-+ begin = pos;
-+ }
-+
-+ if (pos > offset+length) break;
-+ }
-+
-+ *start = buffer + (offset - begin);
-+ len -= (offset - begin);
-+
-+ if (len > length) len = length;
-+
-+ return len;
-+}
-
- /* XXX */
- void
-diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Entries
---- linux-2.4.20/drivers/net/tokenring/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Entries 2005-01-06 23:03:37.000000000 -0600
-@@ -0,0 +1,24 @@
-+/.cvsignore/1.1/Sat Dec 4 03:59:04 1999/-ko/Tlinux_2_4_20
-+/3c359.c/1.1.2.2/Wed Sep 11 12:45:08 2002/-ko/Tlinux_2_4_20
-+/3c359.h/1.1.2.1/Wed Jun 26 22:35:56 2002/-ko/Tlinux_2_4_20
-+/3c359_microcode.h/1.1.2.1/Wed Jun 26 22:35:56 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.9.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.9.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/abyss.c/1.6.2.1/Tue Feb 26 05:59:40 2002/-ko/Tlinux_2_4_20
-+/abyss.h/1.1/Fri Feb 18 00:24:38 2000/-ko/Tlinux_2_4_20
-+/ibmtr.c/1.18/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/lanstreamer.c/1.10.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/lanstreamer.h/1.3.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/madgemc.c/1.5/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/madgemc.h/1.1/Fri Feb 18 00:24:38 2000/-ko/Tlinux_2_4_20
-+/olympic.c/1.16.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/olympic.h/1.8.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/smctr.c/1.14/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/smctr.h/1.4/Thu Jun 14 04:24:05 2001/-ko/Tlinux_2_4_20
-+/smctr_firmware.h/1.2/Thu Jun 14 04:24:05 2001/-ko/Tlinux_2_4_20
-+/tms380tr.c/1.16/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/tms380tr.h/1.5/Thu Jun 14 04:24:05 2001/-ko/Tlinux_2_4_20
-+/tms380tr_microcode.h/1.2/Wed Jan 10 05:27:31 2001/-ko/Tlinux_2_4_20
-+/tmsisa.c/1.4/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/tmspci.c/1.6.2.1/Tue Feb 26 05:59:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Repository
---- linux-2.4.20/drivers/net/tokenring/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Repository 2005-01-06 23:03:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/tokenring
-diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Root
---- linux-2.4.20/drivers/net/tokenring/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Root 2005-01-06 23:03:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Tag
---- linux-2.4.20/drivers/net/tokenring/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/CVS/Tag 2005-01-06 23:03:37.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/tokenring/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/.cvsignore
---- linux-2.4.20/drivers/net/tokenring/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tokenring/.cvsignore 1999-12-03 21:59:04.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Entries
---- linux-2.4.20/drivers/net/tulip/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Entries 2005-01-06 23:03:38.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Fri Mar 10 00:12:37 2000/-ko/Tlinux_2_4_20
-+/21142.c/1.12.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/ChangeLog/1.9.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/eeprom.c/1.11.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/interrupt.c/1.15.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/media.c/1.11.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/pnic.c/1.9/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/pnic2.c/1.1/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/timer.c/1.9/Wed Aug 22 03:24:44 2001/-ko/Tlinux_2_4_20
-+/tulip.h/1.14.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/tulip_core.c/1.31.2.6/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Repository
---- linux-2.4.20/drivers/net/tulip/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Repository 2005-01-06 23:03:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/tulip
-diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Root
---- linux-2.4.20/drivers/net/tulip/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Root 2005-01-06 23:03:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/tulip/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Tag
---- linux-2.4.20/drivers/net/tulip/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/CVS/Tag 2005-01-06 23:03:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/tulip/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/tulip/.cvsignore
---- linux-2.4.20/drivers/net/tulip/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/tulip/.cvsignore 2000-03-09 18:12:37.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Entries
---- linux-2.4.20/drivers/net/wan/8253x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Entries 2005-01-06 23:03:46.000000000 -0600
-@@ -0,0 +1,30 @@
-+/.cvsignore/1.1.2.1/Tue Jul 23 12:55:43 2002/-ko/Tlinux_2_4_20
-+/8253x.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xchr.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xctl.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xdbg.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xini.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xint.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xioc.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xmcs.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xmcs.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xnet.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xplx.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xsyn.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xtty.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/8253xutl.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/PciRegs.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/Reg9050.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/amcc5920.c/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/crc32.c/1.1.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/crc32.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/crc32dcl.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/endian.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/readme.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/ring.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/sab8253xds.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/sab8253xfs.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/sab8253xov.txt/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/sp502.h/1.1.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Repository
---- linux-2.4.20/drivers/net/wan/8253x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Repository 2005-01-06 23:03:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/wan/8253x
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Root
---- linux-2.4.20/drivers/net/wan/8253x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Root 2005-01-06 23:03:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Tag
---- linux-2.4.20/drivers/net/wan/8253x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/CVS/Tag 2005-01-06 23:03:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/8253x/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/.cvsignore
---- linux-2.4.20/drivers/net/wan/8253x/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/8253x/.cvsignore 2002-07-23 07:55:43.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Entries
---- linux-2.4.20/drivers/net/wan/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,52 @@
-+/.cvsignore/1.1/Sat Dec 4 03:59:04 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.13.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.14.2.2/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/c101.c/1.2/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/comx-hw-comx.c/1.6.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/comx-hw-locomx.c/1.5.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/comx-hw-mixcom.c/1.7.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
-+/comx-hw-munich.c/1.1.2.3/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/comx-proto-fr.c/1.7/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/comx-proto-lapb.c/1.7/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/comx-proto-ppp.c/1.4/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/comx.c/1.12.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/comx.h/1.4/Sat Sep 22 12:49:28 2001/-ko/Tlinux_2_4_20
-+/comxhw.h/1.1/Sun Mar 19 01:28:47 2000/-ko/Tlinux_2_4_20
-+/cosa.c/1.22.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/cosa.h/1.2/Thu Apr 5 04:57:19 2001/-ko/Tlinux_2_4_20
-+/cycx_drv.c/1.6.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/cycx_main.c/1.13/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/cycx_x25.c/1.13.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/dlci.c/1.7/Fri Oct 19 01:24:37 2001/-ko/Tlinux_2_4_20
-+/dscc4.c/1.4/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/falc-lh.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/farsync.c/1.3.2.1/Sat Dec 29 05:38:05 2001/-ko/Tlinux_2_4_20
-+/farsync.h/1.1/Sat Sep 22 12:49:28 2001/-ko/Tlinux_2_4_20
-+/hd64570.h/1.1/Thu Apr 5 04:57:19 2001/-ko/Tlinux_2_4_20
-+/hd6457x.c/1.1/Thu Apr 5 04:57:19 2001/-ko/Tlinux_2_4_20
-+/hdlc.c/1.4/Fri Oct 19 01:24:38 2001/-ko/Tlinux_2_4_20
-+/hostess_sv11.c/1.11/Mon Nov 5 20:16:01 2001/-ko/Tlinux_2_4_20
-+/hscx.h/1.1/Sun Mar 19 01:28:47 2000/-ko/Tlinux_2_4_20
-+/lapbether.c/1.8/Fri Oct 19 01:24:38 2001/-ko/Tlinux_2_4_20
-+/mixcom.h/1.1/Sun Mar 19 01:28:47 2000/-ko/Tlinux_2_4_20
-+/munich32x.h/1.1.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/n2.c/1.2/Fri Oct 19 01:24:38 2001/-ko/Tlinux_2_4_20
-+/sbni.c/1.13.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/sbni.h/1.5/Sat Sep 22 12:49:28 2001/-ko/Tlinux_2_4_20
-+/sdla.c/1.11.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/sdla_chdlc.c/1.11.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/sdla_fr.c/1.13.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/sdla_ft1.c/1.3.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/sdla_ppp.c/1.12.2.2/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/sdla_x25.c/1.9.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/sdladrv.c/1.8/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
-+/sdlamain.c/1.10.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/sealevel.c/1.10.2.1/Wed Jun 26 22:36:01 2002/-ko/Tlinux_2_4_20
-+/syncppp.c/1.14.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/wanpipe_multppp.c/1.4/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
-+/x25_asy.c/1.7/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
-+/x25_asy.h/1.2/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
-+/z85230.c/1.9/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+/z85230.h/1.5/Sun Dec 2 11:34:45 2001/-ko/Tlinux_2_4_20
-+D/8253x////
-+D/lmc////
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Repository
---- linux-2.4.20/drivers/net/wan/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Repository 2005-01-06 23:03:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/wan
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Root
---- linux-2.4.20/drivers/net/wan/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Root 2005-01-06 23:03:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Tag
---- linux-2.4.20/drivers/net/wan/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/CVS/Tag 2005-01-06 23:03:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wan/.cvsignore
---- linux-2.4.20/drivers/net/wan/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/.cvsignore 1999-12-03 21:59:04.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Entries
---- linux-2.4.20/drivers/net/wan/lmc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Entries 2005-01-06 23:03:47.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1/Fri Apr 28 01:09:42 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/lmc.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
-+/lmc_debug.c/1.1.4.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/lmc_debug.h/1.1/Fri Apr 28 01:09:42 2000/-ko/Tlinux_2_4_20
-+/lmc_ioctl.h/1.2/Fri Mar 9 20:34:14 2001/-ko/Tlinux_2_4_20
-+/lmc_main.c/1.10/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
-+/lmc_media.c/1.3/Thu Apr 5 04:57:19 2001/-ko/Tlinux_2_4_20
-+/lmc_media.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
-+/lmc_prot.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
-+/lmc_proto.c/1.3/Thu Apr 5 04:57:19 2001/-ko/Tlinux_2_4_20
-+/lmc_proto.h/1.2/Wed Jan 31 22:22:32 2001/-ko/Tlinux_2_4_20
-+/lmc_proto_raw.h/1.1/Fri Apr 28 01:09:42 2000/-ko/Tlinux_2_4_20
-+/lmc_var.h/1.4.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/lmc_ver.h/1.2/Fri Mar 9 20:34:14 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Repository
---- linux-2.4.20/drivers/net/wan/lmc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Repository 2005-01-06 23:03:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/wan/lmc
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Root
---- linux-2.4.20/drivers/net/wan/lmc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Root 2005-01-06 23:03:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Tag
---- linux-2.4.20/drivers/net/wan/lmc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/CVS/Tag 2005-01-06 23:03:47.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/wan/lmc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/.cvsignore
---- linux-2.4.20/drivers/net/wan/lmc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wan/lmc/.cvsignore 2000-04-27 20:09:42.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Entries
---- linux-2.4.20/drivers/net/wireless/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.1/Sat Jun 16 01:21:40 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.3.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/README/1.1/Thu Jun 14 04:24:06 2001/-ko/Tlinux_2_4_20
-+/airo.c/1.7.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/airo_cs.c/1.2.2.2/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/airport.c/1.4.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/hermes.c/1.5.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/hermes.h/1.6.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/hermes_rid.h/1.1.2.1/Tue Feb 26 05:59:40 2002/-ko/Tlinux_2_4_20
-+/ieee802_11.h/1.1.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/orinoco.c/1.5.2.3/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/orinoco.h/1.5.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/orinoco_cs.c/1.5.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/orinoco_pci.c/1.1.2.2/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/orinoco_plx.c/1.2.2.5/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/todo.txt/1.1/Thu Jun 14 04:24:06 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Repository
---- linux-2.4.20/drivers/net/wireless/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Repository 2005-01-06 23:03:47.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/net/wireless
-diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Root
---- linux-2.4.20/drivers/net/wireless/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Root 2005-01-06 23:03:47.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/net/wireless/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Tag
---- linux-2.4.20/drivers/net/wireless/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/CVS/Tag 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/net/wireless/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/net/wireless/.cvsignore
---- linux-2.4.20/drivers/net/wireless/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/net/wireless/.cvsignore 2001-06-15 20:21:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Entries
---- linux-2.4.20/drivers/nubus/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Entries 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/nubus.c/1.7.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/nubus_syms.c/1.2/Tue Nov 6 00:55:11 2001/-ko/Tlinux_2_4_20
-+/proc.c/1.4/Tue Nov 28 03:58:51 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Repository
---- linux-2.4.20/drivers/nubus/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Repository 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/nubus
-diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Root
---- linux-2.4.20/drivers/nubus/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Root 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/nubus/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Tag
---- linux-2.4.20/drivers/nubus/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/CVS/Tag 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/nubus/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/nubus/.cvsignore
---- linux-2.4.20/drivers/nubus/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/nubus/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Entries
---- linux-2.4.20/drivers/parport/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Entries 2005-01-06 23:03:51.000000000 -0600
-@@ -0,0 +1,24 @@
-+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/BUGS-parport/1.3/Thu Jun 14 04:24:07 2001/-ko/Tlinux_2_4_20
-+/ChangeLog/1.26.2.3/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.12.2.1/Sat Dec 29 05:38:06 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Fri Oct 19 01:24:40 2001/-ko/Tlinux_2_4_20
-+/TODO-parport/1.2/Mon Jun 19 22:45:47 2000/-ko/Tlinux_2_4_20
-+/daisy.c/1.8.4.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/ieee1284.c/1.12/Tue Nov 6 07:56:01 2001/-ko/Tlinux_2_4_20
-+/ieee1284_ops.c/1.12.2.1/Sat Dec 29 05:38:06 2001/-ko/Tlinux_2_4_20
-+/init.c/1.10.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/multiface.h/1.1/Sat Oct 9 00:01:26 1999/-ko/Tlinux_2_4_20
-+/parport_amiga.c/1.6/Tue Nov 6 00:55:11 2001/-ko/Tlinux_2_4_20
-+/parport_arc.c/1.2/Fri Mar 9 20:34:14 2001/-ko/Tlinux_2_4_20
-+/parport_atari.c/1.3/Tue Nov 6 00:55:11 2001/-ko/Tlinux_2_4_20
-+/parport_cs.c/1.2.2.1/Sat Dec 29 05:38:06 2001/-ko/Tlinux_2_4_20
-+/parport_gsc.c/1.5.2.1/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/parport_mfc3.c/1.5.2.2/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/parport_pc.c/1.39.2.4/Wed Sep 11 12:45:09 2002/-ko/Tlinux_2_4_20
-+/parport_serial.c/1.4.2.2/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/parport_sunbpp.c/1.6/Wed Aug 22 03:24:45 2001/-ko/Tlinux_2_4_20
-+/probe.c/1.6/Thu Jun 14 04:24:07 2001/-ko/Tlinux_2_4_20
-+/procfs.c/1.5/Fri Mar 9 20:34:14 2001/-ko/Tlinux_2_4_20
-+/share.c/1.19.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Repository
---- linux-2.4.20/drivers/parport/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Repository 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/parport
-diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Root
---- linux-2.4.20/drivers/parport/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Root 2005-01-06 23:03:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/parport/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Tag
---- linux-2.4.20/drivers/parport/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/parport/CVS/Tag 2005-01-06 23:03:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/parport/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/parport/.cvsignore
---- linux-2.4.20/drivers/parport/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/parport/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Entries
---- linux-2.4.20/drivers/pci/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Entries 2005-01-06 23:08:11.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.6/Sun Jun 25 03:05:13 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.1/Fri Feb 4 07:40:45 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.18.2.1/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/compat.c/1.6/Tue Nov 6 07:56:01 2001/-ko/Tlinux_2_4_20
-+/gen-devlist.c/1.7.2.1/Wed Jun 26 22:36:02 2002/-ko/Tlinux_2_4_20
-+/names.c/1.7.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/pci.c/1.48.2.4/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/pci.ids/1.35.2.5/Sat Jan 11 17:53:14 2003/-ko/Tlinux_2_4_20
-+/proc.c/1.20.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/quirks.c/1.24.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/setup-bus.c/1.4.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/setup-irq.c/1.2/Thu Jun 14 04:24:07 2001/-ko/Tlinux_2_4_20
-+/setup-res.c/1.9.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/syscall.c/1.3/Wed Feb 16 01:07:43 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Repository
---- linux-2.4.20/drivers/pci/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Repository 2005-01-06 23:03:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/pci
-diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Root
---- linux-2.4.20/drivers/pci/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Root 2005-01-06 23:03:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Tag
---- linux-2.4.20/drivers/pci/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/CVS/Tag 2005-01-06 23:03:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/pci/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/pci/.cvsignore
---- linux-2.4.20/drivers/pci/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/.cvsignore 2000-06-24 22:05:13.000000000 -0500
-@@ -0,0 +1,5 @@
-+.depend
-+.*.flags
-+gen-devlist
-+devlist.h
-+classlist.h
-diff -urNd -urNd linux-2.4.20/drivers/pci/pci.c linux-2.4.20-mipscvs-20050106/drivers/pci/pci.c
---- linux-2.4.20/drivers/pci/pci.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/pci.c 2003-01-11 11:53:14.000000000 -0600
-@@ -1262,11 +1262,17 @@
- {
- unsigned int buses;
- unsigned short cr;
-+ unsigned short bctl;
- struct pci_bus *child;
- int is_cardbus = (dev->hdr_type == PCI_HEADER_TYPE_CARDBUS);
-
- pci_read_config_dword(dev, PCI_PRIMARY_BUS, &buses);
- DBG("Scanning behind PCI bridge %s, config %06x, pass %d\n", dev->slot_name, buses & 0xffffff, pass);
-+ /* Disable MasterAbortMode during probing to avoid reporting
-+ of bus errors (in some architectures) */
-+ pci_read_config_word(dev, PCI_BRIDGE_CONTROL, &bctl);
-+ pci_write_config_word(dev, PCI_BRIDGE_CONTROL,
-+ bctl & ~PCI_BRIDGE_CTL_MASTER_ABORT);
- if ((buses & 0xffff00) && !pcibios_assign_all_busses()) {
- /*
- * Bus already configured by firmware, process it in the first
-@@ -1325,6 +1331,7 @@
- pci_write_config_byte(dev, PCI_SUBORDINATE_BUS, max);
- pci_write_config_word(dev, PCI_COMMAND, cr);
- }
-+ pci_write_config_word(dev, PCI_BRIDGE_CONTROL, bctl);
- sprintf(child->name, (is_cardbus ? "PCI CardBus #%02x" : "PCI Bus #%02x"), child->number);
- return max;
- }
-diff -urNd -urNd linux-2.4.20/drivers/pci/pci.ids linux-2.4.20-mipscvs-20050106/drivers/pci/pci.ids
---- linux-2.4.20/drivers/pci/pci.ids 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pci/pci.ids 2003-01-11 11:53:14.000000000 -0600
-@@ -1076,6 +1076,7 @@
- 0074 56k Voice Modem
- 1033 8014 RCV56ACF 56k Voice Modem
- 009b Vrc5476
-+ 00a5 VRC4173
- 00a6 VRC5477 AC97
- 00cd IEEE 1394 [OrangeLink] Host Controller
- 12ee 8011 Root hub
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/au1000_db1x00.c linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_db1x00.c
---- linux-2.4.20/drivers/pcmcia/au1000_db1x00.c 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_db1x00.c 2003-01-07 04:41:30.000000000 -0600
-@@ -0,0 +1,269 @@
-+/*
-+ *
-+ * Alchemy Semi Db1x00 boards specific pcmcia routines.
-+ *
-+ * Copyright 2002 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * ppopov@mvista.com or source@mvista.com
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ *
-+ */
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/config.h>
-+#include <linux/delay.h>
-+#include <linux/ioport.h>
-+#include <linux/kernel.h>
-+#include <linux/tqueue.h>
-+#include <linux/timer.h>
-+#include <linux/mm.h>
-+#include <linux/proc_fs.h>
-+#include <linux/version.h>
-+#include <linux/types.h>
-+
-+#include <pcmcia/version.h>
-+#include <pcmcia/cs_types.h>
-+#include <pcmcia/cs.h>
-+#include <pcmcia/ss.h>
-+#include <pcmcia/bulkmem.h>
-+#include <pcmcia/cistpl.h>
-+#include <pcmcia/bus_ops.h>
-+#include "cs_internal.h"
-+
-+#include <asm/io.h>
-+#include <asm/irq.h>
-+#include <asm/system.h>
-+
-+#include <asm/au1000.h>
-+#include <asm/au1000_pcmcia.h>
-+
-+#include <asm/db1x00.h>
-+
-+static BCSR * const bcsr = (BCSR *)0xAE000000;
-+
-+static int db1x00_pcmcia_init(struct pcmcia_init *init)
-+{
-+ bcsr->pcmcia = 0; /* turn off power */
-+ au_sync_delay(2);
-+ return PCMCIA_NUM_SOCKS;
-+}
-+
-+static int db1x00_pcmcia_shutdown(void)
-+{
-+ bcsr->pcmcia = 0; /* turn off power */
-+ au_sync_delay(2);
-+ return 0;
-+}
-+
-+static int
-+db1x00_pcmcia_socket_state(unsigned sock, struct pcmcia_state *state)
-+{
-+ u32 inserted;
-+ unsigned char vs;
-+
-+ if(sock > PCMCIA_MAX_SOCK) return -1;
-+
-+ state->ready = 0;
-+ state->vs_Xv = 0;
-+ state->vs_3v = 0;
-+ state->detect = 0;
-+
-+ if (sock == 0) {
-+ vs = bcsr->status & 0x3;
-+ inserted = !(bcsr->status & (1<<4));
-+ }
-+ else {
-+ vs = (bcsr->status & 0xC)>>2;
-+ inserted = !(bcsr->status & (1<<5));
-+ }
-+
-+ DEBUG(KERN_DEBUG "db1x00 socket %d: inserted %d, vs %d\n",
-+ sock, inserted, vs);
-+
-+ if (inserted) {
-+ switch (vs) {
-+ case 0:
-+ case 2:
-+ state->vs_3v=1;
-+ break;
-+ case 3: /* 5V */
-+ break;
-+ default:
-+ /* return without setting 'detect' */
-+ printk(KERN_ERR "db1x00 bad VS (%d)\n",
-+ vs);
-+ return -1;
-+ }
-+ state->detect = 1;
-+ state->ready = 1;
-+ }
-+ else {
-+ /* if the card was previously inserted and then ejected,
-+ * we should turn off power to it
-+ */
-+ if ((sock == 0) && (bcsr->pcmcia & BCSR_PCMCIA_PC0RST)) {
-+ bcsr->pcmcia &= ~(BCSR_PCMCIA_PC0RST |
-+ BCSR_PCMCIA_PC0DRVEN |
-+ BCSR_PCMCIA_PC0VPP |
-+ BCSR_PCMCIA_PC0VCC);
-+ }
-+ else if ((sock == 1) && (bcsr->pcmcia & BCSR_PCMCIA_PC1RST)) {
-+ bcsr->pcmcia &= ~(BCSR_PCMCIA_PC1RST |
-+ BCSR_PCMCIA_PC1DRVEN |
-+ BCSR_PCMCIA_PC1VPP |
-+ BCSR_PCMCIA_PC1VCC);
-+ }
-+ }
-+
-+ state->bvd1=1;
-+ state->bvd2=1;
-+ state->wrprot=0;
-+ return 1;
-+}
-+
-+
-+static int db1x00_pcmcia_get_irq_info(struct pcmcia_irq_info *info)
-+{
-+ if(info->sock > PCMCIA_MAX_SOCK) return -1;
-+
-+ if(info->sock == 0) {
-+ info->irq = AU1000_GPIO_2;
-+ }
-+ else
-+ info->irq = AU1000_GPIO_5;
-+
-+ return 0;
-+}
-+
-+
-+static int
-+db1x00_pcmcia_configure_socket(const struct pcmcia_configure *configure)
-+{
-+ u16 pwr;
-+ int sock = configure->sock;
-+
-+ if(sock > PCMCIA_MAX_SOCK) return -1;
-+
-+ DEBUG(KERN_DEBUG "socket %d Vcc %dV Vpp %dV, reset %d\n",
-+ sock, configure->vcc, configure->vpp, configure->reset);
-+
-+ /* pcmcia reg was set to zero at init time. Be careful when
-+ * initializing a socket not to wipe out the settings of the
-+ * other socket.
-+ */
-+ pwr = bcsr->pcmcia;
-+ pwr &= ~(0xf << sock*8); /* clear voltage settings */
-+
-+ switch(configure->vcc){
-+ case 0: /* Vcc 0 */
-+ pwr |= SET_VCC_VPP(0,0,sock);
-+ break;
-+ case 50: /* Vcc 5V */
-+ switch(configure->vpp) {
-+ case 0:
-+ pwr |= SET_VCC_VPP(2,0,sock);
-+ break;
-+ case 50:
-+ pwr |= SET_VCC_VPP(2,1,sock);
-+ break;
-+ case 12:
-+ pwr |= SET_VCC_VPP(2,2,sock);
-+ break;
-+ case 33:
-+ default:
-+ pwr |= SET_VCC_VPP(0,0,sock);
-+ printk("%s: bad Vcc/Vpp (%d:%d)\n",
-+ __FUNCTION__,
-+ configure->vcc,
-+ configure->vpp);
-+ break;
-+ }
-+ break;
-+ case 33: /* Vcc 3.3V */
-+ switch(configure->vpp) {
-+ case 0:
-+ pwr |= SET_VCC_VPP(1,0,sock);
-+ break;
-+ case 12:
-+ pwr |= SET_VCC_VPP(1,2,sock);
-+ break;
-+ case 33:
-+ pwr |= SET_VCC_VPP(1,1,sock);
-+ break;
-+ case 50:
-+ default:
-+ pwr |= SET_VCC_VPP(0,0,sock);
-+ printk("%s: bad Vcc/Vpp (%d:%d)\n",
-+ __FUNCTION__,
-+ configure->vcc,
-+ configure->vpp);
-+ break;
-+ }
-+ break;
-+ default: /* what's this ? */
-+ pwr |= SET_VCC_VPP(0,0,sock);
-+ printk(KERN_ERR "%s: bad Vcc %d\n",
-+ __FUNCTION__, configure->vcc);
-+ break;
-+ }
-+
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(300);
-+
-+ if (sock == 0) {
-+ if (!configure->reset) {
-+ pwr |= BCSR_PCMCIA_PC0DRVEN;
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(300);
-+ pwr |= BCSR_PCMCIA_PC0RST;
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(100);
-+ }
-+ else {
-+ pwr &= ~(BCSR_PCMCIA_PC0RST | BCSR_PCMCIA_PC0DRVEN);
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(100);
-+ }
-+ }
-+ else {
-+ if (!configure->reset) {
-+ pwr |= BCSR_PCMCIA_PC1DRVEN;
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(300);
-+ pwr |= BCSR_PCMCIA_PC1RST;
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(100);
-+ }
-+ else {
-+ pwr &= ~(BCSR_PCMCIA_PC1RST | BCSR_PCMCIA_PC1DRVEN);
-+ bcsr->pcmcia = pwr;
-+ au_sync_delay(100);
-+ }
-+ }
-+ return 0;
-+}
-+
-+struct pcmcia_low_level db1x00_pcmcia_ops = {
-+ db1x00_pcmcia_init,
-+ db1x00_pcmcia_shutdown,
-+ db1x00_pcmcia_socket_state,
-+ db1x00_pcmcia_get_irq_info,
-+ db1x00_pcmcia_configure_socket
-+};
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/au1000_generic.c linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_generic.c
---- linux-2.4.20/drivers/pcmcia/au1000_generic.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_generic.c 2003-01-07 04:41:30.000000000 -0600
-@@ -132,13 +132,14 @@
- #endif
- };
-
-+static spinlock_t pcmcia_lock = SPIN_LOCK_UNLOCKED;
-+
- static int __init au1000_pcmcia_driver_init(void)
- {
- servinfo_t info;
- struct pcmcia_init pcmcia_init;
- struct pcmcia_state state;
- unsigned int i;
-- unsigned long timing3;
-
- printk("\nAu1x00 PCMCIA (CS release %s)\n", CS_RELEASE);
-
-@@ -156,6 +157,8 @@
-
- #if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
- pcmcia_low_level=&pb1x00_pcmcia_ops;
-+#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-+ pcmcia_low_level=&db1x00_pcmcia_ops;
- #else
- #error Unsupported AU1000 board.
- #endif
-@@ -194,15 +197,19 @@
-
- if (i == 0) {
- pcmcia_socket[i].virt_io =
-- (u32)ioremap((ioaddr_t)0xF00000000, 0x1000);
-- pcmcia_socket[i].phys_attr = (memaddr_t)0xF40000000;
-- pcmcia_socket[i].phys_mem = (memaddr_t)0xF80000000;
-+ (u32)ioremap((ioaddr_t)AU1X_SOCK0_IO, 0x1000);
-+ pcmcia_socket[i].phys_attr =
-+ (ioaddr_t)AU1X_SOCK0_PHYS_ATTR;
-+ pcmcia_socket[i].phys_mem =
-+ (ioaddr_t)AU1X_SOCK0_PHYS_MEM;
- }
- else {
- pcmcia_socket[i].virt_io =
-- (u32)ioremap((ioaddr_t)0xF08000000, 0x1000);
-- pcmcia_socket[i].phys_attr = (memaddr_t)0xF48000000;
-- pcmcia_socket[i].phys_mem = (memaddr_t)0xF88000000;
-+ (u32)ioremap((ioaddr_t)AU1X_SOCK1_IO, 0x1000);
-+ pcmcia_socket[i].phys_attr =
-+ (ioaddr_t)AU1X_SOCK1_PHYS_ATTR;
-+ pcmcia_socket[i].phys_mem =
-+ (ioaddr_t)AU1X_SOCK1_PHYS_MEM;
- }
- }
-
-@@ -585,8 +592,7 @@
- }
- }
-
-- save_flags(flags);
-- cli();
-+ spin_lock_irqsave(&pcmcia_lock, flags);
- start=map->sys_start;
-
- if(map->sys_stop==0)
-@@ -603,7 +609,7 @@
-
- map->sys_stop=map->sys_start+(map->sys_stop-start);
- pcmcia_socket[sock].mem_map[map->map]=*map;
-- restore_flags(flags);
-+ spin_unlock_irqrestore(&pcmcia_lock, flags);
- DEBUG(3, "set_mem_map %d start %x stop %x card_start %x\n",
- map->map, map->sys_start, map->sys_stop,
- map->card_start);
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/au1000_pb1x00.c linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_pb1x00.c
---- linux-2.4.20/drivers/pcmcia/au1000_pb1x00.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/au1000_pb1x00.c 2002-12-16 12:12:29.000000000 -0600
-@@ -124,6 +124,7 @@
- #else
- vs0 = (au_readw(PB1100_BOARD_STATUS) >> 4) & 0x3;
- inserted0 = !((au_readl(SYS_PINSTATERD) >> 9) & 0x1); /* gpio 9 */
-+ inserted1 = 0;
- #endif
-
- state->ready = 0;
-@@ -144,7 +145,7 @@
- /* return without setting 'detect' */
- printk(KERN_ERR "pb1x00 bad VS (%d)\n",
- vs0);
-- return;
-+ return 0;
- }
- state->detect = 1;
- }
-@@ -162,7 +163,7 @@
- /* return without setting 'detect' */
- printk(KERN_ERR "pb1x00 bad VS (%d)\n",
- vs1);
-- return;
-+ return 0;
- }
- state->detect = 1;
- }
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/Config.in linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Config.in
---- linux-2.4.20/drivers/pcmcia/Config.in 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Config.in 2002-12-11 00:12:30.000000000 -0600
-@@ -29,5 +29,13 @@
- if [ "$CONFIG_8xx" = "y" ]; then
- dep_tristate ' M8xx support' CONFIG_PCMCIA_M8XX $CONFIG_PCMCIA
- fi
-+ if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
-+ dep_tristate ' Au1x00 PCMCIA support' CONFIG_PCMCIA_AU1X00 $CONFIG_PCMCIA
-+ if [ "$CONFIG_PCMCIA_AU1X00" != "n" ]; then
-+ bool ' Pb1x00 board support' CONFIG_PCMCIA_PB1X00
-+ bool ' Db1x00 board support' CONFIG_PCMCIA_DB1X00
-+ fi
-+ fi
- fi
-+
- endmenu
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Entries
---- linux-2.4.20/drivers/pcmcia/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Entries 2005-01-06 23:03:54.000000000 -0600
-@@ -0,0 +1,55 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:26 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.10.2.5/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.12.2.3/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/au1000_db1x00.c/1.1.2.2/Tue Jan 7 10:41:30 2003/-ko/Tlinux_2_4_20
-+/au1000_generic.c/1.3.2.8/Tue Jan 7 10:41:30 2003/-ko/Tlinux_2_4_20
-+/au1000_pb1x00.c/1.1.2.2/Mon Dec 16 18:12:29 2002/-ko/Tlinux_2_4_20
-+/bulkmem.c/1.12.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/cardbus.c/1.12.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/cirrus.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/cistpl.c/1.9.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/cs.c/1.23.2.2/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/cs_internal.h/1.9.4.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/ds.c/1.14/Sun Dec 2 11:34:46 2001/-ko/Tlinux_2_4_20
-+/hd64465_ss.c/1.3/Thu Aug 23 22:24:37 2001/-ko/Tlinux_2_4_20
-+/i82092.c/1.2.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/i82092aa.h/1.1/Tue Nov 6 07:56:02 2001/-ko/Tlinux_2_4_20
-+/i82365.c/1.18.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/i82365.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/m8xx_pcmcia.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/o2micro.h/1.4.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/pci_socket.c/1.9.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/pci_socket.h/1.4.4.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/ricoh.h/1.5.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/rsrc_mgr.c/1.12.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/sa1100.h/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_adsbitsy.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_assabet.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_badge4.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_cerf.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_flexanet.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_freebird.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_generic.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_generic.h/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_graphicsclient.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_graphicsmaster.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_h3600.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_jornada720.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_neponset.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_pangolin.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_pfs168.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_shannon.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_simpad.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_stork.c/1.2.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_xp860.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1100_yopy.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1111_generic.c/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/sa1111_generic.h/1.1.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/tcic.c/1.11.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/tcic.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/ti113x.h/1.6.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/topic.h/1.2.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/vg468.h/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/yenta.c/1.27.2.2/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/yenta.h/1.3/Sat Feb 5 06:47:25 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Repository
---- linux-2.4.20/drivers/pcmcia/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Repository 2005-01-06 23:03:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/pcmcia
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Root
---- linux-2.4.20/drivers/pcmcia/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Root 2005-01-06 23:03:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Tag
---- linux-2.4.20/drivers/pcmcia/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/CVS/Tag 2005-01-06 23:03:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/pcmcia/.cvsignore
---- linux-2.4.20/drivers/pcmcia/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/.cvsignore 1999-10-08 19:01:26.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/pcmcia/Makefile linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Makefile
---- linux-2.4.20/drivers/pcmcia/Makefile 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/pcmcia/Makefile 2002-12-11 00:12:30.000000000 -0600
-@@ -59,6 +59,11 @@
- endif
- endif
-
-+obj-$(CONFIG_PCMCIA_AU1X00) += au1x00_ss.o
-+au1000_ss-objs-y := au1000_generic.o
-+au1000_ss-objs-$(CONFIG_PCMCIA_PB1X00) += au1000_pb1x00.o
-+au1000_ss-objs-$(CONFIG_PCMCIA_DB1X00) += au1000_db1x00.o
-+
- obj-$(CONFIG_PCMCIA_SA1100) += sa1100_cs.o
- obj-$(CONFIG_PCMCIA_M8XX) += m8xx_pcmcia.o
-
-@@ -90,5 +95,8 @@
- sa1100_cs.o: $(sa1100_cs-objs-y)
- $(LD) -r -o $@ $(sa1100_cs-objs-y)
-
-+au1x00_ss.o: $(au1000_ss-objs-y)
-+ $(LD) -r -o $@ $(au1000_ss-objs-y)
-+
- yenta_socket.o: $(yenta_socket-objs)
- $(LD) $(LD_RFLAG) -r -o $@ $(yenta_socket-objs)
-diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Entries
---- linux-2.4.20/drivers/pnp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.2/Tue Mar 17 22:11:39 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.7/Tue Nov 6 07:56:02 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.9/Thu Apr 5 04:57:41 2001/-ko/Tlinux_2_4_20
-+/isapnp.c/1.20.2.3/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/isapnp_proc.c/1.10.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/quirks.c/1.7.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Repository
---- linux-2.4.20/drivers/pnp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Repository 2005-01-06 23:03:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/pnp
-diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Root
---- linux-2.4.20/drivers/pnp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Root 2005-01-06 23:03:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/pnp/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Tag
---- linux-2.4.20/drivers/pnp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/CVS/Tag 2005-01-06 23:03:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/pnp/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/pnp/.cvsignore
---- linux-2.4.20/drivers/pnp/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/pnp/.cvsignore 1998-03-17 16:11:39.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Entries
---- linux-2.4.20/drivers/s390/block/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Entries 2005-01-06 23:03:57.000000000 -0600
-@@ -0,0 +1,20 @@
-+/Makefile/1.5/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd.c/1.13.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/dasd_3370_erp.c/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_3370_erp.h/1.1/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_3990_erp.c/1.6.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
-+/dasd_3990_erp.h/1.3/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_9336_erp.c/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_9336_erp.h/1.1/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_9343_erp.c/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_9343_erp.h/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_diag.c/1.4/Mon Nov 5 20:16:03 2001/-ko/Tlinux_2_4_20
-+/dasd_diag.h/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_eckd.c/1.7.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
-+/dasd_eckd.h/1.4/Mon Nov 5 20:16:03 2001/-ko/Tlinux_2_4_20
-+/dasd_fba.c/1.4/Mon Nov 5 20:16:04 2001/-ko/Tlinux_2_4_20
-+/dasd_fba.h/1.2/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/dasd_int.h/1.2.2.2/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/xpram.c/1.6/Tue Nov 6 07:56:02 2001/-ko/Tlinux_2_4_20
-+/xpram.h/1.1/Fri Mar 9 20:34:18 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Repository
---- linux-2.4.20/drivers/s390/block/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Repository 2005-01-06 23:03:56.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/s390/block
-diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Root
---- linux-2.4.20/drivers/s390/block/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Root 2005-01-06 23:03:56.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/s390/block/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Tag
---- linux-2.4.20/drivers/s390/block/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/block/CVS/Tag 2005-01-06 23:03:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Entries
---- linux-2.4.20/drivers/s390/char/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Entries 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1,35 @@
-+/Makefile/1.6/Tue Nov 6 00:55:12 2001/-ko/Tlinux_2_4_20
-+/con3215.c/1.8.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/ctrlchar.c/1.3/Mon Nov 5 20:16:04 2001/-ko/Tlinux_2_4_20
-+/ctrlchar.h/1.2/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/hwc.h/1.5.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/hwc_con.c/1.6.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/hwc_cpi.c/1.3/Tue Nov 6 00:55:12 2001/-ko/Tlinux_2_4_20
-+/hwc_rw.c/1.6.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/hwc_rw.h/1.4/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/hwc_tty.c/1.6/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape.c/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape3480.c/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape3480.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape3490.c/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape3490.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape34xx.c/1.6.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/tape34xx.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape3590.c/1.1/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tape3590.h/1.1/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tapeblock.c/1.4/Tue Nov 6 07:56:02 2001/-ko/Tlinux_2_4_20
-+/tapeblock.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tapechar.c/1.5/Sun Dec 2 11:34:47 2001/-ko/Tlinux_2_4_20
-+/tapechar.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tapedefs.h/1.3/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tuball.c/1.4.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/tubfs.c/1.3.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/tubio.h/1.3.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/tubtty.c/1.4.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/tubttyaid.c/1.1/Wed Jun 13 17:27:59 2001/-ko/Tlinux_2_4_20
-+/tubttybld.c/1.2.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/tubttyrcl.c/1.1/Wed Jun 13 17:27:59 2001/-ko/Tlinux_2_4_20
-+/tubttyscl.c/1.2/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+/tubttysiz.c/1.2/Fri Aug 24 03:38:43 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Repository
---- linux-2.4.20/drivers/s390/char/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Repository 2005-01-06 23:03:57.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/s390/char
-diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Root
---- linux-2.4.20/drivers/s390/char/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Root 2005-01-06 23:03:57.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/s390/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Tag
---- linux-2.4.20/drivers/s390/char/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/char/CVS/Tag 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Entries
---- linux-2.4.20/drivers/s390/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,13 @@
-+/Config.in/1.7/Fri Aug 24 03:38:41 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.5.2.1/Tue Feb 26 05:59:41 2002/-ko/Tlinux_2_4_20
-+/ccwcache.c/1.3.2.1/Wed Jun 26 22:36:03 2002/-ko/Tlinux_2_4_20
-+/ebcdic.c/1.2/Fri Mar 9 20:34:18 2001/-ko/Tlinux_2_4_20
-+/idals.c/1.3/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/s390dyn.c/1.3/Fri Aug 24 03:38:42 2001/-ko/Tlinux_2_4_20
-+/s390io.c/1.6.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/s390mach.c/1.4.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/sysinfo.c/1.1.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+D/block////
-+D/char////
-+D/misc////
-+D/net////
-diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Repository
---- linux-2.4.20/drivers/s390/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Repository 2005-01-06 23:03:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/s390
-diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Root
---- linux-2.4.20/drivers/s390/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Root 2005-01-06 23:03:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/s390/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Tag
---- linux-2.4.20/drivers/s390/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/CVS/Tag 2005-01-06 23:03:56.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Entries
---- linux-2.4.20/drivers/s390/misc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Entries 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1,3 @@
-+/Makefile/1.4/Wed Jun 13 17:27:59 2001/-ko/Tlinux_2_4_20
-+/chandev.c/1.7.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Repository
---- linux-2.4.20/drivers/s390/misc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Repository 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/s390/misc
-diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Root
---- linux-2.4.20/drivers/s390/misc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Root 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/s390/misc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Tag
---- linux-2.4.20/drivers/s390/misc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/misc/CVS/Tag 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Entries
---- linux-2.4.20/drivers/s390/net/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Entries 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.5.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/ctcmain.c/1.5.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
-+/ctctty.c/1.2.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/ctctty.h/1.2/Fri Aug 24 03:38:44 2001/-ko/Tlinux_2_4_20
-+/fsm.c/1.2/Fri Aug 24 03:38:44 2001/-ko/Tlinux_2_4_20
-+/fsm.h/1.2.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/iucv.c/1.9.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/iucv.h/1.5/Mon Nov 5 20:16:04 2001/-ko/Tlinux_2_4_20
-+/netiucv.c/1.8.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Repository
---- linux-2.4.20/drivers/s390/net/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Repository 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/s390/net
-diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Root
---- linux-2.4.20/drivers/s390/net/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Root 2005-01-06 23:03:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/s390/net/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Tag
---- linux-2.4.20/drivers/s390/net/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/s390/net/CVS/Tag 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Entries
---- linux-2.4.20/drivers/sbus/audio/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Entries 2005-01-06 23:04:00.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.2/Sat Oct 9 00:01:26 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.5/Wed Jan 31 22:22:33 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Wed Aug 22 03:24:47 2001/-ko/Tlinux_2_4_20
-+/amd7930.c/1.12.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/amd7930.h/1.4/Sat Feb 5 06:47:25 2000/-ko/Tlinux_2_4_20
-+/audio.c/1.25/Mon Nov 5 21:57:12 2001/-ko/Tlinux_2_4_20
-+/cs4215.h/1.7/Thu Nov 23 02:00:53 2000/-ko/Tlinux_2_4_20
-+/cs4231.c/1.14.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/cs4231.h/1.6/Sat Feb 5 06:47:25 2000/-ko/Tlinux_2_4_20
-+/dbri.c/1.15.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/dbri.h/1.8/Thu Nov 23 02:00:53 2000/-ko/Tlinux_2_4_20
-+/dmy.c/1.8/Mon Nov 5 21:57:12 2001/-ko/Tlinux_2_4_20
-+/dummy.h/1.2/Sat Feb 5 06:47:25 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Repository
---- linux-2.4.20/drivers/sbus/audio/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Repository 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sbus/audio
-diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Root
---- linux-2.4.20/drivers/sbus/audio/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Root 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Tag
---- linux-2.4.20/drivers/sbus/audio/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/CVS/Tag 2005-01-06 23:04:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sbus/audio/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/.cvsignore
---- linux-2.4.20/drivers/sbus/audio/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/audio/.cvsignore 1999-10-08 19:01:26.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Entries
---- linux-2.4.20/drivers/sbus/char/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Entries 2005-01-06 23:04:02.000000000 -0600
-@@ -0,0 +1,40 @@
-+/.cvsignore/1.2/Tue Mar 17 22:11:45 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.10.4.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.17/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/aurora.c/1.13.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/aurora.h/1.3/Wed Aug 22 03:24:48 2001/-ko/Tlinux_2_4_20
-+/bbc_envctrl.c/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/bbc_i2c.c/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/bbc_i2c.h/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/bpp.c/1.22/Tue Nov 6 00:55:13 2001/-ko/Tlinux_2_4_20
-+/cd180.h/1.1/Thu Jun 17 14:08:47 1999/-ko/Tlinux_2_4_20
-+/cpwatchdog.c/1.4/Mon Nov 5 21:57:12 2001/-ko/Tlinux_2_4_20
-+/display7seg.c/1.4/Mon Nov 5 21:57:12 2001/-ko/Tlinux_2_4_20
-+/envctrl.c/1.17.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
-+/flash.c/1.19/Mon Nov 5 21:57:12 2001/-ko/Tlinux_2_4_20
-+/jsflash.c/1.15/Tue Nov 6 07:56:02 2001/-ko/Tlinux_2_4_20
-+/max1617.h/1.1/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/openprom.c/1.14.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/pcikbd.c/1.28.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/pcikbd.h/1.2/Tue Mar 17 22:11:48 1998/-ko/Tlinux_2_4_20
-+/riowatchdog.c/1.3.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
-+/rtc.c/1.21/Mon Nov 5 21:57:12 2001/-ko/Tlinux_2_4_20
-+/sab82532.c/1.28.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/su.c/1.25.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/sunkbd.c/1.28.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/sunkbd.h/1.3/Wed Feb 23 00:41:18 2000/-ko/Tlinux_2_4_20
-+/sunkbdmap.c/1.1/Tue Mar 17 22:11:54 1998/-ko/Tlinux_2_4_20
-+/sunkeymap.c/1.2/Sat Feb 5 06:47:26 2000/-ko/Tlinux_2_4_20
-+/sunkeymap.map/1.2/Sat Feb 5 06:47:26 2000/-ko/Tlinux_2_4_20
-+/sunmouse.c/1.21/Wed Jan 31 22:22:33 2001/-ko/Tlinux_2_4_20
-+/sunmouse.h/1.2/Sat Feb 5 06:47:26 2000/-ko/Tlinux_2_4_20
-+/sunserial.c/1.14.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/sunserial.h/1.6/Sat Feb 5 06:47:28 2000/-ko/Tlinux_2_4_20
-+/uctrl.c/1.12.2.1/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/vfc.h/1.3/Thu Feb 24 00:13:06 2000/-ko/Tlinux_2_4_20
-+/vfc_dev.c/1.25/Sat Sep 22 12:49:29 2001/-ko/Tlinux_2_4_20
-+/vfc_i2c.c/1.6/Fri Mar 9 20:34:19 2001/-ko/Tlinux_2_4_20
-+/vfc_i2c.h/1.1.1.1/Sun Jun 1 03:17:35 1997/-ko/Tlinux_2_4_20
-+/zs.c/1.25.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+/zs.h/1.3/Sat Feb 5 06:47:28 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Repository
---- linux-2.4.20/drivers/sbus/char/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Repository 2005-01-06 23:04:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sbus/char
-diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Root
---- linux-2.4.20/drivers/sbus/char/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Root 2005-01-06 23:04:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sbus/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Tag
---- linux-2.4.20/drivers/sbus/char/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/CVS/Tag 2005-01-06 23:04:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sbus/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sbus/char/.cvsignore
---- linux-2.4.20/drivers/sbus/char/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/char/.cvsignore 1998-03-17 16:11:45.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Entries
---- linux-2.4.20/drivers/sbus/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.2/Tue Mar 17 22:11:40 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Thu Apr 5 04:57:41 2001/-ko/Tlinux_2_4_20
-+/dvma.c/1.9.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/sbus.c/1.17.2.2/Wed Jun 26 22:36:04 2002/-ko/Tlinux_2_4_20
-+D/audio////
-+D/char////
-diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Repository
---- linux-2.4.20/drivers/sbus/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Repository 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sbus
-diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Root
---- linux-2.4.20/drivers/sbus/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Root 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sbus/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Tag
---- linux-2.4.20/drivers/sbus/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/CVS/Tag 2005-01-06 23:03:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sbus/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sbus/.cvsignore
---- linux-2.4.20/drivers/sbus/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sbus/.cvsignore 1998-03-17 16:11:40.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Entries
---- linux-2.4.20/drivers/scsi/aacraid/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Entries 2005-01-06 23:04:40.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1.2.1/Thu Jan 17 01:29:06 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/README/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/TODO/1.1.2.1/Sat Dec 29 05:38:09 2001/-ko/Tlinux_2_4_20
-+/aachba.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/aacraid.h/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/commctrl.c/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/comminit.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/commsup.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/dpcsup.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/linit.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/rx.c/1.1.2.3/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/sa.c/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Repository
---- linux-2.4.20/drivers/scsi/aacraid/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Repository 2005-01-06 23:04:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/aacraid
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Root
---- linux-2.4.20/drivers/scsi/aacraid/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Root 2005-01-06 23:04:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Tag
---- linux-2.4.20/drivers/scsi/aacraid/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/CVS/Tag 2005-01-06 23:04:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aacraid/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/.cvsignore
---- linux-2.4.20/drivers/scsi/aacraid/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aacraid/.cvsignore 2002-01-16 19:29:06.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Entries
---- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Entries 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1,11 @@
-+/Makefile/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm.c/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm.h/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_gram.y/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_insformat.h/1.2.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_macro_gram.y/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_macro_scan.l/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_scan.l/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_symbol.c/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aicasm_symbol.h/1.2.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Repository
---- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Repository 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/aic7xxx/aicasm
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Root
---- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Root 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Tag
---- linux-2.4.20/drivers/scsi/aic7xxx/aicasm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/aicasm/CVS/Tag 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Entries
---- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,24 @@
-+/.cvsignore/1.2/Wed Nov 28 10:11:46 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.2.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/aic7770.c/1.4.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/aic7770_osm.c/1.1.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/aic7xxx.h/1.4.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/aic7xxx.reg/1.13.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/aic7xxx.seq/1.12.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_93cx6.c/1.3.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_93cx6.h/1.2.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_core.c/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_host.h/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_inline.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_osm.c/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_osm.h/1.6.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_osm_pci.c/1.1.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_pci.c/1.4.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_proc.c/1.4.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_reg.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/aic7xxx_seq.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/cam.h/1.3/Tue Nov 6 07:56:06 2001/-ko/Tlinux_2_4_20
-+/queue.h/1.1/Thu Apr 5 04:58:07 2001/-ko/Tlinux_2_4_20
-+/scsi_message.h/1.4.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+D/aicasm////
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Repository
---- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Repository 2005-01-06 23:04:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/aic7xxx
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Root
---- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Root 2005-01-06 23:04:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Tag
---- linux-2.4.20/drivers/scsi/aic7xxx/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/CVS/Tag 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/.cvsignore
---- linux-2.4.20/drivers/scsi/aic7xxx/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx/.cvsignore 2001-11-28 04:11:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Entries
---- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Entries 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1,10 @@
-+/README.aic7xxx/1.2/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
-+/aic7xxx.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/aic7xxx.reg/1.3/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
-+/aic7xxx.seq/1.3/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
-+/aic7xxx_proc.c/1.3/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/aic7xxx_reg.h/1.2/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
-+/aic7xxx_seq.c/1.2/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
-+/scsi_message.h/1.1/Thu Apr 5 04:58:07 2001/-ko/Tlinux_2_4_20
-+/sequencer.h/1.2/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Repository
---- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Repository 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/aic7xxx_old
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Root
---- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Root 2005-01-06 23:04:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Tag
---- linux-2.4.20/drivers/scsi/aic7xxx_old/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/aic7xxx_old/CVS/Tag 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/Config.in linux-2.4.20-mipscvs-20050106/drivers/scsi/Config.in
---- linux-2.4.20/drivers/scsi/Config.in 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/Config.in 2003-01-20 14:21:43.000000000 -0600
-@@ -37,7 +37,7 @@
- fi
- if [ "$CONFIG_DECSTATION" = "y" ]; then
- dep_tristate 'DEC NCR53C94 Scsi Driver' CONFIG_SCSI_DECNCR $CONFIG_SCSI $CONFIG_TC
-- dep_tristate 'DEC SII Scsi Driver' CONFIG_SCSI_DECSII $CONFIG_SCSI
-+ dep_tristate 'DEC SII Scsi Driver' CONFIG_SCSI_DECSII $CONFIG_SCSI $CONFIG_MIPS32
- fi
-
- if [ "$CONFIG_PCI" = "y" ]; then
-diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Entries
---- linux-2.4.20/drivers/scsi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,286 @@
-+/.cvsignore/1.5/Wed Nov 28 13:07:35 2001/-ko/Tlinux_2_4_20
-+/3w-xxxx.c/1.15.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/3w-xxxx.h/1.7.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/53c7,8xx.c/1.18.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
-+/53c7,8xx.h/1.6/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/53c7,8xx.scr/1.1.1.1/Sun Jun 1 03:17:36 1997/-ko/Tlinux_2_4_20
-+/53c700.c/1.3.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/53c700.h/1.3.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
-+/53c700.scr/1.2.2.1/Tue Feb 26 05:59:42 2002/-ko/Tlinux_2_4_20
-+/53c7xx.c/1.16.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/53c7xx.h/1.7/Tue Nov 6 07:56:03 2001/-ko/Tlinux_2_4_20
-+/53c7xx.scr/1.3/Wed Jun 13 17:28:00 2001/-ko/Tlinux_2_4_20
-+/53c8xx_d.h/1.3/Fri Feb 4 07:40:46 2000/-ko/Tlinux_2_4_20
-+/53c8xx_u.h/1.1.1.1/Sun Jun 1 03:17:37 1997/-ko/Tlinux_2_4_20
-+/AM53C974.c/1.15/Mon Nov 5 20:16:04 2001/-ko/Tlinux_2_4_20
-+/AM53C974.h/1.6/Tue Nov 28 03:58:51 2000/-ko/Tlinux_2_4_20
-+/BusLogic.c/1.15.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/BusLogic.h/1.12/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
-+/ChangeLog/1.1.1.1/Sun Jun 1 03:17:37 1997/-ko/Tlinux_2_4_20
-+/ChangeLog.ips/1.5.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/ChangeLog.ncr53c8xx/1.17/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
-+/ChangeLog.serverraid/1.2/Mon Nov 5 20:16:04 2001/-ko/Tlinux_2_4_20
-+/ChangeLog.sym53c8xx/1.12/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.36.2.6/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
-+/FlashPoint.c/1.6/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
-+/LICENSE.FlashPoint/1.1.1.1/Sun Jun 1 03:17:36 1997/-ko/Tlinux_2_4_20
-+/Makefile/1.38.2.4/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/NCR5380.c/1.13.2.2/Tue Feb 26 05:59:43 2002/-ko/Tlinux_2_4_20
-+/NCR5380.h/1.5.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/NCR53C9x.c/1.14.2.3/Mon Nov 25 12:18:58 2002/-ko/Tlinux_2_4_20
-+/NCR53C9x.h/1.8.2.1/Wed Jul 24 17:55:47 2002/-ko/Tlinux_2_4_20
-+/NCR53c406a.c/1.13/Mon Nov 5 20:16:05 2001/-ko/Tlinux_2_4_20
-+/NCR53c406a.h/1.3/Sat Jan 29 01:42:16 2000/-ko/Tlinux_2_4_20
-+/NCR_D700.c/1.1.2.1/Tue Feb 26 05:59:43 2002/-ko/Tlinux_2_4_20
-+/NCR_D700.h/1.1/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
-+/README.53c700/1.3/Mon Nov 19 13:53:59 2001/-ko/Tlinux_2_4_20
-+/README.AM53C974/1.1.1.1/Sun Jun 1 03:17:40 1997/-ko/Tlinux_2_4_20
-+/README.BusLogic/1.5/Tue Aug 25 09:18:23 1998/-ko/Tlinux_2_4_20
-+/README.FlashPoint/1.1.1.1/Sun Jun 1 03:17:37 1997/-ko/Tlinux_2_4_20
-+/README.Mylex/1.2/Tue Aug 25 09:18:23 1998/-ko/Tlinux_2_4_20
-+/README.aha152x/1.1/Sat Feb 5 06:47:28 2000/-ko/Tlinux_2_4_20
-+/README.aic7xxx/1.12/Thu Aug 23 22:24:38 2001/-ko/Tlinux_2_4_20
-+/README.dpti/1.1/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
-+/README.dtc3x80/1.1.1.1/Sun Jun 1 03:17:38 1997/-ko/Tlinux_2_4_20
-+/README.g_NCR5380/1.1.1.1/Sun Jun 1 03:17:38 1997/-ko/Tlinux_2_4_20
-+/README.ibmmca/1.5/Thu Jun 14 04:24:08 2001/-ko/Tlinux_2_4_20
-+/README.in2000/1.4/Sat Sep 19 19:17:35 1998/-ko/Tlinux_2_4_20
-+/README.ncr53c7xx/1.1/Mon Jan 4 16:06:52 1999/-ko/Tlinux_2_4_20
-+/README.ncr53c8xx/1.10.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/README.osst/1.1/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/README.ppa/1.2/Mon Jan 4 16:06:53 1999/-ko/Tlinux_2_4_20
-+/README.qlogicfas/1.1.1.1/Sun Jun 1 03:17:41 1997/-ko/Tlinux_2_4_20
-+/README.qlogicisp/1.1.1.1/Sun Jun 1 03:17:41 1997/-ko/Tlinux_2_4_20
-+/README.st/1.10.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/README.tmscsim/1.4/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/a2091.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/a2091.h/1.6/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
-+/a3000.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/a3000.h/1.6/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
-+/advansys.c/1.22/Sun Dec 2 11:34:47 2001/-ko/Tlinux_2_4_20
-+/advansys.h/1.8/Wed Jun 13 17:28:01 2001/-ko/Tlinux_2_4_20
-+/aha152x.c/1.30.2.3/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/aha152x.h/1.8.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/aha1542.c/1.21/Tue Nov 6 00:55:14 2001/-ko/Tlinux_2_4_20
-+/aha1542.h/1.5/Thu Apr 5 04:57:41 2001/-ko/Tlinux_2_4_20
-+/aha1740.c/1.10/Mon Nov 5 20:16:06 2001/-ko/Tlinux_2_4_20
-+/aha1740.h/1.4/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/aic7xxx_old.c/1.9/Sun Dec 2 11:34:48 2001/-ko/Tlinux_2_4_20
-+/amiga7xx.c/1.11/Tue Nov 6 07:56:03 2001/-ko/Tlinux_2_4_20
-+/amiga7xx.h/1.6/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/atari_NCR5380.c/1.2.4.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/atari_dma_emul.c/1.3/Thu Apr 5 04:57:41 2001/-ko/Tlinux_2_4_20
-+/atari_scsi.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/atari_scsi.h/1.3/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/atp870u.c/1.18.2.1/Tue Sep 10 15:32:51 2002/-ko/Tlinux_2_4_20
-+/atp870u.h/1.5/Fri Feb 4 07:40:46 2000/-ko/Tlinux_2_4_20
-+/blz1230.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/blz1230.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/blz2060.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/blz2060.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/bvme6000.c/1.3.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/bvme6000.h/1.3/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/constants.c/1.8/Tue Nov 6 07:56:03 2001/-ko/Tlinux_2_4_20
-+/constants.h/1.1.1.1/Sun Jun 1 03:17:35 1997/-ko/Tlinux_2_4_20
-+/cpqfc.Readme/1.4/Tue Nov 6 07:56:03 2001/-ko/Tlinux_2_4_20
-+/cpqfcTS.h/1.2/Fri Aug 24 03:38:44 2001/-ko/Tlinux_2_4_20
-+/cpqfcTSchip.h/1.1/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/cpqfcTScontrol.c/1.5/Tue Nov 6 07:56:03 2001/-ko/Tlinux_2_4_20
-+/cpqfcTSi2c.c/1.1/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/cpqfcTSinit.c/1.11.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/cpqfcTSioctl.h/1.2/Tue Nov 6 07:56:03 2001/-ko/Tlinux_2_4_20
-+/cpqfcTSstructs.h/1.4.2.2/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/cpqfcTStrigger.c/1.2/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
-+/cpqfcTStrigger.h/1.1/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
-+/cpqfcTSworker.c/1.6.2.1/Wed Sep 11 12:45:10 2002/-ko/Tlinux_2_4_20
-+/cyberstorm.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/cyberstorm.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/cyberstormII.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/cyberstormII.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/dc390.h/1.8/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/dec_esp.c/1.10.2.8/Thu Jan 30 14:25:16 2003/-ko/Tlinux_2_4_20
-+/dec_esp.h/1.5/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/dmx3191d.c/1.8/Mon Nov 5 20:16:06 2001/-ko/Tlinux_2_4_20
-+/dmx3191d.h/1.3/Wed Aug 22 03:24:49 2001/-ko/Tlinux_2_4_20
-+/dpt_i2o.c/1.4.2.1/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
-+/dpti.h/1.1/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
-+/dtc.c/1.8.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/dtc.h/1.5/Tue Nov 6 07:56:04 2001/-ko/Tlinux_2_4_20
-+/eata.c/1.19.2.2/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
-+/eata.h/1.11.2.2/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
-+/eata_dma.c/1.16/Mon Nov 5 20:16:06 2001/-ko/Tlinux_2_4_20
-+/eata_dma.h/1.3/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/eata_dma_proc.c/1.9/Tue Nov 28 03:58:51 2000/-ko/Tlinux_2_4_20
-+/eata_dma_proc.h/1.1.1.1/Sun Jun 1 03:17:38 1997/-ko/Tlinux_2_4_20
-+/eata_generic.h/1.2/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
-+/eata_pio.c/1.14/Mon Nov 5 20:16:06 2001/-ko/Tlinux_2_4_20
-+/eata_pio.h/1.2/Tue Mar 17 22:12:20 1998/-ko/Tlinux_2_4_20
-+/eata_pio_proc.c/1.3/Mon Feb 15 02:19:19 1999/-ko/Tlinux_2_4_20
-+/esp.c/1.26.2.1/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
-+/esp.h/1.11.4.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/fastlane.c/1.9.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/fastlane.h/1.3/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/fcal.c/1.7/Fri Mar 9 20:34:23 2001/-ko/Tlinux_2_4_20
-+/fcal.h/1.1/Sun Jun 13 16:33:17 1999/-ko/Tlinux_2_4_20
-+/fd_mcs.c/1.6/Mon Nov 5 20:16:06 2001/-ko/Tlinux_2_4_20
-+/fd_mcs.h/1.2/Sat Jan 29 01:42:17 2000/-ko/Tlinux_2_4_20
-+/fdomain.c/1.21.2.3/Wed Sep 11 12:45:11 2002/-ko/Tlinux_2_4_20
-+/fdomain.h/1.5.4.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/g_NCR5380.c/1.18.2.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/g_NCR5380.h/1.7.4.1/Sat Dec 29 05:38:07 2001/-ko/Tlinux_2_4_20
-+/gdth.c/1.20/Sun Dec 2 11:34:48 2001/-ko/Tlinux_2_4_20
-+/gdth.h/1.8/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
-+/gdth_ioctl.h/1.4/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
-+/gdth_proc.c/1.13.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/gdth_proc.h/1.6/Fri Oct 19 01:24:42 2001/-ko/Tlinux_2_4_20
-+/gvp11.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/gvp11.h/1.4/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/hosts.c/1.31.2.2/Wed Sep 11 12:45:12 2002/-ko/Tlinux_2_4_20
-+/hosts.h/1.18.2.2/Wed Sep 11 12:45:12 2002/-ko/Tlinux_2_4_20
-+/i60uscsi.c/1.5.2.1/Tue Feb 26 05:59:45 2002/-ko/Tlinux_2_4_20
-+/i60uscsi.h/1.6/Sun Dec 2 11:34:48 2001/-ko/Tlinux_2_4_20
-+/i91uscsi.c/1.4/Sat Sep 22 12:49:31 2001/-ko/Tlinux_2_4_20
-+/i91uscsi.h/1.3/Tue Nov 6 00:55:14 2001/-ko/Tlinux_2_4_20
-+/ibmmca.c/1.21/Thu Jun 14 04:24:08 2001/-ko/Tlinux_2_4_20
-+/ibmmca.h/1.8/Thu Apr 5 04:57:42 2001/-ko/Tlinux_2_4_20
-+/ide-scsi.c/1.22.2.3/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/ide-scsi.h/1.4/Thu May 7 03:00:53 1998/-ko/Tlinux_2_4_20
-+/imm.c/1.14.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/imm.h/1.7/Thu Apr 5 04:57:42 2001/-ko/Tlinux_2_4_20
-+/in2000.c/1.12/Mon Nov 5 20:16:07 2001/-ko/Tlinux_2_4_20
-+/in2000.h/1.9/Mon Jun 19 22:45:48 2000/-ko/Tlinux_2_4_20
-+/ini9100u.c/1.12/Mon Nov 5 20:16:07 2001/-ko/Tlinux_2_4_20
-+/ini9100u.h/1.8/Tue Nov 6 00:55:14 2001/-ko/Tlinux_2_4_20
-+/inia100.c/1.12/Mon Nov 5 20:16:07 2001/-ko/Tlinux_2_4_20
-+/inia100.h/1.7/Tue Nov 6 00:55:14 2001/-ko/Tlinux_2_4_20
-+/ips.c/1.17.2.5/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/ips.h/1.9.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/jazz_esp.c/1.10.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/jazz_esp.h/1.6/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/lasi700.c/1.2.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/lasi700.h/1.2/Mon Nov 5 20:16:07 2001/-ko/Tlinux_2_4_20
-+/mac53c94.c/1.9/Fri Mar 9 20:34:24 2001/-ko/Tlinux_2_4_20
-+/mac53c94.h/1.5/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/mac_NCR5380.c/1.4.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/mac_esp.c/1.9.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/mac_esp.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/mac_scsi.c/1.8.4.1/Tue Feb 26 05:59:45 2002/-ko/Tlinux_2_4_20
-+/mac_scsi.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/mca_53c9x.c/1.5/Tue Nov 6 07:56:04 2001/-ko/Tlinux_2_4_20
-+/mca_53c9x.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/megaraid.c/1.25.2.5/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/megaraid.h/1.12.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/mesh.c/1.12.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/mesh.h/1.5.4.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/mvme147.c/1.2/Tue Nov 6 07:56:04 2001/-ko/Tlinux_2_4_20
-+/mvme147.h/1.1/Wed Jan 10 05:27:32 2001/-ko/Tlinux_2_4_20
-+/mvme16x.c/1.7.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/mvme16x.h/1.4/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/ncr53c8xx.c/1.28.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/ncr53c8xx.h/1.11.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
-+/oktagon_esp.c/1.6.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/oktagon_esp.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/oktagon_io.S/1.1/Sat Oct 9 00:01:30 1999/-ko/Tlinux_2_4_20
-+/osst.c/1.8.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
-+/osst.h/1.3.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
-+/osst_detect.h/1.1/Wed Jan 10 17:18:01 2001/-ko/Tlinux_2_4_20
-+/osst_options.h/1.2/Wed Aug 22 03:24:49 2001/-ko/Tlinux_2_4_20
-+/pas16.c/1.9.2.2/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/pas16.h/1.4/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/pci2000.c/1.19/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/pci2000.h/1.6/Thu Mar 2 02:37:03 2000/-ko/Tlinux_2_4_20
-+/pci2220i.c/1.21/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/pci2220i.h/1.7/Thu Mar 2 02:37:03 2000/-ko/Tlinux_2_4_20
-+/pluto.c/1.14/Fri Mar 9 20:34:24 2001/-ko/Tlinux_2_4_20
-+/pluto.h/1.3/Sun Jun 13 16:33:27 1999/-ko/Tlinux_2_4_20
-+/ppa.c/1.21.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/ppa.h/1.15/Thu Apr 5 04:57:42 2001/-ko/Tlinux_2_4_20
-+/psi240i.c/1.9/Mon Nov 5 20:16:07 2001/-ko/Tlinux_2_4_20
-+/psi240i.h/1.4/Wed Feb 16 01:07:44 2000/-ko/Tlinux_2_4_20
-+/psi_chip.h/1.1/Sat Dec 6 23:54:13 1997/-ko/Tlinux_2_4_20
-+/psi_dale.h/1.4/Thu Apr 5 04:57:42 2001/-ko/Tlinux_2_4_20
-+/psi_roy.h/1.2/Sun Jun 13 16:33:28 1999/-ko/Tlinux_2_4_20
-+/ql12160_fw.h/1.1/Wed Feb 23 00:41:21 2000/-ko/Tlinux_2_4_20
-+/ql1280_fw.h/1.1/Wed Feb 23 00:41:21 2000/-ko/Tlinux_2_4_20
-+/qla1280.c/1.11/Mon Nov 5 20:16:07 2001/-ko/Tlinux_2_4_20
-+/qla1280.h/1.2/Fri Oct 19 01:24:43 2001/-ko/Tlinux_2_4_20
-+/qlogicfas.c/1.11.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/qlogicfas.h/1.3/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
-+/qlogicfc.c/1.22.2.1/Wed Jun 26 22:36:05 2002/-ko/Tlinux_2_4_20
-+/qlogicfc.h/1.7.2.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/qlogicfc_asm.c/1.5/Fri Oct 19 01:24:43 2001/-ko/Tlinux_2_4_20
-+/qlogicisp.c/1.25/Tue Nov 6 07:56:05 2001/-ko/Tlinux_2_4_20
-+/qlogicisp.h/1.4/Fri Feb 4 07:40:47 2000/-ko/Tlinux_2_4_20
-+/qlogicisp_asm.c/1.2/Sun Jun 13 16:33:30 1999/-ko/Tlinux_2_4_20
-+/qlogicpti.c/1.19/Tue Nov 6 07:56:05 2001/-ko/Tlinux_2_4_20
-+/qlogicpti.h/1.7.4.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/qlogicpti_asm.c/1.3/Sat Feb 5 06:47:29 2000/-ko/Tlinux_2_4_20
-+/script_asm.pl/1.4.4.1/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/scsi.c/1.43.2.4/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/scsi.h/1.26.2.3/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/scsi_debug.c/1.17.2.4/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/scsi_debug.h/1.4.4.3/Wed Sep 11 12:45:13 2002/-ko/Tlinux_2_4_20
-+/scsi_dma.c/1.3.4.1/Tue Feb 26 05:59:46 2002/-ko/Tlinux_2_4_20
-+/scsi_error.c/1.22.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/scsi_ioctl.c/1.28.2.1/Wed Jun 26 22:36:06 2002/-ko/Tlinux_2_4_20
-+/scsi_lib.c/1.19.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/scsi_merge.c/1.14.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/scsi_module.c/1.4/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/scsi_obsolete.c/1.15.2.1/Wed Jun 26 22:36:06 2002/-ko/Tlinux_2_4_20
-+/scsi_obsolete.h/1.2/Sat Oct 9 00:01:31 1999/-ko/Tlinux_2_4_20
-+/scsi_proc.c/1.13/Wed Aug 22 03:24:49 2001/-ko/Tlinux_2_4_20
-+/scsi_queue.c/1.9/Fri Mar 9 20:34:24 2001/-ko/Tlinux_2_4_20
-+/scsi_scan.c/1.20.2.5/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/scsi_syms.c/1.16.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/scsicam.c/1.6.4.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
-+/scsiiom.c/1.8/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
-+/sd.c/1.39.2.2/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sd.h/1.6.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/seagate.c/1.17.2.1/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/seagate.h/1.5/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/sg.c/1.28.2.3/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sgiwd93.c/1.28.2.5/Sat Jan 26 00:17:41 2002/-ko/Tlinux_2_4_20
-+/sgiwd93.h/1.6/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/sim710.c/1.7.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/sim710.h/1.3.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sim710.scr/1.1.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sim710_d.h/1.3/Fri Feb 4 07:40:47 2000/-ko/Tlinux_2_4_20
-+/sim710_u.h/1.1.4.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sr.c/1.33.2.3/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/sr.h/1.6/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
-+/sr_ioctl.c/1.24.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/sr_vendor.c/1.14/Thu Aug 23 22:24:40 2001/-ko/Tlinux_2_4_20
-+/st.c/1.38.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/st.h/1.15.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/st_options.h/1.7.4.1/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/sun3_NCR5380.c/1.3.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sun3_scsi.c/1.8.2.2/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/sun3_scsi.h/1.2/Thu Feb 24 00:13:09 2000/-ko/Tlinux_2_4_20
-+/sun3x_esp.c/1.5.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/sun3x_esp.h/1.2/Sat Jan 29 01:42:18 2000/-ko/Tlinux_2_4_20
-+/sym53c416.c/1.9/Mon Nov 5 20:16:09 2001/-ko/Tlinux_2_4_20
-+/sym53c416.h/1.4/Wed Aug 22 03:24:50 2001/-ko/Tlinux_2_4_20
-+/sym53c8xx.c/1.22.2.3/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/sym53c8xx.h/1.6.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/sym53c8xx_comm.h/1.9.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/sym53c8xx_defs.h/1.12.2.1/Sat Dec 29 05:38:08 2001/-ko/Tlinux_2_4_20
-+/t128.c/1.11.2.1/Sat Dec 29 05:38:09 2001/-ko/Tlinux_2_4_20
-+/t128.h/1.6/Thu Oct 5 01:18:57 2000/-ko/Tlinux_2_4_20
-+/tmscsim.c/1.18.2.1/Sat Dec 29 05:38:09 2001/-ko/Tlinux_2_4_20
-+/tmscsim.h/1.9/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
-+/u14-34f.c/1.17.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/u14-34f.h/1.10.2.2/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/ultrastor.c/1.10.2.1/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/ultrastor.h/1.2/Tue Mar 17 22:12:44 1998/-ko/Tlinux_2_4_20
-+/wd33c93.c/1.19.2.2/Wed Jun 26 22:36:07 2002/-ko/Tlinux_2_4_20
-+/wd33c93.h/1.8.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
-+/wd7000.c/1.18/Mon Nov 5 20:16:09 2001/-ko/Tlinux_2_4_20
-+/wd7000.h/1.5/Sat Jan 29 01:42:19 2000/-ko/Tlinux_2_4_20
-+/zalon7xx.c/1.1.2.1/Wed Sep 11 12:45:14 2002/-ko/Tlinux_2_4_20
-+/zalon7xx.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+D/aacraid////
-+D/aic7xxx////
-+D/aic7xxx_old////
-+D/dpt////
-+D/pcmcia////
-+D/sym53c8xx_2////
-diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Repository
---- linux-2.4.20/drivers/scsi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Repository 2005-01-06 23:04:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi
-diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Root
---- linux-2.4.20/drivers/scsi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Root 2005-01-06 23:04:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Tag
---- linux-2.4.20/drivers/scsi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/CVS/Tag 2005-01-06 23:04:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/.cvsignore
---- linux-2.4.20/drivers/scsi/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/.cvsignore 2001-11-28 07:07:35.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/scsi/dec_esp.c linux-2.4.20-mipscvs-20050106/drivers/scsi/dec_esp.c
---- linux-2.4.20/drivers/scsi/dec_esp.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dec_esp.c 2003-01-30 08:25:16.000000000 -0600
-@@ -17,6 +17,8 @@
- * data.
- * 20001005 - Initialization fixes for 2.4.0-test9
- * Florian Lohoff <flo@rfc822.org>
-+ *
-+ * Copyright (C) 2002, 2003 Maciej W. Rozycki
- */
-
- #include <linux/kernel.h>
-@@ -26,56 +28,48 @@
- #include <linux/slab.h>
- #include <linux/blk.h>
- #include <linux/proc_fs.h>
-+#include <linux/spinlock.h>
- #include <linux/stat.h>
-
--#include "scsi.h"
--#include "hosts.h"
--#include "NCR53C9x.h"
--#include "dec_esp.h"
--
--#include <asm/irq.h>
--#include <asm/jazz.h>
--#include <asm/jazzdma.h>
- #include <asm/dma.h>
--
-+#include <asm/irq.h>
- #include <asm/pgtable.h>
-+#include <asm/system.h>
-
--#include <asm/dec/tc.h>
- #include <asm/dec/interrupts.h>
-+#include <asm/dec/ioasic.h>
- #include <asm/dec/ioasic_addrs.h>
- #include <asm/dec/ioasic_ints.h>
- #include <asm/dec/machtype.h>
-+#include <asm/dec/tc.h>
-+
-+#include "scsi.h"
-+#include "hosts.h"
-+#include "NCR53C9x.h"
-+#include "dec_esp.h"
-
--#include <asm/system.h>
-
--/*
-- * Once upon a time the pmaz code used to be working but
-- * it hasn't been maintained for quite some time.
-- * It isn't working anymore but I'll leave here as a
-- * starting point. #define this an be prepared for tons
-- * of warnings and errors :)
-- */
- static int dma_bytes_sent(struct NCR_ESP *esp, int fifo_count);
- static void dma_drain(struct NCR_ESP *esp);
- static int dma_can_transfer(struct NCR_ESP *esp, Scsi_Cmnd * sp);
- static void dma_dump_state(struct NCR_ESP *esp);
--static void dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length);
--static void dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length);
-+static void dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length);
-+static void dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length);
- static void dma_ints_off(struct NCR_ESP *esp);
- static void dma_ints_on(struct NCR_ESP *esp);
- static int dma_irq_p(struct NCR_ESP *esp);
- static int dma_ports_p(struct NCR_ESP *esp);
--static void dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write);
-+static void dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write);
- static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp);
- static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, Scsi_Cmnd * sp);
- static void dma_advance_sg(Scsi_Cmnd * sp);
-
- static void pmaz_dma_drain(struct NCR_ESP *esp);
--static void pmaz_dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length);
--static void pmaz_dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length);
-+static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length);
-+static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length);
- static void pmaz_dma_ints_off(struct NCR_ESP *esp);
- static void pmaz_dma_ints_on(struct NCR_ESP *esp);
--static void pmaz_dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write);
-+static void pmaz_dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write);
- static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp);
-
- #define TC_ESP_RAM_SIZE 0x20000
-@@ -86,7 +80,7 @@
- #define TC_ESP_DMAR_WRITE 0x80000000
- #define TC_ESP_DMA_ADDR(x) ((unsigned)(x) & TC_ESP_DMAR_MASK)
-
--__u32 esp_virt_buffer;
-+u32 esp_virt_buffer;
- int scsi_current_length;
-
- volatile unsigned char cmd_buffer[16];
-@@ -96,13 +90,6 @@
- * via PIO.
- */
-
--volatile unsigned long *scsi_dma_ptr;
--volatile unsigned long *scsi_next_ptr;
--volatile unsigned long *scsi_scr;
--volatile unsigned long *ioasic_ssr;
--volatile unsigned long *scsi_sdr0;
--volatile unsigned long *scsi_sdr1;
--
- static void scsi_dma_merr_int(int, void *, struct pt_regs *);
- static void scsi_dma_err_int(int, void *, struct pt_regs *);
- static void scsi_dma_int(int, void *, struct pt_regs *);
-@@ -122,17 +109,10 @@
- if (IOASIC) {
- esp_dev = 0;
- esp = esp_allocate(tpnt, (void *) esp_dev);
--
-- scsi_dma_ptr = (unsigned long *) (system_base + IOCTL + SCSI_DMA_P);
-- scsi_next_ptr = (unsigned long *) (system_base + IOCTL + SCSI_DMA_BP);
-- scsi_scr = (unsigned long *) (system_base + IOCTL + SCSI_SCR);
-- ioasic_ssr = (unsigned long *) (system_base + IOCTL + SSR);
-- scsi_sdr0 = (unsigned long *) (system_base + IOCTL + SCSI_SDR0);
-- scsi_sdr1 = (unsigned long *) (system_base + IOCTL + SCSI_SDR1);
-
- /* Do command transfer with programmed I/O */
- esp->do_pio_cmds = 1;
--
-+
- /* Required functions */
- esp->dma_bytes_sent = &dma_bytes_sent;
- esp->dma_can_transfer = &dma_can_transfer;
-@@ -155,7 +135,7 @@
- esp->dma_reset = 0;
- esp->dma_led_off = 0;
- esp->dma_led_on = 0;
--
-+
- /* virtual DMA functions */
- esp->dma_mmu_get_scsi_one = &dma_mmu_get_scsi_one;
- esp->dma_mmu_get_scsi_sgl = &dma_mmu_get_scsi_sgl;
-@@ -167,47 +147,42 @@
- /* SCSI chip speed */
- esp->cfreq = 25000000;
-
-- /*
-- * we don't give the address of DMA channel, but the number
-- * of DMA channel, so we can use the jazz DMA functions
-- *
-- */
-- esp->dregs = JAZZ_SCSI_DMA;
--
-+ esp->dregs = 0;
-+
- /* ESP register base */
- esp->eregs = (struct ESP_regs *) (system_base + SCSI);
--
-+
- /* Set the command buffer */
- esp->esp_command = (volatile unsigned char *) cmd_buffer;
--
-+
- /* get virtual dma address for command buffer */
-- esp->esp_command_dvma = (__u32) KSEG1ADDR((volatile unsigned char *) cmd_buffer);
--
-+ esp->esp_command_dvma = virt_to_phys(cmd_buffer);
-+
- esp->irq = dec_interrupt[DEC_IRQ_ASC];
-
- esp->scsi_id = 7;
--
-+
- /* Check for differential SCSI-bus */
- esp->diff = 0;
-
- esp_initialize(esp);
-
-- if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
-+ if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
- "ncr53c94", NULL))
- goto err_dealloc;
- if (request_irq(dec_interrupt[DEC_IRQ_ASC_MERR],
-- scsi_dma_merr_int, SA_INTERRUPT,
-+ scsi_dma_merr_int, SA_INTERRUPT,
- "ncr53c94 error", NULL))
- goto err_free_irq;
- if (request_irq(dec_interrupt[DEC_IRQ_ASC_ERR],
-- scsi_dma_err_int, SA_INTERRUPT,
-+ scsi_dma_err_int, SA_INTERRUPT,
- "ncr53c94 overrun", NULL))
- goto err_free_irq_merr;
- if (request_irq(dec_interrupt[DEC_IRQ_ASC_DMA],
-- scsi_dma_int, SA_INTERRUPT,
-+ scsi_dma_int, SA_INTERRUPT,
- "ncr53c94 dma", NULL))
- goto err_free_irq_err;
--
-+
- }
-
- if (TURBOCHANNEL) {
-@@ -220,7 +195,7 @@
- mem_start = get_tc_base_addr(slot);
-
- /* Store base addr into esp struct */
-- esp->slot = mem_start;
-+ esp->slot = PHYSADDR(mem_start);
-
- esp->dregs = 0;
- esp->eregs = (struct ESP_regs *) (mem_start + DEC_SCSI_SREG);
-@@ -230,7 +205,7 @@
- esp->esp_command = (volatile unsigned char *) pmaz_cmd_buffer;
-
- /* get virtual dma address for command buffer */
-- esp->esp_command_dvma = (__u32) KSEG0ADDR((volatile unsigned char *) pmaz_cmd_buffer);
-+ esp->esp_command_dvma = virt_to_phys(pmaz_cmd_buffer);
-
- esp->cfreq = get_tc_speed();
-
-@@ -265,7 +240,7 @@
- esp->dma_mmu_release_scsi_sgl = 0;
- esp->dma_advance_sg = 0;
-
-- if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
-+ if (request_irq(esp->irq, esp_intr, SA_INTERRUPT,
- "PMAZ_AA", NULL)) {
- esp_deallocate(esp);
- release_tc_card(slot);
-@@ -310,40 +285,53 @@
-
- static void scsi_dma_int(int irq, void *dev_id, struct pt_regs *regs)
- {
-+ u32 scsi_next_ptr;
-+
-+ scsi_next_ptr = ioasic_read(SCSI_DMA_P);
-+
- /* next page */
-- *scsi_next_ptr = ((*scsi_dma_ptr + PAGE_SIZE) & PAGE_MASK) << 3;
-+ scsi_next_ptr = (((scsi_next_ptr >> 3) + PAGE_SIZE) & PAGE_MASK) << 3;
-+ ioasic_write(SCSI_DMA_BP, scsi_next_ptr);
- fast_iob();
- }
-
- static int dma_bytes_sent(struct NCR_ESP *esp, int fifo_count)
- {
-- return fifo_count;
-+ return fifo_count;
- }
-
- static void dma_drain(struct NCR_ESP *esp)
- {
-- unsigned long nw = *scsi_scr;
-- unsigned short *p = KSEG1ADDR((unsigned short *) ((*scsi_dma_ptr) >> 3));
-+ u32 nw, data0, data1, scsi_data_ptr;
-+ u16 *p;
-
-- /*
-+ nw = ioasic_read(SCSI_SCR);
-+
-+ /*
- * Is there something in the dma buffers left?
-- */
-+ */
- if (nw) {
-+ scsi_data_ptr = ioasic_read(SCSI_DMA_P) >> 3;
-+ p = phys_to_virt(scsi_data_ptr);
- switch (nw) {
- case 1:
-- *p = (unsigned short) *scsi_sdr0;
-+ data0 = ioasic_read(SCSI_SDR0);
-+ p[0] = data0 & 0xffff;
- break;
- case 2:
-- *p++ = (unsigned short) (*scsi_sdr0);
-- *p = (unsigned short) ((*scsi_sdr0) >> 16);
-+ data0 = ioasic_read(SCSI_SDR0);
-+ p[0] = data0 & 0xffff;
-+ p[1] = (data0 >> 16) & 0xffff;
- break;
- case 3:
-- *p++ = (unsigned short) (*scsi_sdr0);
-- *p++ = (unsigned short) ((*scsi_sdr0) >> 16);
-- *p = (unsigned short) (*scsi_sdr1);
-+ data0 = ioasic_read(SCSI_SDR0);
-+ data1 = ioasic_read(SCSI_SDR1);
-+ p[0] = data0 & 0xffff;
-+ p[1] = (data0 >> 16) & 0xffff;
-+ p[2] = data1 & 0xffff;
- break;
- default:
-- printk("Strange: %d words in dma buffer left\n", (int) nw);
-+ printk("Strange: %d words in dma buffer left\n", nw);
- break;
- }
- }
-@@ -356,44 +344,74 @@
-
- static void dma_dump_state(struct NCR_ESP *esp)
- {
--/*
-- ESPLOG(("esp%d: dma -- enable <%08x> residue <%08x\n",
-- esp->esp_id, vdma_get_enable((int)esp->dregs), vdma_get_resdiue((int)esp->dregs)));
-- */
- }
-
--static void dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length)
-+static void dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
- {
-+ u32 scsi_next_ptr, ioasic_ssr;
-+ unsigned long flags;
-+
- if (vaddress & 3)
-- panic("dec_efs.c: unable to handle partial word transfers, yet...");
-+ panic("dec_esp.c: unable to handle partial word transfers, yet...");
-
- dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length);
-
-- *ioasic_ssr &= ~SCSI_DMA_EN;
-- *scsi_scr = 0;
-- *scsi_dma_ptr = vaddress << 3;
-+ spin_lock_irqsave(&ioasic_ssr_lock, flags);
-+
-+ fast_mb();
-+ ioasic_ssr = ioasic_read(SSR);
-+
-+ ioasic_ssr &= ~SCSI_DMA_EN;
-+ ioasic_write(SSR, ioasic_ssr);
-+
-+ fast_wmb();
-+ ioasic_write(SCSI_SCR, 0);
-+ ioasic_write(SCSI_DMA_P, vaddress << 3);
-
- /* prepare for next page */
-- *scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
-- *ioasic_ssr |= (SCSI_DMA_DIR | SCSI_DMA_EN);
-+ scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
-+ ioasic_write(SCSI_DMA_BP, scsi_next_ptr);
-+
-+ ioasic_ssr |= (SCSI_DMA_DIR | SCSI_DMA_EN);
-+ fast_wmb();
-+ ioasic_write(SSR, ioasic_ssr);
-+
- fast_iob();
-+ spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
- }
-
--static void dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length)
-+static void dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
- {
-+ u32 scsi_next_ptr, ioasic_ssr;
-+ unsigned long flags;
-+
- if (vaddress & 3)
-- panic("dec_efs.c: unable to handle partial word transfers, yet...");
-+ panic("dec_esp.c: unable to handle partial word transfers, yet...");
-
- dma_cache_wback_inv((unsigned long) phys_to_virt(vaddress), length);
-
-- *ioasic_ssr &= ~(SCSI_DMA_DIR | SCSI_DMA_EN);
-- *scsi_scr = 0;
-- *scsi_dma_ptr = vaddress << 3;
-+ spin_lock_irqsave(&ioasic_ssr_lock, flags);
-+
-+ fast_mb();
-+ ioasic_ssr = ioasic_read(SSR);
-+
-+ ioasic_ssr &= ~(SCSI_DMA_DIR | SCSI_DMA_EN);
-+ ioasic_write(SSR, ioasic_ssr);
-+
-+ fast_wmb();
-+ ioasic_write(SCSI_SCR, 0);
-+ ioasic_write(SCSI_DMA_P, vaddress << 3);
-
- /* prepare for next page */
-- *scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
-- *ioasic_ssr |= SCSI_DMA_EN;
-+ scsi_next_ptr = ((vaddress + PAGE_SIZE) & PAGE_MASK) << 3;
-+ ioasic_write(SCSI_DMA_BP, scsi_next_ptr);
-+
-+ ioasic_ssr |= SCSI_DMA_EN;
-+ fast_wmb();
-+ ioasic_write(SSR, ioasic_ssr);
-+
- fast_iob();
-+ spin_unlock_irqrestore(&ioasic_ssr_lock, flags);
- }
-
- static void dma_ints_off(struct NCR_ESP *esp)
-@@ -408,71 +426,67 @@
-
- static int dma_irq_p(struct NCR_ESP *esp)
- {
-- return (esp->eregs->esp_status & ESP_STAT_INTR);
-+ return (esp->eregs->esp_status & ESP_STAT_INTR);
- }
-
- static int dma_ports_p(struct NCR_ESP *esp)
- {
--/*
-- * FIXME: what's this good for?
-- */
-+ /*
-+ * FIXME: what's this good for?
-+ */
- return 1;
- }
-
--static void dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write)
-+static void dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write)
- {
-- /*
-- * On the Sparc, DMA_ST_WRITE means "move data from device to memory"
-- * so when (write) is true, it actually means READ!
-- */
-- if (write) {
-- dma_init_read(esp, addr, count);
-- } else {
-- dma_init_write(esp, addr, count);
-- }
-+ /*
-+ * DMA_ST_WRITE means "move data from device to memory"
-+ * so when (write) is true, it actually means READ!
-+ */
-+ if (write)
-+ dma_init_read(esp, addr, count);
-+ else
-+ dma_init_write(esp, addr, count);
- }
-
--/*
-- * These aren't used yet
-- */
- static void dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp)
- {
-- sp->SCp.have_data_in = PHYSADDR(sp->SCp.buffer);
-- sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.have_data_in);
-+ sp->SCp.ptr = (char *)virt_to_phys(sp->request_buffer);
- }
-
- static void dma_mmu_get_scsi_sgl(struct NCR_ESP *esp, Scsi_Cmnd * sp)
- {
-- int sz = sp->SCp.buffers_residual;
-- struct mmu_sglist *sg = (struct mmu_sglist *) sp->SCp.buffer;
-+ int sz = sp->SCp.buffers_residual;
-+ struct scatterlist *sg = sp->SCp.buffer;
-
-- while (sz >= 0) {
-- sg[sz].dvma_addr = PHYSADDR(sg[sz].addr);
-- sz--;
-- }
-- sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.buffer->dma_address);
-+ while (sz >= 0) {
-+ sg[sz].dma_address = virt_to_phys(sg[sz].address);
-+ sz--;
-+ }
-+ sp->SCp.ptr = (char *)(sp->SCp.buffer->dma_address);
- }
-
- static void dma_advance_sg(Scsi_Cmnd * sp)
- {
-- sp->SCp.ptr = (char *) ((unsigned long) sp->SCp.buffer->dma_address);
-+ sp->SCp.ptr = (char *)(sp->SCp.buffer->dma_address);
- }
-
- static void pmaz_dma_drain(struct NCR_ESP *esp)
- {
-- memcpy((void *) (KSEG0ADDR(esp_virt_buffer)),
-- (void *) ( esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
-+ memcpy(phys_to_virt(esp_virt_buffer),
-+ (void *)KSEG1ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
- scsi_current_length);
- }
-
--static void pmaz_dma_init_read(struct NCR_ESP *esp, __u32 vaddress, int length)
-+static void pmaz_dma_init_read(struct NCR_ESP *esp, u32 vaddress, int length)
- {
-- volatile int *dmareg = (volatile int *) (esp->slot + DEC_SCSI_DMAREG);
-+ volatile u32 *dmareg =
-+ (volatile u32 *)KSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
-
- if (length > ESP_TGT_DMA_SIZE)
- length = ESP_TGT_DMA_SIZE;
-
-- *dmareg = TC_ESP_DMA_ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE);
-+ *dmareg = TC_ESP_DMA_ADDR(ESP_TGT_DMA_SIZE);
-
- iob();
-
-@@ -480,15 +494,16 @@
- scsi_current_length = length;
- }
-
--static void pmaz_dma_init_write(struct NCR_ESP *esp, __u32 vaddress, int length)
-+static void pmaz_dma_init_write(struct NCR_ESP *esp, u32 vaddress, int length)
- {
-- volatile int *dmareg = (volatile int *) ( esp->slot + DEC_SCSI_DMAREG );
-+ volatile u32 *dmareg =
-+ (volatile u32 *)KSEG1ADDR(esp->slot + DEC_SCSI_DMAREG);
-
-- memcpy((void *) (esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
-- KSEG0ADDR((void *) vaddress), length);
-+ memcpy((void *)KSEG1ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE),
-+ phys_to_virt(vaddress), length);
-
-- *dmareg = TC_ESP_DMAR_WRITE |
-- TC_ESP_DMA_ADDR(esp->slot + DEC_SCSI_SRAM + ESP_TGT_DMA_SIZE);
-+ wmb();
-+ *dmareg = TC_ESP_DMAR_WRITE | TC_ESP_DMA_ADDR(ESP_TGT_DMA_SIZE);
-
- iob();
- }
-@@ -501,22 +516,19 @@
- {
- }
-
--static void pmaz_dma_setup(struct NCR_ESP *esp, __u32 addr, int count, int write)
-+static void pmaz_dma_setup(struct NCR_ESP *esp, u32 addr, int count, int write)
- {
- /*
-- * On the Sparc, DMA_ST_WRITE means "move data from device to memory"
-+ * DMA_ST_WRITE means "move data from device to memory"
- * so when (write) is true, it actually means READ!
- */
-- if (write) {
-+ if (write)
- pmaz_dma_init_read(esp, addr, count);
-- } else {
-+ else
- pmaz_dma_init_write(esp, addr, count);
-- }
- }
-
- static void pmaz_dma_mmu_get_scsi_one(struct NCR_ESP *esp, Scsi_Cmnd * sp)
- {
-- sp->SCp.have_data_in = (int) sp->SCp.ptr =
-- (char *) KSEG0ADDR((sp->request_buffer));
-+ sp->SCp.ptr = (char *)virt_to_phys(sp->request_buffer);
- }
--
-diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Entries
---- linux-2.4.20/drivers/scsi/dpt/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Entries 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1,8 @@
-+/dpt_osdutil.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/dpti_i2o.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/dpti_ioctl.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/dptsig.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/osd_defs.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/osd_util.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+/sys_info.h/1.1/Fri Oct 19 01:24:46 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Repository
---- linux-2.4.20/drivers/scsi/dpt/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Repository 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/dpt
-diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Root
---- linux-2.4.20/drivers/scsi/dpt/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Root 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/dpt/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Tag
---- linux-2.4.20/drivers/scsi/dpt/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/dpt/CVS/Tag 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/NCR53C9x.c linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.c
---- linux-2.4.20/drivers/scsi/NCR53C9x.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.c 2002-11-25 06:18:58.000000000 -0600
-@@ -917,7 +917,7 @@
- if (esp->dma_mmu_get_scsi_one)
- esp->dma_mmu_get_scsi_one(esp, sp);
- else
-- sp->SCp.have_data_in = (int) sp->SCp.ptr =
-+ sp->SCp.ptr =
- (char *) virt_to_phys(sp->request_buffer);
- } else {
- sp->SCp.buffer = (struct scatterlist *) sp->buffer;
-diff -urNd -urNd linux-2.4.20/drivers/scsi/NCR53C9x.h linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.h
---- linux-2.4.20/drivers/scsi/NCR53C9x.h 2001-09-14 16:40:00.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/NCR53C9x.h 2002-07-24 12:55:47.000000000 -0500
-@@ -144,12 +144,7 @@
-
- #ifndef MULTIPLE_PAD_SIZES
-
--#ifdef CONFIG_CPU_HAS_WB
--#include <asm/wbflush.h>
--#define esp_write(__reg, __val) do{(__reg) = (__val); wbflush();} while(0)
--#else
--#define esp_write(__reg, __val) ((__reg) = (__val))
--#endif
-+#define esp_write(__reg, __val) do{(__reg) = (__val); iob();} while(0)
- #define esp_read(__reg) (__reg)
-
- struct ESP_regs {
-diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Entries
---- linux-2.4.20/drivers/scsi/pcmcia/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Entries 2005-01-06 23:04:46.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.2/Sun Jun 24 22:16:41 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.3/Thu Aug 23 22:24:41 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Thu Aug 23 22:24:41 2001/-ko/Tlinux_2_4_20
-+/aha152x_stub.c/1.6.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+/fdomain_stub.c/1.5.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+/nsp_cs.c/1.5/Tue Nov 6 00:55:16 2001/-ko/Tlinux_2_4_20
-+/nsp_cs.h/1.3/Tue Nov 6 00:55:16 2001/-ko/Tlinux_2_4_20
-+/nsp_debug.c/1.4/Tue Nov 6 00:55:16 2001/-ko/Tlinux_2_4_20
-+/nsp_io.h/1.3/Tue Nov 6 00:55:16 2001/-ko/Tlinux_2_4_20
-+/nsp_message.c/1.3/Tue Nov 6 00:55:16 2001/-ko/Tlinux_2_4_20
-+/qlogic_stub.c/1.5.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Repository
---- linux-2.4.20/drivers/scsi/pcmcia/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Repository 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/pcmcia
-diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Root
---- linux-2.4.20/drivers/scsi/pcmcia/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Root 2005-01-06 23:04:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Tag
---- linux-2.4.20/drivers/scsi/pcmcia/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/CVS/Tag 2005-01-06 23:04:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/pcmcia/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/.cvsignore
---- linux-2.4.20/drivers/scsi/pcmcia/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/pcmcia/.cvsignore 2001-06-24 17:16:41.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Entries
---- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Entries 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1,20 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/ChangeLog.txt/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+/Documentation.txt/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/sym53c8xx.h/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/sym_conf.h/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/sym_defs.h/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/sym_fw.c/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/sym_fw.h/1.1/Sun Dec 2 11:34:49 2001/-ko/Tlinux_2_4_20
-+/sym_fw1.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/sym_fw2.h/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/sym_glue.c/1.1.2.2/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/sym_glue.h/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+/sym_hipd.c/1.1.2.2/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/sym_hipd.h/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+/sym_malloc.c/1.1.2.1/Wed Sep 11 12:45:15 2002/-ko/Tlinux_2_4_20
-+/sym_misc.c/1.1/Sun Dec 2 11:34:50 2001/-ko/Tlinux_2_4_20
-+/sym_misc.h/1.1/Sun Dec 2 11:34:50 2001/-ko/Tlinux_2_4_20
-+/sym_nvram.c/1.1.2.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Repository
---- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Repository 2005-01-06 23:04:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/scsi/sym53c8xx_2
-diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Root
---- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Root 2005-01-06 23:04:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Tag
---- linux-2.4.20/drivers/scsi/sym53c8xx_2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/CVS/Tag 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/scsi/sym53c8xx_2/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/.cvsignore
---- linux-2.4.20/drivers/scsi/sym53c8xx_2/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/scsi/sym53c8xx_2/.cvsignore 2001-12-02 05:34:49.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Entries
---- linux-2.4.20/drivers/sgi/char/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Entries 2005-01-06 23:04:50.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.2/Tue Mar 17 22:12:46 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.14.2.2/Fri Nov 8 23:15:48 2002/-ko/Tlinux_2_4_20
-+/ds1286.c/1.14.2.3/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/gconsole.h/1.5.8.2/Tue Jan 28 02:06:49 2003/-ko/Tlinux_2_4_20
-+/graphics.c/1.30.2.3/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/graphics.h/1.9.6.2/Thu Dec 19 12:58:33 2002/-ko/Tlinux_2_4_20
-+/newport.c/1.14.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/rrm.c/1.6.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/sgicons.c/1.13.2.2/Thu Dec 19 13:44:19 2002/-ko/Tlinux_2_4_20
-+/sgiserial.c/1.33.2.8/Thu Jan 9 22:46:09 2003/-ko/Tlinux_2_4_20
-+/sgiserial.h/1.6.4.4/Thu Jan 9 22:46:09 2003/-ko/Tlinux_2_4_20
-+/shmiq.c/1.28.2.2/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/streamable.c/1.13.4.4/Wed Dec 18 21:47:41 2002/-ko/Tlinux_2_4_20
-+/usema.c/1.22.2.3/Wed Dec 18 19:11:09 2002/-ko/Tlinux_2_4_20
-+/usema.h/1.1.6.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Repository
---- linux-2.4.20/drivers/sgi/char/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Repository 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sgi/char
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Root
---- linux-2.4.20/drivers/sgi/char/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Root 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Tag
---- linux-2.4.20/drivers/sgi/char/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/CVS/Tag 2005-01-06 23:04:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sgi/char/.cvsignore
---- linux-2.4.20/drivers/sgi/char/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/.cvsignore 1998-03-17 16:12:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/ds1286.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/ds1286.c
---- linux-2.4.20/drivers/sgi/char/ds1286.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/ds1286.c 2002-12-18 13:11:09.000000000 -0600
-@@ -280,19 +280,19 @@
- */
-
- static struct file_operations ds1286_fops = {
-- llseek: no_llseek,
-- read: ds1286_read,
-- poll: ds1286_poll,
-- ioctl: ds1286_ioctl,
-- open: ds1286_open,
-- release: ds1286_release,
-+ .llseek = no_llseek,
-+ .read = ds1286_read,
-+ .poll = ds1286_poll,
-+ .ioctl = ds1286_ioctl,
-+ .open = ds1286_open,
-+ .release = ds1286_release,
- };
-
- static struct miscdevice ds1286_dev=
- {
-- RTC_MINOR,
-- "rtc",
-- &ds1286_fops
-+ .minor = RTC_MINOR,
-+ .name = "rtc",
-+ .fops = &ds1286_fops,
- };
-
- int __init ds1286_init(void)
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/gconsole.h linux-2.4.20-mipscvs-20050106/drivers/sgi/char/gconsole.h
---- linux-2.4.20/drivers/sgi/char/gconsole.h 1997-12-10 12:31:11.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/gconsole.h 2003-01-27 20:06:49.000000000 -0600
-@@ -1,6 +1,10 @@
-+#ifndef _SGI_GCONSOLE_H
-+#define _SGI_GCONSOLE_H
-+
-+
- /*
- * This is a temporary measure, we should eventually migrate to
-- * Gert's generic graphic console code.
-+ * Geert's generic graphic console code.
- */
-
- #define cmapsz 8192
-@@ -31,3 +35,5 @@
-
- extern void disable_gconsole (void);
- extern void enable_gconsole (void);
-+
-+#endif /* _SGI_GCONSOLE */
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/graphics.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.c
---- linux-2.4.20/drivers/sgi/char/graphics.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.c 2002-12-18 13:11:09.000000000 -0600
-@@ -258,7 +258,7 @@
- */
-
- static struct vm_operations_struct graphics_mmap = {
-- nopage: sgi_graphics_nopage, /* our magic no-page fault handler */
-+ .nopage = sgi_graphics_nopage, /* our magic no-page fault handler */
- };
-
- int
-@@ -291,20 +291,24 @@
- #endif
-
- struct file_operations sgi_graphics_fops = {
-- ioctl: sgi_graphics_ioctl,
-- mmap: sgi_graphics_mmap,
-- open: sgi_graphics_open,
-- release: sgi_graphics_close,
-+ .ioctl = sgi_graphics_ioctl,
-+ .mmap = sgi_graphics_mmap,
-+ .open = sgi_graphics_open,
-+ .release = sgi_graphics_close,
- };
-
- /* /dev/graphics */
- static struct miscdevice dev_graphics = {
-- SGI_GRAPHICS_MINOR, "sgi-graphics", &sgi_graphics_fops
-+ .minor = SGI_GRAPHICS_MINOR,
-+ .name = "sgi-graphics",
-+ .fops = &sgi_graphics_fops,
- };
-
- /* /dev/opengl */
- static struct miscdevice dev_opengl = {
-- SGI_OPENGL_MINOR, "sgi-opengl", &sgi_graphics_fops
-+ .minor = SGI_OPENGL_MINOR,
-+ .name = "sgi-opengl",
-+ .fops = &sgi_graphics_fops,
- };
-
- /* This is called later from the misc-init routine */
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/graphics.h linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.h
---- linux-2.4.20/drivers/sgi/char/graphics.h 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/graphics.h 2002-12-19 06:58:33.000000000 -0600
-@@ -1,3 +1,6 @@
-+#ifndef _SGI_GRAPHICS_H
-+#define _SGI_GRAPHICS_H
-+
- #define MAXCARDS 4
-
- struct graphics_ops {
-@@ -25,3 +28,5 @@
-
- void shmiq_init (void);
- void streamable_init (void);
-+
-+#endif /* _SGI_GRAPHICS_H */
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/Makefile linux-2.4.20-mipscvs-20050106/drivers/sgi/char/Makefile
---- linux-2.4.20/drivers/sgi/char/Makefile 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/Makefile 2002-11-08 17:15:48.000000000 -0600
-@@ -9,10 +9,10 @@
-
- O_TARGET := sgichar.o
-
--export-objs := newport.o rrm.o shmiq.o sgicons.o usema.o
-+export-objs := newport.o rrm.o shmiq.o sgicons.o usema.o rrm.o
- obj-y := newport.o shmiq.o sgicons.o usema.o streamable.o
-
--obj-$(CONFIG_SGI_SERIAL) += sgiserial.o
-+obj-$(CONFIG_IP22_SERIAL) += sgiserial.o
- obj-$(CONFIG_SGI_DS1286) += ds1286.o
- obj-$(CONFIG_SGI_NEWPORT_GFX) += graphics.o rrm.o
-
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/sgicons.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgicons.c
---- linux-2.4.20/drivers/sgi/char/sgicons.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgicons.c 2002-12-19 07:44:19.000000000 -0600
-@@ -14,8 +14,8 @@
- #include "gconsole.h"
-
- /* This is the system graphics console (the first adapter found) */
--struct console_ops *gconsole = 0;
--struct console_ops *real_gconsole = 0;
-+struct console_ops *gconsole;
-+struct console_ops *real_gconsole;
-
- void
- enable_gconsole (void)
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/sgiserial.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.c
---- linux-2.4.20/drivers/sgi/char/sgiserial.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.c 2003-01-09 16:46:09.000000000 -0600
-@@ -139,7 +139,7 @@
- * buffer across all the serial ports, since it significantly saves
- * memory if large numbers of serial ports are open.
- */
--static unsigned char tmp_buf[4096]; /* This is cheating */
-+static unsigned char tmp_buf[PAGE_SIZE]; /* This is cheating */
- static DECLARE_MUTEX(tmp_buf_sem);
-
- static inline int serial_paranoia_check(struct sgi_serial *info,
-@@ -785,8 +785,7 @@
- */
- static void change_speed(struct sgi_serial *info)
- {
-- unsigned short port;
-- unsigned cflag;
-+ unsigned int port, cflag;
- int i;
- int brg;
-
-@@ -2269,12 +2268,12 @@
- }
-
- static struct console sgi_console_driver = {
-- name: "ttyS",
-- write: zs_console_write,
-- device: zs_console_device,
-- setup: zs_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "ttyS",
-+ .write = zs_console_write,
-+ .device = zs_console_device,
-+ .setup = zs_console_setup,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/sgiserial.h linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.h
---- linux-2.4.20/drivers/sgi/char/sgiserial.h 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/sgiserial.h 2003-01-09 16:46:09.000000000 -0600
-@@ -33,7 +33,7 @@
- struct serial_struct {
- int type;
- int line;
-- int port;
-+ unsigned int port;
- int irq;
- int flags;
- int xmit_fifo_size;
-@@ -129,7 +129,7 @@
-
- int magic;
- int baud_base;
-- int port;
-+ unsigned int port;
- int irq;
- int flags; /* defined in tty.h */
- int type; /* UART type */
-@@ -166,9 +166,9 @@
- #define SERIAL_MAGIC 0x5301
-
- /*
-- * The size of the serial xmit buffer is 1 page, or 4096 bytes
-+ * The size of the serial xmit buffer is 1 page.
- */
--#define SERIAL_XMIT_SIZE 4096
-+#define SERIAL_XMIT_SIZE PAGE_SIZE
-
- /*
- * Events are used to schedule things to happen at timer-interrupt
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/shmiq.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/shmiq.c
---- linux-2.4.20/drivers/sgi/char/shmiq.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/shmiq.c 2002-11-06 19:47:46.000000000 -0600
-@@ -309,7 +309,7 @@
- }
-
- static struct vm_operations_struct qcntl_mmap = {
-- nopage: shmiq_nopage, /* our magic no-page fault handler */
-+ .nopage = shmiq_nopage, /* our magic no-page fault handler */
- };
-
- static int
-@@ -448,12 +448,12 @@
-
- static struct file_operations shmiq_fops =
- {
-- poll: shmiq_qcntl_poll,
-- ioctl: shmiq_qcntl_ioctl,
-- mmap: shmiq_qcntl_mmap,
-- open: shmiq_qcntl_open,
-- release: shmiq_qcntl_close,
-- fasync: shmiq_qcntl_fasync,
-+ .poll = shmiq_qcntl_poll,
-+ .ioctl = shmiq_qcntl_ioctl,
-+ .mmap = shmiq_qcntl_mmap,
-+ .open = shmiq_qcntl_open,
-+ .release = shmiq_qcntl_close,
-+ .fasync = shmiq_qcntl_fasync,
- };
-
- void
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/streamable.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/streamable.c
---- linux-2.4.20/drivers/sgi/char/streamable.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/streamable.c 2002-12-18 15:47:41.000000000 -0600
-@@ -50,20 +50,22 @@
- }
-
- /* /dev/gfx device */
--static int
--sgi_gfx_ioctl (struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg)
-+static int sgi_gfx_ioctl (struct inode *inode, struct file *file,
-+ unsigned int cmd, unsigned long arg)
- {
-- printk ("GFX: ioctl 0x%x %ld called\n", cmd, arg);
-- return 0;
-+ printk(KERN_DEBUG "GFX: ioctl 0x%x %ld called\n", cmd, arg);
-+
- return -EINVAL;
- }
-
- struct file_operations sgi_gfx_fops = {
-- ioctl: sgi_gfx_ioctl,
-+ .ioctl = sgi_gfx_ioctl,
- };
-
- static struct miscdevice dev_gfx = {
-- SGI_GFX_MINOR, "sgi-gfx", &sgi_gfx_fops
-+ .minor = SGI_GFX_MINOR,
-+ .name = "sgi-gfx",
-+ .fops = &sgi_gfx_fops,
- };
-
- /* /dev/input/keyboard streams device */
-@@ -167,12 +169,14 @@
- }
-
- struct file_operations sgi_keyb_fops = {
-- ioctl: sgi_keyb_ioctl,
-- open: sgi_keyb_open,
-+ .ioctl = sgi_keyb_ioctl,
-+ .open = sgi_keyb_open,
- };
-
- static struct miscdevice dev_input_keyboard = {
-- SGI_STREAMS_KEYBOARD, "streams-keyboard", &sgi_keyb_fops
-+ .minor = SGI_STREAMS_KEYBOARD,
-+ .name = "streams-keyboard",
-+ .fops = &sgi_keyb_fops,
- };
-
- /* /dev/input/mouse streams device */
-@@ -298,20 +302,22 @@
- }
-
- struct file_operations sgi_mouse_fops = {
-- ioctl: sgi_mouse_ioctl,
-- open: sgi_mouse_open,
-- release: sgi_mouse_close,
-+ .ioctl = sgi_mouse_ioctl,
-+ .open = sgi_mouse_open,
-+ .release = sgi_mouse_close,
- };
-
- /* /dev/input/mouse */
- static struct miscdevice dev_input_mouse = {
-- SGI_STREAMS_KEYBOARD, "streams-mouse", &sgi_mouse_fops
-+ .minor = SGI_STREAMS_KEYBOARD,
-+ .name = "streams-mouse",
-+ .fops = &sgi_mouse_fops,
- };
-
- void
- streamable_init (void)
- {
-- printk ("streamable misc devices registered (keyb:%d, gfx:%d)\n",
-+ printk (KERN_INFO "streamable misc devices registered (keyb:%d, gfx:%d)\n",
- SGI_STREAMS_KEYBOARD, SGI_GFX_MINOR);
-
- misc_register (&dev_gfx);
-diff -urNd -urNd linux-2.4.20/drivers/sgi/char/usema.c linux-2.4.20-mipscvs-20050106/drivers/sgi/char/usema.c
---- linux-2.4.20/drivers/sgi/char/usema.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/char/usema.c 2002-12-18 13:11:09.000000000 -0600
-@@ -164,19 +164,21 @@
- }
-
- struct file_operations sgi_usemaclone_fops = {
-- poll: sgi_usemaclone_poll,
-- ioctl: sgi_usemaclone_ioctl,
-- open: sgi_usemaclone_open,
-+ .poll = sgi_usemaclone_poll,
-+ .ioctl = sgi_usemaclone_ioctl,
-+ .open = sgi_usemaclone_open,
- };
-
- static struct miscdevice dev_usemaclone = {
-- SGI_USEMACLONE, "usemaclone", &sgi_usemaclone_fops
-+ .minor = SGI_USEMACLONE,
-+ .name = "usemaclone",
-+ .fops = &sgi_usemaclone_fops,
- };
-
- void
- usema_init(void)
- {
-- printk("usemaclone misc device registered (minor: %d)\n",
-+ printk(KERN_INFO "usemaclone misc device registered (minor: %d)\n",
- SGI_USEMACLONE);
- misc_register(&dev_usemaclone);
- }
-diff -urNd -urNd linux-2.4.20/drivers/sgi/Config.in linux-2.4.20-mipscvs-20050106/drivers/sgi/Config.in
---- linux-2.4.20/drivers/sgi/Config.in 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/Config.in 2002-11-08 17:15:48.000000000 -0600
-@@ -4,9 +4,9 @@
- mainmenu_option next_comment
- comment 'SGI devices'
-
--bool 'SGI Zilog85C30 serial support' CONFIG_SGI_SERIAL
--if [ "$CONFIG_SGI_SERIAL" = "y" ]; then
-- bool ' Support for console on serial port' CONFIG_SERIAL_CONSOLE
-+bool 'SGI Zilog85C30 serial support' CONFIG_IP22_SERIAL
-+if [ "$CONFIG_IP22_SERIAL" = "y" ]; then
-+ bool ' Support for console on serial port' CONFIG_IP22_SERIAL_CONSOLE
- fi
- bool 'SGI DS1286 RTC support' CONFIG_SGI_DS1286
-
-diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Entries
---- linux-2.4.20/drivers/sgi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.2/Tue Mar 17 22:12:46 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.9.4.3/Fri Nov 8 23:15:48 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.13/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
-+D/char////
-diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Repository
---- linux-2.4.20/drivers/sgi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Repository 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sgi
-diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Root
---- linux-2.4.20/drivers/sgi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Root 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sgi/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Tag
---- linux-2.4.20/drivers/sgi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/CVS/Tag 2005-01-06 23:04:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sgi/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sgi/.cvsignore
---- linux-2.4.20/drivers/sgi/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sgi/.cvsignore 1998-03-17 16:12:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sound/au1000.c linux-2.4.20-mipscvs-20050106/drivers/sound/au1000.c
---- linux-2.4.20/drivers/sound/au1000.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/au1000.c 2002-12-29 04:30:36.000000000 -0600
-@@ -2029,7 +2029,7 @@
- s->codec.codec_write = wrcodec;
- s->codec.codec_wait = waitcodec;
-
-- if (!request_region(virt_to_phys((void *) AC97C_CONFIG),
-+ if (!request_region(PHYSADDR(AC97C_CONFIG),
- 0x14, AU1000_MODULE_NAME)) {
- err("AC'97 ports in use");
- return -1;
-@@ -2165,7 +2165,7 @@
- err_dma2:
- free_au1000_dma(s->dma_dac.dmanr);
- err_dma1:
-- release_region(virt_to_phys((void *) AC97C_CONFIG), 0x14);
-+ release_region(PHYSADDR(AC97C_CONFIG), 0x14);
- return -1;
- }
-
-@@ -2182,7 +2182,7 @@
- synchronize_irq();
- free_au1000_dma(s->dma_adc.dmanr);
- free_au1000_dma(s->dma_dac.dmanr);
-- release_region(virt_to_phys((void *) AC97C_CONFIG), 0x14);
-+ release_region(PHYSADDR(AC97C_CONFIG), 0x14);
- unregister_sound_dsp(s->dev_audio);
- unregister_sound_mixer(s->codec.dev_mixer);
- }
-diff -urNd -urNd linux-2.4.20/drivers/sound/Config.in linux-2.4.20-mipscvs-20050106/drivers/sound/Config.in
---- linux-2.4.20/drivers/sound/Config.in 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/Config.in 2002-12-11 00:12:30.000000000 -0600
-@@ -66,8 +66,8 @@
- if [ "$CONFIG_DDB5477" = "y" ]; then
- dep_tristate ' NEC Vrc5477 AC97 sound' CONFIG_SOUND_VRC5477 $CONFIG_SOUND
- fi
--if [ "$CONFIG_MIPS_AU1000" = "y" ]; then
-- dep_tristate ' Au1000 Sound' CONFIG_SOUND_AU1000 $CONFIG_SOUND
-+if [ "$CONFIG_CPU_AU1X00" = "y" ]; then
-+ dep_tristate ' Au1x00 Sound' CONFIG_SOUND_AU1X00 $CONFIG_SOUND
- fi
-
- dep_tristate ' Trident 4DWave DX/NX, SiS 7018 or ALi 5451 PCI Audio Core' CONFIG_SOUND_TRIDENT $CONFIG_SOUND $CONFIG_PCI
-diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Entries
---- linux-2.4.20/drivers/sound/cs4281/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Entries 2005-01-06 23:05:12.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:19 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Fri Mar 9 20:34:26 2001/-ko/Tlinux_2_4_20
-+/cs4281_hwdefs.h/1.1/Fri Mar 9 20:34:26 2001/-ko/Tlinux_2_4_20
-+/cs4281_wrapper.h/1.1.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/cs4281m.c/1.6.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/cs4281pm-24.c/1.1.2.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
-+/cs4281pm-24.h/1.1.2.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
-+/cs4281pm.h/1.1/Fri Mar 9 20:34:27 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Repository
---- linux-2.4.20/drivers/sound/cs4281/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Repository 2005-01-06 23:05:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sound/cs4281
-diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Root
---- linux-2.4.20/drivers/sound/cs4281/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Root 2005-01-06 23:05:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Tag
---- linux-2.4.20/drivers/sound/cs4281/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/CVS/Tag 2005-01-06 23:05:12.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sound/cs4281/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/.cvsignore
---- linux-2.4.20/drivers/sound/cs4281/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/cs4281/.cvsignore 2001-12-30 21:33:19.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Entries
---- linux-2.4.20/drivers/sound/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,153 @@
-+/.cvsignore/1.3/Tue Mar 17 22:12:49 1998/-ko/Tlinux_2_4_20
-+/.indent.pro/1.1.1.1/Sun Jun 1 03:17:45 1997/-ko/Tlinux_2_4_20
-+/.version/1.3/Sat Dec 6 23:54:19 1997/-ko/Tlinux_2_4_20
-+/724hwmcode.h/1.2/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/CHANGELOG/1.4/Tue Aug 25 09:19:00 1998/-ko/Tlinux_2_4_20
-+/COPYING/1.1.1.1/Sun Jun 1 03:17:43 1997/-ko/Tlinux_2_4_20
-+/Config.in/1.44.2.8/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/Hwmcode.h/1.1/Mon Jun 19 22:45:48 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.49.2.5/Sun Dec 29 10:30:36 2002/-ko/Tlinux_2_4_20
-+/README.FIRST/1.3/Mon Feb 15 02:19:41 1999/-ko/Tlinux_2_4_20
-+/ac97.c/1.5/Mon Nov 5 20:16:10 2001/-ko/Tlinux_2_4_20
-+/ac97.h/1.4/Sun Jun 10 16:57:41 2001/-ko/Tlinux_2_4_20
-+/ac97_codec.c/1.18.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/aci.c/1.8/Sun Dec 2 11:34:50 2001/-ko/Tlinux_2_4_20
-+/aci.h/1.2/Wed Aug 22 03:24:50 2001/-ko/Tlinux_2_4_20
-+/ad1816.c/1.13.2.1/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/ad1848.c/1.21.2.2/Wed Jun 26 22:36:08 2002/-ko/Tlinux_2_4_20
-+/ad1848.h/1.2.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/ad1848_mixer.h/1.6.6.1/Sat Dec 29 05:38:10 2001/-ko/Tlinux_2_4_20
-+/adlib_card.c/1.12/Mon Nov 5 20:16:10 2001/-ko/Tlinux_2_4_20
-+/aedsp16.c/1.6.2.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/ali5455.c/1.1.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/au1000.c/1.2.2.6/Sun Dec 29 10:30:36 2002/-ko/Tlinux_2_4_20
-+/audio.c/1.18/Fri Mar 9 20:34:25 2001/-ko/Tlinux_2_4_20
-+/audio_syms.c/1.1/Tue Aug 25 09:19:04 1998/-ko/Tlinux_2_4_20
-+/awe_hw.h/1.2/Mon Mar 27 23:54:37 2000/-ko/Tlinux_2_4_20
-+/awe_wave.c/1.9.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/awe_wave.h/1.2/Mon Mar 27 23:54:37 2000/-ko/Tlinux_2_4_20
-+/bin2hex.c/1.4.4.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/btaudio.c/1.3.2.4/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/cmpci.c/1.28.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/coproc.h/1.2/Tue Aug 25 09:19:05 1998/-ko/Tlinux_2_4_20
-+/cs4232.c/1.16.2.3/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/cs4232.h/1.2.2.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/cs461x.h/1.2/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
-+/cs461x_image.h/1.4/Wed Jun 13 17:28:02 2001/-ko/Tlinux_2_4_20
-+/cs46xx.c/1.13.2.3/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/cs46xx_wrapper-24.h/1.1/Wed Jun 13 17:28:03 2001/-ko/Tlinux_2_4_20
-+/cs46xxpm-24.h/1.2/Wed Aug 22 03:24:50 2001/-ko/Tlinux_2_4_20
-+/cs46xxpm.h/1.1/Wed Jun 13 17:28:03 2001/-ko/Tlinux_2_4_20
-+/dev_table.c/1.19/Thu Oct 5 01:18:58 2000/-ko/Tlinux_2_4_20
-+/dev_table.h/1.24/Thu Aug 23 22:24:41 2001/-ko/Tlinux_2_4_20
-+/dm.h/1.1/Tue Aug 25 09:19:06 1998/-ko/Tlinux_2_4_20
-+/dmabuf.c/1.20/Fri Aug 25 05:30:01 2000/-ko/Tlinux_2_4_20
-+/es1370.c/1.36.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/es1371.c/1.37.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/esssolo1.c/1.30.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/forte.c/1.1.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/gus.h/1.1.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/gus_card.c/1.14/Mon Nov 5 20:16:10 2001/-ko/Tlinux_2_4_20
-+/gus_hw.h/1.1.1.1/Sun Jun 1 03:17:46 1997/-ko/Tlinux_2_4_20
-+/gus_linearvol.h/1.1.1.1/Sun Jun 1 03:17:44 1997/-ko/Tlinux_2_4_20
-+/gus_midi.c/1.11/Thu Apr 5 04:58:07 2001/-ko/Tlinux_2_4_20
-+/gus_vol.c/1.7/Sun Mar 12 23:15:39 2000/-ko/Tlinux_2_4_20
-+/gus_wave.c/1.16/Fri Oct 19 01:24:47 2001/-ko/Tlinux_2_4_20
-+/hal2.c/1.3.2.7/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/hal2.h/1.3.2.4/Fri Feb 15 02:14:40 2002/-ko/Tlinux_2_4_20
-+/harmony.c/1.1.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/hex2hex.c/1.4/Thu Jun 17 13:29:10 1999/-ko/Tlinux_2_4_20
-+/i810_audio.c/1.24.2.5/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/ics2101.c/1.9/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/ite8172.c/1.4.2.3/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/iwmem.h/1.2/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/mad16.c/1.21.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/maestro.c/1.24.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/maestro.h/1.1/Sat Oct 9 00:01:32 1999/-ko/Tlinux_2_4_20
-+/maestro3.c/1.8.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/maestro3.h/1.1/Fri Mar 9 20:34:25 2001/-ko/Tlinux_2_4_20
-+/maestro_tables.h/1.1/Sat Oct 9 00:01:32 1999/-ko/Tlinux_2_4_20
-+/maui.c/1.16/Mon Nov 5 20:16:10 2001/-ko/Tlinux_2_4_20
-+/midi_ctrl.h/1.1.1.1/Sun Jun 1 03:17:45 1997/-ko/Tlinux_2_4_20
-+/midi_syms.c/1.1/Tue Aug 25 09:19:11 1998/-ko/Tlinux_2_4_20
-+/midi_synth.c/1.10/Mon Aug 28 22:00:22 2000/-ko/Tlinux_2_4_20
-+/midi_synth.h/1.2/Mon Aug 28 22:00:22 2000/-ko/Tlinux_2_4_20
-+/midibuf.c/1.17/Mon Nov 5 20:16:10 2001/-ko/Tlinux_2_4_20
-+/mpu401.c/1.17.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/mpu401.h/1.3.4.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/msnd.c/1.10/Mon Nov 5 20:16:11 2001/-ko/Tlinux_2_4_20
-+/msnd.h/1.8/Sat Jul 15 03:32:26 2000/-ko/Tlinux_2_4_20
-+/msnd_classic.c/1.1/Tue Aug 25 09:19:13 1998/-ko/Tlinux_2_4_20
-+/msnd_classic.h/1.4/Wed Feb 16 01:07:44 2000/-ko/Tlinux_2_4_20
-+/msnd_pinnacle.c/1.20.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/msnd_pinnacle.h/1.4/Wed Feb 16 01:07:44 2000/-ko/Tlinux_2_4_20
-+/nec_vrc5477.c/1.6.2.3/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/nm256.h/1.2/Thu Jan 27 23:45:27 2000/-ko/Tlinux_2_4_20
-+/nm256_audio.c/1.15.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/nm256_coeff.h/1.2/Thu Jan 27 23:45:27 2000/-ko/Tlinux_2_4_20
-+/opl3.c/1.14/Mon Nov 5 20:16:11 2001/-ko/Tlinux_2_4_20
-+/opl3.h/1.3.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/opl3_hw.h/1.1/Sun Mar 12 23:15:39 2000/-ko/Tlinux_2_4_20
-+/opl3sa.c/1.11/Mon Nov 5 20:16:11 2001/-ko/Tlinux_2_4_20
-+/opl3sa2.c/1.11.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/os.h/1.9/Fri Mar 9 20:34:25 2001/-ko/Tlinux_2_4_20
-+/pas2.h/1.1.4.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/pas2_card.c/1.13/Mon Nov 5 20:16:11 2001/-ko/Tlinux_2_4_20
-+/pas2_midi.c/1.11/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/pas2_mixer.c/1.10/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/pas2_pcm.c/1.11/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/pss.c/1.17.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/rme96xx.c/1.4.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/rme96xx.h/1.1.2.1/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/sb.h/1.18/Fri Mar 9 20:34:25 2001/-ko/Tlinux_2_4_20
-+/sb_audio.c/1.14.2.1/Tue Feb 26 05:59:47 2002/-ko/Tlinux_2_4_20
-+/sb_card.c/1.36.2.3/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/sb_common.c/1.27/Mon Nov 5 20:16:11 2001/-ko/Tlinux_2_4_20
-+/sb_ess.c/1.12/Tue Nov 6 07:56:06 2001/-ko/Tlinux_2_4_20
-+/sb_ess.h/1.1/Mon Feb 15 02:19:53 1999/-ko/Tlinux_2_4_20
-+/sb_midi.c/1.11/Fri Mar 9 20:34:25 2001/-ko/Tlinux_2_4_20
-+/sb_mixer.c/1.16/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/sb_mixer.h/1.10/Tue Mar 7 15:45:40 2000/-ko/Tlinux_2_4_20
-+/sequencer.c/1.18/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/sequencer_syms.c/1.3/Thu Oct 5 01:18:58 2000/-ko/Tlinux_2_4_20
-+/sgalaxy.c/1.9/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/skeleton.c/1.4/Thu Apr 5 04:58:07 2001/-ko/Tlinux_2_4_20
-+/sonicvibes.c/1.36.2.2/Wed Jun 26 22:36:09 2002/-ko/Tlinux_2_4_20
-+/sound_calls.h/1.13/Wed Apr 19 04:00:14 2000/-ko/Tlinux_2_4_20
-+/sound_config.h/1.8.4.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/sound_core.c/1.24/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/sound_firmware.c/1.8/Fri Mar 9 20:34:25 2001/-ko/Tlinux_2_4_20
-+/sound_firmware.h/1.1/Sat Dec 6 23:54:38 1997/-ko/Tlinux_2_4_20
-+/sound_syms.c/1.11/Thu Oct 5 01:18:58 2000/-ko/Tlinux_2_4_20
-+/sound_timer.c/1.11/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/soundcard.c/1.35/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/soundvers.h/1.4/Tue Dec 16 05:36:00 1997/-ko/Tlinux_2_4_20
-+/sscape.c/1.20/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/swarm_cs4297a.c/1.2.2.2/Tue Aug 20 15:00:07 2002/-ko/Tlinux_2_4_20
-+/sys_timer.c/1.9/Mon Aug 28 22:00:23 2000/-ko/Tlinux_2_4_20
-+/trident.c/1.31.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/trident.h/1.12.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/trix.c/1.18/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/tuning.h/1.1.1.1/Sun Jun 1 03:17:45 1997/-ko/Tlinux_2_4_20
-+/uart401.c/1.15/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/uart6850.c/1.14/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/ulaw.h/1.2/Tue Jun 3 07:28:30 1997/-ko/Tlinux_2_4_20
-+/v_midi.c/1.8/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/v_midi.h/1.1/Tue Mar 17 22:13:13 1998/-ko/Tlinux_2_4_20
-+/via82cxxx_audio.c/1.23.2.3/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/vidc.c/1.12/Tue Nov 6 00:55:16 2001/-ko/Tlinux_2_4_20
-+/vidc.h/1.4/Thu Oct 5 01:18:58 2000/-ko/Tlinux_2_4_20
-+/vidc_fill.S/1.5/Thu Oct 5 01:18:58 2000/-ko/Tlinux_2_4_20
-+/vwsnd.c/1.11.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/waveartist.c/1.13/Tue Nov 6 07:56:06 2001/-ko/Tlinux_2_4_20
-+/waveartist.h/1.4/Tue Nov 6 07:56:06 2001/-ko/Tlinux_2_4_20
-+/wavfront.c/1.24/Mon Nov 5 20:16:12 2001/-ko/Tlinux_2_4_20
-+/wf_midi.c/1.10/Wed Aug 22 03:24:51 2001/-ko/Tlinux_2_4_20
-+/ymfpci.c/1.13.2.3/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/ymfpci.h/1.5.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/ymfpci_image.h/1.2/Wed Jun 13 17:28:04 2001/-ko/Tlinux_2_4_20
-+/yss225.c/1.2/Tue Nov 28 03:58:52 2000/-ko/Tlinux_2_4_20
-+/yss225.h/1.2/Thu Jun 14 04:24:11 2001/-ko/Tlinux_2_4_20
-+D/cs4281////
-+D/dmasound////
-+D/emu10k1////
-diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Repository
---- linux-2.4.20/drivers/sound/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Repository 2005-01-06 23:04:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sound
-diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Root
---- linux-2.4.20/drivers/sound/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Root 2005-01-06 23:04:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sound/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Tag
---- linux-2.4.20/drivers/sound/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/CVS/Tag 2005-01-06 23:05:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sound/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/.cvsignore
---- linux-2.4.20/drivers/sound/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/.cvsignore 1998-03-17 16:12:49.000000000 -0600
-@@ -0,0 +1,5 @@
-+.depend
-+.*.flags
-+.defines
-+local.h
-+configure
-diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Entries
---- linux-2.4.20/drivers/sound/dmasound/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Entries 2005-01-06 23:05:13.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.1/Wed Apr 19 04:00:14 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.1.4.1/Tue Feb 26 05:59:48 2002//Tlinux_2_4_20
-+/Makefile/1.2.2.1/Tue Feb 26 05:59:48 2002//Tlinux_2_4_20
-+/awacs_defs.h/1.2.4.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
-+/dac3550a.c/1.1.2.1/Tue Feb 26 05:59:48 2002/-ko/Tlinux_2_4_20
-+/dmasound.h/1.4.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
-+/dmasound_atari.c/1.7.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
-+/dmasound_awacs.c/1.9.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
-+/dmasound_core.c/1.9.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
-+/dmasound_paula.c/1.6.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
-+/dmasound_q40.c/1.6.2.2/Wed Jun 26 22:36:10 2002//Tlinux_2_4_20
-+/tas3001c.c/1.1.2.1/Tue Feb 26 05:59:49 2002/-ko/Tlinux_2_4_20
-+/tas3001c.h/1.1.2.1/Tue Feb 26 05:59:49 2002/-ko/Tlinux_2_4_20
-+/trans_16.c/1.1.2.1/Tue Feb 26 05:59:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Repository
---- linux-2.4.20/drivers/sound/dmasound/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Repository 2005-01-06 23:05:12.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sound/dmasound
-diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Root
---- linux-2.4.20/drivers/sound/dmasound/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Root 2005-01-06 23:05:12.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Tag
---- linux-2.4.20/drivers/sound/dmasound/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/CVS/Tag 2005-01-06 23:05:13.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sound/dmasound/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/.cvsignore
---- linux-2.4.20/drivers/sound/dmasound/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/dmasound/.cvsignore 2000-04-18 23:00:14.000000000 -0500
-@@ -0,0 +1,5 @@
-+.depend
-+.*.flags
-+.defines
-+local.h
-+configure
-diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Entries
---- linux-2.4.20/drivers/sound/emu10k1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Entries 2005-01-06 23:05:14.000000000 -0600
-@@ -0,0 +1,37 @@
-+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
-+/8010.h/1.3/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Sat Sep 22 12:49:33 2001/-ko/Tlinux_2_4_20
-+/audio.c/1.14.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/audio.h/1.2.4.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/cardmi.c/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/cardmi.h/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/cardmo.c/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/cardmo.h/1.2/Mon Aug 28 22:00:23 2000/-ko/Tlinux_2_4_20
-+/cardwi.c/1.5.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/cardwi.h/1.3.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/cardwo.c/1.6.2.2/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/cardwo.h/1.3.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/ecard.c/1.2/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/ecard.h/1.4/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/efxmgr.c/1.4.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/efxmgr.h/1.3.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/emuadxmg.c/1.2/Mon Aug 28 22:00:23 2000/-ko/Tlinux_2_4_20
-+/hwaccess.c/1.3.2.1/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/hwaccess.h/1.6.2.3/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/icardmid.h/1.1/Fri Apr 28 01:09:47 2000/-ko/Tlinux_2_4_20
-+/icardwav.h/1.3/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/irqmgr.c/1.3.2.1/Tue Feb 26 05:59:50 2002/-ko/Tlinux_2_4_20
-+/irqmgr.h/1.3/Fri Aug 24 03:38:45 2001/-ko/Tlinux_2_4_20
-+/main.c/1.12.2.4/Sat Jan 11 17:53:15 2003/-ko/Tlinux_2_4_20
-+/midi.c/1.10.2.1/Tue Feb 26 05:59:50 2002/-ko/Tlinux_2_4_20
-+/midi.h/1.1/Fri Apr 28 01:09:47 2000/-ko/Tlinux_2_4_20
-+/mixer.c/1.6.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/passthrough.c/1.3/Mon Nov 5 20:16:13 2001/-ko/Tlinux_2_4_20
-+/passthrough.h/1.3/Mon Nov 5 20:16:13 2001/-ko/Tlinux_2_4_20
-+/recmgr.c/1.3.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/recmgr.h/1.2.4.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/timer.c/1.2.4.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/timer.h/1.3.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/voicemgr.c/1.3.2.2/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/voicemgr.h/1.3.2.1/Tue Feb 26 05:59:50 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Repository
---- linux-2.4.20/drivers/sound/emu10k1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Repository 2005-01-06 23:05:13.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/sound/emu10k1
-diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Root
---- linux-2.4.20/drivers/sound/emu10k1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Root 2005-01-06 23:05:13.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Tag
---- linux-2.4.20/drivers/sound/emu10k1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/CVS/Tag 2005-01-06 23:05:14.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/sound/emu10k1/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/.cvsignore
---- linux-2.4.20/drivers/sound/emu10k1/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/emu10k1/.cvsignore 2001-12-30 21:33:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/sound/hal2.c linux-2.4.20-mipscvs-20050106/drivers/sound/hal2.c
---- linux-2.4.20/drivers/sound/hal2.c 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/hal2.c 2002-11-06 19:47:46.000000000 -0600
-@@ -1312,22 +1312,22 @@
- }
-
- static struct file_operations hal2_audio_fops = {
-- owner: THIS_MODULE,
-- llseek: no_llseek,
-- read: hal2_read,
-- write: hal2_write,
-- poll: hal2_poll,
-- ioctl: hal2_ioctl,
-- open: hal2_open,
-- release: hal2_release,
-+ .owner = THIS_MODULE,
-+ .llseek = no_llseek,
-+ .read = hal2_read,
-+ .write = hal2_write,
-+ .poll = hal2_poll,
-+ .ioctl = hal2_ioctl,
-+ .open = hal2_open,
-+ .release = hal2_release,
- };
-
- static struct file_operations hal2_mixer_fops = {
-- owner: THIS_MODULE,
-- llseek: no_llseek,
-- ioctl: hal2_ioctl_mixdev,
-- open: hal2_open_mixdev,
-- release: hal2_release_mixdev,
-+ .owner = THIS_MODULE,
-+ .llseek = no_llseek,
-+ .ioctl = hal2_ioctl_mixdev,
-+ .open = hal2_open_mixdev,
-+ .release = hal2_release_mixdev,
- };
-
- static int hal2_request_irq(hal2_card_t *hal2, int irq)
-diff -urNd -urNd linux-2.4.20/drivers/sound/ite8172.c linux-2.4.20-mipscvs-20050106/drivers/sound/ite8172.c
---- linux-2.4.20/drivers/sound/ite8172.c 2002-08-02 19:39:44.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/ite8172.c 2002-11-06 19:47:46.000000000 -0600
-@@ -1003,11 +1003,11 @@
- }
-
- static /*const*/ struct file_operations it8172_mixer_fops = {
-- owner: THIS_MODULE,
-- llseek: it8172_llseek,
-- ioctl: it8172_ioctl_mixdev,
-- open: it8172_open_mixdev,
-- release: it8172_release_mixdev,
-+ .owner = THIS_MODULE,
-+ .llseek = it8172_llseek,
-+ .ioctl = it8172_ioctl_mixdev,
-+ .open = it8172_open_mixdev,
-+ .release = it8172_release_mixdev,
- };
-
- /* --------------------------------------------------------------------- */
-@@ -1872,15 +1872,15 @@
- }
-
- static /*const*/ struct file_operations it8172_audio_fops = {
-- owner: THIS_MODULE,
-- llseek: it8172_llseek,
-- read: it8172_read,
-- write: it8172_write,
-- poll: it8172_poll,
-- ioctl: it8172_ioctl,
-- mmap: it8172_mmap,
-- open: it8172_open,
-- release: it8172_release,
-+ .owner = THIS_MODULE,
-+ .llseek = it8172_llseek,
-+ .read = it8172_read,
-+ .write = it8172_write,
-+ .poll = it8172_poll,
-+ .ioctl = it8172_ioctl,
-+ .mmap = it8172_mmap,
-+ .open = it8172_open,
-+ .release = it8172_release,
- };
-
-
-@@ -2188,10 +2188,10 @@
- MODULE_DEVICE_TABLE(pci, id_table);
-
- static struct pci_driver it8172_driver = {
-- name: IT8172_MODULE_NAME,
-- id_table: id_table,
-- probe: it8172_probe,
-- remove: it8172_remove
-+ .name = IT8172_MODULE_NAME,
-+ .id_table = id_table,
-+ .probe = it8172_probe,
-+ .remove = it8172_remove
- };
-
- static int __init init_it8172(void)
-diff -urNd -urNd linux-2.4.20/drivers/sound/Makefile linux-2.4.20-mipscvs-20050106/drivers/sound/Makefile
---- linux-2.4.20/drivers/sound/Makefile 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/sound/Makefile 2002-12-29 04:30:36.000000000 -0600
-@@ -66,7 +66,7 @@
- obj-$(CONFIG_SOUND_ES1370) += es1370.o
- obj-$(CONFIG_SOUND_ES1371) += es1371.o ac97_codec.o
- obj-$(CONFIG_SOUND_VRC5477) += nec_vrc5477.o ac97_codec.o
--obj-$(CONFIG_SOUND_AU1000) += au1000.o ac97_codec.o
-+obj-$(CONFIG_SOUND_AU1X00) += au1000.o ac97_codec.o
- obj-$(CONFIG_SOUND_ESSSOLO1) += esssolo1.o
- obj-$(CONFIG_SOUND_FUSION) += cs46xx.o ac97_codec.o
- obj-$(CONFIG_SOUND_MAESTRO) += maestro.o
-diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Entries
---- linux-2.4.20/drivers/tc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Entries 2005-01-06 23:05:15.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.2/Sat Dec 30 15:55:57 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Fri Jan 12 20:44:17 2001/-ko/Tlinux_2_4_20
-+/lk201-map.map/1.1.4.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/lk201-remap.c/1.2.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/lk201.c/1.5.2.7/Thu Jan 16 13:57:52 2003/-ko/Tlinux_2_4_20
-+/lk201.h/1.2.2.3/Thu Jan 16 13:57:52 2003/-ko/Tlinux_2_4_20
-+/tc.c/1.7.2.7/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
-+/zs.c/1.19.2.12/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
-+/zs.h/1.4.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Repository
---- linux-2.4.20/drivers/tc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Repository 2005-01-06 23:05:14.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/tc
-diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Root
---- linux-2.4.20/drivers/tc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Root 2005-01-06 23:05:14.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/tc/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Tag
---- linux-2.4.20/drivers/tc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/CVS/Tag 2005-01-06 23:05:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/tc/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/tc/.cvsignore
---- linux-2.4.20/drivers/tc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/.cvsignore 2000-12-30 09:55:57.000000000 -0600
-@@ -0,0 +1,3 @@
-+.depend
-+.*.flags
-+lk201-map.c
-diff -urNd -urNd linux-2.4.20/drivers/tc/lk201.c linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.c
---- linux-2.4.20/drivers/tc/lk201.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.c 2003-01-16 07:57:52.000000000 -0600
-@@ -5,7 +5,7 @@
- * for more details.
- *
- * Copyright (C) 1999-2002 Harald Koerfgen <hkoerfg@web.de>
-- * Copyright (C) 2001, 2002 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
-+ * Copyright (C) 2001, 2002, 2003 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
- */
-
- #include <linux/config.h>
-@@ -27,6 +27,21 @@
- #include "zs.h"
- #include "lk201.h"
-
-+/*
-+ * Only handle DECstations that have an LK201 interface.
-+ * Maxine uses LK501 at the Access.Bus and various DECsystems
-+ * have no keyboard interface at all.
-+ */
-+#define LK_IFACE (mips_machtype == MACH_DS23100 || \
-+ mips_machtype == MACH_DS5000_200 || \
-+ mips_machtype == MACH_DS5000_1XX || \
-+ mips_machtype == MACH_DS5000_2X0)
-+/*
-+ * These use the Z8530 SCC. Others use the DZ11.
-+ */
-+#define LK_IFACE_ZS (mips_machtype == MACH_DS5000_1XX || \
-+ mips_machtype == MACH_DS5000_2X0)
-+
- /* Simple translation table for the SysRq keys */
-
- #ifdef CONFIG_MAGIC_SYSRQ
-@@ -47,12 +62,12 @@
- static void lk201_kbd_rx_char(unsigned char, unsigned char);
-
- struct zs_hook lk201_kbdhook = {
-- init_channel: lk201_init,
-- init_info: lk201_info,
-- rx_char: NULL,
-- poll_rx_char: NULL,
-- poll_tx_char: NULL,
-- cflags: B4800 | CS8 | CSTOPB | CLOCAL
-+ .init_channel = lk201_init,
-+ .init_info = lk201_info,
-+ .rx_char = NULL,
-+ .poll_rx_char = NULL,
-+ .poll_tx_char = NULL,
-+ .cflags = B4800 | CS8 | CSTOPB | CLOCAL
- };
-
- /*
-@@ -145,11 +160,17 @@
- case 2:
- printk(KERN_INFO "lk201: LK401 detected\n");
- break;
-+ case 3:
-+ printk(KERN_INFO "lk201: LK443 detected\n");
-+ break;
-+ case 4:
-+ printk(KERN_INFO "lk201: LK421 detected\n");
-+ break;
- default:
- printk(KERN_WARNING
- "lk201: unknown keyboard detected, ID %d\n", id[4]);
- printk(KERN_WARNING "lk201: ... please report to "
-- "<linux-mips@oss.sgi.com>\n");
-+ "<linux-mips@linux-mips.org>\n");
- }
- }
-
-@@ -321,7 +342,7 @@
- "error, skipping initialization\n");
- }
- } else if (id_i == 6) {
-- /* We got the ID; report it and start an operation. */
-+ /* We got the ID; report it and start operation. */
- id_i = 0;
- lk201_id(id);
- lk201_reset(lk201kbd_info);
-@@ -341,19 +362,19 @@
- break;
- case LK_KEY_LOCK:
- shift_state ^= LK_LOCK;
-- handle_scancode(c, shift_state && LK_LOCK ? 1 : 0);
-+ handle_scancode(c, (shift_state & LK_LOCK) ? 1 : 0);
- break;
- case LK_KEY_SHIFT:
- shift_state ^= LK_SHIFT;
-- handle_scancode(c, shift_state && LK_SHIFT ? 1 : 0);
-+ handle_scancode(c, (shift_state & LK_SHIFT) ? 1 : 0);
- break;
- case LK_KEY_CTRL:
- shift_state ^= LK_CTRL;
-- handle_scancode(c, shift_state && LK_CTRL ? 1 : 0);
-+ handle_scancode(c, (shift_state & LK_CTRL) ? 1 : 0);
- break;
- case LK_KEY_COMP:
- shift_state ^= LK_COMP;
-- handle_scancode(c, shift_state && LK_COMP ? 1 : 0);
-+ handle_scancode(c, (shift_state & LK_COMP) ? 1 : 0);
- break;
- case LK_KEY_RELEASE:
- if (shift_state & LK_SHIFT)
-@@ -402,28 +423,24 @@
- extern int unregister_zs_hook(unsigned int);
-
- /* Maxine uses LK501 at the Access.Bus. */
-- if (mips_machtype == MACH_DS5000_XX)
-+ if (!LK_IFACE)
- return;
-
- printk(KERN_INFO "lk201: DECstation LK keyboard driver v0.05.\n");
-
-- if (TURBOCHANNEL) {
-+ if (LK_IFACE_ZS) {
- /*
- * kbd_init_hw() is being called before
- * rs_init() so just register the kbd hook
- * and let zs_init do the rest :-)
- */
-- if (mips_machtype == MACH_DS5000_200)
-- printk(KERN_ERR "lk201: support for DS5000/200 "
-- "not yet ready.\n");
-- else
-- if(!register_zs_hook(KEYB_LINE, &lk201_kbdhook))
-- unregister_zs_hook(KEYB_LINE);
-+ if(!register_zs_hook(KEYB_LINE, &lk201_kbdhook))
-+ unregister_zs_hook(KEYB_LINE);
- } else {
- /*
- * TODO: modify dz.c to allow similar hooks
- * for LK201 handling on DS2100, DS3100, and DS5000/200
- */
-- printk(KERN_ERR "lk201: support for DS3100 not yet ready.\n");
-+ printk(KERN_ERR "lk201: support for DZ11 not yet ready.\n");
- }
- }
-diff -urNd -urNd linux-2.4.20/drivers/tc/lk201.h linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.h
---- linux-2.4.20/drivers/tc/lk201.h 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/lk201.h 2003-01-16 07:57:52.000000000 -0600
-@@ -68,22 +68,24 @@
- /*
- * Mappings between key groups and keycodes are as follows:
- *
-- * 1: 0xbf - 0xfb -- alphanumeric,
-- * 2: 0x92 - 0xa4 -- numeric keypad,
-+ * 1: 0xbf - 0xff -- alphanumeric,
-+ * 2: 0x91 - 0xa5 -- numeric keypad,
- * 3: 0xbc -- Backspace,
- * 4: 0xbd - 0xbe -- Tab, Return,
-- * 5: 0xb0 - 0xb1 -- Lock, Compose Character,
-- * 6: 0xae - 0xaf -- Ctrl, Shift,
-- * 7: 0xa7 - 0xa8 -- Left Arrow, Right Arrow,
-- * 8: 0xa9 - 0xab -- Up Arrow, Down Arrow, Right Shift,
-- * 9: 0x8a - 0x8f -- editor keypad,
-- * 10: 0x56 - 0x5a -- F1 - F5,
-- * 11: 0x64 - 0x68 -- F6 - F10,
-- * 12: 0x71 - 0x74 -- F11 - F14,
-- * 13: 0x7c - 0x7d -- Help, Do,
-- * 14: 0x80 - 0x83 -- F17 - F20.
-+ * 5: 0xb0 - 0xb2 -- Lock, Compose Character,
-+ * 6: 0xad - 0xaf -- Ctrl, Shift,
-+ * 7: 0xa6 - 0xa8 -- Left Arrow, Right Arrow,
-+ * 8: 0xa9 - 0xac -- Up Arrow, Down Arrow, Right Shift,
-+ * 9: 0x88 - 0x90 -- editor keypad,
-+ * 10: 0x56 - 0x62 -- F1 - F5,
-+ * 11: 0x63 - 0x6e -- F6 - F10,
-+ * 12: 0x6f - 0x7a -- F11 - F14,
-+ * 13: 0x7b - 0x7d -- Help, Do,
-+ * 14: 0x7e - 0x87 -- F17 - F20.
- *
-- * Others, i.e. 0x55, 0xac, 0xad, 0xb2, are undiscovered.
-+ * Notes:
-+ * 1. Codes in the 0x00 - 0x40 range are reserved.
-+ * 2. The assignment of the 0x41 - 0x55 range is undiscovered, probably 10.
- */
-
- /* delay is 5 - 630 ms; 0x00 and 0x7f are reserved */
-diff -urNd -urNd linux-2.4.20/drivers/tc/tc.c linux-2.4.20-mipscvs-20050106/drivers/tc/tc.c
---- linux-2.4.20/drivers/tc/tc.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/tc.c 2002-12-12 13:08:50.000000000 -0600
-@@ -19,6 +19,7 @@
- #include <asm/addrspace.h>
- #include <asm/errno.h>
- #include <asm/dec/machtype.h>
-+#include <asm/dec/prom.h>
- #include <asm/dec/tcinfo.h>
- #include <asm/dec/tcmodule.h>
- #include <asm/dec/interrupts.h>
-@@ -34,9 +35,6 @@
-
- unsigned long system_base;
-
--extern unsigned long *(*rex_slot_address)(int);
--extern void *(*rex_gettcinfo)(void);
--
- /*
- * Interface to the world. Read comment in include/asm-mips/tc.h.
- */
-@@ -204,6 +202,7 @@
- break;
- case MACH_DS5000_1XX:
- case MACH_DS5000_2X0:
-+ case MACH_DS5900:
- max_tcslot = 2;
- break;
- case MACH_DS5000_XX:
-diff -urNd -urNd linux-2.4.20/drivers/tc/zs.c linux-2.4.20-mipscvs-20050106/drivers/tc/zs.c
---- linux-2.4.20/drivers/tc/zs.c 2002-11-28 17:53:14.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/tc/zs.c 2002-12-12 13:08:50.000000000 -0600
-@@ -56,7 +56,7 @@
- #include <linux/delay.h>
- #include <linux/init.h>
- #include <linux/ioport.h>
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
- #include <linux/console.h>
- #endif
-
-@@ -157,10 +157,10 @@
-
- struct tty_struct zs_ttys[NUM_CHANNELS];
-
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
- static struct console sercons;
- #endif
--#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) \
-+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) \
- && !defined(MODULE)
- static unsigned long break_pressed; /* break, really ... */
- #endif
-@@ -416,7 +416,7 @@
-
- if (tty_break) {
- tty_break = 0;
--#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
-+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
- if (info->line == sercons.index) {
- if (!break_pressed) {
- break_pressed = jiffies;
-@@ -442,7 +442,7 @@
- write_zsreg(info->zs_channel, R0, ERR_RES);
- }
-
--#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
-+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
- if (break_pressed && info->line == sercons.index) {
- if (ch != 0 &&
- time_before(jiffies, break_pressed + HZ*5)) {
-@@ -473,7 +473,7 @@
-
- *tty->flip.flag_buf_ptr++ = flag;
- *tty->flip.char_buf_ptr++ = ch;
--#if defined(CONFIG_SERIAL_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
-+#if defined(CONFIG_SERIAL_DEC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ) && !defined(MODULE)
- ignore_char:
- #endif
- }
-@@ -1701,7 +1701,7 @@
- *tty->termios = info->callout_termios;
- change_speed(info);
- }
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
- if (sercons.cflag && sercons.index == line) {
- tty->termios->c_cflag = sercons.cflag;
- sercons.cflag = 0;
-@@ -1750,21 +1750,22 @@
- switch(mips_machtype) {
- #ifdef CONFIG_DECSTATION
- case MACH_DS5000_2X0:
-- system_base = 0xbf800000;
-+ case MACH_DS5900:
-+ system_base = KSEG1ADDR(0x1f800000);
- n_chips = 2;
- zs_parms = &ds_parms;
- zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0];
- zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1];
- break;
- case MACH_DS5000_1XX:
-- system_base = 0xbc000000;
-+ system_base = KSEG1ADDR(0x1c000000);
- n_chips = 2;
- zs_parms = &ds_parms;
- zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0];
- zs_parms->irq1 = dec_interrupt[DEC_IRQ_SCC1];
- break;
- case MACH_DS5000_XX:
-- system_base = 0xbc000000;
-+ system_base = KSEG1ADDR(0x1c000000);
- n_chips = 1;
- zs_parms = &ds_parms;
- zs_parms->irq0 = dec_interrupt[DEC_IRQ_SCC0];
-@@ -1801,7 +1802,7 @@
- zs_channels[n_channels].data =
- zs_channels[n_channels].control + 4;
-
--#ifndef CONFIG_SERIAL_CONSOLE
-+#ifndef CONFIG_SERIAL_DEC_CONSOLE
- /*
- * We're called early and memory managment isn't up, yet.
- * Thus check_region would fail.
-@@ -2006,21 +2007,6 @@
- }
-
- /*
-- * register_serial and unregister_serial allows for serial ports to be
-- * configured at run-time, to support PCMCIA modems.
-- */
--/* PowerMac: Unused at this time, just here to make things link. */
--int register_serial(struct serial_struct *req)
--{
-- return -1;
--}
--
--void unregister_serial(int line)
--{
-- return;
--}
--
--/*
- * polling I/O routines
- */
- static int
-@@ -2111,7 +2097,7 @@
- * Serial console driver
- * ------------------------------------------------------------
- */
--#ifdef CONFIG_SERIAL_CONSOLE
-+#ifdef CONFIG_SERIAL_DEC_CONSOLE
-
-
- /*
-@@ -2264,12 +2250,12 @@
- }
-
- static struct console sercons = {
-- name: "ttyS",
-- write: serial_console_write,
-- device: serial_console_device,
-- setup: serial_console_setup,
-- flags: CON_PRINTBUFFER,
-- index: -1,
-+ .name = "ttyS",
-+ .write = serial_console_write,
-+ .device = serial_console_device,
-+ .setup = serial_console_setup,
-+ .flags = CON_PRINTBUFFER,
-+ .index = -1,
- };
-
- /*
-@@ -2279,7 +2265,7 @@
- {
- register_console(&sercons);
- }
--#endif /* ifdef CONFIG_SERIAL_CONSOLE */
-+#endif /* ifdef CONFIG_SERIAL_DEC_CONSOLE */
-
- #ifdef CONFIG_KGDB
- struct dec_zschannel *zs_kgdbchan;
-diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Entries
---- linux-2.4.20/drivers/telephony/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Entries 2005-01-06 23:05:17.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Sat Feb 5 06:47:30 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.2.2.1/Wed Jun 26 22:36:10 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Fri Oct 19 01:24:47 2001/-ko/Tlinux_2_4_20
-+/ixj-ver.h/1.1/Fri Oct 19 01:24:47 2001/-ko/Tlinux_2_4_20
-+/ixj.c/1.17.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/ixj.h/1.8/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
-+/ixj_pcmcia.c/1.1/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
-+/phonedev.c/1.8/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Repository
---- linux-2.4.20/drivers/telephony/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Repository 2005-01-06 23:05:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/telephony
-diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Root
---- linux-2.4.20/drivers/telephony/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Root 2005-01-06 23:05:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/telephony/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Tag
---- linux-2.4.20/drivers/telephony/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/CVS/Tag 2005-01-06 23:05:17.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/telephony/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/telephony/.cvsignore
---- linux-2.4.20/drivers/telephony/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/telephony/.cvsignore 2000-02-05 00:47:30.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Entries
---- linux-2.4.20/drivers/usb/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,100 @@
-+/.cvsignore/1.1.6.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
-+/CDCEther.c/1.3.2.3/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/CDCEther.h/1.2.2.2/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.41.2.3/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.33.2.4/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/acm.c/1.32.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/aiptek.c/1.1.2.1/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/audio.c/1.29.2.4/Wed Sep 11 12:45:16 2002/-ko/Tlinux_2_4_20
-+/audio.h/1.2/Wed Apr 19 04:00:14 2000/-ko/Tlinux_2_4_20
-+/auerswald.c/1.1.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/bluetooth.c/1.17.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/brlvger.c/1.1.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/catc.c/1.3.2.3/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/dabfirmware.h/1.1/Fri Feb 18 00:24:44 2000/-ko/Tlinux_2_4_20
-+/dabusb.c/1.15.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/dabusb.h/1.5.4.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/dc2xx.c/1.21.2.1/Sat Dec 29 05:38:11 2001/-ko/Tlinux_2_4_20
-+/devices.c/1.14.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/devio.c/1.19.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/drivers.c/1.6/Fri Apr 28 01:09:47 2000/-ko/Tlinux_2_4_20
-+/dsbr100.c/1.13/Mon Nov 5 20:16:13 2001/-ko/Tlinux_2_4_20
-+/emi26.c/1.1.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
-+/emi26_fw.h/1.1.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
-+/hc_simple.c/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/hc_simple.h/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/hc_sl811.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/hc_sl811.h/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/hc_sl811_rh.c/1.1.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/hcd.c/1.1.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/hcd.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/hid-core.c/1.1.2.3/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/hid-debug.h/1.6/Fri Oct 19 01:24:48 2001/-ko/Tlinux_2_4_20
-+/hid-input.c/1.2/Sun Dec 2 11:34:50 2001/-ko/Tlinux_2_4_20
-+/hid.h/1.12.2.2/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/hiddev.c/1.2/Tue Nov 6 00:55:17 2001/-ko/Tlinux_2_4_20
-+/hpusbscsi.c/1.1.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/hpusbscsi.h/1.1.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
-+/hub.c/1.33.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/hub.h/1.14.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
-+/ibmcam.c/1.19.2.1/Wed Jun 26 22:36:11 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.16.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/kaweth.c/1.5.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/kawethfw.h/1.1/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
-+/mdc800.c/1.14.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/microtek.c/1.13.2.1/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/microtek.h/1.3/Thu Apr 5 04:58:08 2001/-ko/Tlinux_2_4_20
-+/ov511.c/1.28.2.3/Wed Sep 11 12:45:17 2002/-ko/Tlinux_2_4_20
-+/ov511.h/1.10.4.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/pegasus.c/1.20.2.4/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/pegasus.h/1.5.2.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/printer.c/1.37.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/pwc-ctrl.c/1.5.2.3/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/pwc-if.c/1.5.2.4/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/pwc-ioctl.h/1.3.2.2/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/pwc-misc.c/1.3.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/pwc-uncompress.c/1.2.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/pwc-uncompress.h/1.2.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/pwc.h/1.5.2.3/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/pwc_kiara.h/1.1/Thu Jun 14 04:24:12 2001/-ko/Tlinux_2_4_20
-+/pwc_nala.h/1.1/Thu Jun 14 04:24:12 2001/-ko/Tlinux_2_4_20
-+/pwc_timon.h/1.1/Thu Jun 14 04:24:12 2001/-ko/Tlinux_2_4_20
-+/rio500.c/1.14.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/rio500_usb.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/rtl8150.c/1.1.2.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/scanner.c/1.22.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/scanner.h/1.17.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/se401.c/1.3.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/se401.h/1.2.2.1/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/stv680.c/1.1.2.3/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/stv680.h/1.1.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/tiglusb.c/1.1.2.1/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/tiglusb.h/1.1.2.1/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/uhci-debug.h/1.8/Mon Nov 5 20:16:14 2001/-ko/Tlinux_2_4_20
-+/uhci.c/1.41.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/uhci.h/1.20.2.2/Wed Sep 11 12:45:18 2002/-ko/Tlinux_2_4_20
-+/ultracam.c/1.2/Tue Nov 6 00:55:17 2001/-ko/Tlinux_2_4_20
-+/usb-debug.c/1.10.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usb-midi.c/1.1.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usb-midi.h/1.1.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usb-ohci.c/1.32.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/usb-ohci.h/1.14.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usb-skeleton.c/1.4.2.2/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/usb-uhci-debug.h/1.5/Tue Nov 6 07:56:08 2001/-ko/Tlinux_2_4_20
-+/usb-uhci.c/1.29.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/usb-uhci.h/1.9.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usb.c/1.49.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/usbkbd.c/1.17.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usblcd.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/usbmouse.c/1.13.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/usbnet.c/1.4.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/usbvideo.c/1.3.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/usbvideo.h/1.3.2.1/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/uss720.c/1.16/Tue Nov 6 00:55:17 2001/-ko/Tlinux_2_4_20
-+/vicam.c/1.1.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/vicam.h/1.1.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/vicamurbs.h/1.1.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/wacom.c/1.14.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+D/hcd////
-+D/serial////
-+D/storage////
-diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Repository
---- linux-2.4.20/drivers/usb/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Repository 2005-01-06 23:05:17.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/usb
-diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Root
---- linux-2.4.20/drivers/usb/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Root 2005-01-06 23:05:17.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/usb/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Tag
---- linux-2.4.20/drivers/usb/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/CVS/Tag 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/usb/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/.cvsignore
---- linux-2.4.20/drivers/usb/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/.cvsignore 2001-12-30 21:33:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Entries
---- linux-2.4.20/drivers/usb/hcd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Entries 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1.2.1/Tue Jul 23 12:55:43 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/ehci-dbg.c/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/ehci-hcd.c/1.1.2.2/Wed Sep 11 12:45:19 2002/-ko/Tlinux_2_4_20
-+/ehci-hub.c/1.1.2.1/Wed Jun 26 22:36:12 2002/-ko/Tlinux_2_4_20
-+/ehci-mem.c/1.1.2.1/Wed Jun 26 22:36:13 2002/-ko/Tlinux_2_4_20
-+/ehci-q.c/1.1.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ehci-sched.c/1.1.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ehci.h/1.1.2.1/Wed Jun 26 22:36:13 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Repository
---- linux-2.4.20/drivers/usb/hcd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Repository 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/usb/hcd
-diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Root
---- linux-2.4.20/drivers/usb/hcd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Root 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Tag
---- linux-2.4.20/drivers/usb/hcd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/CVS/Tag 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/usb/hcd/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/.cvsignore
---- linux-2.4.20/drivers/usb/hcd/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/hcd/.cvsignore 2002-07-23 07:55:43.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Entries
---- linux-2.4.20/drivers/usb/serial/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Entries 2005-01-06 23:05:32.000000000 -0600
-@@ -0,0 +1,63 @@
-+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.9.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.18.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/Makefile-keyspan_pda_fw/1.2/Mon Mar 27 23:54:38 2000/-ko/Tlinux_2_4_20
-+/belkin_sa.c/1.10.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/belkin_sa.h/1.4.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/cyberjack.c/1.4.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/digi_acceleport.c/1.19.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/empeg.c/1.10.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ezusb_convert.pl/1.3/Fri May 12 21:06:33 2000/-ko/Tlinux_2_4_20
-+/ftdi_sio.c/1.21.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ftdi_sio.h/1.4.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_16654.h/1.1/Thu Apr 5 04:58:28 2001/-ko/Tlinux_2_4_20
-+/io_edgeport.c/1.9.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_edgeport.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_fw_boot.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_fw_boot2.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_fw_down.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_fw_down2.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_fw_down3.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_ionsp.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_tables.h/1.2.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_ti.c/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_ti.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/io_usbvend.h/1.4.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ipaq.c/1.1.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ipaq.h/1.1.2.3/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/ir-usb.c/1.4.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan.c/1.16.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan.h/1.6.2.2/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_pda.S/1.1/Mon Mar 27 23:54:38 2000/-ko/Tlinux_2_4_20
-+/keyspan_pda.c/1.18.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_pda_fw.h/1.2/Thu Jun 14 04:24:13 2001/-ko/Tlinux_2_4_20
-+/keyspan_usa18x_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa19_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa19qi_fw.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa19qw_fw.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa19w_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa26msg.h/1.3.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa28_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa28msg.h/1.4.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa28x_fw.h/1.2.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa28xa_fw.h/1.1.2.1/Wed Sep 11 12:45:20 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa28xb_fw.h/1.1.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa49msg.h/1.2.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/keyspan_usa49w_fw.h/1.2.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/kl5kusb105.c/1.1.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/kl5kusb105.h/1.1.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/mct_u232.c/1.9.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/mct_u232.h/1.2.2.1/Sat Dec 29 05:38:12 2001/-ko/Tlinux_2_4_20
-+/omninet.c/1.15.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/pl2303.c/1.4.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/pl2303.h/1.2.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/usb-serial.h/1.18.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/usbserial.c/1.24.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/visor.c/1.24.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/visor.h/1.6.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/whiteheat.c/1.16.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/whiteheat.h/1.4/Thu Nov 23 02:00:54 2000/-ko/Tlinux_2_4_20
-+/whiteheat_fw.h/1.2.4.1/Wed Jun 26 22:36:13 2002/-ko/Tlinux_2_4_20
-+/xircom_pgs.S/1.1/Fri Oct 19 01:24:50 2001/-ko/Tlinux_2_4_20
-+/xircom_pgs_fw.h/1.2/Mon Nov 5 20:16:15 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Repository
---- linux-2.4.20/drivers/usb/serial/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Repository 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/usb/serial
-diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Root
---- linux-2.4.20/drivers/usb/serial/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Root 2005-01-06 23:05:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/usb/serial/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Tag
---- linux-2.4.20/drivers/usb/serial/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/CVS/Tag 2005-01-06 23:05:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/usb/serial/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/serial/.cvsignore
---- linux-2.4.20/drivers/usb/serial/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/serial/.cvsignore 2001-12-30 21:33:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Entries
---- linux-2.4.20/drivers/usb/storage/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Entries 2005-01-06 23:05:34.000000000 -0600
-@@ -0,0 +1,32 @@
-+/.cvsignore/1.1.4.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.10.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/datafab.c/1.4.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/datafab.h/1.2/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
-+/debug.c/1.6.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/debug.h/1.6/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
-+/dpcm.c/1.4/Fri Aug 24 03:38:47 2001/-ko/Tlinux_2_4_20
-+/dpcm.h/1.2/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
-+/freecom.c/1.7.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/freecom.h/1.2/Thu Oct 5 01:18:59 2000/-ko/Tlinux_2_4_20
-+/initializers.c/1.1/Thu Oct 5 01:18:59 2000/-ko/Tlinux_2_4_20
-+/initializers.h/1.1/Thu Oct 5 01:18:59 2000/-ko/Tlinux_2_4_20
-+/isd200.c/1.3.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/isd200.h/1.1/Fri Aug 24 03:38:47 2001/-ko/Tlinux_2_4_20
-+/jumpshot.c/1.3.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/jumpshot.h/1.2/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
-+/protocol.c/1.7.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/protocol.h/1.4/Fri Aug 24 03:38:47 2001/-ko/Tlinux_2_4_20
-+/scsiglue.c/1.18.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/scsiglue.h/1.4/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
-+/sddr09.c/1.11.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/sddr09.h/1.3/Tue Aug 29 05:27:08 2000/-ko/Tlinux_2_4_20
-+/sddr55.c/1.2.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sddr55.h/1.1.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/shuttle_usbat.c/1.7.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/shuttle_usbat.h/1.4/Thu Oct 5 01:18:59 2000/-ko/Tlinux_2_4_20
-+/transport.c/1.15.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/transport.h/1.10.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/unusual_devs.h/1.4.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/usb.c/1.17.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/usb.h/1.11.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Repository
---- linux-2.4.20/drivers/usb/storage/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Repository 2005-01-06 23:05:32.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/usb/storage
-diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Root
---- linux-2.4.20/drivers/usb/storage/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Root 2005-01-06 23:05:32.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/usb/storage/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Tag
---- linux-2.4.20/drivers/usb/storage/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/CVS/Tag 2005-01-06 23:05:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/usb/storage/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/usb/storage/.cvsignore
---- linux-2.4.20/drivers/usb/storage/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/usb/storage/.cvsignore 2001-12-30 21:33:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Entries
---- linux-2.4.20/drivers/video/aty/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Entries 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
-+/atyfb.h/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/atyfb_base.c/1.4.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/mach64.h/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
-+/mach64_accel.c/1.1.2.2/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/mach64_ct.c/1.1/Fri Aug 24 03:38:49 2001/-ko/Tlinux_2_4_20
-+/mach64_cursor.c/1.2/Tue Nov 6 07:56:08 2001/-ko/Tlinux_2_4_20
-+/mach64_gx.c/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Repository
---- linux-2.4.20/drivers/video/aty/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Repository 2005-01-06 23:05:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/video/aty
-diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Root
---- linux-2.4.20/drivers/video/aty/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Root 2005-01-06 23:05:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/video/aty/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Tag
---- linux-2.4.20/drivers/video/aty/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/CVS/Tag 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/video/aty/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/aty/.cvsignore
---- linux-2.4.20/drivers/video/aty/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/aty/.cvsignore 2001-08-23 22:38:49.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/video/au1100fb.c linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.c
---- linux-2.4.20/drivers/video/au1100fb.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.c 2002-12-11 00:12:30.000000000 -0600
-@@ -61,7 +61,8 @@
- * Sanity check. If this is a new Au1100 based board, search for
- * the PB1100 ifdefs to make sure you modify the code accordingly.
- */
--#ifndef CONFIG_MIPS_PB1100
-+#if defined(CONFIG_MIPS_PB1100)
-+#else
- error Unknown Au1100 board
- #endif
-
-@@ -318,8 +319,8 @@
- p_lcd_reg->lcd_control |= LCD_CONTROL_GO;
- au_writew(au_readw(PB1100_G_CONTROL) | p_lcd->mode_backlight,
- PB1100_G_CONTROL);
-- au_sync();
- #endif
-+ au_sync();
- break;
-
- case VESA_VSYNC_SUSPEND:
-@@ -328,11 +329,11 @@
- /* turn off panel */
- //printk("turn off panel\n");
- #ifdef CONFIG_MIPS_PB1100
-- p_lcd_reg->lcd_control &= ~LCD_CONTROL_GO;
- au_writew(au_readw(PB1100_G_CONTROL) & ~p_lcd->mode_backlight,
- PB1100_G_CONTROL);
-- au_sync();
-+ p_lcd_reg->lcd_control &= ~LCD_CONTROL_GO;
- #endif
-+ au_sync();
- break;
- default:
- break;
-@@ -395,7 +396,8 @@
- vma->vm_pgoff = off >> PAGE_SHIFT;
-
- pgprot_val(vma->vm_page_prot) &= ~_CACHE_MASK;
-- pgprot_val(vma->vm_page_prot) |= _CACHE_CACHABLE_NONCOHERENT;
-+ //pgprot_val(vma->vm_page_prot) |= _CACHE_CACHABLE_NONCOHERENT;
-+ pgprot_val(vma->vm_page_prot) |= (6 << 9); //CCA=6
-
- /* This is an IO map - tell maydump to skip this VMA */
- vma->vm_flags |= VM_IO;
-@@ -472,12 +474,12 @@
- p_lcd_reg->lcd_words = words - 1;
- p_lcd_reg->lcd_dmaaddr0 = fb_info.fb_phys;
-
--#ifdef CONFIG_MIPS_PB1100
- /* turn on panel */
-+#ifdef CONFIG_MIPS_PB1100
- au_writew(au_readw(PB1100_G_CONTROL) | p_lcd->mode_backlight,
- PB1100_G_CONTROL);
-- p_lcd_reg->lcd_control |= LCD_CONTROL_GO;
- #endif
-+ p_lcd_reg->lcd_control |= LCD_CONTROL_GO;
-
- return 0;
- }
-@@ -612,6 +614,19 @@
- for(this_opt=strtok(options, ","); this_opt;
- this_opt=strtok(NULL, ",")) {
- if (!strncmp(this_opt, "panel:", 6)) {
-+#ifdef CONFIG_MIPS_PB1100
-+ /* Read Pb1100 Switch S10 ? */
-+ if (!strncmp(this_opt+6, "s10", 3))
-+ {
-+ int panel;
-+ panel = *(volatile int *)0xAE000008; /* BCSR SWITCHES */
-+ panel >>= 8;
-+ panel &= 0x0F;
-+ if (panel >= num_panels) panel = 0;
-+ my_lcd_index = panel;
-+ }
-+ else
-+#endif
- /* Get the panel name, everything else if fixed */
- for (i=0; i<num_panels; i++) {
- if (!strncmp(this_opt+6, panels[i].panel_name,
-@@ -626,6 +641,9 @@
- fb_info.nohwcursor = 1;
- }
- }
-+
-+ printk("au1100fb: Panel %d %s\n", my_lcd_index,
-+ panels[my_lcd_index].panel_name);
- }
-
-
-diff -urNd -urNd linux-2.4.20/drivers/video/au1100fb.h linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.h
---- linux-2.4.20/drivers/video/au1100fb.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/au1100fb.h 2002-12-11 00:12:30.000000000 -0600
-@@ -191,7 +191,7 @@
- */
- struct known_lcd_panels panels[] =
- {
-- { /* 0: Pb1100 LCDA: Sharp 320x240 TFT panel */
-+ { /* 0: Pb1100 LCDA: Sharp 320x240x16bpp TFT panel, no rotate */
- 320, /* xres */
- 240, /* yres */
- 16, /* bpp */
-@@ -206,6 +206,60 @@
- /*LCD_CONTROL_DB*/
- /*LCD_CONTROL_CCO*/
- /*LCD_CONTROL_DP*/
-+ | LCD_CONTROL_PO_00
-+ /*LCD_CONTROL_MPI*/
-+ | LCD_CONTROL_PT
-+ | LCD_CONTROL_PC
-+ | LCD_CONTROL_BPP_16 ),
-+
-+ /* mode_horztiming */
-+ ( LCD_HORZTIMING_HN2_N(8)
-+ | LCD_HORZTIMING_HN1_N(60)
-+ | LCD_HORZTIMING_HPW_N(12)
-+ | LCD_HORZTIMING_PPL_N(320) ),
-+
-+ /* mode_verttiming */
-+ ( LCD_VERTTIMING_VN2_N(5)
-+ | LCD_VERTTIMING_VN1_N(17)
-+ | LCD_VERTTIMING_VPW_N(1)
-+ | LCD_VERTTIMING_LPP_N(240) ),
-+
-+ /* mode_clkcontrol */
-+ ( 0
-+ /*LCD_CLKCONTROL_IB*/
-+ /*LCD_CLKCONTROL_IC*/
-+ /*LCD_CLKCONTROL_IH*/
-+ /*LCD_CLKCONTROL_IV*/
-+ | LCD_CLKCONTROL_PCD_N(1) ),
-+
-+ /* mode_pwmdiv */
-+ 0,
-+
-+ /* mode_pwmhi */
-+ 0,
-+
-+ /* mode_toyclksrc */
-+ ((1<<7) | (1<<6) | (1<<5)),
-+
-+ /* mode_backlight */
-+ 6
-+ },
-+
-+ { /* 1: Pb1100 LCDA: Sharp 320x240x16bpp TFT panel, rotated */
-+ 240, /* xres */
-+ 320, /* yres */
-+ 16, /* bpp */
-+
-+ "Sharp_320x240_16",
-+ /* mode_control */
-+ ( LCD_CONTROL_SBPPF_565
-+ /*LCD_CONTROL_WP*/
-+ /*LCD_CONTROL_WD*/
-+ | LCD_CONTROL_C
-+ | LCD_CONTROL_SM_0
-+ /*LCD_CONTROL_DB*/
-+ /*LCD_CONTROL_CCO*/
-+ /*LCD_CONTROL_DP*/
- | LCD_DEFAULT_PIX_FORMAT
- /*LCD_CONTROL_MPI*/
- | LCD_CONTROL_PT
-@@ -245,7 +299,39 @@
- 6
- },
-
-- { /* 1: Pb1100 LCDC 640x480 TFT panel */
-+ { /* 2: Pb1100 LCDB 640x480x16bpp PrimeView TFT panel */
-+ 640, /* xres */
-+ 480, /* yres */
-+ 16, /* bpp */
-+
-+ "Primeview_640x480_16",
-+
-+ /* mode_control */
-+ 0x0004886a,
-+
-+ /* mode_horztiming */
-+ 0x0e4bfe7f,
-+
-+ /* mode_verttiming */
-+ 0x210805df,
-+
-+ /* mode_clkcontrol */
-+ 0x00038001,
-+
-+ /* mode_pwmdiv */
-+ 0,
-+
-+ /* mode_pwmhi */
-+ 0,
-+
-+ /* mode_toyclksrc */
-+ ((1<<7) | (1<<6) | (0<<5)),
-+
-+ /* mode_backlight */
-+ 7
-+ },
-+
-+ { /* 3: Pb1100 LCDC 640x480x16bpp TFT panel */
- 640, /* xres */
- 480, /* yres */
- 16, /* bpp */
-@@ -253,7 +339,11 @@
- "Generic_640x480_16",
-
- /* mode_control */
-+#ifdef CONFIG_MIPS_HYD1100
-+ 0x0004c15a,
-+#else
- 0x004806a | LCD_DEFAULT_PIX_FORMAT,
-+#endif
-
- /* mode_horztiming */
- 0x3434d67f,
-@@ -282,24 +372,31 @@
- 7
- },
-
-- { /* 2: Pb1100 LCDB 640x480 PrimeView TFT panel */
-+ { // 4: Pb1100 NEON: 640x480x16bpp CRT, HOG, Hsync 30.7 kHz, Vsync 57.7 Hz
- 640, /* xres */
- 480, /* yres */
-- 16, /* bpp */
-+ 16, /* bpp */
-
-- "PrimeView_640x480_16",
-+ "NEON_640x480_16",
-
- /* mode_control */
- 0x0004886a | LCD_DEFAULT_PIX_FORMAT,
-
-- /* mode_horztiming */
-- 0x0e4bfe7f,
-+ // mode_horztiming
-+ // 15 pixels front porch
-+ // 76 pixels back porch
-+ // 64 pixels sync pulse
-+ 0x1e3bfe7f,
-
-- /* mode_verttiming */
-+ // mode_verttiming
-+ // 34 lines front porch
-+ // 9 lines back porch
-+ // 2 lines sync pulse
- 0x210805df,
-
- /* mode_clkcontrol */
-- 0x00038001,
-+ // div to 24 MHz
-+ 0x00020001,
-
- /* mode_pwmdiv */
- 0,
-@@ -308,13 +405,14 @@
- 0,
-
- /* mode_toyclksrc */
-+ // use 48 MHz clock
- ((1<<7) | (1<<6) | (0<<5)),
-
- /* mode_backlight */
- 7
- },
-
-- { /* 3: Pb1100 800x600x16bpp NEON CRT */
-+ { //5: Pb1100 NEON: 800x600x16bpp CRT, HOG, Hsync 45.7 kHz, Vsync 68.7 Hz
- 800, /* xres */
- 600, /* yres */
- 16, /* bpp */
-@@ -324,13 +422,20 @@
- /* mode_control */
- 0x0004886A | LCD_DEFAULT_PIX_FORMAT,
-
-- /* mode_horztiming */
-- 0x005AFF1F,
-+ // mode_horztiming
-+ // 32 pixels front porch
-+ // 152 pixels back porch
-+ // 64 pixels sync pulse
-+ 0x1F97FF1F,
-
-- /* mode_verttiming */
-- 0x16000E57,
-+ // mode_verttiming
-+ // 37 lines front porch
-+ // 23 lines back porch
-+ // 6 lines sync pulse
-+ 0x24161A57,
-
- /* mode_clkcontrol */
-+ // keep at 47 MHz
- 0x00020000,
-
- /* mode_pwmdiv */
-@@ -340,13 +445,14 @@
- 0,
-
- /* mode_toyclksrc */
-+ // use 48 MHz clock
- ((1<<7) | (1<<6) | (0<<5)),
--
-+
- /* mode_backlight */
- 7
- },
-
-- { /* 4: Pb1100 640x480x16bpp NEON CRT */
-+ { //6: Pb1100 NEON: 800x600x16bpp CRT, HOG, Hsync 45.7 kHz, Vsync 68.7 Hz
- 640, /* xres */
- 480, /* yres */
- 16, /* bpp */
-@@ -356,13 +462,20 @@
- /* mode_control */
- 0x0004886A | LCD_DEFAULT_PIX_FORMAT,
-
-- /* mode_horztiming */
-- 0x0052E27F,
-+ // mode_horztiming
-+ // 32 pixels front porch
-+ // 152 pixels back porch
-+ // 64 pixels sync pulse
-+ 0x1F97FF1F,
-
-- /* mode_verttiming */
-- 0x18000DDF,
-+ // mode_verttiming
-+ // 37 lines front porch
-+ // 23 lines back porch
-+ // 6 lines sync pulse
-+ 0x24161A57,
-
- /* mode_clkcontrol */
-+ // keep at 47 MHz
- 0x00020000,
-
- /* mode_pwmdiv */
-@@ -372,10 +485,54 @@
- 0,
-
- /* mode_toyclksrc */
-+ // use 48 MHz clock
- ((1<<7) | (1<<6) | (0<<5)),
-+
-+ /* mode_backlight */
-+ 7
-+ },
-
-+ { //7: Pb1100 NEON: 800x600x16bpp CRT, HOG, Hsync 45.7 kHz, Vsync 68.7 Hz
-+ 800, /* xres */
-+ 600, /* yres */
-+ 16, /* bpp */
-+
-+ "NEON_800x600_16",
-+
-+
-+ /* mode_control */
-+ 0x0004886A,
-+
-+ // mode_horztiming
-+ // 32 pixels front porch
-+ // 152 pixels back porch
-+ // 64 pixels sync pulse
-+ 0x1F97FF1F,
-+
-+ // mode_verttiming
-+ // 37 lines front porch
-+ // 23 lines back porch
-+ // 6 lines sync pulse
-+ 0x24161A57,
-+
-+ /* mode_clkcontrol */
-+ // keep at 47 MHz
-+ 0x00020000,
-+
-+ /* mode_pwmdiv */
-+ 0,
-+
-+ /* mode_pwmhi */
-+ 0,
-+
-+ /* mode_toyclksrc */
-+ // use 48 MHz clock
-+ ((1<<7) | (1<<6) | (0<<5)),
-+
- /* mode_backlight */
- 7
- },
-+
-+
- };
- #endif /* _AU1100LCD_H */
-diff -urNd -urNd linux-2.4.20/drivers/video/Config.in linux-2.4.20-mipscvs-20050106/drivers/video/Config.in
---- linux-2.4.20/drivers/video/Config.in 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/Config.in 2002-10-07 16:42:15.000000000 -0500
-@@ -213,7 +213,7 @@
- if [ "$CONFIG_DECSTATION" = "y" ]; then
- dep_bool ' PMAG-BA TURBOchannel framebuffer support' CONFIG_FB_PMAG_BA $CONFIG_TC
- dep_bool ' PMAGB-B TURBOchannel framebuffer support' CONFIG_FB_PMAGB_B $CONFIG_TC
-- bool ' Maxine (Personal DECstation) onboard framebuffer support' CONFIG_FB_MAXINE
-+ dep_bool ' Maxine (Personal DECstation) onboard framebuffer support' CONFIG_FB_MAXINE $CONFIG_TC
- fi
- if [ "$CONFIG_NINO" = "y" ]; then
- bool ' TMPTX3912/PR31700 frame buffer support' CONFIG_FB_TX3912
-diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Entries
---- linux-2.4.20/drivers/video/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Entries 2005-01-06 23:08:10.000000000 -0600
-@@ -0,0 +1,135 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:17 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.45.2.6/Mon Oct 7 21:42:15 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.44.2.5/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
-+/S3triofb.c/1.12/Fri Oct 19 01:24:50 2001/-ko/Tlinux_2_4_20
-+/acornfb.c/1.23.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/acornfb.h/1.4/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
-+/amifb.c/1.21.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/atafb.c/1.15/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/aty128.h/1.6.4.1/Tue Feb 26 05:59:53 2002/-ko/Tlinux_2_4_20
-+/aty128fb.c/1.25.2.3/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/au1100fb.c/1.1.2.2/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/au1100fb.h/1.1.2.2/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/bwtwofb.c/1.9/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/cgfourteenfb.c/1.8/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/cgsixfb.c/1.13/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/cgthreefb.c/1.8/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/chipsfb.c/1.15.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/clgenfb.c/1.25.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/clgenfb.h/1.3/Sat Feb 5 06:47:34 2000/-ko/Tlinux_2_4_20
-+/controlfb.c/1.20.2.1/Tue Feb 26 05:59:53 2002/-ko/Tlinux_2_4_20
-+/controlfb.h/1.4/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
-+/creatorfb.c/1.13/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/cvisionppc.h/1.3/Fri Feb 18 00:24:44 2000/-ko/Tlinux_2_4_20
-+/cyber2000fb.c/1.26.2.2/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/cyber2000fb.h/1.13.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/cyberfb.c/1.18/Sun Dec 2 11:34:51 2001/-ko/Tlinux_2_4_20
-+/cyberfb.h/1.4/Sat Sep 22 12:49:34 2001/-ko/Tlinux_2_4_20
-+/dn_accel.h/1.1/Fri Feb 18 22:06:18 2000/-ko/Tlinux_2_4_20
-+/dn_cfb4.c/1.8/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/dn_cfb8.c/1.9/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/dnfb.c/1.14.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/dummycon.c/1.8/Wed Jan 10 05:27:34 2001/-ko/Tlinux_2_4_20
-+/epson1355fb.c/1.3/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/epson1356fb.c/1.1.2.3/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
-+/epson1356fb.h/1.1.2.1/Thu Aug 15 09:26:54 2002/-ko/Tlinux_2_4_20
-+/fbcmap.c/1.7/Thu Apr 5 04:58:28 2001/-ko/Tlinux_2_4_20
-+/fbcon-afb.c/1.11/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-cfb16.c/1.11/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-cfb2.c/1.9/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-cfb24.c/1.9.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/fbcon-cfb32.c/1.9/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-cfb4.c/1.9/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-cfb8.c/1.12/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-hga.c/1.4/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-ilbm.c/1.10/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-iplan2p2.c/1.12/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-iplan2p4.c/1.12/Tue Nov 6 00:55:18 2001/-ko/Tlinux_2_4_20
-+/fbcon-iplan2p8.c/1.12/Tue Nov 6 00:55:19 2001/-ko/Tlinux_2_4_20
-+/fbcon-mac.c/1.11/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/fbcon-mfb.c/1.11/Tue Nov 6 00:55:19 2001/-ko/Tlinux_2_4_20
-+/fbcon-sti.c/1.4.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/fbcon-vga-planes.c/1.5/Tue Nov 6 00:55:19 2001/-ko/Tlinux_2_4_20
-+/fbcon-vga.c/1.5/Fri Oct 19 01:24:51 2001/-ko/Tlinux_2_4_20
-+/fbcon.c/1.28.2.5/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/fbgen.c/1.9.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/fbmem.c/1.50.2.8/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
-+/fbmon.c/1.2/Mon Mar 13 20:55:34 2000/-ko/Tlinux_2_4_20
-+/fm2fb.c/1.10/Sun Dec 2 11:34:51 2001/-ko/Tlinux_2_4_20
-+/font_6x11.c/1.4/Sat Oct 9 00:01:33 1999/-ko/Tlinux_2_4_20
-+/font_8x16.c/1.3/Mon Jan 4 16:07:52 1999/-ko/Tlinux_2_4_20
-+/font_8x8.c/1.3/Mon Jan 4 16:07:53 1999/-ko/Tlinux_2_4_20
-+/font_acorn_8x8.c/1.2/Mon Jan 4 16:07:53 1999/-ko/Tlinux_2_4_20
-+/font_pearl_8x8.c/1.2/Mon Jan 4 16:07:54 1999/-ko/Tlinux_2_4_20
-+/font_sun12x22.c/1.3/Mon Feb 15 02:20:14 1999/-ko/Tlinux_2_4_20
-+/font_sun8x16.c/1.2/Mon Jan 4 16:07:55 1999/-ko/Tlinux_2_4_20
-+/fonts.c/1.7/Thu Apr 5 04:58:28 2001/-ko/Tlinux_2_4_20
-+/g364fb.c/1.12/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
-+/hgafb.c/1.11/Sun Dec 2 11:34:51 2001/-ko/Tlinux_2_4_20
-+/hitfb.c/1.9/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
-+/hpfb.c/1.11.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/iga.h/1.2/Sat Feb 5 06:47:34 2000/-ko/Tlinux_2_4_20
-+/igafb.c/1.16.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/imsttfb.c/1.17.2.2/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/leofb.c/1.9/Tue Nov 6 00:55:19 2001/-ko/Tlinux_2_4_20
-+/macfb.c/1.14.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/macmodes.c/1.9/Wed Aug 22 03:24:54 2001/-ko/Tlinux_2_4_20
-+/maxinefb.c/1.6.2.2/Thu Jan 16 14:09:20 2003/-ko/Tlinux_2_4_20
-+/maxinefb.h/1.1.2.1/Wed Jan 8 12:43:58 2003//Tlinux_2_4_20
-+/mdacon.c/1.12/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
-+/modedb.c/1.4.2.1/Sat Dec 29 05:38:13 2001/-ko/Tlinux_2_4_20
-+/neofb.c/1.1.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/neofb.h/1.1.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/newport_con.c/1.26.2.2/Thu Sep 12 10:14:43 2002/-ko/Tlinux_2_4_20
-+/offb.c/1.23.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/p9100.h/1.2/Sat Feb 5 06:47:34 2000/-ko/Tlinux_2_4_20
-+/p9100fb.c/1.3/Fri Mar 9 20:34:30 2001/-ko/Tlinux_2_4_20
-+/platinumfb.c/1.13.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/platinumfb.h/1.3.4.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/pm2fb.c/1.11.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/pm2fb.h/1.4/Fri Feb 18 00:24:45 2000/-ko/Tlinux_2_4_20
-+/pm3fb.c/1.1.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/pm3fb.h/1.1.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/pmag-ba-fb.c/1.8.2.1/Thu Nov 7 18:37:09 2002/-ko/Tlinux_2_4_20
-+/pmag-ba-fb.h/1.1/Sun Jan 28 12:38:32 2001//Tlinux_2_4_20
-+/pmagb-b-fb.c/1.7.2.1/Thu Nov 7 18:37:09 2002/-ko/Tlinux_2_4_20
-+/pmagb-b-fb.h/1.1.2.1/Wed Jan 8 13:49:35 2003//Tlinux_2_4_20
-+/prom.uni/1.1/Tue Aug 25 09:19:52 1998/-ko/Tlinux_2_4_20
-+/promcon.c/1.9/Tue Nov 6 00:55:19 2001/-ko/Tlinux_2_4_20
-+/pvr2fb.c/1.3/Tue Nov 6 00:55:19 2001/-ko/Tlinux_2_4_20
-+/q40fb.c/1.8.2.1/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/radeon.h/1.2.2.2/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/radeonfb.c/1.4.2.4/Wed Sep 11 12:45:21 2002/-ko/Tlinux_2_4_20
-+/retz3fb.c/1.19/Sun Dec 2 11:34:51 2001/-ko/Tlinux_2_4_20
-+/retz3fb.h/1.2/Mon Jan 4 16:08:00 1999/-ko/Tlinux_2_4_20
-+/sa1100fb.c/1.16/Sun Dec 2 11:34:51 2001/-ko/Tlinux_2_4_20
-+/sa1100fb.h/1.2/Tue Nov 6 07:56:08 2001/-ko/Tlinux_2_4_20
-+/sbusfb.c/1.19/Fri Oct 19 01:24:52 2001/-ko/Tlinux_2_4_20
-+/sgivwfb.c/1.10.2.1/Wed Jun 26 22:36:14 2002/-ko/Tlinux_2_4_20
-+/sgivwfb.h/1.1/Sun Jun 13 16:34:14 1999/-ko/Tlinux_2_4_20
-+/skeletonfb.c/1.12/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
-+/sstfb.c/1.3.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sstfb.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sun3fb.c/1.9/Mon Nov 5 20:16:15 2001/-ko/Tlinux_2_4_20
-+/tcxfb.c/1.7/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
-+/tdfxfb.c/1.19.2.2/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/tgafb.c/1.20/Sun Dec 2 11:34:52 2001/-ko/Tlinux_2_4_20
-+/tgafb.h/1.4/Fri Apr 28 01:09:48 2000/-ko/Tlinux_2_4_20
-+/tridentfb.c/1.1.2.3/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/tridentfb.h/1.1.2.2/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/tx3912fb.c/1.4.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
-+/tx3912fb.h/1.3.2.1/Wed May 29 08:12:07 2002/-ko/Tlinux_2_4_20
-+/valkyriefb.c/1.13.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/valkyriefb.h/1.3.4.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/vesafb.c/1.19.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/vfb.c/1.14/Sun Dec 2 11:34:52 2001/-ko/Tlinux_2_4_20
-+/vga.h/1.3.4.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/vga16fb.c/1.12/Sun Dec 2 11:34:52 2001/-ko/Tlinux_2_4_20
-+/vgacon.c/1.17.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/virgefb.c/1.18.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/virgefb.h/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+D/aty////
-+D/matrox////
-+D/riva////
-+D/sis////
-+D/sti////
-diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Repository
---- linux-2.4.20/drivers/video/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Repository 2005-01-06 23:05:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/video
-diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Root
---- linux-2.4.20/drivers/video/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Root 2005-01-06 23:05:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/video/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Tag
---- linux-2.4.20/drivers/video/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/CVS/Tag 2005-01-06 23:05:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/video/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/.cvsignore
---- linux-2.4.20/drivers/video/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/.cvsignore 1998-03-17 16:13:17.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/video/epson1356fb.c linux-2.4.20-mipscvs-20050106/drivers/video/epson1356fb.c
---- linux-2.4.20/drivers/video/epson1356fb.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/epson1356fb.c 2002-12-29 14:08:23.000000000 -0600
-@@ -75,9 +75,9 @@
-
- #include <linux/spinlock.h>
-
--#include <linux/e1356fb.h>
-+#include <video/e1356fb.h>
-
--#ifdef CONFIG_MIPS_AU1000
-+#ifdef CONFIG_CPU_AU1X00
- #include <asm/au1000.h>
- #endif
-
-@@ -2296,9 +2296,9 @@
- * Program the clocks
- */
-
--#ifdef CONFIG_MIPS_AU1000
-+#ifdef CONFIG_CPU_AU1X00
- if ((epfix->system == SYS_PB1000) || (epfix->system == SYS_PB1500))
-- epfix->busclk = get_au1000_lcd_clock();
-+ epfix->busclk = get_au1x00_lcd_clock();
- #endif
-
- if (epfix->busclk > 80000) {
-diff -urNd -urNd linux-2.4.20/drivers/video/fbmem.c linux-2.4.20-mipscvs-20050106/drivers/video/fbmem.c
---- linux-2.4.20/drivers/video/fbmem.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/fbmem.c 2002-12-29 14:08:23.000000000 -0600
-@@ -132,6 +132,8 @@
- extern int radeonfb_setup(char*);
- extern int e1355fb_init(void);
- extern int e1355fb_setup(char*);
-+extern int e1356fb_init(void);
-+extern int e1356fb_setup(char*);
- extern int au1100fb_init(void);
- extern int au1100fb_setup(char*);
- extern int pvr2fb_init(void);
-@@ -300,6 +302,9 @@
- #ifdef CONFIG_FB_E1355
- { "e1355fb", e1355fb_init, e1355fb_setup },
- #endif
-+#ifdef CONFIG_FB_E1356
-+ { "e1356fb", e1356fb_init, e1356fb_setup },
-+#endif
- #ifdef CONFIG_FB_PVR2
- { "pvr2", pvr2fb_init, pvr2fb_setup },
- #endif
-diff -urNd -urNd linux-2.4.20/drivers/video/Makefile linux-2.4.20-mipscvs-20050106/drivers/video/Makefile
---- linux-2.4.20/drivers/video/Makefile 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/Makefile 2002-12-29 14:08:23.000000000 -0600
-@@ -124,6 +124,7 @@
- obj-$(CONFIG_FB_VIRTUAL) += vfb.o
- obj-$(CONFIG_FB_HIT) += hitfb.o fbgen.o
- obj-$(CONFIG_FB_E1355) += epson1355fb.o fbgen.o
-+obj-$(CONFIG_FB_E1356) += epson1356fb.o
- obj-$(CONFIG_FB_PVR2) += pvr2fb.o
- obj-$(CONFIG_FB_VOODOO1) += sstfb.o
-
-diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Entries
---- linux-2.4.20/drivers/video/matrox/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Entries 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1,22 @@
-+/.cvsignore/1.1/Fri Mar 10 00:12:37 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/g450_pll.c/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/g450_pll.h/1.1.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/i2c-matroxfb.c/1.4/Sun Dec 2 11:34:52 2001/-ko/Tlinux_2_4_20
-+/matroxfb_DAC1064.c/1.9.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_DAC1064.h/1.4.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_Ti3026.c/1.5.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_Ti3026.h/1.1/Thu Mar 2 02:37:06 2000/-ko/Tlinux_2_4_20
-+/matroxfb_accel.c/1.6/Tue Nov 6 00:55:21 2001/-ko/Tlinux_2_4_20
-+/matroxfb_accel.h/1.1/Thu Mar 2 02:37:06 2000/-ko/Tlinux_2_4_20
-+/matroxfb_base.c/1.16.2.2/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_base.h/1.9.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_crtc2.c/1.9.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_crtc2.h/1.1/Thu Mar 2 02:37:06 2000/-ko/Tlinux_2_4_20
-+/matroxfb_g450.c/1.3.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_g450.h/1.2/Sun Dec 2 11:34:52 2001/-ko/Tlinux_2_4_20
-+/matroxfb_maven.c/1.4.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_maven.h/1.2/Mon Mar 13 20:55:34 2000/-ko/Tlinux_2_4_20
-+/matroxfb_misc.c/1.4.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/matroxfb_misc.h/1.1.4.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Repository
---- linux-2.4.20/drivers/video/matrox/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Repository 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/video/matrox
-diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Root
---- linux-2.4.20/drivers/video/matrox/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Root 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/video/matrox/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Tag
---- linux-2.4.20/drivers/video/matrox/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/CVS/Tag 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/video/matrox/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/matrox/.cvsignore
---- linux-2.4.20/drivers/video/matrox/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/matrox/.cvsignore 2000-03-09 18:12:37.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/video/maxinefb.c linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.c
---- linux-2.4.20/drivers/video/maxinefb.c 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.c 2003-01-16 08:09:20.000000000 -0600
-@@ -81,9 +81,6 @@
- static int currcon = 0;
- static struct maxinefb_par current_par;
-
--/* Reference to machine type set in arch/mips/dec/prom/identify.c, KM */
--extern unsigned long mips_machtype;
--
-
- /* Handle the funny Inmos RamDAC/video controller ... */
-
-@@ -123,6 +120,15 @@
- var->yoffset = 0;
- var->bits_per_pixel = 8;
- var->grayscale = 0;
-+ var->red.offset = 0;
-+ var->red.length = 8;
-+ var->red.msb_right = 0;
-+ var->green.offset = 0;
-+ var->green.length = 8;
-+ var->green.msb_right = 0;
-+ var->blue.offset = 0;
-+ var->blue.length = 8;
-+ var->blue.msb_right = 0;
- var->transp.offset = 0;
- var->transp.length = 0;
- var->transp.msb_right = 0;
-@@ -253,7 +259,7 @@
- strcpy(fix->id, "maxinefb");
- /* fix->id is a char[16], so a maximum of 15 characters, KM */
-
-- fix->smem_start = (char *) fb_start; /* display memory base address, KM */
-+ fix->smem_start = fb_start; /* display memory base address, KM */
- fix->smem_len = fb_size;
- fix->type = FB_TYPE_PACKED_PIXELS;
- fix->visual = FB_VISUAL_PSEUDOCOLOR;
-@@ -291,7 +297,7 @@
-
- maxinefb_get_fix(&fix, con, 0);
-
-- display->screen_base = fix.smem_start;
-+ display->screen_base = (char *)fix.smem_start;
- display->visual = fix.visual;
- display->type = fix.type;
- display->type_aux = fix.type_aux;
-@@ -316,7 +322,7 @@
-
- int __init maxinefb_init(void)
- {
-- volatile unsigned char *fboff;
-+ unsigned long fboff;
- int i;
-
- /* Validate we're on the proper machine type */
-@@ -332,7 +338,7 @@
-
- /* Clear screen */
- for (fboff = fb_start; fboff < fb_start + 0x1ffff; fboff++)
-- *fboff = 0x0;
-+ *(volatile unsigned char *)fboff = 0x0;
-
- /* erase hardware cursor */
- for (i = 0; i < 512; i++) {
-diff -urNd -urNd linux-2.4.20/drivers/video/maxinefb.h linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.h
---- linux-2.4.20/drivers/video/maxinefb.h 2001-04-18 13:49:12.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/maxinefb.h 2003-01-08 06:43:58.000000000 -0600
-@@ -8,17 +8,18 @@
- * archive for more details.
- */
-
-+#include <asm/addrspace.h>
-
- /*
- * IMS332 video controller register base address
- */
--#define MAXINEFB_IMS332_ADDRESS 0xbc140000
-+#define MAXINEFB_IMS332_ADDRESS KSEG1ADDR(0x1c140000)
-
- /*
- * Begin of DECstation 5000/xx onboard framebuffer memory, default resolution
- * is 1024x768x8
- */
--#define DS5000_xx_ONBOARD_FBMEM_START 0xaa000000
-+#define DS5000_xx_ONBOARD_FBMEM_START KSEG1ADDR(0x0a000000)
-
- /*
- * The IMS 332 video controller used in the DECstation 5000/xx series
-diff -urNd -urNd linux-2.4.20/drivers/video/pmag-ba-fb.c linux-2.4.20-mipscvs-20050106/drivers/video/pmag-ba-fb.c
---- linux-2.4.20/drivers/video/pmag-ba-fb.c 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/pmag-ba-fb.c 2002-11-07 12:37:09.000000000 -0600
-@@ -105,6 +105,15 @@
- var->yoffset = 0;
- var->bits_per_pixel = 8;
- var->grayscale = 0;
-+ var->red.offset = 0;
-+ var->red.length = 8;
-+ var->red.msb_right = 0;
-+ var->green.offset = 0;
-+ var->green.length = 8;
-+ var->green.msb_right = 0;
-+ var->blue.offset = 0;
-+ var->blue.length = 8;
-+ var->blue.msb_right = 0;
- var->transp.offset = 0;
- var->transp.length = 0;
- var->transp.msb_right = 0;
-diff -urNd -urNd linux-2.4.20/drivers/video/pmagb-b-fb.c linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.c
---- linux-2.4.20/drivers/video/pmagb-b-fb.c 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.c 2002-11-07 12:37:09.000000000 -0600
-@@ -108,6 +108,15 @@
- var->yoffset = 0;
- var->bits_per_pixel = 8;
- var->grayscale = 0;
-+ var->red.offset = 0;
-+ var->red.length = 8;
-+ var->red.msb_right = 0;
-+ var->green.offset = 0;
-+ var->green.length = 8;
-+ var->green.msb_right = 0;
-+ var->blue.offset = 0;
-+ var->blue.length = 8;
-+ var->blue.msb_right = 0;
- var->transp.offset = 0;
- var->transp.length = 0;
- var->transp.msb_right = 0;
-diff -urNd -urNd linux-2.4.20/drivers/video/pmagb-b-fb.h linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.h
---- linux-2.4.20/drivers/video/pmagb-b-fb.h 2001-04-18 13:49:12.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/pmagb-b-fb.h 2003-01-08 07:49:35.000000000 -0600
-@@ -4,7 +4,7 @@
- * TurboChannel PMAGB-B framebuffer card support,
- * Copyright (C) 1999, 2000, 2001 by
- * Michael Engel <engel@unix-ag.org> and
-- * Karsten Merker <merker@linxutag.org>
-+ * Karsten Merker <merker@linuxtag.org>
- * This file is subject to the terms and conditions of the GNU General
- * Public License. See the file COPYING in the main directory of this
- * archive for more details.
-diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Entries
---- linux-2.4.20/drivers/video/riva/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Entries 2005-01-06 23:05:42.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Fri Mar 10 00:12:37 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Fri Mar 9 20:34:33 2001/-ko/Tlinux_2_4_20
-+/accel.c/1.2.2.1/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/fbdev.c/1.18.2.3/Wed Jun 26 22:36:15 2002/-ko/Tlinux_2_4_20
-+/nv4ref.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/nvreg.h/1.1/Tue Mar 7 16:02:19 2000/-ko/Tlinux_2_4_20
-+/riva_hw.c/1.3.2.1/Tue Feb 26 05:59:54 2002/-ko/Tlinux_2_4_20
-+/riva_hw.h/1.2.2.1/Tue Feb 26 05:59:55 2002/-ko/Tlinux_2_4_20
-+/riva_tbl.h/1.3/Fri Mar 9 20:34:33 2001/-ko/Tlinux_2_4_20
-+/rivafb.h/1.2/Wed Jun 13 17:28:05 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Repository
---- linux-2.4.20/drivers/video/riva/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Repository 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/video/riva
-diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Root
---- linux-2.4.20/drivers/video/riva/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Root 2005-01-06 23:05:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/video/riva/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Tag
---- linux-2.4.20/drivers/video/riva/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/CVS/Tag 2005-01-06 23:05:42.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/video/riva/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/riva/.cvsignore
---- linux-2.4.20/drivers/video/riva/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/riva/.cvsignore 2000-03-09 18:12:37.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Entries
---- linux-2.4.20/drivers/video/sis/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Entries 2005-01-06 23:05:43.000000000 -0600
-@@ -0,0 +1,20 @@
-+/.cvsignore/1.1/Mon Jan 15 04:16:43 2001/-ko/Tlinux_2_4_20
-+/300vtbl.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/310vtbl.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/Makefile/1.4.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/init.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/init.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/init301.c/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/init301.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/initdef.h/1.2.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/oem300.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/oem310.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/osdef.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sis.h/1.2.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sis_accel.c/1.1.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sis_accel.h/1.1.2.1/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sis_main.c/1.8.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/sis_main.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/vgatypes.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/vstruct.h/1.1.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Repository
---- linux-2.4.20/drivers/video/sis/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Repository 2005-01-06 23:05:42.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/video/sis
-diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Root
---- linux-2.4.20/drivers/video/sis/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Root 2005-01-06 23:05:42.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/video/sis/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Tag
---- linux-2.4.20/drivers/video/sis/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/CVS/Tag 2005-01-06 23:05:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/video/sis/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/sis/.cvsignore
---- linux-2.4.20/drivers/video/sis/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sis/.cvsignore 2001-01-14 22:16:43.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Entries
---- linux-2.4.20/drivers/video/sti/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Entries 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/sticon.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/sticore.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/sticore.h/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/stifb.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Repository
---- linux-2.4.20/drivers/video/sti/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Repository 2005-01-06 23:05:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/video/sti
-diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Root
---- linux-2.4.20/drivers/video/sti/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Root 2005-01-06 23:05:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/video/sti/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Tag
---- linux-2.4.20/drivers/video/sti/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/CVS/Tag 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/video/sti/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/video/sti/.cvsignore
---- linux-2.4.20/drivers/video/sti/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/video/sti/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Entries linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Entries
---- linux-2.4.20/drivers/zorro/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Entries 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Tue Aug 25 09:19:57 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.1/Thu Nov 23 02:00:54 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
-+/gen-devlist.c/1.2/Tue Nov 6 07:56:08 2001/-ko/Tlinux_2_4_20
-+/names.c/1.3/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
-+/proc.c/1.10.4.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/zorro.c/1.8/Fri Oct 19 01:24:53 2001/-ko/Tlinux_2_4_20
-+/zorro.ids/1.1.4.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Repository linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Repository
---- linux-2.4.20/drivers/zorro/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Repository 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/drivers/zorro
-diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Root linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Root
---- linux-2.4.20/drivers/zorro/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Root 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/drivers/zorro/CVS/Tag linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Tag
---- linux-2.4.20/drivers/zorro/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/CVS/Tag 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/drivers/zorro/.cvsignore linux-2.4.20-mipscvs-20050106/drivers/zorro/.cvsignore
---- linux-2.4.20/drivers/zorro/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/drivers/zorro/.cvsignore 1998-08-25 04:19:57.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Entries
---- linux-2.4.20/fs/adfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Entries 2005-01-06 23:05:47.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1/Tue Aug 25 09:20:06 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:18:02 2001/-ko/Tlinux_2_4_20
-+/adfs.h/1.6/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+/dir.c/1.15/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+/dir_f.c/1.3.4.1/Tue Feb 26 05:59:56 2002/-ko/Tlinux_2_4_20
-+/dir_f.h/1.2/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+/dir_fplus.c/1.3.4.1/Tue Feb 26 05:59:56 2002/-ko/Tlinux_2_4_20
-+/dir_fplus.h/1.2/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+/file.c/1.12/Sat Sep 22 12:49:35 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.19/Mon Nov 5 20:16:17 2001/-ko/Tlinux_2_4_20
-+/map.c/1.6/Tue Nov 6 07:56:09 2001/-ko/Tlinux_2_4_20
-+/super.c/1.14.2.1/Tue Feb 26 05:59:56 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Repository
---- linux-2.4.20/fs/adfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Repository 2005-01-06 23:05:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/adfs
-diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Root
---- linux-2.4.20/fs/adfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Root 2005-01-06 23:05:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/adfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Tag
---- linux-2.4.20/fs/adfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/adfs/CVS/Tag 2005-01-06 23:05:47.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/adfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/adfs/.cvsignore
---- linux-2.4.20/fs/adfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/adfs/.cvsignore 1998-08-25 04:20:06.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Entries
---- linux-2.4.20/fs/affs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Entries 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:34 1998/-ko/Tlinux_2_4_20
-+/Changes/1.10.2.2/Tue Feb 26 15:49:01 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
-+/amigaffs.c/1.8/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
-+/bitmap.c/1.7.2.1/Tue Feb 26 06:00:02 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.19/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
-+/file.c/1.27.2.1/Tue Feb 26 06:00:03 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.25.2.1/Tue Feb 26 06:00:03 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.23/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
-+/super.c/1.16.2.1/Tue Feb 26 06:00:03 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.14/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Repository
---- linux-2.4.20/fs/affs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Repository 2005-01-06 23:05:47.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/affs
-diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Root
---- linux-2.4.20/fs/affs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Root 2005-01-06 23:05:47.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/affs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Tag
---- linux-2.4.20/fs/affs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/affs/CVS/Tag 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/affs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/affs/.cvsignore
---- linux-2.4.20/fs/affs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/affs/.cvsignore 1998-03-17 16:13:34.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Entries
---- linux-2.4.20/fs/autofs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Entries 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:37 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/autofs_i.h/1.16.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.16.4.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/dirhash.c/1.10/Thu Jun 15 01:56:03 2000/-ko/Tlinux_2_4_20
-+/init.c/1.10/Mon Nov 5 20:16:17 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.16.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/root.c/1.30/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
-+/symlink.c/1.10/Wed Apr 19 04:00:16 2000/-ko/Tlinux_2_4_20
-+/waitq.c/1.13/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Repository
---- linux-2.4.20/fs/autofs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Repository 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/autofs
-diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Root
---- linux-2.4.20/fs/autofs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Root 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/autofs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Tag
---- linux-2.4.20/fs/autofs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs/CVS/Tag 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/autofs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/autofs/.cvsignore
---- linux-2.4.20/fs/autofs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs/.cvsignore 1998-03-17 16:13:37.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Entries
---- linux-2.4.20/fs/autofs4/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Entries 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.1/Fri Feb 18 00:24:46 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/autofs_i.h/1.6.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/expire.c/1.9/Wed Aug 22 03:24:55 2001/-ko/Tlinux_2_4_20
-+/init.c/1.4/Mon Nov 5 20:16:17 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.9.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/root.c/1.10.4.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.3/Fri Apr 28 01:09:49 2000/-ko/Tlinux_2_4_20
-+/waitq.c/1.5/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Repository
---- linux-2.4.20/fs/autofs4/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Repository 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/autofs4
-diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Root linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Root
---- linux-2.4.20/fs/autofs4/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Root 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/autofs4/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Tag
---- linux-2.4.20/fs/autofs4/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/CVS/Tag 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/autofs4/.cvsignore linux-2.4.20-mipscvs-20050106/fs/autofs4/.cvsignore
---- linux-2.4.20/fs/autofs4/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/autofs4/.cvsignore 2000-02-17 18:24:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Entries
---- linux-2.4.20/fs/befs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Entries 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1,17 @@
-+/.cvsignore/1.1.2.1/Sat Jan 11 23:18:17 2003/-ko/Tlinux_2_4_20
-+/ChangeLog/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/TODO/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/attribute.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/befs_fs.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/befs_fs_types.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/btree.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/compatibility.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/datastream.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/debug.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/endian.h/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/io.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/linuxvfs.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/super.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Repository
---- linux-2.4.20/fs/befs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Repository 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/befs
-diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Root
---- linux-2.4.20/fs/befs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Root 2005-01-06 23:05:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/befs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Tag
---- linux-2.4.20/fs/befs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/befs/CVS/Tag 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/befs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/befs/.cvsignore
---- linux-2.4.20/fs/befs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/befs/.cvsignore 2003-01-11 17:18:17.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Entries
---- linux-2.4.20/fs/bfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Entries 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1/Sat Jan 29 01:42:21 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/bfs_defs.h/1.2.4.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.12.4.1/Tue Feb 26 06:00:04 2002/-ko/Tlinux_2_4_20
-+/file.c/1.14/Sat Sep 22 12:49:35 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.15.2.1/Tue Feb 26 06:00:04 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Repository
---- linux-2.4.20/fs/bfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Repository 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/bfs
-diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Root
---- linux-2.4.20/fs/bfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Root 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/bfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Tag
---- linux-2.4.20/fs/bfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/bfs/CVS/Tag 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/bfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/bfs/.cvsignore
---- linux-2.4.20/fs/bfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/bfs/.cvsignore 2000-01-28 19:42:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/binfmt_elf.c linux-2.4.20-mipscvs-20050106/fs/binfmt_elf.c
---- linux-2.4.20/fs/binfmt_elf.c 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/fs/binfmt_elf.c 2002-12-19 18:48:16.000000000 -0600
-@@ -586,6 +586,9 @@
- bprm->argc++;
- }
- }
-+ } else {
-+ /* Executables without an interpreter also need a personality */
-+ SET_PERSONALITY(elf_ex, ibcs2_interpreter);
- }
-
- /* Flush all traces of the currently running executable */
-@@ -1087,7 +1090,11 @@
- elf.e_entry = 0;
- elf.e_phoff = sizeof(elf);
- elf.e_shoff = 0;
-+#ifdef ELF_CORE_EFLAGS
-+ elf.e_flags = ELF_CORE_EFLAGS;
-+#else
- elf.e_flags = 0;
-+#endif
- elf.e_ehsize = sizeof(elf);
- elf.e_phentsize = sizeof(struct elf_phdr);
- elf.e_phnum = segs+1; /* Include notes */
-diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Entries
---- linux-2.4.20/fs/coda/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Entries 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:38 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/cache.c/1.12.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/cnode.c/1.16.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/coda_linux.c/1.10.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.31.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/file.c/1.21.2.4/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.19.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/pioctl.c/1.14.4.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/psdev.c/1.25.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.14/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
-+/sysctl.c/1.13.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/upcall.c/1.19.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Repository
---- linux-2.4.20/fs/coda/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Repository 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/coda
-diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Root linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Root
---- linux-2.4.20/fs/coda/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Root 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/coda/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Tag
---- linux-2.4.20/fs/coda/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/coda/CVS/Tag 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/coda/.cvsignore linux-2.4.20-mipscvs-20050106/fs/coda/.cvsignore
---- linux-2.4.20/fs/coda/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/coda/.cvsignore 1998-03-17 16:13:38.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Entries
---- linux-2.4.20/fs/cramfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Sat Feb 5 06:47:35 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Tue Nov 6 07:56:09 2001/-ko/Tlinux_2_4_20
-+/README/1.2.2.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.18.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/uncompress.c/1.5.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+D/inflate////
-diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Repository
---- linux-2.4.20/fs/cramfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Repository 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/cramfs
-diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Root
---- linux-2.4.20/fs/cramfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Root 2005-01-06 23:05:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/cramfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Tag
---- linux-2.4.20/fs/cramfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/CVS/Tag 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/cramfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/cramfs/.cvsignore
---- linux-2.4.20/fs/cramfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/.cvsignore 2000-02-05 00:47:35.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Entries
---- linux-2.4.20/fs/cramfs/inflate/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Entries 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1,2 @@
-+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Repository
---- linux-2.4.20/fs/cramfs/inflate/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Repository 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/cramfs/inflate
-diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Root linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Root
---- linux-2.4.20/fs/cramfs/inflate/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Root 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Tag
---- linux-2.4.20/fs/cramfs/inflate/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/CVS/Tag 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/cramfs/inflate/.cvsignore linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/.cvsignore
---- linux-2.4.20/fs/cramfs/inflate/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/cramfs/inflate/.cvsignore 2001-12-30 21:33:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/CVS/Entries
---- linux-2.4.20/fs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,86 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:23 1998/-ko/Tlinux_2_4_20
-+/ChangeLog/1.3/Thu Jun 17 13:29:29 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.51.2.3/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.33.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/attr.c/1.15.2.1/Tue Feb 26 05:59:55 2002/-ko/Tlinux_2_4_20
-+/bad_inode.c/1.13.4.1/Wed Jun 26 22:36:16 2002/-ko/Tlinux_2_4_20
-+/binfmt_aout.c/1.37/Tue Nov 6 07:56:08 2001/-ko/Tlinux_2_4_20
-+/binfmt_elf.c/1.52.2.6/Fri Dec 20 00:48:16 2002/-ko/Tlinux_2_4_20
-+/binfmt_em86.c/1.15.2.1/Wed Jun 26 22:36:16 2002/-ko/Tlinux_2_4_20
-+/binfmt_misc.c/1.22.2.2/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/binfmt_script.c/1.15.2.1/Wed Jun 26 22:36:17 2002/-ko/Tlinux_2_4_20
-+/binfmt_som.c/1.1.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/block_dev.c/1.35.2.3/Wed Jun 26 22:36:17 2002/-ko/Tlinux_2_4_20
-+/buffer.c/1.75.2.6/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/char_dev.c/1.2/Tue Nov 6 07:56:08 2001/-ko/Tlinux_2_4_20
-+/dcache.c/1.49.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/devices.c/1.26/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
-+/dnotify.c/1.2.4.2/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/dquot.c/1.40.2.1/Wed Jun 26 22:36:18 2002/-ko/Tlinux_2_4_20
-+/exec.c/1.59.2.3/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/fcntl.c/1.25.2.2/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/fifo.c/1.19/Fri Mar 9 20:34:33 2001/-ko/Tlinux_2_4_20
-+/file.c/1.7.2.1/Wed Jun 26 22:36:18 2002/-ko/Tlinux_2_4_20
-+/file_table.c/1.29.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/filesystems.c/1.25.2.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.57.2.3/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/iobuf.c/1.7.2.2/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/ioctl.c/1.16/Fri Mar 9 20:34:33 2001/-ko/Tlinux_2_4_20
-+/locks.c/1.31.2.1/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.58.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/namespace.c/1.4.2.4/Wed Sep 11 12:45:22 2002/-ko/Tlinux_2_4_20
-+/noquot.c/1.4/Fri May 12 23:48:41 2000/-ko/Tlinux_2_4_20
-+/open.c/1.45.2.3/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/pipe.c/1.39.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/read_write.c/1.23.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/readdir.c/1.16.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/select.c/1.31/Fri Oct 19 01:24:54 2001/-ko/Tlinux_2_4_20
-+/seq_file.c/1.1/Sun Dec 2 11:34:53 2001/-ko/Tlinux_2_4_20
-+/stat.c/1.19.2.2/Thu Nov 21 12:38:52 2002/-ko/Tlinux_2_4_20
-+/super.c/1.64.2.5/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/xattr.c/1.4.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+D/adfs////
-+D/affs////
-+D/autofs////
-+D/autofs4////
-+D/befs////
-+D/bfs////
-+D/coda////
-+D/cramfs////
-+D/devfs////
-+D/devpts////
-+D/efs////
-+D/ext2////
-+D/ext3////
-+D/fat////
-+D/freevxfs////
-+D/hfs////
-+D/hpfs////
-+D/inflate_fs////
-+D/intermezzo////
-+D/isofs////
-+D/jbd////
-+D/jffs////
-+D/jffs2////
-+D/jfs////
-+D/lockd////
-+D/minix////
-+D/msdos////
-+D/ncpfs////
-+D/nfs////
-+D/nfsd////
-+D/nls////
-+D/ntfs////
-+D/openpromfs////
-+D/partitions////
-+D/proc////
-+D/qnx4////
-+D/ramfs////
-+D/reiserfs////
-+D/romfs////
-+D/smbfs////
-+D/sysv////
-+D/udf////
-+D/ufs////
-+D/umsdos////
-+D/vfat////
-diff -urNd -urNd linux-2.4.20/fs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/CVS/Repository
---- linux-2.4.20/fs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Repository 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs
-diff -urNd -urNd linux-2.4.20/fs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/CVS/Root
---- linux-2.4.20/fs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Root 2005-01-06 23:05:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/CVS/Tag
---- linux-2.4.20/fs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/CVS/Tag 2005-01-06 23:05:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/.cvsignore
---- linux-2.4.20/fs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/.cvsignore 1998-03-17 16:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Entries
---- linux-2.4.20/fs/devfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Entries 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.1/Thu Feb 24 00:13:11 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/base.c/1.27.2.4/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/util.c/1.9.2.1/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Repository
---- linux-2.4.20/fs/devfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Repository 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/devfs
-diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Root
---- linux-2.4.20/fs/devfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Root 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/devfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Tag
---- linux-2.4.20/fs/devfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devfs/CVS/Tag 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/devfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/devfs/.cvsignore
---- linux-2.4.20/fs/devfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devfs/.cvsignore 2000-02-23 18:13:11.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Entries
---- linux-2.4.20/fs/devpts/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Entries 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.1/Thu May 7 03:01:44 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/devpts_i.h/1.4/Mon Jun 19 22:45:57 2000/-ko/Tlinux_2_4_20
-+/inode.c/1.13/Mon Nov 5 20:16:17 2001/-ko/Tlinux_2_4_20
-+/root.c/1.16.4.1/Sat Dec 29 05:38:15 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Repository
---- linux-2.4.20/fs/devpts/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Repository 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/devpts
-diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Root linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Root
---- linux-2.4.20/fs/devpts/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Root 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/devpts/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Tag
---- linux-2.4.20/fs/devpts/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devpts/CVS/Tag 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/devpts/.cvsignore linux-2.4.20-mipscvs-20050106/fs/devpts/.cvsignore
---- linux-2.4.20/fs/devpts/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/devpts/.cvsignore 1998-05-06 22:01:44.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Entries
---- linux-2.4.20/fs/efs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Entries 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:44 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.20.4.1/Tue Feb 26 06:00:08 2002/-ko/Tlinux_2_4_20
-+/file.c/1.14/Thu Mar 2 02:37:08 2000/-ko/Tlinux_2_4_20
-+/inode.c/1.21.2.1/Tue Feb 26 06:00:08 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.13.4.1/Tue Feb 26 06:00:09 2002/-ko/Tlinux_2_4_20
-+/super.c/1.14.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.20.2.1/Tue Feb 26 06:00:09 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Repository
---- linux-2.4.20/fs/efs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Repository 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/efs
-diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Root
---- linux-2.4.20/fs/efs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Root 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/efs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Tag
---- linux-2.4.20/fs/efs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/efs/CVS/Tag 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/efs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/efs/.cvsignore
---- linux-2.4.20/fs/efs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/efs/.cvsignore 1998-03-17 16:13:44.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Entries
---- linux-2.4.20/fs/ext2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Entries 2005-01-06 23:05:52.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:46 1998/-ko/Tlinux_2_4_20
-+/CHANGES/1.1.1.1/Sun Jun 1 03:16:19 1997/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Tue Nov 6 00:55:21 2001/-ko/Tlinux_2_4_20
-+/balloc.c/1.25.2.1/Tue Feb 26 06:00:09 2002/-ko/Tlinux_2_4_20
-+/bitmap.c/1.4/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+/dir.c/1.26.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/file.c/1.26/Tue Nov 6 00:55:21 2001/-ko/Tlinux_2_4_20
-+/fsync.c/1.17/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
-+/ialloc.c/1.27.2.2/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/inode.c/1.42.2.4/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/ioctl.c/1.10.4.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.32/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
-+/super.c/1.29.2.3/Sat Jan 11 17:53:16 2003/-ko/Tlinux_2_4_20
-+/symlink.c/1.13/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Repository
---- linux-2.4.20/fs/ext2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Repository 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/ext2
-diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Root
---- linux-2.4.20/fs/ext2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Root 2005-01-06 23:05:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/ext2/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Tag
---- linux-2.4.20/fs/ext2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext2/CVS/Tag 2005-01-06 23:05:52.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/ext2/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ext2/.cvsignore
---- linux-2.4.20/fs/ext2/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext2/.cvsignore 1998-03-17 16:13:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Entries
---- linux-2.4.20/fs/ext3/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Entries 2005-01-06 23:05:53.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:54 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Sat Dec 29 05:38:15 2001/-ko/Tlinux_2_4_20
-+/balloc.c/1.1.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/bitmap.c/1.1/Sun Dec 2 11:34:54 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.1/Sun Dec 2 11:34:54 2001/-ko/Tlinux_2_4_20
-+/file.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/fsync.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/ialloc.c/1.1.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.1.2.4/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/ioctl.c/1.1.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/super.c/1.1.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/symlink.c/1.1/Sun Dec 2 11:34:54 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Repository
---- linux-2.4.20/fs/ext3/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Repository 2005-01-06 23:05:52.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/ext3
-diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Root
---- linux-2.4.20/fs/ext3/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Root 2005-01-06 23:05:52.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/ext3/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Tag
---- linux-2.4.20/fs/ext3/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext3/CVS/Tag 2005-01-06 23:05:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/ext3/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ext3/.cvsignore
---- linux-2.4.20/fs/ext3/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ext3/.cvsignore 2001-12-02 05:34:54.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Entries
---- linux-2.4.20/fs/fat/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Entries 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.2/Tue Mar 17 22:13:49 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Wed Jun 13 17:28:06 2001/-ko/Tlinux_2_4_20
-+/buffer.c/1.9.2.1/Tue Feb 26 06:00:10 2002/-ko/Tlinux_2_4_20
-+/cache.c/1.15/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/cvf.c/1.6/Fri Aug 24 03:38:50 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.22/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/fatfs_syms.c/1.16/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/file.c/1.21/Sat Sep 22 12:49:35 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.42.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.14/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Repository
---- linux-2.4.20/fs/fat/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Repository 2005-01-06 23:05:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/fat
-diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Root linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Root
---- linux-2.4.20/fs/fat/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Root 2005-01-06 23:05:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/fat/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Tag
---- linux-2.4.20/fs/fat/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/fat/CVS/Tag 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/fat/.cvsignore linux-2.4.20-mipscvs-20050106/fs/fat/.cvsignore
---- linux-2.4.20/fs/fat/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/fat/.cvsignore 1998-03-17 16:13:49.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Entries
---- linux-2.4.20/fs/freevxfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Entries 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.1/Sat Jun 16 01:21:40 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
-+/vxfs.h/1.1.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_bmap.c/1.3.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_dir.h/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
-+/vxfs_extern.h/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_fshead.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_fshead.h/1.2/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
-+/vxfs_immed.c/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
-+/vxfs_inode.c/1.3.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_inode.h/1.2/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
-+/vxfs_kcompat.h/1.1.2.2/Wed Jun 26 22:36:19 2002/-ko/Tlinux_2_4_20
-+/vxfs_lookup.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_olt.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_olt.h/1.1/Thu Jun 14 04:24:16 2001/-ko/Tlinux_2_4_20
-+/vxfs_subr.c/1.2.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/vxfs_super.c/1.4.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Repository
---- linux-2.4.20/fs/freevxfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Repository 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/freevxfs
-diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Root
---- linux-2.4.20/fs/freevxfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Root 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/freevxfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Tag
---- linux-2.4.20/fs/freevxfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/CVS/Tag 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/freevxfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/freevxfs/.cvsignore
---- linux-2.4.20/fs/freevxfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/freevxfs/.cvsignore 2001-06-15 20:21:40.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Entries
---- linux-2.4.20/fs/hfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Entries 2005-01-06 23:05:57.000000000 -0600
-@@ -0,0 +1,38 @@
-+/.cvsignore/1.1/Tue Mar 17 22:13:54 1998/-ko/Tlinux_2_4_20
-+/COPYING/1.1/Tue Mar 17 22:26:49 1998/-ko/Tlinux_2_4_20
-+/ChangeLog/1.8/Wed Feb 16 01:07:46 2000/-ko/Tlinux_2_4_20
-+/FAQ.txt/1.2/Tue Aug 25 09:20:23 1998/-ko/Tlinux_2_4_20
-+/HFS.txt/1.2/Mon Jan 4 16:08:23 1999/-ko/Tlinux_2_4_20
-+/INSTALL.txt/1.1/Tue Mar 17 22:13:55 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/TODO/1.2/Mon Jan 4 16:08:23 1999/-ko/Tlinux_2_4_20
-+/balloc.c/1.3/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/bdelete.c/1.3/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/bfind.c/1.2/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/bins_del.c/1.2/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/binsert.c/1.3/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/bitmap.c/1.2/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/bitops.c/1.2/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/bnode.c/1.4/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/brec.c/1.2/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/btree.c/1.4/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/catalog.c/1.8/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.11/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/dir_cap.c/1.13/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/dir_dbl.c/1.13/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/dir_nat.c/1.14/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/extent.c/1.5/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/file.c/1.15.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/file_cap.c/1.13/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
-+/file_hdr.c/1.15/Sat Sep 22 12:49:36 2001/-ko/Tlinux_2_4_20
-+/hfs.h/1.8/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/hfs_btree.h/1.4/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.17/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
-+/mdb.c/1.6/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/part_tbl.c/1.3/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/string.c/1.4/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/super.c/1.14.2.2/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/sysdep.c/1.8.2.1/Tue Feb 26 06:00:11 2002/-ko/Tlinux_2_4_20
-+/trans.c/1.3/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+/version.c/1.4/Fri Mar 9 20:34:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Repository
---- linux-2.4.20/fs/hfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Repository 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/hfs
-diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Root
---- linux-2.4.20/fs/hfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Root 2005-01-06 23:05:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/hfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Tag
---- linux-2.4.20/fs/hfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hfs/CVS/Tag 2005-01-06 23:05:57.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/hfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/hfs/.cvsignore
---- linux-2.4.20/fs/hfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hfs/.cvsignore 1998-03-17 16:13:54.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Entries
---- linux-2.4.20/fs/hpfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Entries 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:03 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/alloc.c/1.1/Thu Jun 17 14:08:53 1999/-ko/Tlinux_2_4_20
-+/anode.c/1.5/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
-+/buffer.c/1.6.2.1/Tue Feb 26 06:00:12 2002/-ko/Tlinux_2_4_20
-+/dentry.c/1.2/Sun Mar 12 23:15:48 2000/-ko/Tlinux_2_4_20
-+/dir.c/1.8/Wed Aug 22 03:24:56 2001/-ko/Tlinux_2_4_20
-+/dnode.c/1.3/Thu Oct 5 01:19:00 2000/-ko/Tlinux_2_4_20
-+/ea.c/1.4.4.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/file.c/1.17/Sat Sep 22 12:49:36 2001/-ko/Tlinux_2_4_20
-+/hpfs.h/1.4/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/hpfs_fn.h/1.14.2.1/Tue Sep 10 15:32:52 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.16/Fri Oct 19 01:24:55 2001/-ko/Tlinux_2_4_20
-+/map.c/1.2/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/name.c/1.1/Thu Jun 17 14:08:56 1999/-ko/Tlinux_2_4_20
-+/namei.c/1.15/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/super.c/1.9.2.2/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Repository
---- linux-2.4.20/fs/hpfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Repository 2005-01-06 23:05:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/hpfs
-diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Root
---- linux-2.4.20/fs/hpfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Root 2005-01-06 23:05:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/hpfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Tag
---- linux-2.4.20/fs/hpfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/CVS/Tag 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/hpfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/hpfs/.cvsignore
---- linux-2.4.20/fs/hpfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/hpfs/.cvsignore 1998-03-17 16:14:03.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Entries
---- linux-2.4.20/fs/inflate_fs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Entries 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1,2 @@
-+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Repository
---- linux-2.4.20/fs/inflate_fs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Repository 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/inflate_fs
-diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Root
---- linux-2.4.20/fs/inflate_fs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Root 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/inflate_fs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Tag
---- linux-2.4.20/fs/inflate_fs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/CVS/Tag 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/inflate_fs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/inflate_fs/.cvsignore
---- linux-2.4.20/fs/inflate_fs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/inflate_fs/.cvsignore 2001-11-15 10:02:31.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Entries
---- linux-2.4.20/fs/intermezzo/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Entries 2005-01-06 23:06:00.000000000 -0600
-@@ -0,0 +1,27 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:54 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/cache.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/dcache.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/dir.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ext_attr.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/file.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/fileset.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/inode.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal_ext2.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal_ext3.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal_obdfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal_reiserfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal_tmpfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal_xfs.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/kml_reint.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/kml_unpack.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/methods.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/presto.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/psdev.c/1.1.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/replicator.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/super.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/sysctl.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/upcall.c/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/vfs.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Repository
---- linux-2.4.20/fs/intermezzo/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Repository 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/intermezzo
-diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Root linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Root
---- linux-2.4.20/fs/intermezzo/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Root 2005-01-06 23:05:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/intermezzo/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Tag
---- linux-2.4.20/fs/intermezzo/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/CVS/Tag 2005-01-06 23:06:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/intermezzo/.cvsignore linux-2.4.20-mipscvs-20050106/fs/intermezzo/.cvsignore
---- linux-2.4.20/fs/intermezzo/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/intermezzo/.cvsignore 2001-12-02 05:34:54.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Entries
---- linux-2.4.20/fs/isofs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Entries 2005-01-06 23:06:01.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:05 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Tue Nov 6 07:56:09 2001/-ko/Tlinux_2_4_20
-+/compress.c/1.2.2.1/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.20.2.1/Tue Feb 26 06:00:15 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.39.2.2/Wed Sep 11 12:45:23 2002/-ko/Tlinux_2_4_20
-+/joliet.c/1.7/Sat Sep 22 12:49:36 2001/-ko/Tlinux_2_4_20
-+/namei.c/1.14.2.1/Tue Feb 26 06:00:15 2002/-ko/Tlinux_2_4_20
-+/rock.c/1.17.2.1/Tue Feb 26 06:00:15 2002/-ko/Tlinux_2_4_20
-+/rock.h/1.2/Tue Nov 6 07:56:10 2001/-ko/Tlinux_2_4_20
-+/util.c/1.7/Tue Nov 6 07:56:10 2001/-ko/Tlinux_2_4_20
-+/zisofs.h/1.1/Tue Nov 6 07:56:10 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Repository
---- linux-2.4.20/fs/isofs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Repository 2005-01-06 23:06:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/isofs
-diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Root
---- linux-2.4.20/fs/isofs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Root 2005-01-06 23:06:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/isofs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Tag
---- linux-2.4.20/fs/isofs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/isofs/CVS/Tag 2005-01-06 23:06:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/isofs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/isofs/.cvsignore
---- linux-2.4.20/fs/isofs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/isofs/.cvsignore 1998-03-17 16:14:05.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Entries
---- linux-2.4.20/fs/jbd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Entries 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Sun Dec 2 11:34:55 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Sun Dec 2 11:34:55 2001/-ko/Tlinux_2_4_20
-+/checkpoint.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/commit.c/1.1.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/journal.c/1.1.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/recovery.c/1.1.2.2/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
-+/revoke.c/1.1.2.3/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/transaction.c/1.1.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Repository
---- linux-2.4.20/fs/jbd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Repository 2005-01-06 23:06:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/jbd
-diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Root
---- linux-2.4.20/fs/jbd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Root 2005-01-06 23:06:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/jbd/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Tag
---- linux-2.4.20/fs/jbd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jbd/CVS/Tag 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/jbd/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jbd/.cvsignore
---- linux-2.4.20/fs/jbd/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jbd/.cvsignore 2001-12-02 05:34:55.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Entries
---- linux-2.4.20/fs/jffs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Entries 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.1/Sat Jul 8 00:53:07 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/inode-v23.c/1.18/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/intrep.c/1.9/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/intrep.h/1.5/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/jffs_fm.c/1.10/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/jffs_fm.h/1.4/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/jffs_proc.c/1.1/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/jffs_proc.h/1.1/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Repository
---- linux-2.4.20/fs/jffs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Repository 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/jffs
-diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Root
---- linux-2.4.20/fs/jffs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Root 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/jffs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Tag
---- linux-2.4.20/fs/jffs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs/CVS/Tag 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/jffs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jffs/.cvsignore
---- linux-2.4.20/fs/jffs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs/.cvsignore 2000-07-07 19:53:07.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Entries
---- linux-2.4.20/fs/jffs2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Entries 2005-01-06 23:06:03.000000000 -0600
-@@ -0,0 +1,33 @@
-+/.cvsignore/1.1/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/TODO/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/background.c/1.3/Tue Nov 6 07:56:10 2001/-ko/Tlinux_2_4_20
-+/build.c/1.1.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/compr.c/1.2/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/compr_rtime.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/compr_rubin.c/1.2/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/compr_rubin.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/compr_zlib.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/comprtest.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/crc32.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/crc32.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.1.2.4/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/erase.c/1.2.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/file.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/gc.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/histo.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/histo_mips.h/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/ioctl.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/malloc.c/1.1/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/nodelist.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/nodelist.h/1.2.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/nodemgmt.c/1.2.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/pushpull.c/1.2/Mon Nov 5 20:16:18 2001/-ko/Tlinux_2_4_20
-+/pushpull.h/1.2/Mon Nov 5 20:16:19 2001/-ko/Tlinux_2_4_20
-+/read.c/1.1.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/readinode.c/1.1.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/scan.c/1.2.2.2/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/super.c/1.2.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/symlink.c/1.1.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+/write.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Repository
---- linux-2.4.20/fs/jffs2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Repository 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/jffs2
-diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Root
---- linux-2.4.20/fs/jffs2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Root 2005-01-06 23:06:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/jffs2/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Tag
---- linux-2.4.20/fs/jffs2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/CVS/Tag 2005-01-06 23:06:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/jffs2/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jffs2/.cvsignore
---- linux-2.4.20/fs/jffs2/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jffs2/.cvsignore 2001-11-05 14:16:18.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Entries
---- linux-2.4.20/fs/jfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Entries 2005-01-06 23:06:06.000000000 -0600
-@@ -0,0 +1,44 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/file.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/inode.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_btree.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_debug.c/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_debug.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_defragfs.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_dinode.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_dmap.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_dmap.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_dtree.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_dtree.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_extent.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_extent.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_filsys.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_imap.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_imap.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_incore.h/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_inode.c/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_inode.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_lock.h/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_logmgr.c/1.7.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_logmgr.h/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_metapage.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_metapage.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_mount.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_superblock.h/1.3.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_txnmgr.c/1.5.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_txnmgr.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_types.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_umount.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_unicode.c/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_unicode.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_uniupr.c/1.2.2.1/Wed Sep 11 12:45:24 2002/-ko/Tlinux_2_4_20
-+/jfs_xattr.h/1.1.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/jfs_xtree.c/1.3.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/jfs_xtree.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/namei.c/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/resize.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/super.c/1.6.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/symlink.c/1.2.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/xattr.c/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Repository
---- linux-2.4.20/fs/jfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Repository 2005-01-06 23:06:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/jfs
-diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Root
---- linux-2.4.20/fs/jfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Root 2005-01-06 23:06:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/jfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Tag
---- linux-2.4.20/fs/jfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jfs/CVS/Tag 2005-01-06 23:06:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/jfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/jfs/.cvsignore
---- linux-2.4.20/fs/jfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/jfs/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Entries
---- linux-2.4.20/fs/lockd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Entries 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:07 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/clntlock.c/1.16/Mon Nov 5 20:16:19 2001/-ko/Tlinux_2_4_20
-+/clntproc.c/1.22/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/host.c/1.10/Mon Nov 5 20:16:19 2001/-ko/Tlinux_2_4_20
-+/lockd_syms.c/1.4/Mon Nov 5 20:16:19 2001/-ko/Tlinux_2_4_20
-+/mon.c/1.9/Mon Nov 5 20:16:19 2001/-ko/Tlinux_2_4_20
-+/svc.c/1.20/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/svc4proc.c/1.4.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/svclock.c/1.16/Tue Nov 6 00:55:22 2001/-ko/Tlinux_2_4_20
-+/svcproc.c/1.10.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/svcshare.c/1.4/Fri Mar 9 20:34:37 2001/-ko/Tlinux_2_4_20
-+/svcsubs.c/1.14/Mon Nov 5 20:16:19 2001/-ko/Tlinux_2_4_20
-+/xdr.c/1.12.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/xdr4.c/1.7.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Repository
---- linux-2.4.20/fs/lockd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Repository 2005-01-06 23:06:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/lockd
-diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Root linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Root
---- linux-2.4.20/fs/lockd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Root 2005-01-06 23:06:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/lockd/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Tag
---- linux-2.4.20/fs/lockd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/lockd/CVS/Tag 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/lockd/.cvsignore linux-2.4.20-mipscvs-20050106/fs/lockd/.cvsignore
---- linux-2.4.20/fs/lockd/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/lockd/.cvsignore 1998-03-17 16:14:07.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Entries
---- linux-2.4.20/fs/minix/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Entries 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:09 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/bitmap.c/1.21.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.15.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
-+/file.c/1.18/Sun Dec 2 11:34:55 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.33.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
-+/itree_common.c/1.4.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
-+/itree_v1.c/1.2/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/itree_v2.c/1.2/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/namei.c/1.24/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Repository
---- linux-2.4.20/fs/minix/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Repository 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/minix
-diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Root linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Root
---- linux-2.4.20/fs/minix/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Root 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/minix/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Tag
---- linux-2.4.20/fs/minix/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/minix/CVS/Tag 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/minix/.cvsignore linux-2.4.20-mipscvs-20050106/fs/minix/.cvsignore
---- linux-2.4.20/fs/minix/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/minix/.cvsignore 1998-03-17 16:14:09.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Entries
---- linux-2.4.20/fs/msdos/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Entries 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:11 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/msdosfs_syms.c/1.7.4.1/Sat Dec 29 05:38:15 2001/-ko/Tlinux_2_4_20
-+/namei.c/1.29.2.1/Wed Jun 26 22:36:20 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Repository
---- linux-2.4.20/fs/msdos/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Repository 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/msdos
-diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Root linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Root
---- linux-2.4.20/fs/msdos/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Root 2005-01-06 23:06:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/msdos/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Tag
---- linux-2.4.20/fs/msdos/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/msdos/CVS/Tag 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/msdos/.cvsignore linux-2.4.20-mipscvs-20050106/fs/msdos/.cvsignore
---- linux-2.4.20/fs/msdos/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/msdos/.cvsignore 1998-03-17 16:14:11.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Entries
---- linux-2.4.20/fs/ncpfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Entries 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:13 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.8/Wed Jan 10 05:27:34 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.35.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/file.c/1.25/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.32.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/ioctl.c/1.20.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/mmap.c/1.23/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/ncplib_kernel.c/1.19.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ncplib_kernel.h/1.14/Fri Mar 9 20:34:37 2001/-ko/Tlinux_2_4_20
-+/ncpsign_kernel.c/1.4/Fri Oct 19 01:24:56 2001/-ko/Tlinux_2_4_20
-+/ncpsign_kernel.h/1.2/Sat Dec 4 03:59:11 1999/-ko/Tlinux_2_4_20
-+/sock.c/1.15/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
-+/symlink.c/1.11/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Repository
---- linux-2.4.20/fs/ncpfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Repository 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/ncpfs
-diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Root
---- linux-2.4.20/fs/ncpfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Root 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/ncpfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Tag
---- linux-2.4.20/fs/ncpfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/CVS/Tag 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/ncpfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ncpfs/.cvsignore
---- linux-2.4.20/fs/ncpfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ncpfs/.cvsignore 1998-03-17 16:14:13.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Entries
---- linux-2.4.20/fs/nfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Entries 2005-01-06 23:06:10.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:17 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Sun Dec 2 11:34:55 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.41.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/file.c/1.34.2.1/Tue Feb 26 06:00:16 2002/-ko/Tlinux_2_4_20
-+/flushd.c/1.11.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.48.2.5/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/mount_clnt.c/1.5.4.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/nfs2xdr.c/1.13.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/nfs3proc.c/1.6.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/nfs3xdr.c/1.8.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/nfsroot.c/1.16.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/pagelist.c/1.1.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/proc.c/1.15.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/read.c/1.29.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/symlink.c/1.19.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/unlink.c/1.3.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/write.c/1.43.2.4/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Repository
---- linux-2.4.20/fs/nfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Repository 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/nfs
-diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Root
---- linux-2.4.20/fs/nfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Root 2005-01-06 23:06:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/nfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Tag
---- linux-2.4.20/fs/nfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfs/CVS/Tag 2005-01-06 23:06:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/nfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/nfs/.cvsignore
---- linux-2.4.20/fs/nfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfs/.cvsignore 1998-03-17 16:14:17.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Entries
---- linux-2.4.20/fs/nfsd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Entries 2005-01-06 23:06:11.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:22 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/auth.c/1.4/Thu Jul 27 23:20:04 2000/-ko/Tlinux_2_4_20
-+/export.c/1.30.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/lockd.c/1.9/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/nfs3proc.c/1.12.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/nfs3xdr.c/1.19.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/nfscache.c/1.9.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/nfsctl.c/1.29.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/nfsfh.c/1.41.2.2/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/nfsproc.c/1.21.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/nfssvc.c/1.23.2.3/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/nfsxdr.c/1.12.2.1/Wed Sep 11 12:45:25 2002/-ko/Tlinux_2_4_20
-+/stats.c/1.7/Fri Jul 21 22:01:00 2000/-ko/Tlinux_2_4_20
-+/vfs.c/1.50.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Repository
---- linux-2.4.20/fs/nfsd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Repository 2005-01-06 23:06:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/nfsd
-diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Root linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Root
---- linux-2.4.20/fs/nfsd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Root 2005-01-06 23:06:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/nfsd/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Tag
---- linux-2.4.20/fs/nfsd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/CVS/Tag 2005-01-06 23:06:11.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/nfsd/.cvsignore linux-2.4.20-mipscvs-20050106/fs/nfsd/.cvsignore
---- linux-2.4.20/fs/nfsd/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nfsd/.cvsignore 1998-03-17 16:14:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Entries
---- linux-2.4.20/fs/nls/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Entries 2005-01-06 23:06:18.000000000 -0600
-@@ -0,0 +1,50 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:25 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.11.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/nls_base.c/1.11.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/nls_big5.c/1.2.4.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp1250.c/1.1.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/nls_cp1251.c/1.2.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp1255.c/1.3.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp437.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp737.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp775.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp850.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp852.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp855.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp857.c/1.7.2.1/Sat Dec 29 05:38:16 2001/-ko/Tlinux_2_4_20
-+/nls_cp860.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp861.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp862.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp863.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp864.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp865.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp866.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp869.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp874.c/1.7.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp932.c/1.3.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp936.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp949.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_cp950.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_euc-jp.c/1.3.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_euc-kr.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_gb2312.c/1.2.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-1.c/1.5.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-13.c/1.2.2.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-14.c/1.5.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-15.c/1.5.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-2.c/1.6.4.1/Sat Dec 29 05:38:17 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-3.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-4.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-5.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-6.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-7.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-8.c/1.7.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_iso8859-9.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_koi8-r.c/1.6.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_koi8-ru.c/1.1.2.2/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/nls_koi8-u.c/1.2.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_sjis.c/1.2.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_tis-620.c/1.1.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/nls_utf8.c/1.1.4.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Repository
---- linux-2.4.20/fs/nls/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Repository 2005-01-06 23:06:11.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/nls
-diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Root linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Root
---- linux-2.4.20/fs/nls/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Root 2005-01-06 23:06:11.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/nls/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Tag
---- linux-2.4.20/fs/nls/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nls/CVS/Tag 2005-01-06 23:06:18.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/nls/.cvsignore linux-2.4.20-mipscvs-20050106/fs/nls/.cvsignore
---- linux-2.4.20/fs/nls/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/nls/.cvsignore 1998-03-17 16:14:25.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Entries
---- linux-2.4.20/fs/ntfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Entries 2005-01-06 23:06:19.000000000 -0600
-@@ -0,0 +1,24 @@
-+/.cvsignore/1.1/Tue Mar 17 22:14:36 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.14.2.2/Tue Feb 26 06:00:17 2002/-ko/Tlinux_2_4_20
-+/attr.c/1.9.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/attr.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.11/Tue Nov 6 07:56:10 2001/-ko/Tlinux_2_4_20
-+/dir.h/1.5/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
-+/fs.c/1.41.2.3/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.15.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+/inode.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/macros.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/ntfsendian.h/1.4/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
-+/ntfstypes.h/1.5/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
-+/struct.h/1.5/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/super.c/1.12/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/super.h/1.7/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/support.c/1.10.2.2/Tue Feb 26 06:00:17 2002/-ko/Tlinux_2_4_20
-+/support.h/1.5.2.1/Tue Feb 26 06:00:17 2002/-ko/Tlinux_2_4_20
-+/sysctl.c/1.2/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
-+/sysctl.h/1.4/Thu Aug 23 22:24:44 2001/-ko/Tlinux_2_4_20
-+/unistr.c/1.3/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/unistr.h/1.2/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/util.c/1.8/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
-+/util.h/1.6/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Repository
---- linux-2.4.20/fs/ntfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Repository 2005-01-06 23:06:18.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/ntfs
-diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Root
---- linux-2.4.20/fs/ntfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Root 2005-01-06 23:06:18.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/ntfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Tag
---- linux-2.4.20/fs/ntfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/CVS/Tag 2005-01-06 23:06:19.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/ntfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ntfs/.cvsignore
---- linux-2.4.20/fs/ntfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ntfs/.cvsignore 1998-03-17 16:14:36.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Entries
---- linux-2.4.20/fs/openpromfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Entries 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.1/Sat Feb 5 06:47:36 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.14.2.1/Sat Dec 29 05:38:18 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Repository
---- linux-2.4.20/fs/openpromfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Repository 2005-01-06 23:06:19.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/openpromfs
-diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Root
---- linux-2.4.20/fs/openpromfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Root 2005-01-06 23:06:19.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/openpromfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Tag
---- linux-2.4.20/fs/openpromfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/CVS/Tag 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/openpromfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/openpromfs/.cvsignore
---- linux-2.4.20/fs/openpromfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/openpromfs/.cvsignore 2000-02-05 00:47:36.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/partitions/check.c linux-2.4.20-mipscvs-20050106/fs/partitions/check.c
---- linux-2.4.20/fs/partitions/check.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/partitions/check.c 2002-09-11 07:45:26.000000000 -0500
-@@ -43,6 +43,9 @@
- #ifdef CONFIG_ACORN_PARTITION
- acorn_partition,
- #endif
-+#ifdef CONFIG_SGI_PARTITION
-+ sgi_partition,
-+#endif
- #ifdef CONFIG_EFI_PARTITION
- efi_partition, /* this must come before msdos */
- #endif
-@@ -67,9 +70,6 @@
- #ifdef CONFIG_MAC_PARTITION
- mac_partition,
- #endif
--#ifdef CONFIG_SGI_PARTITION
-- sgi_partition,
--#endif
- #ifdef CONFIG_ULTRIX_PARTITION
- ultrix_partition,
- #endif
-diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Entries
---- linux-2.4.20/fs/partitions/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Entries 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1,30 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:38 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.14.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/acorn.c/1.10.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/acorn.h/1.4/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/amiga.c/1.3/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/amiga.h/1.2/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/atari.c/1.5/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/atari.h/1.2/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/check.c/1.27.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/check.h/1.3/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/efi.c/1.3.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/efi.h/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ibm.c/1.7.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/ibm.h/1.3/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/ldm.c/1.4.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/ldm.h/1.4.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/mac.c/1.4.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/mac.h/1.2.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/msdos.c/1.17.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/msdos.h/1.2/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/osf.c/1.4/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/osf.h/1.2/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/sgi.c/1.5/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/sgi.h/1.2/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/sun.c/1.4.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/sun.h/1.2/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/ultrix.c/1.6/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+/ultrix.h/1.4/Mon Nov 5 20:16:21 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Repository
---- linux-2.4.20/fs/partitions/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Repository 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/partitions
-diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Root linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Root
---- linux-2.4.20/fs/partitions/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Root 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/partitions/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Tag
---- linux-2.4.20/fs/partitions/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/partitions/CVS/Tag 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/partitions/.cvsignore linux-2.4.20-mipscvs-20050106/fs/partitions/.cvsignore
---- linux-2.4.20/fs/partitions/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/partitions/.cvsignore 1999-10-08 19:01:38.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/proc/array.c linux-2.4.20-mipscvs-20050106/fs/proc/array.c
---- linux-2.4.20/fs/proc/array.c 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/array.c 2002-06-26 17:36:21.000000000 -0500
-@@ -361,15 +361,15 @@
- task->cmin_flt,
- task->maj_flt,
- task->cmaj_flt,
-- task->times.tms_utime,
-- task->times.tms_stime,
-- task->times.tms_cutime,
-- task->times.tms_cstime,
-+ hz_to_std(task->times.tms_utime),
-+ hz_to_std(task->times.tms_stime),
-+ hz_to_std(task->times.tms_cutime),
-+ hz_to_std(task->times.tms_cstime),
- priority,
- nice,
- 0UL /* removed */,
- task->it_real_value,
-- task->start_time,
-+ hz_to_std(task->start_time),
- vsize,
- mm ? mm->rss : 0, /* you might want to shift this left 3 */
- task->rlim[RLIMIT_RSS].rlim_cur,
-@@ -685,14 +685,14 @@
-
- len = sprintf(buffer,
- "cpu %lu %lu\n",
-- task->times.tms_utime,
-- task->times.tms_stime);
-+ hz_to_std(task->times.tms_utime),
-+ hz_to_std(task->times.tms_stime));
-
- for (i = 0 ; i < smp_num_cpus; i++)
- len += sprintf(buffer + len, "cpu%d %lu %lu\n",
- i,
-- task->per_cpu_utime[cpu_logical_map(i)],
-- task->per_cpu_stime[cpu_logical_map(i)]);
-+ hz_to_std(task->per_cpu_utime[cpu_logical_map(i)]),
-+ hz_to_std(task->per_cpu_stime[cpu_logical_map(i)]));
-
- return len;
- }
-diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Entries
---- linux-2.4.20/fs/proc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Entries 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:41 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.12/Thu Jun 14 04:24:17 2001/-ko/Tlinux_2_4_20
-+/array.c/1.51.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/base.c/1.34.2.2/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/generic.c/1.29.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/inode-alloc.txt/1.3/Fri Feb 4 07:40:51 2000/-ko/Tlinux_2_4_20
-+/inode.c/1.22/Sun Dec 2 11:34:55 2001/-ko/Tlinux_2_4_20
-+/kcore.c/1.10.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+/kmsg.c/1.14/Fri Oct 19 01:24:57 2001/-ko/Tlinux_2_4_20
-+/proc_devtree.c/1.10/Thu Jun 15 01:56:03 2000/-ko/Tlinux_2_4_20
-+/proc_misc.c/1.24.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/proc_tty.c/1.6/Fri Apr 28 01:09:51 2000/-ko/Tlinux_2_4_20
-+/root.c/1.34.2.1/Wed Jun 26 22:36:21 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Repository
---- linux-2.4.20/fs/proc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Repository 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/proc
-diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Root linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Root
---- linux-2.4.20/fs/proc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Root 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/proc/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Tag
---- linux-2.4.20/fs/proc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/CVS/Tag 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/proc/.cvsignore linux-2.4.20-mipscvs-20050106/fs/proc/.cvsignore
---- linux-2.4.20/fs/proc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/.cvsignore 1998-03-17 16:14:41.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/proc/proc_misc.c linux-2.4.20-mipscvs-20050106/fs/proc/proc_misc.c
---- linux-2.4.20/fs/proc/proc_misc.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/proc/proc_misc.c 2002-09-11 07:45:26.000000000 -0500
-@@ -305,16 +305,16 @@
- {
- int i, len = 0;
- extern unsigned long total_forks;
-- unsigned long jif = jiffies;
-+ unsigned long jif = hz_to_std(jiffies);
- unsigned int sum = 0, user = 0, nice = 0, system = 0;
- int major, disk;
-
- for (i = 0 ; i < smp_num_cpus; i++) {
- int cpu = cpu_logical_map(i), j;
-
-- user += kstat.per_cpu_user[cpu];
-- nice += kstat.per_cpu_nice[cpu];
-- system += kstat.per_cpu_system[cpu];
-+ user += hz_to_std(kstat.per_cpu_user[cpu]);
-+ nice += hz_to_std(kstat.per_cpu_nice[cpu]);
-+ system += hz_to_std(kstat.per_cpu_system[cpu]);
- #if !defined(CONFIG_ARCH_S390)
- for (j = 0 ; j < NR_IRQS ; j++)
- sum += kstat.irqs[cpu][j];
-@@ -328,10 +328,10 @@
- proc_sprintf(page, &off, &len,
- "cpu%d %u %u %u %lu\n",
- i,
-- kstat.per_cpu_user[cpu_logical_map(i)],
-- kstat.per_cpu_nice[cpu_logical_map(i)],
-- kstat.per_cpu_system[cpu_logical_map(i)],
-- jif - ( kstat.per_cpu_user[cpu_logical_map(i)] \
-+ hz_to_std(kstat.per_cpu_user[cpu_logical_map(i)]),
-+ hz_to_std(kstat.per_cpu_nice[cpu_logical_map(i)]),
-+ hz_to_std(kstat.per_cpu_system[cpu_logical_map(i)]),
-+ jif - hz_to_std( kstat.per_cpu_user[cpu_logical_map(i)] \
- + kstat.per_cpu_nice[cpu_logical_map(i)] \
- + kstat.per_cpu_system[cpu_logical_map(i)]));
- proc_sprintf(page, &off, &len,
-diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Entries
---- linux-2.4.20/fs/qnx4/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Entries 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1,11 @@
-+/.cvsignore/1.1/Sat Sep 19 19:18:41 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/README/1.4/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
-+/bitmap.c/1.7.4.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.10.4.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
-+/file.c/1.9/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
-+/fsync.c/1.6.4.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.29.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.11/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/truncate.c/1.2/Fri Mar 9 20:34:38 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Repository
---- linux-2.4.20/fs/qnx4/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Repository 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/qnx4
-diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Root linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Root
---- linux-2.4.20/fs/qnx4/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Root 2005-01-06 23:06:20.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/qnx4/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Tag
---- linux-2.4.20/fs/qnx4/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/CVS/Tag 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/qnx4/.cvsignore linux-2.4.20-mipscvs-20050106/fs/qnx4/.cvsignore
---- linux-2.4.20/fs/qnx4/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/qnx4/.cvsignore 1998-09-19 14:18:41.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Entries
---- linux-2.4.20/fs/ramfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Entries 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.1/Wed Apr 19 04:00:18 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:03 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.17.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Repository
---- linux-2.4.20/fs/ramfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Repository 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/ramfs
-diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Root
---- linux-2.4.20/fs/ramfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Root 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/ramfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Tag
---- linux-2.4.20/fs/ramfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/CVS/Tag 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/ramfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ramfs/.cvsignore
---- linux-2.4.20/fs/ramfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ramfs/.cvsignore 2000-04-18 23:00:18.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Entries
---- linux-2.4.20/fs/reiserfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Entries 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1,26 @@
-+/.cvsignore/1.1/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Tue Feb 26 06:00:18 2002/-ko/Tlinux_2_4_20
-+/README/1.2/Tue Nov 6 00:55:23 2001/-ko/Tlinux_2_4_20
-+/bitmap.c/1.6.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/buffer2.c/1.5.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.8.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/do_balan.c/1.7.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/file.c/1.4.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/fix_node.c/1.9.2.4/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/hashes.c/1.3.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/ibalance.c/1.6.2.1/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.9.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ioctl.c/1.3.2.3/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/item_ops.c/1.4.2.2/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/journal.c/1.9.2.4/Wed Sep 11 12:45:26 2002/-ko/Tlinux_2_4_20
-+/lbalance.c/1.5.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.10.2.4/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/objectid.c/1.7.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/prints.c/1.7.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/procfs.c/1.1.2.4/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/resize.c/1.2.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/stree.c/1.10.2.4/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/super.c/1.8.2.5/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/tail_conversion.c/1.8.2.4/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/version.c/1.1.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Repository
---- linux-2.4.20/fs/reiserfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Repository 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/reiserfs
-diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Root
---- linux-2.4.20/fs/reiserfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Root 2005-01-06 23:06:21.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/reiserfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Tag
---- linux-2.4.20/fs/reiserfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/CVS/Tag 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/reiserfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/reiserfs/.cvsignore
---- linux-2.4.20/fs/reiserfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/reiserfs/.cvsignore 2001-01-31 16:22:34.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Entries
---- linux-2.4.20/fs/romfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Entries 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:45 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.35.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Repository
---- linux-2.4.20/fs/romfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Repository 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/romfs
-diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Root
---- linux-2.4.20/fs/romfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Root 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/romfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Tag
---- linux-2.4.20/fs/romfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/romfs/CVS/Tag 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/romfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/romfs/.cvsignore
---- linux-2.4.20/fs/romfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/romfs/.cvsignore 1998-03-17 16:14:45.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Entries
---- linux-2.4.20/fs/smbfs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Entries 2005-01-06 23:06:25.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:46 1998/-ko/Tlinux_2_4_20
-+/ChangeLog/1.8.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.8/Mon Nov 5 20:16:23 2001/-ko/Tlinux_2_4_20
-+/cache.c/1.12.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.28/Mon Nov 5 20:16:23 2001/-ko/Tlinux_2_4_20
-+/file.c/1.38.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/getopt.c/1.2.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/getopt.h/1.1.4.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.37.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/ioctl.c/1.9/Mon Nov 5 20:16:23 2001/-ko/Tlinux_2_4_20
-+/proc.c/1.22.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/proto.h/1.1/Mon Nov 5 20:16:23 2001/-ko/Tlinux_2_4_20
-+/smb_debug.h/1.2.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/sock.c/1.15.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Repository
---- linux-2.4.20/fs/smbfs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Repository 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/smbfs
-diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Root
---- linux-2.4.20/fs/smbfs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Root 2005-01-06 23:06:24.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/smbfs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Tag
---- linux-2.4.20/fs/smbfs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/CVS/Tag 2005-01-06 23:06:25.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/smbfs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/smbfs/.cvsignore
---- linux-2.4.20/fs/smbfs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/smbfs/.cvsignore 1998-03-17 16:14:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/stat.c linux-2.4.20-mipscvs-20050106/fs/stat.c
---- linux-2.4.20/fs/stat.c 2001-09-13 18:04:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/fs/stat.c 2002-11-21 06:38:52.000000000 -0600
-@@ -26,7 +26,7 @@
- }
-
-
--#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
-+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
-
- /*
- * For backward compatibility? Maybe this should be moved
-@@ -127,7 +127,7 @@
- }
-
-
--#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
-+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
- /*
- * For backward compatibility? Maybe this should be moved
- * into arch/i386 instead?
-@@ -163,7 +163,7 @@
- return error;
- }
-
--#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
-+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
-
- /*
- * For backward compatibility? Maybe this should be moved
-@@ -201,7 +201,7 @@
- return error;
- }
-
--#if !defined(__alpha__) && !defined(__sparc__) && !defined(__ia64__) && !defined(CONFIG_ARCH_S390) && !defined(__hppa__) && !defined(__x86_64__)
-+#if defined(__i386__) || defined(__m68k__) || defined(__ppc__) || defined(__sh__)
-
- /*
- * For backward compatibility? Maybe this should be moved
-diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Entries
---- linux-2.4.20/fs/sysv/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Entries 2005-01-06 23:06:26.000000000 -0600
-@@ -0,0 +1,15 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:49 1998/-ko/Tlinux_2_4_20
-+/CHANGES/1.5/Thu Jun 17 13:30:16 1999/-ko/Tlinux_2_4_20
-+/ChangeLog/1.1.2.2/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/INTRO/1.2/Tue Mar 17 22:14:50 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/balloc.c/1.6.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.16.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/file.c/1.16/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/ialloc.c/1.15.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.36.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/itree.c/1.1.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.24/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/super.c/1.4.2.2/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.9.2.1/Tue Feb 26 06:00:19 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Repository
---- linux-2.4.20/fs/sysv/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Repository 2005-01-06 23:06:25.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/sysv
-diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Root linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Root
---- linux-2.4.20/fs/sysv/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Root 2005-01-06 23:06:25.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/sysv/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Tag
---- linux-2.4.20/fs/sysv/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/sysv/CVS/Tag 2005-01-06 23:06:26.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/sysv/.cvsignore linux-2.4.20-mipscvs-20050106/fs/sysv/.cvsignore
---- linux-2.4.20/fs/sysv/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/sysv/.cvsignore 1998-03-17 16:14:49.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Entries
---- linux-2.4.20/fs/udf/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Entries 2005-01-06 23:06:27.000000000 -0600
-@@ -0,0 +1,26 @@
-+/.cvsignore/1.1/Sat Oct 9 00:01:39 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/balloc.c/1.10.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/crc.c/1.2.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.13.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/directory.c/1.6.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/ecma_167.h/1.1.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/file.c/1.22.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/fsync.c/1.8.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/ialloc.c/1.10.2.1/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/inode.c/1.24.2.2/Wed Jun 26 22:36:22 2002/-ko/Tlinux_2_4_20
-+/lowlevel.c/1.9.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/misc.c/1.7.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.17.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/osta_udf.h/1.1.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/partition.c/1.6.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/super.c/1.20.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.11.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/truncate.c/1.9.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/udf_i.h/1.4.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/udf_sb.h/1.6.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/udfdecl.h/1.16.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/udfend.h/1.4.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/udftime.c/1.5.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/unicode.c/1.5.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Repository
---- linux-2.4.20/fs/udf/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Repository 2005-01-06 23:06:26.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/udf
-diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Root linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Root
---- linux-2.4.20/fs/udf/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Root 2005-01-06 23:06:26.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/udf/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Tag
---- linux-2.4.20/fs/udf/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/udf/CVS/Tag 2005-01-06 23:06:27.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/udf/.cvsignore linux-2.4.20-mipscvs-20050106/fs/udf/.cvsignore
---- linux-2.4.20/fs/udf/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/udf/.cvsignore 1999-10-08 19:01:39.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Entries
---- linux-2.4.20/fs/ufs/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Entries 2005-01-06 23:06:28.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:52 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/balloc.c/1.11.2.1/Tue Feb 26 06:00:20 2002/-ko/Tlinux_2_4_20
-+/cylinder.c/1.5.2.1/Tue Feb 26 06:00:20 2002/-ko/Tlinux_2_4_20
-+/dir.c/1.16.2.1/Tue Feb 26 06:00:20 2002/-ko/Tlinux_2_4_20
-+/file.c/1.10.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/ialloc.c/1.12/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.24.2.1/Tue Feb 26 06:00:22 2002/-ko/Tlinux_2_4_20
-+/namei.c/1.15/Tue Nov 6 00:55:24 2001/-ko/Tlinux_2_4_20
-+/super.c/1.23.2.2/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/swab.h/1.3.2.1/Tue Feb 26 06:00:22 2002/-ko/Tlinux_2_4_20
-+/symlink.c/1.8/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
-+/truncate.c/1.12.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/util.c/1.9.2.1/Tue Feb 26 06:00:22 2002/-ko/Tlinux_2_4_20
-+/util.h/1.9.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Repository
---- linux-2.4.20/fs/ufs/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Repository 2005-01-06 23:06:27.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/ufs
-diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Root linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Root
---- linux-2.4.20/fs/ufs/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Root 2005-01-06 23:06:27.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/ufs/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Tag
---- linux-2.4.20/fs/ufs/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ufs/CVS/Tag 2005-01-06 23:06:28.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/ufs/.cvsignore linux-2.4.20-mipscvs-20050106/fs/ufs/.cvsignore
---- linux-2.4.20/fs/ufs/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/ufs/.cvsignore 1998-03-17 16:14:52.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Entries
---- linux-2.4.20/fs/umsdos/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Entries 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:55 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/README-WIP.txt/1.9/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/dir.c/1.27/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/emd.c/1.20/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/inode.c/1.30/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/ioctl.c/1.14/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/mangle.c/1.7/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/namei.c/1.21/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/notes/1.1.1.1/Sun Jun 1 03:16:22 1997/-ko/Tlinux_2_4_20
-+/rdir.c/1.18/Fri Oct 19 01:24:58 2001/-ko/Tlinux_2_4_20
-+/specs/1.2/Mon Jan 4 16:09:02 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Repository
---- linux-2.4.20/fs/umsdos/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Repository 2005-01-06 23:06:28.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/umsdos
-diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Root linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Root
---- linux-2.4.20/fs/umsdos/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Root 2005-01-06 23:06:28.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/umsdos/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Tag
---- linux-2.4.20/fs/umsdos/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/CVS/Tag 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/umsdos/.cvsignore linux-2.4.20-mipscvs-20050106/fs/umsdos/.cvsignore
---- linux-2.4.20/fs/umsdos/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/umsdos/.cvsignore 1998-03-17 16:14:55.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Entries linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Entries
---- linux-2.4.20/fs/vfat/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Entries 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.2/Tue Mar 17 22:14:59 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/namei.c/1.35.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/vfatfs_syms.c/1.5.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Repository linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Repository
---- linux-2.4.20/fs/vfat/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Repository 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+linux/fs/vfat
-diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Root linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Root
---- linux-2.4.20/fs/vfat/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Root 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/fs/vfat/CVS/Tag linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Tag
---- linux-2.4.20/fs/vfat/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/vfat/CVS/Tag 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/fs/vfat/.cvsignore linux-2.4.20-mipscvs-20050106/fs/vfat/.cvsignore
---- linux-2.4.20/fs/vfat/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/fs/vfat/.cvsignore 1998-03-17 16:14:59.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Entries
---- linux-2.4.20/include/asm-alpha/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Entries 2005-01-06 23:06:32.000000000 -0600
-@@ -0,0 +1,103 @@
-+/a.out.h/1.3.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/asm_offsets.h/1.2/Mon Jan 4 16:09:04 1999/-ko/Tlinux_2_4_20
-+/atomic.h/1.8/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.14/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/bugs.h/1.1.1.1/Sun Jun 1 03:16:59 1997/-ko/Tlinux_2_4_20
-+/byteorder.h/1.6/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.9/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.3/Fri Feb 18 22:06:19 2000/-ko/Tlinux_2_4_20
-+/compiler.h/1.7/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/console.h/1.5/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
-+/core_apecs.h/1.8/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_cia.h/1.9/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_irongate.h/1.7/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_lca.h/1.7/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_mcpcia.h/1.10/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_polaris.h/1.6/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_t2.h/1.7/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_titan.h/1.4/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/core_tsunami.h/1.12.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/core_wildfire.h/1.3.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/current.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/delay.h/1.9/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.2/Fri Feb 4 07:40:52 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.9/Fri Feb 4 07:40:52 2000/-ko/Tlinux_2_4_20
-+/elf.h/1.8/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/errno.h/1.3/Fri Mar 9 20:34:39 2001/-ko/Tlinux_2_4_20
-+/fcntl.h/1.9/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/floppy.h/1.10.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/fpu.h/1.9/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/gentrap.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/hardirq.h/1.15/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Thu Jun 17 14:08:57 1999/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.4/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/hwrpb.h/1.10/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.6.4.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/init.h/1.7/Sat Oct 9 00:01:40 1999/-ko/Tlinux_2_4_20
-+/io.h/1.21.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/ioctls.h/1.6.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.9/Sat Sep 22 12:49:37 2001/-ko/Tlinux_2_4_20
-+/jensen.h/1.7.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.13.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.3/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/machvec.h/1.14/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.3/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/md.h/1.1/Tue Aug 25 09:21:01 1998/-ko/Tlinux_2_4_20
-+/mman.h/1.3/Thu Mar 23 02:25:59 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.15/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmzone.h/1.1/Thu Jun 14 04:24:18 2001/-ko/Tlinux_2_4_20
-+/module.h/1.3/Thu Sep 6 13:22:25 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/namei.h/1.5/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
-+/page.h/1.12.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/pal.h/1.2/Tue Mar 17 22:15:07 1998/-ko/Tlinux_2_4_20
-+/param.h/1.6/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/parport.h/1.4/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.17.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.11.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.26.2.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1.1.1/Sun Jun 1 03:16:59 1997/-ko/Tlinux_2_4_20
-+/posix_types.h/1.6/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.20/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.2/Sat Oct 9 00:01:40 1999/-ko/Tlinux_2_4_20
-+/reg.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/resource.h/1.4/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/rwsem.h/1.2.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.3/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/segment.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/semaphore.h/1.12.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.3/Sat Oct 9 00:01:40 1999/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.2/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.2/Sat Jan 29 01:42:26 2000/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.2/Tue Dec 16 05:36:29 1997/-ko/Tlinux_2_4_20
-+/siginfo.h/1.6.4.1/Wed Jun 26 22:36:23 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.4/Tue Aug 25 09:21:04 1998/-ko/Tlinux_2_4_20
-+/smp.h/1.20/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/smplock.h/1.4/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
-+/socket.h/1.9.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.1.1/Sun Jun 1 03:16:59 1997/-ko/Tlinux_2_4_20
-+/softirq.h/1.16/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.13/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/stat.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/statfs.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/string.h/1.9/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/sysinfo.h/1.2/Sun Jun 13 16:35:09 1999/-ko/Tlinux_2_4_20
-+/system.h/1.23/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/termbits.h/1.2/Mon Feb 15 02:21:15 1999/-ko/Tlinux_2_4_20
-+/termios.h/1.9/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.2.6.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/types.h/1.4/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.9/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Tue Dec 16 06:06:45 1997/-ko/Tlinux_2_4_20
-+/unaligned.h/1.5/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/unistd.h/1.18.2.1/Wed Jun 26 22:36:24 2002/-ko/Tlinux_2_4_20
-+/user.h/1.1.1.1/Sun Jun 1 03:16:58 1997/-ko/Tlinux_2_4_20
-+/vga.h/1.6/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Repository
---- linux-2.4.20/include/asm-alpha/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Repository 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-alpha
-diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Root
---- linux-2.4.20/include/asm-alpha/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Root 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-alpha/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Tag
---- linux-2.4.20/include/asm-alpha/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/CVS/Tag 2005-01-06 23:06:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-alpha/param.h linux-2.4.20-mipscvs-20050106/include/asm-alpha/param.h
---- linux-2.4.20/include/asm-alpha/param.h 2000-11-08 01:37:31.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-alpha/param.h 2000-11-27 21:59:03.000000000 -0600
-@@ -13,6 +13,9 @@
- # else
- # define HZ 1200
- # endif
-+#ifdef __KERNEL__
-+# define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 8192
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,17 @@
-+/dma.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/io.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.2/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/param.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/serial_reg.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/system.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/time.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-anakin
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-anakin/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-anakin/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-anakin/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-arc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,16 @@
-+/dma.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.12/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.12/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/io.h/1.9/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.8/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.5/Fri Mar 9 20:34:39 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.5/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.6/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/oldlatches.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/param.h/1.1/Thu Jan 27 01:05:36 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/system.h/1.12/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/time.h/1.6/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.3/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-arc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-arc
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-arc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-arc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-arc/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,17 @@
-+/acornfb.h/1.1/Fri Feb 4 07:40:52 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.6/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/io.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.3/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.3/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.2.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/param.h/1.2/Tue Mar 7 15:45:41 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/system.h/1.9/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/time.h/1.6/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Fri Feb 4 07:40:52 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.3.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.2/Fri Apr 28 01:09:53 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-cl7500
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-cl7500/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-cl7500/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,16 @@
-+/autcpu12.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/dma.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/hardware.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/io.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/irqs.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/param.h/1.1.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/syspld.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/system.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/time.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-clps711x
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-clps711x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-clps711x/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,15 @@
-+/dma.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.11/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.1/Tue Mar 17 22:15:36 1998/-ko/Tlinux_2_4_20
-+/io.h/1.8.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.5/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/memory.h/1.7/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.4/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/system.h/1.10/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/time.h/1.9/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.3/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.4.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.2/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-ebsa110
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-ebsa110/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa110/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,16 @@
-+/dma.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.11/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/io.h/1.13/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.16/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.6/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/keyboard.h/1.6.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.10/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/system.h/1.14/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/time.h/1.12/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.4/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.6.4.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.2/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-ebsa285
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-ebsa285/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-ebsa285/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Entries 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1,23 @@
-+/dma.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/ether00.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/excalibur.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.2/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/int_ctrl00.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/io.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/mode_ctrl00.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/param.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/platform.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/pld_conf00.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/system.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/tdkphy.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/time.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/timer00.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/uart00.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-epxa10db
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-epxa10db/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-epxa10db/CVS/Tag 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Entries 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1,17 @@
-+/bits.h/1.1/Thu Apr 5 04:58:30 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.1/Thu Apr 5 04:58:30 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.2/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/io.h/1.2/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.2/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.2/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/platform.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/system.h/1.2.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/time.h/1.2/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Repository 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-integrator
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Root 2005-01-06 23:06:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-integrator/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-integrator/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-integrator/CVS/Tag 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Entries 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1,24 @@
-+/aux_reg.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.3/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/gp_timers.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/gpio.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.4/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.3/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/io.h/1.4/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.2/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.2/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.2/Thu Jun 14 04:24:18 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.4/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.2/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/pmpcon.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/pmu.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/serial_l7200.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/sib.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/sys-clock.h/1.1/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/system.h/1.5/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/time.h/1.4/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.2.4.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Repository 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-l7200
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Root 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-l7200/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-l7200/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-l7200/CVS/Tag 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Entries 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1,15 @@
-+/dma.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/hardware.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/io.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/irqs.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/param.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/platform.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/system.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/time.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/uncompress.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1.2.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Repository 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-mx1ads
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Root 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-mx1ads/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-mx1ads/CVS/Tag 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Entries 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1,15 @@
-+/dma.h/1.7/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.7/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/ide.h/1.2/Mon Jul 3 21:46:09 2000/-ko/Tlinux_2_4_20
-+/io.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/irqs.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/keyboard.h/1.2/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
-+/system.h/1.9/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/time.h/1.7/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Tue Aug 25 09:21:23 1998/-ko/Tlinux_2_4_20
-+/uncompress.h/1.4.4.1/Wed Jun 26 22:36:26 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Repository 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-nexuspci
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Root 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-nexuspci/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-nexuspci/CVS/Tag 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Entries 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1,17 @@
-+/acornfb.h/1.2/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.12/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.7/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/io.h/1.9.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.7/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.6/Fri Mar 9 20:34:40 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.6/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.4/Tue May 16 19:56:45 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.4/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/system.h/1.13/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/time.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.2/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.6/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.3/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Repository 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-rpc
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Root 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-rpc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-rpc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-rpc/CVS/Tag 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,43 @@
-+/SA-1100.h/1.5/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/SA-1101.h/1.2/Fri Mar 9 20:34:40 2001/-ko/Tlinux_2_4_20
-+/SA-1111.h/1.5.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/adsbitsy.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/assabet.h/1.6.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/badge4.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/bitfield.h/1.2/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/cerf.h/1.3.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/dma.h/1.5/Tue Nov 6 00:55:26 2001/-ko/Tlinux_2_4_20
-+/flexanet.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/freebird.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/frodo.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/graphicsclient.h/1.2/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/graphicsmaster.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/h3600.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/h3600_gpio.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/hardware.h/1.13.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/huw_webpanel.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.7.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/io.h/1.5/Fri Mar 9 20:34:40 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.9/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.5.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/itsy.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/jornada720.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.7.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/lart.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.6/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/omnimeter.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/pangolin.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/param.h/1.2/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/pfs168.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/pleb.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.4/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/shannon.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/simpad.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/system.h/1.12.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/system3.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/time.h/1.3.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Thu Jan 27 01:05:37 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.8.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.2/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/yopy.h/1.1/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Repository 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-sa1100
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Root 2005-01-06 23:06:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-sa1100/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-sa1100/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-shark/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,16 @@
-+/dma.h/1.4/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.5/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.4/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/io.h/1.6/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.3/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/irqs.h/1.3/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.5.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.5/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/param.h/1.5/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
-+/system.h/1.5/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/time.h/1.6/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.3/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/uncompress.h/1.3/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-shark/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-shark
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-shark/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-shark/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-shark/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-shark/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Entries
---- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,16 @@
-+/dma.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/hardware.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/ide.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/io.h/1.3/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/irqs.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/keyboard.h/1.2/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.3/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/param.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/system.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/time.h/1.3/Sat Sep 22 12:49:39 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/uncompress.h/1.1.4.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.1/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Repository
---- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/arch-tbox
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Root
---- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/arch-tbox/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Tag
---- linux-2.4.20/include/asm-arm/arch-tbox/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/arch-tbox/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Entries
---- linux-2.4.20/include/asm-arm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,113 @@
-+/a.out.h/1.7/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/assembler.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/atomic.h/1.10/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.7/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/bugs.h/1.3/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/byteorder.h/1.4/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/checksum.h/1.9.2.1/Wed Jun 26 22:36:24 2002/-ko/Tlinux_2_4_20
-+/cpu-multi26.h/1.4/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/cpu-multi32.h/1.7/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/cpu-single.h/1.7/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/current.h/1.5/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/delay.h/1.2/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.2/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.11/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/ecard.h/1.6/Fri Mar 9 20:34:39 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.8/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/errno.h/1.1/Tue Mar 17 22:15:13 1998/-ko/Tlinux_2_4_20
-+/fcntl.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/fiq.h/1.4/Fri Mar 9 20:34:39 2001/-ko/Tlinux_2_4_20
-+/floppy.h/1.8/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/hardirq.h/1.11/Tue Nov 6 00:55:25 2001/-ko/Tlinux_2_4_20
-+/hardware.h/1.8/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.5.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/io.h/1.21.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.2/Tue Aug 25 09:21:10 1998/-ko/Tlinux_2_4_20
-+/ioctls.h/1.2/Fri Mar 9 20:34:39 2001/-ko/Tlinux_2_4_20
-+/ipc.h/1.1/Tue Mar 17 22:15:16 1998/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.6/Tue Jun 22 23:07:39 1999/-ko/Tlinux_2_4_20
-+/keyboard.h/1.5/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/leds.h/1.5.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/limits.h/1.1/Tue Mar 17 22:15:16 1998/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.6/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/memory.h/1.3/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.2/Thu Mar 23 02:26:00 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.7.4.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/mmzone.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/namei.h/1.5/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
-+/nwflash.h/1.1/Thu Jan 27 01:05:36 2000/-ko/Tlinux_2_4_20
-+/page.h/1.14.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/param.h/1.6/Thu Apr 5 04:58:30 2001/-ko/Tlinux_2_4_20
-+/parport.h/1.7/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.13.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.7/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.21.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Tue Mar 17 22:15:18 1998/-ko/Tlinux_2_4_20
-+/posix_types.h/1.6/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/proc-fns.h/1.11.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/processor.h/1.20.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/procinfo.h/1.7/Wed Jun 13 17:28:09 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/resource.h/1.5/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.3.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.1/Tue Mar 17 22:15:21 1998/-ko/Tlinux_2_4_20
-+/semaphore-helper.h/1.1/Sun Jun 13 16:35:16 1999/-ko/Tlinux_2_4_20
-+/semaphore.h/1.10.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.3/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/setup.h/1.11/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.4/Thu Oct 5 01:19:01 2000/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.2/Wed Feb 16 01:07:47 2000/-ko/Tlinux_2_4_20
-+/siginfo.h/1.8.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.6/Tue Nov 6 00:55:26 2001/-ko/Tlinux_2_4_20
-+/sizes.h/1.1/Sun Dec 2 11:34:56 2001/-ko/Tlinux_2_4_20
-+/smp.h/1.4/Fri Apr 28 01:09:52 2000/-ko/Tlinux_2_4_20
-+/smplock.h/1.4/Sat Sep 22 12:49:38 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.8.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1/Tue Mar 17 22:15:24 1998/-ko/Tlinux_2_4_20
-+/softirq.h/1.9/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.6/Sat Oct 9 00:01:40 1999/-ko/Tlinux_2_4_20
-+/stat.h/1.6/Tue Aug 8 18:02:01 2000/-ko/Tlinux_2_4_20
-+/statfs.h/1.1/Tue Mar 17 22:15:24 1998/-ko/Tlinux_2_4_20
-+/string.h/1.6/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/system.h/1.19/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/termbits.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/termios.h/1.10/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/therm.h/1.1/Thu Jan 27 01:05:36 2000/-ko/Tlinux_2_4_20
-+/timex.h/1.3.4.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/types.h/1.3/Wed Feb 23 00:41:36 2000/-ko/Tlinux_2_4_20
-+/uaccess.h/1.10/Tue Nov 6 07:56:11 2001/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Tue Mar 17 22:15:26 1998/-ko/Tlinux_2_4_20
-+/unaligned.h/1.5/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/unistd.h/1.17.2.1/Wed Jun 26 22:36:25 2002/-ko/Tlinux_2_4_20
-+/user.h/1.3/Mon Aug 28 22:00:24 2000/-ko/Tlinux_2_4_20
-+/vga.h/1.3/Fri Feb 4 07:40:52 2000/-ko/Tlinux_2_4_20
-+/xor.h/1.4/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+D/arch-anakin////
-+D/arch-arc////
-+D/arch-cl7500////
-+D/arch-clps711x////
-+D/arch-ebsa110////
-+D/arch-ebsa285////
-+D/arch-epxa10db////
-+D/arch-integrator////
-+D/arch-l7200////
-+D/arch-mx1ads////
-+D/arch-nexuspci////
-+D/arch-rpc////
-+D/arch-sa1100////
-+D/arch-shark////
-+D/arch-tbox////
-+D/hardware////
-+D/mach////
-+D/proc-armo////
-+D/proc-armv////
-diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Repository
---- linux-2.4.20/include/asm-arm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Repository 2005-01-06 23:06:32.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm
-diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Root
---- linux-2.4.20/include/asm-arm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Root 2005-01-06 23:06:32.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Tag
---- linux-2.4.20/include/asm-arm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/CVS/Tag 2005-01-06 23:06:32.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Entries
---- linux-2.4.20/include/asm-arm/hardware/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,13 @@
-+/amba_kmi.h/1.1/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/clps7111.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/cs89712.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/dec21285.h/1.1/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/ep7211.h/1.1/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/ep7212.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/ioc.h/1.2/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/iomd.h/1.2/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/memc.h/1.1/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/pci_v3.h/1.4/Tue Nov 6 00:55:26 2001/-ko/Tlinux_2_4_20
-+/sa1111.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/serial_amba.h/1.2/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Repository
---- linux-2.4.20/include/asm-arm/hardware/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/hardware
-diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Root
---- linux-2.4.20/include/asm-arm/hardware/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/hardware/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Tag
---- linux-2.4.20/include/asm-arm/hardware/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/hardware/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Entries
---- linux-2.4.20/include/asm-arm/mach/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,8 @@
-+/amba_kmi.h/1.2.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/arch.h/1.4/Tue Nov 6 00:55:26 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.1/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.1/Fri Mar 9 20:34:40 2001/-ko/Tlinux_2_4_20
-+/map.h/1.1/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.3/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/serial_sa1100.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Repository
---- linux-2.4.20/include/asm-arm/mach/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/mach
-diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Root
---- linux-2.4.20/include/asm-arm/mach/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/mach/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Tag
---- linux-2.4.20/include/asm-arm/mach/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/mach/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Entries
---- linux-2.4.20/include/asm-arm/proc-armo/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,14 @@
-+/assembler.h/1.4/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/cache.h/1.8/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.3/Fri Apr 28 01:09:53 2000/-ko/Tlinux_2_4_20
-+/locks.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/page.h/1.5/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.1/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.14/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/processor.h/1.9/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.7/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/shmparam.h/1.3/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/system.h/1.11/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.5/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/uncompress.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Repository
---- linux-2.4.20/include/asm-arm/proc-armo/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/proc-armo
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Root
---- linux-2.4.20/include/asm-arm/proc-armo/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armo/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Tag
---- linux-2.4.20/include/asm-arm/proc-armo/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armo/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Entries
---- linux-2.4.20/include/asm-arm/proc-armv/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Entries 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1,15 @@
-+/assembler.h/1.5/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/cache.h/1.9.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/domain.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/elf.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/locks.h/1.4/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/page.h/1.4/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.1/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.16/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/processor.h/1.9/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.7/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/shmparam.h/1.3/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/system.h/1.14/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.11/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/uncompress.h/1.3/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Repository
---- linux-2.4.20/include/asm-arm/proc-armv/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-arm/proc-armv
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Root
---- linux-2.4.20/include/asm-arm/proc-armv/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-arm/proc-armv/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Tag
---- linux-2.4.20/include/asm-arm/proc-armv/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-arm/proc-armv/CVS/Tag 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Entries
---- linux-2.4.20/include/asm-cris/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,84 @@
-+/a.out.h/1.1/Fri Mar 9 20:34:41 2001/-ko/Tlinux_2_4_20
-+/atomic.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/axisflashmap.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.4.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.1/Fri Mar 9 20:34:41 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.1/Fri Mar 9 20:34:41 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.1/Fri Mar 9 20:34:41 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.3/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/current.h/1.2/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/delay.h/1.5/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.2/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.2.2.1/Tue Feb 26 06:00:23 2002/-ko/Tlinux_2_4_20
-+/errno.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/eshlibld.h/1.2/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/ethernet.h/1.1.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
-+/etraxgpio.h/1.4.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/etraxi2c.h/1.1/Wed Jun 13 17:28:10 2001/-ko/Tlinux_2_4_20
-+/etraxvirtex.h/1.1.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/fasttimer.h/1.1.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/fcntl.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/hardirq.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/io.h/1.6/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/ipc.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.6.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
-+/locks.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.2/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
-+/module.h/1.3/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/namei.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/page.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/param.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.3/Thu Jun 14 04:24:18 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.4.2.3/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/posix_types.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/processor.h/1.6.2.2/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.5/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/rs485.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/rtc.h/1.2.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/semaphore-helper.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/semaphore.h/1.3.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/setup.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/shmparam.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/siginfo.h/1.1.2.1/Wed Jun 26 22:36:27 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/smp.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/smp_lock.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/smplock.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/sockios.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/softirq.h/1.3/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/stat.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/statfs.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/string.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/sv_addr.agh/1.2.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/sv_addr_ag.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/svinto.h/1.2.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/sync_serial.h/1.1/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/system.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/termios.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/timex.h/1.3.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Mon Nov 5 20:16:24 2001/-ko/Tlinux_2_4_20
-+/types.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.3/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1/Fri Mar 9 20:34:43 2001/-ko/Tlinux_2_4_20
-+/unistd.h/1.4.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/user.h/1.1.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Repository
---- linux-2.4.20/include/asm-cris/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Repository 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-cris
-diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Root
---- linux-2.4.20/include/asm-cris/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Root 2005-01-06 23:06:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-cris/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Tag
---- linux-2.4.20/include/asm-cris/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-cris/CVS/Tag 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Entries
---- linux-2.4.20/include/asm-generic/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Entries 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1,7 @@
-+/bitops.h/1.3/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/smplock.h/1.3/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
-+/tlb.h/1.1.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1.1.1/Sun Jun 1 03:16:54 1997/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Repository
---- linux-2.4.20/include/asm-generic/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Repository 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-generic
-diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Root
---- linux-2.4.20/include/asm-generic/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Root 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-generic/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Tag
---- linux-2.4.20/include/asm-generic/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-generic/CVS/Tag 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Entries
---- linux-2.4.20/include/asm-i386/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,109 @@
-+/a.out.h/1.1.1.1/Sun Jun 1 03:17:15 1997/-ko/Tlinux_2_4_20
-+/apic.h/1.10.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/apicdef.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/atomic.h/1.10/Thu Aug 23 22:24:46 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.12.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/boot.h/1.1.1.1/Sun Jun 1 03:17:15 1997/-ko/Tlinux_2_4_20
-+/bugs.h/1.24.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/byteorder.h/1.4/Mon Feb 15 02:21:51 1999/-ko/Tlinux_2_4_20
-+/cache.h/1.6/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/checksum.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/cobalt.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/cpufeature.h/1.1.4.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/current.h/1.2/Tue Aug 25 09:21:34 1998/-ko/Tlinux_2_4_20
-+/debugreg.h/1.1/Tue Aug 25 09:21:34 1998/-ko/Tlinux_2_4_20
-+/delay.h/1.4/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/desc.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.5/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/e820.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/elf.h/1.12/Wed Aug 22 03:25:00 2001/-ko/Tlinux_2_4_20
-+/errno.h/1.3.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/fcntl.h/1.7/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/fixmap.h/1.8.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.9.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.17/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Thu Jun 17 14:08:58 1999/-ko/Tlinux_2_4_20
-+/highmem.h/1.7.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.13/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/i387.h/1.4.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.8.4.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/init.h/1.3/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/io.h/1.17.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/io_apic.h/1.6.2.1/Tue Feb 26 06:00:24 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.2/Mon Dec 1 18:00:33 1997/-ko/Tlinux_2_4_20
-+/ioctls.h/1.5.6.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/ipc.h/1.2/Mon Feb 15 02:21:53 1999/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.8.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.12/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/kmap_types.h/1.4.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/ldt.h/1.2/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/lithium.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/locks.h/1.5/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/math_emu.h/1.4/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.4/Sat Jul 15 03:07:32 2000/-ko/Tlinux_2_4_20
-+/mca_dma.h/1.4/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.2/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.2/Fri Aug 24 03:38:51 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.10.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/mmx.h/1.2/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/mpspec.h/1.7.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/msr.h/1.4.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/mtrr.h/1.6/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/namei.h/1.5/Wed Apr 19 04:00:19 2000/-ko/Tlinux_2_4_20
-+/page.h/1.24.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/param.h/1.5/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/parport.h/1.5/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.12.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.10.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/pgtable-2level.h/1.6.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/pgtable-3level.h/1.6.2.1/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.32.2.2/Wed Sep 11 12:45:27 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1.1.1/Sun Jun 1 03:17:15 1997/-ko/Tlinux_2_4_20
-+/posix_types.h/1.5/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.36.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.6/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.6/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/rwlock.h/1.2.4.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/rwsem.h/1.1.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.2.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.2/Tue Dec 16 05:36:35 1997/-ko/Tlinux_2_4_20
-+/semaphore.h/1.17.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.3.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/setup.h/1.3/Fri Feb 4 07:40:52 2000/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.3/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.5/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
-+/siginfo.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.7/Fri Aug 24 03:38:52 2001/-ko/Tlinux_2_4_20
-+/smp.h/1.15.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/smpboot.h/1.1.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/smplock.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/socket.h/1.10.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.1.1/Sun Jun 1 03:17:15 1997/-ko/Tlinux_2_4_20
-+/softirq.h/1.12.2.2/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/spinlock.h/1.20.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.3/Tue Aug 8 18:02:01 2000/-ko/Tlinux_2_4_20
-+/statfs.h/1.1.1.1/Sun Jun 1 03:17:14 1997/-ko/Tlinux_2_4_20
-+/string-486.h/1.6/Thu Apr 5 04:58:53 2001/-ko/Tlinux_2_4_20
-+/string.h/1.16/Fri Aug 24 03:38:52 2001/-ko/Tlinux_2_4_20
-+/system.h/1.26.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.2/Mon Feb 15 02:21:58 1999/-ko/Tlinux_2_4_20
-+/termios.h/1.10.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/timex.h/1.5.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/types.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.17/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Tue Dec 16 06:06:46 1997/-ko/Tlinux_2_4_20
-+/unaligned.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/unistd.h/1.23.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/user.h/1.6/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/vga.h/1.1/Tue Aug 25 09:21:41 1998/-ko/Tlinux_2_4_20
-+/vm86.h/1.2/Tue Aug 25 09:21:41 1998/-ko/Tlinux_2_4_20
-+/xor.h/1.2.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Repository
---- linux-2.4.20/include/asm-i386/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Repository 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-i386
-diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Root
---- linux-2.4.20/include/asm-i386/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Root 2005-01-06 23:06:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-i386/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Tag
---- linux-2.4.20/include/asm-i386/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/CVS/Tag 2005-01-06 23:06:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-i386/param.h linux-2.4.20-mipscvs-20050106/include/asm-i386/param.h
---- linux-2.4.20/include/asm-i386/param.h 2000-10-27 13:04:43.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-i386/param.h 2000-11-22 20:00:55.000000000 -0600
-@@ -3,6 +3,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 4096
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Entries
---- linux-2.4.20/include/asm-ia64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,99 @@
-+/a.out.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/acpi.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/asmmacro.h/1.3/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/atomic.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/bitops.h/1.6.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/break.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/bugs.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/byteorder.h/1.2/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.4.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/checksum.h/1.1.4.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/current.h/1.2.4.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/delay.h/1.4/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.4/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.3.4.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/errno.h/1.1.4.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/fcntl.h/1.4/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/fpswa.h/1.3/Fri Aug 24 03:38:52 2001/-ko/Tlinux_2_4_20
-+/fpu.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/hardirq.h/1.10.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.6.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ia32.h/1.12/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.5.4.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/io.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/ioctls.h/1.1.4.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/iosapic.h/1.5.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.2.4.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.4.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/kregs.h/1.2.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/machvec.h/1.6.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/machvec_dig.h/1.3/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/machvec_hpsim.h/1.3/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/machvec_hpzx1.h/1.3.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/machvec_init.h/1.3.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/machvec_sn1.h/1.4.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/machvec_sn2.h/1.1.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/mca.h/1.5.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/mca_asm.h/1.5.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/mman.h/1.3/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.7/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/module.h/1.7.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.2/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/namei.h/1.3/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/offsets.h/1.12.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/page.h/1.11.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/pal.h/1.8.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/param.h/1.6/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/parport.h/1.1/Thu Nov 23 02:00:55 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.10.2.3/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/perfmon.h/1.2.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.8.2.1/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/pgtable.h/1.17.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/posix_types.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.15.2.2/Sat Jan 11 17:53:17 2003/-ko/Tlinux_2_4_20
-+/ptrace.h/1.8.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/ptrace_offsets.h/1.6/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/rse.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/sal.h/1.8.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.2/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/semaphore.h/1.6.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.2/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.1.4.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.2/Sun Dec 2 11:34:57 2001/-ko/Tlinux_2_4_20
-+/shmparam.h/1.2/Thu Jan 11 04:02:44 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.4.2.1/Wed Jun 26 22:36:28 2002/-ko/Tlinux_2_4_20
-+/siginfo.h/1.8.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/signal.h/1.3.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/smp.h/1.9/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/smplock.h/1.4/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.7.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/softirq.h/1.6.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/spinlock.h/1.8.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.2/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
-+/statfs.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/string.h/1.5.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/system.h/1.11.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/termbits.h/1.1/Wed Feb 23 00:41:37 2000/-ko/Tlinux_2_4_20
-+/termios.h/1.3.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/timex.h/1.2.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:24:59 2001/-ko/Tlinux_2_4_20
-+/types.h/1.3/Fri Apr 28 01:09:53 2000/-ko/Tlinux_2_4_20
-+/uaccess.h/1.6.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Wed Jun 13 17:28:11 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/unistd.h/1.9.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/unwind.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/user.h/1.2/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/vga.h/1.1.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D/sn////
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Repository
---- linux-2.4.20/include/asm-ia64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Repository 2005-01-06 23:06:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Root
---- linux-2.4.20/include/asm-ia64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Root 2005-01-06 23:06:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Tag
---- linux-2.4.20/include/asm-ia64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/CVS/Tag 2005-01-06 23:06:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/param.h linux-2.4.20-mipscvs-20050106/include/asm-ia64/param.h
---- linux-2.4.20/include/asm-ia64/param.h 2001-04-05 14:51:47.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/param.h 2001-06-13 12:28:11.000000000 -0500
-@@ -20,6 +20,10 @@
- # define HZ 1024
- #endif
-
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
-+
- #define EXEC_PAGESIZE 65536
-
- #ifndef NGROUPS
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Entries 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1,3 @@
-+/hinv.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/types.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Repository 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn/arc
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Root 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/arc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/arc/CVS/Tag 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,63 @@
-+/addrs.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/alenlist.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/arch.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/ate_utils.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/bte.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/bte_copy.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/cdl.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/clksupport.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/dmamap.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/driver.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/eeprom.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/fetchop.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/gda.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/hack.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/hcl.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/hcl_util.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/hires_clock.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/idle.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/ifconfig_net.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/intr.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/intr_public.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/invent.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/io.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/ioc3.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/ioerror.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/ioerror_handling.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/iograph.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/klclock.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/klconfig.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/kldir.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/labelcl.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/leds.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/mca.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/mmtimer_private.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/module.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/nag.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/nic.h/1.1.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/nodepda.h/1.2.2.1/Wed Jun 26 22:36:29 2002/-ko/Tlinux_2_4_20
-+/pda.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pio.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/prio.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/router.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sgi.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/simulator.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/slotnum.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sn_cpuid.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sn_fru.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sn_pio_sync.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sn_private.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sn_sal.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/snconfig.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sndrv.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/sv.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/systeminfo.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/types.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/uart16550.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/vector.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+D/arc////
-+D/ksys////
-+D/pci////
-+D/sn1////
-+D/sn2////
-+D/xtalk////
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Repository 2005-01-06 23:06:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Root 2005-01-06 23:06:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/CVS/Tag 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Entries 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1,3 @@
-+/elsc.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/l1.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Repository 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn/ksys
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Root 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/ksys/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/ksys/CVS/Tag 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Entries 2005-01-06 23:06:42.000000000 -0600
-@@ -0,0 +1,9 @@
-+/bridge.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pci_bus_cvlink.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pci_defs.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pciba.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pcibr.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pcibr_private.h/1.3.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pciio.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/pciio_private.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Repository 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn/pci
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Root 2005-01-06 23:06:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/pci/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/pci/CVS/Tag 2005-01-06 23:06:42.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Entries 2005-01-06 23:06:43.000000000 -0600
-@@ -0,0 +1,28 @@
-+/addrs.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/arch.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/bedrock.h/1.2.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/hubdev.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/hubio.h/1.1.2.1/Wed Jun 26 22:36:30 2002/-ko/Tlinux_2_4_20
-+/hubio_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hublb.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hublb_next.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubmd.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubmd_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubni.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubni_next.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubpi.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubpi_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubspc.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubstat.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubxb.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hubxb_next.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/hwcntrs.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/intr.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/intr_public.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/ip27config.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/mem_refcnt.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/mmzone_sn1.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/slotnum.h/1.2.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/sn_private.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/synergy.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Repository 2005-01-06 23:06:42.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn/sn1
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Root 2005-01-06 23:06:42.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/sn1/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn1/CVS/Tag 2005-01-06 23:06:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Entries 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1,12 @@
-+/addrs.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/arch.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/intr.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/mmzone_sn2.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/shub.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/shub_md.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/shub_mmr.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/shub_mmr_t.h/1.1.2.1/Wed Jun 26 22:36:31 2002/-ko/Tlinux_2_4_20
-+/shubio.h/1.1.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
-+/slotnum.h/1.1.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
-+/sn_private.h/1.1.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Repository 2005-01-06 23:06:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn/sn2
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Root 2005-01-06 23:06:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/sn2/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/sn2/CVS/Tag 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Entries
---- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Entries 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1,8 @@
-+/xbow.h/1.2.2.1/Wed Jun 26 22:36:36 2002/-ko/Tlinux_2_4_20
-+/xbow_info.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/xswitch.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/xtalk.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/xtalk_private.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/xtalkaddrs.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/xwidget.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Repository
---- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Repository 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ia64/sn/xtalk
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Root
---- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Root 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Tag
---- linux-2.4.20/include/asm-ia64/sn/xtalk/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ia64/sn/xtalk/CVS/Tag 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Entries
---- linux-2.4.20/include/asm-m68k/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Entries 2005-01-06 23:06:48.000000000 -0600
-@@ -0,0 +1,156 @@
-+/a.out.h/1.1.1.1/Sun Jun 1 03:17:11 1997/-ko/Tlinux_2_4_20
-+/adb.h/1.1/Tue Aug 25 09:21:42 1998/-ko/Tlinux_2_4_20
-+/adb_iop.h/1.1/Thu Feb 24 00:13:19 2000/-ko/Tlinux_2_4_20
-+/adb_mouse.h/1.2/Thu Jun 17 13:30:33 1999/-ko/Tlinux_2_4_20
-+/amigahw.h/1.7/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/amigaints.h/1.3/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/amigayle.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/amipcmcia.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/apollodma.h/1.1.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/apollohw.h/1.2/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/atafd.h/1.1.1.1/Sun Jun 1 03:17:09 1997/-ko/Tlinux_2_4_20
-+/atafdreg.h/1.1.1.1/Sun Jun 1 03:17:11 1997/-ko/Tlinux_2_4_20
-+/atari_SCCserial.h/1.4/Sun Jun 13 16:35:46 1999/-ko/Tlinux_2_4_20
-+/atari_SLM.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/atari_acsi.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/atari_joystick.h/1.2/Thu Jun 17 13:30:33 1999/-ko/Tlinux_2_4_20
-+/atari_stdma.h/1.1.1.1/Sun Jun 1 03:17:09 1997/-ko/Tlinux_2_4_20
-+/atari_stram.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/atarihw.h/1.4/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/atariints.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/atarikb.h/1.1.1.1/Sun Jun 1 03:17:11 1997/-ko/Tlinux_2_4_20
-+/atomic.h/1.3/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.10/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/blinken.h/1.1/Tue Aug 25 09:21:44 1998/-ko/Tlinux_2_4_20
-+/bootinfo.h/1.7/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/bugs.h/1.2/Tue Mar 17 22:16:04 1998/-ko/Tlinux_2_4_20
-+/bvme6000hw.h/1.3/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/byteorder.h/1.3/Tue Dec 16 05:36:37 1997/-ko/Tlinux_2_4_20
-+/cache.h/1.4/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/cachectl.h/1.1.1.1/Sun Jun 1 03:17:11 1997/-ko/Tlinux_2_4_20
-+/checksum.h/1.5/Fri Feb 18 22:06:19 2000/-ko/Tlinux_2_4_20
-+/contregs.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/current.h/1.1.1.1/Sun Jun 1 03:17:09 1997/-ko/Tlinux_2_4_20
-+/delay.h/1.2/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.2/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/dsp56k.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/dvma.h/1.5/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.8/Wed Jul 12 00:45:49 2000/-ko/Tlinux_2_4_20
-+/entry.h/1.8/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/errno.h/1.1.1.1/Sun Jun 1 03:17:09 1997/-ko/Tlinux_2_4_20
-+/fbio.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/fcntl.h/1.7/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/floppy.h/1.4/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/fpu.h/1.2/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/hardirq.h/1.11/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Thu Jun 17 14:08:59 1999/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/hwtest.h/1.2/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/ide.h/1.12.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/idprom.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/init.h/1.5/Fri Feb 18 22:06:19 2000/-ko/Tlinux_2_4_20
-+/intersil.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/io.h/1.11.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.2/Mon Dec 1 18:00:34 1997/-ko/Tlinux_2_4_20
-+/ioctls.h/1.4/Tue Mar 17 22:16:06 1998/-ko/Tlinux_2_4_20
-+/ipc.h/1.2/Mon Feb 15 02:22:02 1999/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.4.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/kbio.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.7/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.4/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/mac_asc.h/1.1/Tue Mar 17 22:16:07 1998/-ko/Tlinux_2_4_20
-+/mac_baboon.h/1.1/Thu Feb 24 00:13:19 2000/-ko/Tlinux_2_4_20
-+/mac_iop.h/1.2/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/mac_mouse.h/1.2/Thu Jun 17 13:30:34 1999/-ko/Tlinux_2_4_20
-+/mac_oss.h/1.1/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/mac_psc.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/mac_via.h/1.1.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/machdep.h/1.7.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/machines.h/1.1/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/machw.h/1.4.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/macintosh.h/1.5.4.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/macints.h/1.4/Thu Feb 24 00:13:19 2000/-ko/Tlinux_2_4_20
-+/math-emu.h/1.1/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.2/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/md.h/1.1/Tue Aug 25 09:21:49 1998/-ko/Tlinux_2_4_20
-+/mman.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.8/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/motorola_pgalloc.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/motorola_pgtable.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/movs.h/1.3/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/mvme147hw.h/1.2/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/mvme16xhw.h/1.3/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/namei.h/1.5/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/nubus.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/openprom.h/1.3/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/oplib.h/1.2/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/page.h/1.11.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/page_offset.h/1.1/Fri Feb 18 00:24:47 2000/-ko/Tlinux_2_4_20
-+/param.h/1.8/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/parport.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.4.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.6.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.19/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/poll.h/1.2/Fri Feb 18 00:24:48 2000/-ko/Tlinux_2_4_20
-+/posix_types.h/1.4/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.14/Mon Nov 5 20:16:25 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.2/Tue Mar 17 22:16:09 1998/-ko/Tlinux_2_4_20
-+/q40_keyboard.h/1.4.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/q40_master.h/1.3.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/q40ints.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/raw_io.h/1.2.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/resource.h/1.5.4.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/rtc.h/1.1.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/sbus.h/1.2/Wed Aug 22 03:25:01 2001/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.3.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.2/Tue Mar 17 22:16:09 1998/-ko/Tlinux_2_4_20
-+/semaphore-helper.h/1.3/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/semaphore.h/1.10.2.3/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/serial.h/1.10.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/setup.h/1.9/Fri Feb 18 00:24:48 2000/-ko/Tlinux_2_4_20
-+/shm.h/1.3/Fri Feb 4 07:40:53 2000/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Wed Feb 16 01:07:48 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.3/Sat Jan 29 01:42:27 2000/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/siginfo.h/1.7.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.5/Fri Feb 4 07:40:53 2000/-ko/Tlinux_2_4_20
-+/smplock.h/1.3/Mon Mar 27 23:54:40 2000/-ko/Tlinux_2_4_20
-+/socket.h/1.7.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.1.1/Sun Jun 1 03:17:11 1997/-ko/Tlinux_2_4_20
-+/softirq.h/1.10/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.5/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/stat.h/1.8/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/statfs.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/string.h/1.5/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/sun3-head.h/1.1/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/sun3_pgalloc.h/1.3/Wed Aug 22 03:25:04 2001/-ko/Tlinux_2_4_20
-+/sun3_pgtable.h/1.2.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/sun3ints.h/1.3/Wed Aug 22 03:25:04 2001/-ko/Tlinux_2_4_20
-+/sun3mmu.h/1.1/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/sun3x.h/1.2/Wed Aug 22 03:25:04 2001/-ko/Tlinux_2_4_20
-+/sun3xflop.h/1.2/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/sun3xprom.h/1.1/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/swim_iop.h/1.1/Sat Oct 9 00:01:42 1999/-ko/Tlinux_2_4_20
-+/system.h/1.12.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.2/Mon Feb 15 02:22:07 1999/-ko/Tlinux_2_4_20
-+/termios.h/1.10.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/timex.h/1.2.6.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:00 2001/-ko/Tlinux_2_4_20
-+/traps.h/1.3/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/types.h/1.3.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.8/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Tue Mar 17 22:16:12 1998/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1.1.1/Sun Jun 1 03:17:10 1997/-ko/Tlinux_2_4_20
-+/unistd.h/1.17.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/user.h/1.1.1.1/Sun Jun 1 03:17:09 1997/-ko/Tlinux_2_4_20
-+/virtconvert.h/1.4/Fri Feb 18 00:24:48 2000/-ko/Tlinux_2_4_20
-+/vuid_event.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/zorro.h/1.2/Tue Nov 6 07:56:12 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Repository
---- linux-2.4.20/include/asm-m68k/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Repository 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-m68k
-diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Root
---- linux-2.4.20/include/asm-m68k/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Root 2005-01-06 23:06:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-m68k/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Tag
---- linux-2.4.20/include/asm-m68k/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/CVS/Tag 2005-01-06 23:06:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-m68k/param.h linux-2.4.20-mipscvs-20050106/include/asm-m68k/param.h
---- linux-2.4.20/include/asm-m68k/param.h 2001-01-04 15:00:55.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-m68k/param.h 2001-01-10 22:02:45.000000000 -0600
-@@ -3,6 +3,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 8192
-diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Entries
---- linux-2.4.20/include/asm-mips/arc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,2 @@
-+/types.h/1.1/Sun Mar 26 23:09:05 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Repository
---- linux-2.4.20/include/asm-mips/arc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/arc
-diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Root
---- linux-2.4.20/include/asm-mips/arc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Tag
---- linux-2.4.20/include/asm-mips/arc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/arc/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/asm.h linux-2.4.20-mipscvs-20050106/include/asm-mips/asm.h
---- linux-2.4.20/include/asm-mips/asm.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/asm.h 2003-01-07 17:51:51.000000000 -0600
-@@ -150,12 +150,12 @@
- prefx hint,addr; \
- .set pop
-
--#else
-+#else /* !CONFIG_CPU_HAS_PREFETCH */
-
- #define PREF(hint,addr)
- #define PREFX(hint,addr)
-
--#endif
-+#endif /* !CONFIG_CPU_HAS_PREFETCH */
-
- /*
- * MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
-diff -urNd -urNd linux-2.4.20/include/asm-mips/asmmacro.h linux-2.4.20-mipscvs-20050106/include/asm-mips/asmmacro.h
---- linux-2.4.20/include/asm-mips/asmmacro.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/asmmacro.h 2002-10-07 09:34:18.000000000 -0500
-@@ -43,7 +43,7 @@
- sdc1 $f30, (THREAD_FPU + 0x0f0)(thread); \
- sw tmp, (THREAD_FPU + 0x100)(thread)
-
--#ifdef __LITTLE_ENDIAN
-+#if defined (__MIPSEL__)
- #define FPU_SAVE_SINGLE(thread,tmp) \
- cfc1 tmp, fcr31; \
- swc1 $f0, (THREAD_FPU + 0x000)(thread); \
-@@ -79,7 +79,7 @@
- swc1 $f30, (THREAD_FPU + 0x0f0)(thread); \
- swc1 $f31, (THREAD_FPU + 0x0f4)(thread); \
- sw tmp, (THREAD_FPU + 0x100)(thread)
--#else
-+#elif defined (__MIPSEB__)
- #define FPU_SAVE_SINGLE(thread,tmp) \
- cfc1 tmp, fcr31; \
- swc1 $f0, (THREAD_FPU + 0x004)(thread); \
-@@ -115,6 +115,8 @@
- swc1 $f30, (THREAD_FPU + 0x0f4)(thread); \
- swc1 $f31, (THREAD_FPU + 0x0f0)(thread); \
- sw tmp, (THREAD_FPU + 0x100)(thread)
-+#else
-+#error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
- #endif
-
- #define FPU_RESTORE_DOUBLE(thread, tmp) \
-@@ -137,7 +139,7 @@
- ldc1 $f30, (THREAD_FPU + 0x0f0)(thread); \
- ctc1 tmp, fcr31
-
--#ifdef __LITTLE_ENDIAN
-+#if defined (__MIPSEL__)
- #define FPU_RESTORE_SINGLE(thread,tmp) \
- lw tmp, (THREAD_FPU + 0x100)(thread); \
- lwc1 $f0, (THREAD_FPU + 0x000)(thread); \
-@@ -173,7 +175,7 @@
- lwc1 $f30, (THREAD_FPU + 0x0f0)(thread); \
- lwc1 $f31, (THREAD_FPU + 0x0f4)(thread); \
- ctc1 tmp, fcr31
--#else
-+#elif defined (__MIPSEB__)
- #define FPU_RESTORE_SINGLE(thread,tmp) \
- lw tmp, (THREAD_FPU + 0x100)(thread); \
- lwc1 $f0, (THREAD_FPU + 0x004)(thread); \
-@@ -209,6 +211,8 @@
- lwc1 $f30, (THREAD_FPU + 0x0f4)(thread); \
- lwc1 $f31, (THREAD_FPU + 0x0f0)(thread); \
- ctc1 tmp, fcr31
-+#else
-+#error "MIPS, but neither __MIPSEB__, nor __MIPSEL__???"
- #endif
-
- #define CPU_SAVE_NONSCRATCH(thread) \
-diff -urNd -urNd linux-2.4.20/include/asm-mips/atomic.h linux-2.4.20-mipscvs-20050106/include/asm-mips/atomic.h
---- linux-2.4.20/include/asm-mips/atomic.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/atomic.h 2003-01-24 06:58:30.000000000 -0600
-@@ -59,9 +59,9 @@
- {
- unsigned long flags;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- v->counter += i;
-- restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -76,9 +76,9 @@
- {
- unsigned long flags;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- v->counter -= i;
-- restore_flags(flags);
-+ local_irq_restore(flags);
- }
-
- extern __inline__ int atomic_add_return(int i, atomic_t * v)
-@@ -86,11 +86,11 @@
- unsigned long flags;
- int temp;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- temp = v->counter;
- temp += i;
- v->counter = temp;
-- restore_flags(flags);
-+ local_irq_restore(flags);
-
- return temp;
- }
-@@ -100,11 +100,11 @@
- unsigned long flags;
- int temp;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- temp = v->counter;
- temp -= i;
- v->counter = temp;
-- restore_flags(flags);
-+ local_irq_restore(flags);
-
- return temp;
- }
-@@ -228,7 +228,7 @@
- * other cases. Note that the guaranteed
- * useful range of an atomic_t is only 24 bits.
- */
--#define atomic_inc_and_test(v) (atomic_inc_return(1, (v)) == 0)
-+#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
-
- /*
- * atomic_dec_and_test - decrement by 1 and test
-@@ -268,9 +268,8 @@
- * if the result is negative, or false when
- * result is greater than or equal to zero. Note that the guaranteed
- * useful range of an atomic_t is only 24 bits.
-- *
-- * Currently not implemented for MIPS.
- */
-+#define atomic_add_negative(i,v) (atomic_add_return(i, (v)) < 0)
-
- /* Atomic operations are already serializing */
- #define smp_mb__before_atomic_dec() smp_mb()
-diff -urNd -urNd linux-2.4.20/include/asm-mips/au1000_dma.h linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_dma.h
---- linux-2.4.20/include/asm-mips/au1000_dma.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_dma.h 2002-12-29 04:30:36.000000000 -0600
-@@ -31,6 +31,7 @@
- #ifndef __ASM_AU1000_DMA_H
- #define __ASM_AU1000_DMA_H
-
-+#include <linux/config.h>
- #include <asm/io.h> /* need byte IO */
- #include <linux/spinlock.h> /* And spinlocks */
- #include <linux/delay.h>
-@@ -228,7 +229,7 @@
- disable_dma(dmanr);
-
- // set device FIFO address
-- au_writel(virt_to_phys((void *) chan->fifo_addr),
-+ au_writel(PHYSADDR(chan->fifo_addr),
- chan->io + DMA_PERIPHERAL_ADDR);
-
- mode = chan->mode | (chan->dev_id << DMA_DID_BIT);
-@@ -289,8 +290,7 @@
- if (chan->dev_id != DMA_ID_GP04 && chan->dev_id != DMA_ID_GP05)
- return;
-
-- au_writel(virt_to_phys((void *) a),
-- chan->io + DMA_PERIPHERAL_ADDR);
-+ au_writel(PHYSADDR(a), chan->io + DMA_PERIPHERAL_ADDR);
- }
-
- /*
-diff -urNd -urNd linux-2.4.20/include/asm-mips/au1000.h linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000.h
---- linux-2.4.20/include/asm-mips/au1000.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000.h 2002-12-11 00:12:30.000000000 -0600
-@@ -28,10 +28,13 @@
- * 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-+ /*
-+ * some definitions add by takuzo@sm.sony.co.jp and sato@sm.sony.co.jp
-+ */
-+
- #ifndef _AU1000_H_
- #define _AU1000_H_
-
--#include <linux/config.h>
- #include <linux/delay.h>
- #include <asm/io.h>
-
-@@ -84,12 +87,12 @@
- }
-
- /* arch/mips/au1000/common/clocks.c */
--extern void set_au1000_speed(unsigned int new_freq);
--extern unsigned int get_au1000_speed(void);
--extern void set_au1000_uart_baud_base(unsigned long new_baud_base);
--extern unsigned long get_au1000_uart_baud_base(void);
--extern void set_au1000_lcd_clock(void);
--extern unsigned int get_au1000_lcd_clock(void);
-+extern void set_au1x00_speed(unsigned int new_freq);
-+extern unsigned int get_au1x00_speed(void);
-+extern void set_au1x00_uart_baud_base(unsigned long new_baud_base);
-+extern unsigned long get_au1x00_uart_baud_base(void);
-+extern void set_au1x00_lcd_clock(void);
-+extern unsigned int get_au1x00_lcd_clock(void);
-
- #ifdef CONFIG_PM
- /* no CP0 timer irq */
-@@ -721,7 +724,52 @@
- #define SSI1_CONFIG 0xB1680020
- #define SSI1_ADATA 0xB1680024
- #define SSI1_CLKDIV 0xB1680028
--#define SSI1_CONTROL 0xB1680100
-+#define SSI1_ENABLE 0xB1680100
-+
-+/*
-+ * Register content definitions
-+ */
-+#define SSI_STATUS_BF (1<<4)
-+#define SSI_STATUS_OF (1<<3)
-+#define SSI_STATUS_UF (1<<2)
-+#define SSI_STATUS_D (1<<1)
-+#define SSI_STATUS_B (1<<0)
-+
-+/* SSI_INT */
-+#define SSI_INT_OI (1<<3)
-+#define SSI_INT_UI (1<<2)
-+#define SSI_INT_DI (1<<1)
-+
-+/* SSI_INTEN */
-+#define SSI_INTEN_OIE (1<<3)
-+#define SSI_INTEN_UIE (1<<2)
-+#define SSI_INTEN_DIE (1<<1)
-+
-+#define SSI_CONFIG_AO (1<<24)
-+#define SSI_CONFIG_DO (1<<23)
-+#define SSI_CONFIG_ALEN (7<<20)
-+#define SSI_CONFIG_DLEN (15<<16)
-+#define SSI_CONFIG_DD (1<<11)
-+#define SSI_CONFIG_AD (1<<10)
-+#define SSI_CONFIG_BM (3<<8)
-+#define SSI_CONFIG_CE (1<<7)
-+#define SSI_CONFIG_DP (1<<6)
-+#define SSI_CONFIG_DL (1<<5)
-+#define SSI_CONFIG_EP (1<<4)
-+#define SSI_CONFIG_ALEN_N(N) ((N-1)<<20)
-+#define SSI_CONFIG_DLEN_N(N) ((N-1)<<16)
-+#define SSI_CONFIG_BM_HI (0<<8)
-+#define SSI_CONFIG_BM_LO (1<<8)
-+#define SSI_CONFIG_BM_CY (2<<8)
-+
-+#define SSI_ADATA_D (1<<24)
-+#define SSI_ADATA_ADDR (0xFF<<16)
-+#define SSI_ADATA_DATA (0x0FFF)
-+#define SSI_ADATA_ADDR_N(N) (N<<16)
-+
-+#define SSI_ENABLE_CD (1<<1)
-+#define SSI_ENABLE_E (1<<0)
-+
-
- /* IrDA Controller */
- #define IRDA_BASE 0xB0300000
-diff -urNd -urNd linux-2.4.20/include/asm-mips/au1000_pcmcia.h linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_pcmcia.h
---- linux-2.4.20/include/asm-mips/au1000_pcmcia.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/au1000_pcmcia.h 2003-01-07 04:41:30.000000000 -0600
-@@ -33,6 +33,22 @@
- #define AU1000_PCMCIA_IO_SPEED (255)
- #define AU1000_PCMCIA_MEM_SPEED (300)
-
-+#define AU1X_SOCK0_IO 0xF00000000
-+#define AU1X_SOCK0_PHYS_ATTR 0xF40000000
-+#define AU1X_SOCK0_PHYS_MEM 0xF80000000
-+
-+/* pcmcia socket 1 needs external glue logic so the memory map
-+ * differs from board to board.
-+ */
-+#if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
-+#define AU1X_SOCK1_IO 0xF08000000
-+#define AU1X_SOCK1_PHYS_ATTR 0xF48000000
-+#define AU1X_SOCK1_PHYS_MEM 0xF88000000
-+#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-+#define AU1X_SOCK1_IO 0xF04000000
-+#define AU1X_SOCK1_PHYS_ATTR 0xF44000000
-+#define AU1X_SOCK1_PHYS_MEM 0xF84000000
-+#endif
-
- struct pcmcia_state {
- unsigned detect: 1,
-@@ -44,7 +60,6 @@
- vs_Xv: 1;
- };
-
--
- struct pcmcia_configure {
- unsigned sock: 8,
- vcc: 8,
-@@ -59,7 +74,6 @@
- unsigned int irq;
- };
-
--typedef u_int memaddr_t; /* fix me */
-
- struct au1000_pcmcia_socket {
- socket_state_t cs_state;
-@@ -70,7 +84,7 @@
- pccard_io_map io_map[MAX_IO_WIN];
- pccard_mem_map mem_map[MAX_WIN];
- u32 virt_io;
-- memaddr_t phys_attr, phys_mem; /*FIX ME*/
-+ ioaddr_t phys_attr, phys_mem;
- unsigned short speed_io, speed_attr, speed_mem;
- };
-
-@@ -88,6 +102,8 @@
-
- #if defined(CONFIG_MIPS_PB1000) || defined(CONFIG_MIPS_PB1100) || defined(CONFIG_MIPS_PB1500)
- extern struct pcmcia_low_level pb1x00_pcmcia_ops;
-+#elif defined(CONFIG_MIPS_DB1000) || defined(CONFIG_MIPS_DB1100) || defined(CONFIG_MIPS_DB1500)
-+extern struct pcmcia_low_level db1x00_pcmcia_ops;
- #else
- error unknown Au1000 board
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/baget.h linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/baget.h
---- linux-2.4.20/include/asm-mips/baget/baget.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/baget.h 2002-08-05 18:53:38.000000000 -0500
-@@ -9,13 +9,13 @@
- #include "vic.h"
- #include "vac.h"
-
--#define VIC_BASE 0xBFFC0000
-+#define VIC_BASE 0xBFFC0000
- #define VAC_BASE 0xBFFD0000
-
-
- /* Baget interrupt registers and their sizes */
-
--struct baget_int_reg {
-+struct baget_int_reg {
- unsigned long address;
- int size; /* in bytes */
- };
-@@ -43,8 +43,8 @@
- #define BAGET_IRQ_MASK(x) ((NR_IRQS-1) & (x))
-
- #define BAGET_FPU_IRQ 0x26
--#define BAGET_VIC_TIMER_IRQ 0x32
--#define BAGET_VAC_TIMER_IRQ 0x36
-+#define BAGET_VIC_TIMER_IRQ 0x32
-+#define BAGET_VAC_TIMER_IRQ 0x36
- #define BAGET_BSM_IRQ 0x3C
-
- #define BAGET_LANCE_MEM_BASE 0xfcf10000
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Entries
---- linux-2.4.20/include/asm-mips/baget/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,4 @@
-+/baget.h/1.3.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/vac.h/1.3.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/vic.h/1.2.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Repository
---- linux-2.4.20/include/asm-mips/baget/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/baget
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Root
---- linux-2.4.20/include/asm-mips/baget/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Tag
---- linux-2.4.20/include/asm-mips/baget/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/vac.h linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vac.h
---- linux-2.4.20/include/asm-mips/baget/vac.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vac.h 2002-08-05 18:53:38.000000000 -0500
-@@ -21,8 +21,8 @@
- #define VAC_A24_MASK (0x3f<<9)
- #define VAC_A24_D32_ENABLE (1<<8)
- #define VAC_A24_A24_CACHINH (1<<7)
--#define VAC_A24_A16D32_ENABLE (1<<6)
--#define VAC_A24_A16D32 (1<<5)
-+#define VAC_A24_A16D32_ENABLE (1<<6)
-+#define VAC_A24_A16D32 (1<<5)
- #define VAC_A24_DATAPATH (1<<4)
- #define VAC_A24_IO_CACHINH (1<<3)
- #define VAC_REG1 0x900
-diff -urNd -urNd linux-2.4.20/include/asm-mips/baget/vic.h linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vic.h
---- linux-2.4.20/include/asm-mips/baget/vic.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/baget/vic.h 2002-08-05 18:53:38.000000000 -0500
-@@ -167,10 +167,10 @@
- #define VIC_SSxCR1_TF1(x) ((x)&0xf)
- #define VIC_RELEASE 0xD3
- #define VIC_RELEASE_BLKXFER_BLEN(x) ((x)&0x1f)
--#define VIC_RELEASE_ROR (0<<6)
--#define VIC_RELEASE_RWD (1<<6)
--#define VIC_RELEASE_ROC (2<<6)
--#define VIC_RELEASE_BCAP (3<<6)
-+#define VIC_RELEASE_ROR (0<<6)
-+#define VIC_RELEASE_RWD (1<<6)
-+#define VIC_RELEASE_ROC (2<<6)
-+#define VIC_RELEASE_BCAP (3<<6)
- #define VIC_BXFER_CTRL 0xD7
- #define VIC_BXFER_CTRL_MODULE (1<<7)
- #define VIC_BXFER_CTRL_LOCAL (1<<6)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/bitops.h linux-2.4.20-mipscvs-20050106/include/asm-mips/bitops.h
---- linux-2.4.20/include/asm-mips/bitops.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/bitops.h 2002-12-20 07:01:02.000000000 -0600
-@@ -13,6 +13,14 @@
- #include <linux/types.h>
- #include <asm/byteorder.h> /* sigh ... */
-
-+#if (_MIPS_SZLONG == 32)
-+#define SZLONG_LOG 5
-+#define SZLONG_MASK 31UL
-+#elif (_MIPS_SZLONG == 64)
-+#define SZLONG_LOG 6
-+#define SZLONG_MASK 63UL
-+#endif
-+
- #ifdef __KERNEL__
-
- #include <asm/sgidefs.h>
-@@ -28,17 +36,17 @@
- * Only disable interrupt for kernel mode stuff to keep usermode stuff
- * that dares to use kernel include files alive.
- */
--#define __bi_flags unsigned long flags
--#define __bi_cli() __cli()
--#define __bi_save_flags(x) __save_flags(x)
--#define __bi_save_and_cli(x) __save_and_cli(x)
--#define __bi_restore_flags(x) __restore_flags(x)
-+#define __bi_flags unsigned long flags
-+#define __bi_cli() local_irq_disable()
-+#define __bi_save_flags(x) local_save_flags(x)
-+#define __bi_local_irq_save(x) local_irq_save(x)
-+#define __bi_local_irq_restore(x) local_irq_restore(x)
- #else
- #define __bi_flags
- #define __bi_cli()
- #define __bi_save_flags(x)
--#define __bi_save_and_cli(x)
--#define __bi_restore_flags(x)
-+#define __bi_local_irq_save(x)
-+#define __bi_local_irq_restore(x)
- #endif /* __KERNEL__ */
-
- #ifdef CONFIG_CPU_HAS_LLSC
-@@ -58,8 +66,7 @@
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
--extern __inline__ void
--set_bit(int nr, volatile void *addr)
-+static __inline__ void set_bit(int nr, volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
- unsigned long temp;
-@@ -82,7 +89,7 @@
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
--extern __inline__ void __set_bit(int nr, volatile void * addr)
-+static __inline__ void __set_bit(int nr, volatile void * addr)
- {
- unsigned long * m = ((unsigned long *) addr) + (nr >> 5);
-
-@@ -99,8 +106,7 @@
- * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
- * in order to ensure changes are visible on other processors.
- */
--extern __inline__ void
--clear_bit(int nr, volatile void *addr)
-+static __inline__ void clear_bit(int nr, volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
- unsigned long temp;
-@@ -123,8 +129,7 @@
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
--extern __inline__ void
--change_bit(int nr, volatile void *addr)
-+static __inline__ void change_bit(int nr, volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
- unsigned long temp;
-@@ -140,14 +145,14 @@
-
- /*
- * __change_bit - Toggle a bit in memory
-- * @nr: the bit to set
-+ * @nr: the bit to change
- * @addr: the address to start counting from
- *
- * Unlike change_bit(), this function is non-atomic and may be reordered.
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
--extern __inline__ void __change_bit(int nr, volatile void * addr)
-+static __inline__ void __change_bit(int nr, volatile void * addr)
- {
- unsigned long * m = ((unsigned long *) addr) + (nr >> 5);
-
-@@ -162,11 +167,11 @@
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
--extern __inline__ int
--test_and_set_bit(int nr, volatile void *addr)
-+static __inline__ int test_and_set_bit(int nr, volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
-- unsigned long temp, res;
-+ unsigned long temp;
-+ int res;
-
- __asm__ __volatile__(
- ".set\tnoreorder\t\t# test_and_set_bit\n"
-@@ -195,10 +200,11 @@
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
--extern __inline__ int __test_and_set_bit(int nr, volatile void * addr)
-+static __inline__ int __test_and_set_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -210,14 +216,13 @@
-
- /*
- * test_and_clear_bit - Clear a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
--extern __inline__ int
--test_and_clear_bit(int nr, volatile void *addr)
-+static __inline__ int test_and_clear_bit(int nr, volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
- unsigned long temp, res;
-@@ -243,17 +248,17 @@
-
- /*
- * __test_and_clear_bit - Clear a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
--extern __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
-+static __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask, retval;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -265,14 +270,13 @@
-
- /*
- * test_and_change_bit - Change a bit and return its new value
-- * @nr: Bit to set
-+ * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
--extern __inline__ int
--test_and_change_bit(int nr, volatile void *addr)
-+static __inline__ int test_and_change_bit(int nr, volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 5);
- unsigned long temp, res;
-@@ -297,17 +301,18 @@
-
- /*
- * __test_and_change_bit - Change a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
--extern __inline__ int __test_and_change_bit(int nr, volatile void * addr)
-+static __inline__ int __test_and_change_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -329,17 +334,17 @@
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
--extern __inline__ void set_bit(int nr, volatile void * addr)
-+static __inline__ void set_bit(int nr, volatile void * addr)
- {
-- int mask;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
- __bi_flags;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-- __bi_save_and_cli(flags);
-+ __bi_local_irq_save(flags);
- *a |= mask;
-- __bi_restore_flags(flags);
-+ __bi_local_irq_restore(flags);
- }
-
- /*
-@@ -351,10 +356,10 @@
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
--extern __inline__ void __set_bit(int nr, volatile void * addr)
-+static __inline__ void __set_bit(int nr, volatile void * addr)
- {
-- int mask;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -371,51 +376,51 @@
- * you should call smp_mb__before_clear_bit() and/or smp_mb__after_clear_bit()
- * in order to ensure changes are visible on other processors.
- */
--extern __inline__ void clear_bit(int nr, volatile void * addr)
-+static __inline__ void clear_bit(int nr, volatile void * addr)
- {
-- int mask;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
- __bi_flags;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-- __bi_save_and_cli(flags);
-+ __bi_local_irq_save(flags);
- *a &= ~mask;
-- __bi_restore_flags(flags);
-+ __bi_local_irq_restore(flags);
- }
-
- /*
- * change_bit - Toggle a bit in memory
-- * @nr: Bit to clear
-+ * @nr: Bit to change
- * @addr: Address to start counting from
- *
- * change_bit() is atomic and may not be reordered.
- * Note that @nr may be almost arbitrarily large; this function is not
- * restricted to acting on a single-word quantity.
- */
--extern __inline__ void change_bit(int nr, volatile void * addr)
-+static __inline__ void change_bit(int nr, volatile void * addr)
- {
-- int mask;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
- __bi_flags;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-- __bi_save_and_cli(flags);
-+ __bi_local_irq_save(flags);
- *a ^= mask;
-- __bi_restore_flags(flags);
-+ __bi_local_irq_restore(flags);
- }
-
- /*
- * __change_bit - Toggle a bit in memory
-- * @nr: the bit to set
-+ * @nr: the bit to change
- * @addr: the address to start counting from
- *
- * Unlike change_bit(), this function is non-atomic and may be reordered.
- * If it's called on the same region of memory simultaneously, the effect
- * may be that only one operation succeeds.
- */
--extern __inline__ void __change_bit(int nr, volatile void * addr)
-+static __inline__ void __change_bit(int nr, volatile void * addr)
- {
- unsigned long * m = ((unsigned long *) addr) + (nr >> 5);
-
-@@ -430,18 +435,19 @@
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
--extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
-+static __inline__ int test_and_set_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
- __bi_flags;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-- __bi_save_and_cli(flags);
-+ __bi_local_irq_save(flags);
- retval = (mask & *a) != 0;
- *a |= mask;
-- __bi_restore_flags(flags);
-+ __bi_local_irq_restore(flags);
-
- return retval;
- }
-@@ -455,10 +461,11 @@
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
--extern __inline__ int __test_and_set_bit(int nr, volatile void * addr)
-+static __inline__ int __test_and_set_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -470,41 +477,43 @@
-
- /*
- * test_and_clear_bit - Clear a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
--extern __inline__ int test_and_clear_bit(int nr, volatile void * addr)
-+static __inline__ int test_and_clear_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
- __bi_flags;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-- __bi_save_and_cli(flags);
-+ __bi_local_irq_save(flags);
- retval = (mask & *a) != 0;
- *a &= ~mask;
-- __bi_restore_flags(flags);
-+ __bi_local_irq_restore(flags);
-
- return retval;
- }
-
- /*
- * __test_and_clear_bit - Clear a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
--extern __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
-+static __inline__ int __test_and_clear_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -516,41 +525,42 @@
-
- /*
- * test_and_change_bit - Change a bit and return its new value
-- * @nr: Bit to set
-+ * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
--extern __inline__ int test_and_change_bit(int nr, volatile void * addr)
-+static __inline__ int test_and_change_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask, retval;
- __bi_flags;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-- __bi_save_and_cli(flags);
-+ __bi_local_irq_save(flags);
- retval = (mask & *a) != 0;
- *a ^= mask;
-- __bi_restore_flags(flags);
-+ __bi_local_irq_restore(flags);
-
- return retval;
- }
-
- /*
- * __test_and_change_bit - Change a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
- * If two examples of this operation race, one can appear to succeed
- * but actually fail. You must protect multiple accesses with a lock.
- */
--extern __inline__ int __test_and_change_bit(int nr, volatile void * addr)
-+static __inline__ int __test_and_change_bit(int nr, volatile void * addr)
- {
-- int mask, retval;
-- volatile int *a = addr;
-+ volatile unsigned long *a = addr;
-+ unsigned long mask;
-+ int retval;
-
- a += nr >> 5;
- mask = 1 << (nr & 0x1f);
-@@ -563,7 +573,7 @@
- #undef __bi_flags
- #undef __bi_cli
- #undef __bi_save_flags
--#undef __bi_restore_flags
-+#undef __bi_local_irq_restore
-
- #endif /* MIPS I */
-
-@@ -572,112 +582,11 @@
- * @nr: bit number to test
- * @addr: Address to start counting from
- */
--extern __inline__ int test_bit(int nr, volatile void *addr)
--{
-- return ((1UL << (nr & 31)) & (((const unsigned int *) addr)[nr >> 5])) != 0;
--}
--
--#ifndef __MIPSEB__
--
--/* Little endian versions. */
--
--/*
-- * find_first_zero_bit - find the first zero bit in a memory region
-- * @addr: The address to start the search at
-- * @size: The maximum size to search
-- *
-- * Returns the bit-number of the first zero bit, not the number of the byte
-- * containing a bit.
-- */
--extern __inline__ int find_first_zero_bit (void *addr, unsigned size)
--{
-- unsigned long dummy;
-- int res;
--
-- if (!size)
-- return 0;
--
-- __asm__ (".set\tnoreorder\n\t"
-- ".set\tnoat\n"
-- "1:\tsubu\t$1,%6,%0\n\t"
-- "blez\t$1,2f\n\t"
-- "lw\t$1,(%5)\n\t"
-- "addiu\t%5,4\n\t"
--#if (_MIPS_ISA == _MIPS_ISA_MIPS2 ) || (_MIPS_ISA == _MIPS_ISA_MIPS3 ) || \
-- (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5 ) || \
-- (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
-- "beql\t%1,$1,1b\n\t"
-- "addiu\t%0,32\n\t"
--#else
-- "addiu\t%0,32\n\t"
-- "beq\t%1,$1,1b\n\t"
-- "nop\n\t"
-- "subu\t%0,32\n\t"
--#endif
--#ifdef __MIPSEB__
--#error "Fix this for big endian"
--#endif /* __MIPSEB__ */
-- "li\t%1,1\n"
-- "1:\tand\t%2,$1,%1\n\t"
-- "beqz\t%2,2f\n\t"
-- "sll\t%1,%1,1\n\t"
-- "bnez\t%1,1b\n\t"
-- "add\t%0,%0,1\n\t"
-- ".set\tat\n\t"
-- ".set\treorder\n"
-- "2:"
-- : "=r" (res), "=r" (dummy), "=r" (addr)
-- : "0" ((signed int) 0), "1" ((unsigned int) 0xffffffff),
-- "2" (addr), "r" (size));
--
-- return res;
--}
--
--/*
-- * find_next_zero_bit - find the first zero bit in a memory region
-- * @addr: The address to base the search on
-- * @offset: The bitnumber to start searching at
-- * @size: The maximum size to search
-- */
--extern __inline__ int find_next_zero_bit (void * addr, int size, int offset)
-+static inline int test_bit(int nr, volatile void *addr)
- {
-- unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-- int set = 0, bit = offset & 31, res;
-- unsigned long dummy;
--
-- if (bit) {
-- /*
-- * Look for zero in first byte
-- */
--#ifdef __MIPSEB__
--#error "Fix this for big endian byte order"
--#endif
-- __asm__(".set\tnoreorder\n\t"
-- ".set\tnoat\n"
-- "1:\tand\t$1,%4,%1\n\t"
-- "beqz\t$1,1f\n\t"
-- "sll\t%1,%1,1\n\t"
-- "bnez\t%1,1b\n\t"
-- "addiu\t%0,1\n\t"
-- ".set\tat\n\t"
-- ".set\treorder\n"
-- "1:"
-- : "=r" (set), "=r" (dummy)
-- : "0" (0), "1" (1 << bit), "r" (*p));
-- if (set < (32 - bit))
-- return set + offset;
-- set = 32 - bit;
-- p++;
-- }
-- /*
-- * No zero yet, search remaining full bytes for a zero
-- */
-- res = find_first_zero_bit(p, size - 32 * (p - (unsigned int *) addr));
-- return offset + set + res;
-+ return 1UL & (((const volatile unsigned long *) addr)[nr >> SZLONG_LOG] >> (nr & SZLONG_MASK));
- }
-
--#endif /* !(__MIPSEB__) */
--
- /*
- * ffz - find first zero in word.
- * @word: The word to search
-@@ -701,38 +610,23 @@
-
- #ifdef __KERNEL__
-
--/**
-+/*
- * ffs - find first bit set
- * @x: the word to search
- *
-- * This is defined the same way as
-- * the libc and compiler builtin ffs routines, therefore
-- * differs in spirit from the above ffz (man ffs).
-+ * Undefined if no bit exists, so code should check against 0 first.
- */
-
- #define ffs(x) generic_ffs(x)
-
- /*
-- * hweightN - returns the hamming weight of a N-bit word
-- * @x: the word to weigh
-- *
-- * The Hamming Weight of a number is the total number of bits set in it.
-- */
--
--#define hweight32(x) generic_hweight32(x)
--#define hweight16(x) generic_hweight16(x)
--#define hweight8(x) generic_hweight8(x)
--
--#endif /* __KERNEL__ */
--
--#ifdef __MIPSEB__
--/*
- * find_next_zero_bit - find the first zero bit in a memory region
- * @addr: The address to base the search on
- * @offset: The bitnumber to start searching at
- * @size: The maximum size to search
- */
--extern __inline__ int find_next_zero_bit(void *addr, int size, int offset)
-+static inline long find_next_zero_bit(void *addr, unsigned long size,
-+ unsigned long offset)
- {
- unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
- unsigned long result = offset & ~31UL;
-@@ -768,9 +662,8 @@
- return result + ffz(tmp);
- }
-
--/* Linus sez that gcc can optimize the following correctly, we'll see if this
-- * holds on the Sparc as it does for the ALPHA.
-- */
-+#define find_first_zero_bit(addr, size) \
-+ find_next_zero_bit((addr), (size), 0)
-
- #if 0 /* Fool kernel-doc since it doesn't do macros yet */
- /*
-@@ -781,121 +674,129 @@
- * Returns the bit-number of the first zero bit, not the number of the byte
- * containing a bit.
- */
--extern int find_first_zero_bit (void *addr, unsigned size);
-+static int find_first_zero_bit (void *addr, unsigned size);
- #endif
-
- #define find_first_zero_bit(addr, size) \
- find_next_zero_bit((addr), (size), 0)
-
--#endif /* (__MIPSEB__) */
-
--/* Now for the ext2 filesystem bit operations and helper routines. */
-+/*
-+ * hweightN - returns the hamming weight of a N-bit word
-+ * @x: the word to weigh
-+ *
-+ * The Hamming Weight of a number is the total number of bits set in it.
-+ */
-
--#ifdef __MIPSEB__
--extern __inline__ int ext2_set_bit(int nr, void * addr)
-+#define hweight32(x) generic_hweight32(x)
-+#define hweight16(x) generic_hweight16(x)
-+#define hweight8(x) generic_hweight8(x)
-+
-+
-+static __inline__ int __test_and_set_le_bit(int nr, void * addr)
- {
-- int mask, retval, flags;
- unsigned char *ADDR = (unsigned char *) addr;
-+ int mask, retval;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
-- save_and_cli(flags);
- retval = (mask & *ADDR) != 0;
- *ADDR |= mask;
-- restore_flags(flags);
-+
- return retval;
- }
-
--extern __inline__ int ext2_clear_bit(int nr, void * addr)
-+static __inline__ int __test_and_clear_le_bit(int nr, void * addr)
- {
-- int mask, retval, flags;
- unsigned char *ADDR = (unsigned char *) addr;
-+ int mask, retval;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
-- save_and_cli(flags);
- retval = (mask & *ADDR) != 0;
- *ADDR &= ~mask;
-- restore_flags(flags);
-+
- return retval;
- }
-
--extern __inline__ int ext2_test_bit(int nr, const void * addr)
-+static __inline__ int test_le_bit(int nr, const void * addr)
- {
-- int mask;
- const unsigned char *ADDR = (const unsigned char *) addr;
-+ int mask;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
-+
- return ((mask & *ADDR) != 0);
- }
-
--#define ext2_find_first_zero_bit(addr, size) \
-- ext2_find_next_zero_bit((addr), (size), 0)
-+static inline unsigned long ext2_ffz(unsigned int word)
-+{
-+ int b = 0, s;
-
--extern __inline__ unsigned long ext2_find_next_zero_bit(void *addr, unsigned long size, unsigned long offset)
-+ word = ~word;
-+ s = 16; if (word << 16 != 0) s = 0; b += s; word >>= s;
-+ s = 8; if (word << 24 != 0) s = 0; b += s; word >>= s;
-+ s = 4; if (word << 28 != 0) s = 0; b += s; word >>= s;
-+ s = 2; if (word << 30 != 0) s = 0; b += s; word >>= s;
-+ s = 1; if (word << 31 != 0) s = 0; b += s;
-+
-+ return b;
-+}
-+
-+static inline unsigned long find_next_zero_le_bit(void *addr,
-+ unsigned long size, unsigned long offset)
- {
-- unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
-- unsigned long result = offset & ~31UL;
-- unsigned long tmp;
-+ unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-+ unsigned int result = offset & ~31;
-+ unsigned int tmp;
-
- if (offset >= size)
- return size;
-+
- size -= result;
-- offset &= 31UL;
-- if(offset) {
-- /* We hold the little endian value in tmp, but then the
-- * shift is illegal. So we could keep a big endian value
-- * in tmp, like this:
-- *
-- * tmp = __swab32(*(p++));
-- * tmp |= ~0UL >> (32-offset);
-- *
-- * but this would decrease preformance, so we change the
-- * shift:
-- */
-- tmp = *(p++);
-- tmp |= __swab32(~0UL >> (32-offset));
-- if(size < 32)
-+ offset &= 31;
-+ if (offset) {
-+ tmp = cpu_to_le32p(p++);
-+ tmp |= ~0U >> (32-offset); /* bug or feature ? */
-+ if (size < 32)
- goto found_first;
-- if(~tmp)
-+ if (tmp != ~0U)
- goto found_middle;
- size -= 32;
- result += 32;
- }
-- while(size & ~31UL) {
-- if(~(tmp = *(p++)))
-+ while (size >= 32) {
-+ if ((tmp = cpu_to_le32p(p++)) != ~0U)
- goto found_middle;
- result += 32;
- size -= 32;
- }
-- if(!size)
-+ if (!size)
- return result;
-- tmp = *p;
-
-+ tmp = cpu_to_le32p(p);
- found_first:
-- /* tmp is little endian, so we would have to swab the shift,
-- * see above. But then we have to swab tmp below for ffz, so
-- * we might as well do this here.
-- */
-- return result + ffz(__swab32(tmp) | (~0UL << size));
-+ tmp |= ~0 << size;
-+ if (tmp == ~0U) /* Are any bits zero? */
-+ return result + size; /* Nope. */
-+
- found_middle:
-- return result + ffz(__swab32(tmp));
-+ return result + ext2_ffz(tmp);
- }
--#else /* !(__MIPSEB__) */
-
--/* Native ext2 byte ordering, just collapse using defines. */
--#define ext2_set_bit(nr, addr) test_and_set_bit((nr), (addr))
--#define ext2_clear_bit(nr, addr) test_and_clear_bit((nr), (addr))
--#define ext2_test_bit(nr, addr) test_bit((nr), (addr))
--#define ext2_find_first_zero_bit(addr, size) find_first_zero_bit((addr), (size))
--#define ext2_find_next_zero_bit(addr, size, offset) \
-- find_next_zero_bit((addr), (size), (offset))
-+#define find_first_zero_le_bit(addr, size) \
-+ find_next_zero_le_bit((addr), (size), 0)
-
--#endif /* !(__MIPSEB__) */
-+#define ext2_set_bit __test_and_set_le_bit
-+#define ext2_clear_bit __test_and_clear_le_bit
-+#define ext2_test_bit test_le_bit
-+#define ext2_find_first_zero_bit find_first_zero_le_bit
-+#define ext2_find_next_zero_bit find_next_zero_le_bit
-
- /*
- * Bitmap functions for the minix filesystem.
-+ *
- * FIXME: These assume that Minix uses the native byte/bitorder.
- * This limits the Minix filesystem's value for data exchange very much.
- */
-@@ -905,4 +806,6 @@
- #define minix_test_bit(nr,addr) test_bit(nr,addr)
- #define minix_find_first_zero_bit(addr,size) find_first_zero_bit(addr,size)
-
-+#endif /* __KERNEL__ */
-+
- #endif /* _ASM_BITOPS_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/bootinfo.h linux-2.4.20-mipscvs-20050106/include/asm-mips/bootinfo.h
---- linux-2.4.20/include/asm-mips/bootinfo.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/bootinfo.h 2003-02-04 06:43:06.000000000 -0600
-@@ -35,6 +35,7 @@
- #define MACH_GROUP_ALCHEMY 18 /* Alchemy Semi Eval Boards */
- #define MACH_GROUP_NEC_VR41XX 19 /* NEC Vr41xx based boards/gadgets */
- #define MACH_GROUP_HP_LJ 20 /* Hewlett Packard LaserJet */
-+#define MACH_GROUP_LASAT 21
-
- /*
- * Valid machtype values for group unknown (low order halfword of mips_machtype)
-@@ -53,14 +54,15 @@
- */
- #define MACH_DSUNKNOWN 0
- #define MACH_DS23100 1 /* DECstation 2100 or 3100 */
--#define MACH_DS5100 2 /* DECstation 5100 */
-+#define MACH_DS5100 2 /* DECsystem 5100 */
- #define MACH_DS5000_200 3 /* DECstation 5000/200 */
- #define MACH_DS5000_1XX 4 /* DECstation 5000/120, 125, 133, 150 */
- #define MACH_DS5000_XX 5 /* DECstation 5000/20, 25, 33, 50 */
- #define MACH_DS5000_2X0 6 /* DECstation 5000/240, 260 */
--#define MACH_DS5400 7 /* DECstation 5400 */
--#define MACH_DS5500 8 /* DECstation 5500 */
--#define MACH_DS5800 9 /* DECstation 5800 */
-+#define MACH_DS5400 7 /* DECsystem 5400 */
-+#define MACH_DS5500 8 /* DECsystem 5500 */
-+#define MACH_DS5800 9 /* DECsystem 5800 */
-+#define MACH_DS5900 10 /* DECsystem 5900 */
-
- /*
- * Valid machtype for group ARC
-@@ -81,17 +83,15 @@
- /*
- * Valid machtype for group SGI
- */
--#define MACH_SGI_INDY 0 /* R4?K and R5K Indy workstations */
--#define MACH_SGI_CHALLENGE_S 1 /* The Challenge S server */
--#define MACH_SGI_INDIGO2 2 /* The Indigo2 system */
--#define MACH_SGI_IP27 3 /* Origin 200, Origin 2000, Onyx 2 */
--#define MACH_SGI_IP28 4 /* Indigo2 Impact */
--#define MACH_SGI_IP32 5 /* O2 */
-+#define MACH_SGI_IP22 0 /* Indy, Indigo2, Challenge S */
-+#define MACH_SGI_IP27 1 /* Origin 200, Origin 2000, Onyx 2 */
-+#define MACH_SGI_IP28 2 /* Indigo2 Impact */
-+#define MACH_SGI_IP32 3 /* O2 */
-
- /*
- * Valid machtype for group COBALT
- */
--#define MACH_COBALT_27 0 /* Proto "27" hardware */
-+#define MACH_COBALT_27 0 /* Proto "27" hardware */
-
- /*
- * Valid machtype for group NEC DDB
-@@ -155,11 +155,20 @@
- #define MACH_TOSHIBA_JMR3927 3 /* JMR-TX3927 CPU/IO board */
-
- /*
-+ * Valid machtype for group LASAT
-+ */
-+#define MACH_LASAT_100 0 /* Masquerade II/SP100/SP50/SP25 */
-+#define MACH_LASAT_200 1 /* Masquerade PRO/SP200 */
-+
-+/*
- * Valid machtype for group Alchemy
- */
- #define MACH_PB1000 0 /* Au1000-based eval board */
- #define MACH_PB1100 1 /* Au1100-based eval board */
- #define MACH_PB1500 2 /* Au1500-based eval board */
-+#define MACH_DB1000 3 /* Au1000-based eval board */
-+#define MACH_DB1100 4 /* Au1100-based eval board */
-+#define MACH_DB1500 5 /* Au1500-based eval board */
-
- /*
- * Valid machtype for group NEC_VR41XX
-@@ -167,6 +176,10 @@
- #define MACH_NEC_OSPREY 0 /* Osprey eval board */
- #define MACH_NEC_EAGLE 1 /* NEC Eagle/Hawk board */
- #define MACH_ZAO_CAPCELLA 2 /* ZAO Networks Capcella */
-+#define MACH_VICTOR_MPC30X 3 /* Victor MP-C303/304 */
-+#define MACH_IBM_WORKPAD 4 /* IBM WorkPad z50 */
-+#define MACH_CASIO_E55 5 /* CASIO CASSIOPEIA E-10/15/55/65 */
-+#define MACH_TANBAC_TB0226 6 /* TANBAC TB0226 (MBASE) */
-
- #define CL_SIZE (256)
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cache.h linux-2.4.20-mipscvs-20050106/include/asm-mips/cache.h
---- linux-2.4.20/include/asm-mips/cache.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cache.h 2002-12-11 08:23:13.000000000 -0600
-@@ -27,6 +27,7 @@
- * Flag definitions
- */
- #define MIPS_CACHE_NOT_PRESENT 0x00000001
-+#define MIPS_CACHE_VTAG_CACHE 0x00000002 /* Virtually tagged cache. */
-
- #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_R6000) || defined(CONFIG_CPU_TX39XX)
- #define L1_CACHE_BYTES 16
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cacheops.h linux-2.4.20-mipscvs-20050106/include/asm-mips/cacheops.h
---- linux-2.4.20/include/asm-mips/cacheops.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cacheops.h 2002-09-30 11:53:55.000000000 -0500
-@@ -5,10 +5,10 @@
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
-- * (C) Copyright 1996, 1997 by Ralf Baechle
-+ * (C) Copyright 1996, 1997, 2002 by Ralf Baechle
- */
--#ifndef __ASM_MIPS_CACHEOPS_H
--#define __ASM_MIPS_CACHEOPS_H
-+#ifndef __ASM_CACHEOPS_H
-+#define __ASM_CACHEOPS_H
-
- /*
- * Cache Operations
-@@ -45,4 +45,4 @@
- #define Hit_Set_Virtual_SI 0x1e
- #define Hit_Set_Virtual_SD 0x1f
-
--#endif /* __ASM_MIPS_CACHEOPS_H */
-+#endif /* __ASM_CACHEOPS_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/checksum.h linux-2.4.20-mipscvs-20050106/include/asm-mips/checksum.h
---- linux-2.4.20/include/asm-mips/checksum.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/checksum.h 2003-01-26 11:36:08.000000000 -0600
-@@ -203,7 +203,8 @@
- unsigned int sum)
- {
- __asm__(
-- ".set\tnoreorder\t\t\t# csum_ipv6_magic\n\t"
-+ ".set\tpush\t\t\t# csum_ipv6_magic\n\t"
-+ ".set\tnoreorder\n\t"
- ".set\tnoat\n\t"
- "addu\t%0, %5\t\t\t# proto (long in network byte order)\n\t"
- "sltu\t$1, %0, %5\n\t"
-@@ -252,8 +253,7 @@
- "sltu\t$1, %0, %1\n\t"
-
- "addu\t%0, $1\t\t\t# Add final carry\n\t"
-- ".set\tnoat\n\t"
-- ".set\tnoreorder"
-+ ".set\tpop"
- : "=r" (sum), "=r" (proto)
- : "r" (saddr), "r" (daddr),
- "0" (htonl(len)), "1" (htonl(proto)), "r" (sum));
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/cobalt.h linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/cobalt.h
---- linux-2.4.20/include/asm-mips/cobalt/cobalt.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/cobalt.h 2002-11-24 21:58:43.000000000 -0600
-@@ -37,10 +37,9 @@
- */
- #define COBALT_TIMER_IRQ 0
- #define COBALT_KEYBOARD_IRQ 1
--#define COBALT_QUBE_ETH_IRQ 13
- #define COBALT_QUBE_SLOT_IRQ 9
--#define COBALT_RAQ_ETH0_IRQ 4
--#define COBALT_RAQ_ETH1_IRQ 13
-+#define COBALT_ETH0_IRQ 4
-+#define COBALT_ETH1_IRQ 13
- #define COBALT_SCC_IRQ 4
- #define COBALT_SERIAL2_IRQ 4
- #define COBALT_PARALLEL_IRQ 5
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Entries
---- linux-2.4.20/include/asm-mips/cobalt/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,2 @@
-+/cobalt.h/1.1.2.7/Mon Nov 25 03:58:43 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Repository
---- linux-2.4.20/include/asm-mips/cobalt/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/cobalt
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Root
---- linux-2.4.20/include/asm-mips/cobalt/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/cobalt/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Tag
---- linux-2.4.20/include/asm-mips/cobalt/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/cobalt/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Entries
---- linux-2.4.20/include/asm-mips/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,169 @@
-+/.cvsignore/1.1/Tue May 23 18:00:50 2000/-ko/Tlinux_2_4_20
-+/a.out.h/1.1.1.1/Sun Jun 1 03:17:13 1997/-ko/Tlinux_2_4_20
-+/addrspace.h/1.4.2.3/Wed Jul 24 00:56:26 2002/-ko/Tlinux_2_4_20
-+/asm.h/1.5.2.11/Tue Jan 7 23:51:51 2003/-ko/Tlinux_2_4_20
-+/asmmacro.h/1.5.4.6/Mon Oct 7 14:34:18 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.16.2.5/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/au1000.h/1.5.2.9/Wed Dec 11 06:12:30 2002/-ko/Tlinux_2_4_20
-+/au1000_dma.h/1.2.2.5/Sun Dec 29 10:30:36 2002/-ko/Tlinux_2_4_20
-+/au1000_gpio.h/1.1.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/au1000_pcmcia.h/1.2.2.10/Tue Jan 7 10:41:30 2003/-ko/Tlinux_2_4_20
-+/au1000_usbdev.h/1.1.2.1/Sun Jul 14 23:07:30 2002/-ko/Tlinux_2_4_20
-+/bcache.h/1.7.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.21.2.10/Fri Dec 20 13:01:02 2002/-ko/Tlinux_2_4_20
-+/bootinfo.h/1.43.2.21/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/branch.h/1.4.2.3/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
-+/bugs.h/1.9/Sun Oct 28 05:04:32 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.8/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.10.2.2/Wed Dec 11 14:23:13 2002/-ko/Tlinux_2_4_20
-+/cachectl.h/1.2/Tue Jul 24 12:07:31 2001/-ko/Tlinux_2_4_20
-+/cacheops.h/1.1.1.1.8.2/Mon Sep 30 16:53:55 2002/-ko/Tlinux_2_4_20
-+/checksum.h/1.16.2.2/Sun Jan 26 17:36:08 2003/-ko/Tlinux_2_4_20
-+/cpu.h/1.24.2.12/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/current.h/1.7.2.1/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
-+/db1x00.h/1.1.2.2/Tue Jan 7 10:41:30 2003/-ko/Tlinux_2_4_20
-+/ddb5074.h/1.2/Wed May 10 18:20:51 2000/-ko/Tlinux_2_4_20
-+/debug.h/1.1.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.10.2.3/Tue Jan 28 00:08:27 2003/-ko/Tlinux_2_4_20
-+/div64.h/1.5.2.2/Mon Jan 27 14:27:17 2003/-ko/Tlinux_2_4_20
-+/dma.h/1.8.2.3/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/ds1286.h/1.5/Sun Nov 25 02:32:38 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.14.2.2/Tue Aug 20 18:42:37 2002/-ko/Tlinux_2_4_20
-+/errno.h/1.5.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/fcntl.h/1.9.2.1/Tue Jul 23 12:08:50 2002/-ko/Tlinux_2_4_20
-+/fixmap.h/1.1.2.1/Fri Jan 18 03:16:24 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.10.2.1/Thu Jan 3 22:54:51 2002/-ko/Tlinux_2_4_20
-+/fpregdef.h/1.1.1.1/Sun Jun 1 03:17:12 1997/-ko/Tlinux_2_4_20
-+/fpu.h/1.1.2.2/Mon Dec 2 00:24:53 2002/-ko/Tlinux_2_4_20
-+/fpu_emulator.h/1.1.4.1/Wed May 1 17:09:55 2002/-ko/Tlinux_2_4_20
-+/gdb-stub.h/1.4.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/gfx.h/1.6.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/gt64120.h/1.3.4.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.18/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.2/Tue Feb 20 20:50:50 2001/-ko/Tlinux_2_4_20
-+/highmem.h/1.4.2.4/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.3.2.2/Tue Apr 9 02:27:13 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.11.2.3/Thu Nov 28 23:04:11 2002/-ko/Tlinux_2_4_20
-+/init.h/1.4/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/inst.h/1.3/Sat Nov 25 04:49:47 2000/-ko/Tlinux_2_4_20
-+/inventory.h/1.3.2.1/Thu Oct 31 20:37:38 2002/-ko/Tlinux_2_4_20
-+/io.h/1.29.2.19/Thu Nov 28 23:04:11 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.2/Fri Mar 16 04:05:18 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.10.2.2/Tue Sep 3 00:42:54 2002/-ko/Tlinux_2_4_20
-+/ipc.h/1.2.6.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1.4.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.12.2.4/Sun Oct 6 12:28:03 2002/-ko/Tlinux_2_4_20
-+/irq_cpu.h/1.1.2.2/Wed May 29 14:36:09 2002/-ko/Tlinux_2_4_20
-+/isadep.h/1.6/Wed Oct 24 23:00:44 2001/-ko/Tlinux_2_4_20
-+/it8712.h/1.1.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/jazz.h/1.12.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/jazzdma.h/1.7/Sat Feb 24 17:32:56 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.25.2.1/Thu Jan 3 22:54:52 2002/-ko/Tlinux_2_4_20
-+/kmap_types.h/1.1.2.3/Wed Sep 25 12:10:01 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.6.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/linux_logo_dec.h/1.2.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/linux_logo_sgi.h/1.2.2.1/Wed May 29 03:03:18 2002/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.7.2.4/Mon Sep 9 20:26:53 2002/-ko/Tlinux_2_4_20
-+/mips32_cache.h/1.2.2.2/Wed Dec 11 14:23:13 2002/-ko/Tlinux_2_4_20
-+/mipsprom.h/1.1.1.1/Sun Jun 1 03:17:13 1997/-ko/Tlinux_2_4_20
-+/mipsregs.h/1.30.2.21/Tue Jan 28 14:31:29 2003/-ko/Tlinux_2_4_20
-+/mman.h/1.4/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1.2.2/Fri Jan 17 04:23:41 2003/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.18.2.8/Fri Feb 14 11:04:00 2003/-ko/Tlinux_2_4_20
-+/module.h/1.3.2.1/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1.4.2/Tue Aug 13 03:14:24 2002/-ko/Tlinux_2_4_20
-+/namei.h/1.9/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/ng1.h/1.5/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/ng1hw.h/1.6.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/nile4.h/1.4.2.1/Mon Jul 15 00:02:57 2002/-ko/Tlinux_2_4_20
-+/paccess.h/1.2/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/page.h/1.14.2.11/Fri Dec 20 02:34:17 2002/-ko/Tlinux_2_4_20
-+/param.h/1.7.4.2/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
-+/parport.h/1.6/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/pb1000.h/1.3.2.3/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/pb1100.h/1.1.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/pb1500.h/1.1.2.3/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/pci.h/1.24.2.13/Tue Oct 1 11:14:37 2002/-ko/Tlinux_2_4_20
-+/pci_channel.h/1.1.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.14.2.3/Fri Jan 18 03:16:25 2002/-ko/Tlinux_2_4_20
-+/pgtable-bits.h/1.1.2.3/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.63.2.15/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1.1.1/Sun Jun 1 03:17:13 1997/-ko/Tlinux_2_4_20
-+/posix_types.h/1.10.2.2/Mon Jan 20 12:17:54 2003/-ko/Tlinux_2_4_20
-+/prctl.h/1.2.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/processor.h/1.43.2.9/Thu Dec 12 11:46:25 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.11.4.3/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
-+/r4kcache.h/1.8.2.5/Fri Oct 4 02:39:52 2002/-ko/Tlinux_2_4_20
-+/reboot.h/1.3/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/reg.h/1.3/Sun Nov 11 02:44:51 2001/-ko/Tlinux_2_4_20
-+/regdef.h/1.1.1.1/Sun Jun 1 03:17:12 1997/-ko/Tlinux_2_4_20
-+/resource.h/1.9/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/riscos-syscall.h/1.1.4.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/rrm.h/1.1.8.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.4.2.4/Sat Sep 28 18:51:41 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.2/Sat Dec 4 03:59:12 1999/-ko/Tlinux_2_4_20
-+/semaphore-helper.h/1.14.2.5/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/semaphore.h/1.21.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1.4.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.23.2.14/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.1/Tue May 23 01:38:56 2000/-ko/Tlinux_2_4_20
-+/sgialib.h/1.10.2.3/Thu Aug 1 22:26:40 2002/-ko/Tlinux_2_4_20
-+/sgiarcs.h/1.5.2.3/Wed Aug 7 00:14:21 2002/-ko/Tlinux_2_4_20
-+/sgidefs.h/1.3/Mon Jul 2 23:11:36 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.2.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/shmiq.h/1.4.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/shmparam.h/1.4/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.7.2.3/Thu Nov 7 18:49:38 2002/-ko/Tlinux_2_4_20
-+/siginfo.h/1.9.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.9.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/smp.h/1.7.2.4/Fri Nov 29 00:11:36 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.4/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/sni.h/1.5.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/socket.h/1.13.2.1/Tue Aug 13 04:19:38 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.1.1/Sun Jun 1 03:17:13 1997/-ko/Tlinux_2_4_20
-+/softirq.h/1.15.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/spinlock.h/1.13.2.4/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/stackframe.h/1.18.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.6.4.1/Thu Nov 21 12:38:57 2002/-ko/Tlinux_2_4_20
-+/statfs.h/1.1.1.1/Sun Jun 1 03:17:12 1997/-ko/Tlinux_2_4_20
-+/string.h/1.20.2.2/Tue Nov 19 00:35:40 2002/-ko/Tlinux_2_4_20
-+/sysmips.h/1.1.1.1/Sun Jun 1 03:17:13 1997/-ko/Tlinux_2_4_20
-+/system.h/1.33.2.13/Fri Jan 24 12:58:30 2003/-ko/Tlinux_2_4_20
-+/termbits.h/1.4/Sat Aug 11 00:37:03 2001/-ko/Tlinux_2_4_20
-+/termios.h/1.11.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/time.h/1.4.2.2/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.4.2.3/Mon Dec 2 00:24:53 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:00 2001/-ko/Tlinux_2_4_20
-+/tlbdebug.h/1.1.2.1/Sun Sep 15 23:32:24 2002/-ko/Tlinux_2_4_20
-+/traps.h/1.1.2.1/Wed Jun 26 12:22:42 2002/-ko/Tlinux_2_4_20
-+/tx3912.h/1.6/Sat Nov 24 14:03:19 2001/-ko/Tlinux_2_4_20
-+/types.h/1.6.2.6/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.19/Fri Oct 5 14:46:52 2001/-ko/Tlinux_2_4_20
-+/ucontext.h/1.3/Thu Sep 6 13:12:02 2001/-ko/Tlinux_2_4_20
-+/umap.h/1.1.6.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/unaligned.h/1.8.2.1/Mon Aug 5 23:53:37 2002/-ko/Tlinux_2_4_20
-+/unistd.h/1.29.2.4/Wed Nov 6 21:00:09 2002/-ko/Tlinux_2_4_20
-+/user.h/1.1.1.1/Sun Jun 1 03:17:12 1997/-ko/Tlinux_2_4_20
-+/usioctl.h/1.2/Mon Aug 11 04:39:16 1997/-ko/Tlinux_2_4_20
-+/vga.h/1.2/Mon Jan 4 16:09:27 1999/-ko/Tlinux_2_4_20
-+/war.h/1.1.2.6/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
-+/watch.h/1.4/Mon Jan 8 03:11:56 2001/-ko/Tlinux_2_4_20
-+/wbflush.h/1.5.2.1/Mon Jul 22 20:25:37 2002/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D/arc////
-+D/baget////
-+D/cobalt////
-+D/ddb5xxx////
-+D/dec////
-+D/galileo-boards////
-+D/gcc////
-+D/gt64120////
-+D/hp-lj////
-+D/it8172////
-+D/jmr3927////
-+D/lasat////
-+D/mips-boards////
-+D/sgi////
-+D/sibyte////
-+D/vr4181////
-+D/vr41xx////
-diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Repository
---- linux-2.4.20/include/asm-mips/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Repository 2005-01-06 23:06:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips
-diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Root
---- linux-2.4.20/include/asm-mips/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Root 2005-01-06 23:06:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Tag
---- linux-2.4.20/include/asm-mips/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/.cvsignore linux-2.4.20-mipscvs-20050106/include/asm-mips/.cvsignore
---- linux-2.4.20/include/asm-mips/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/.cvsignore 2000-05-23 13:00:50.000000000 -0500
-@@ -0,0 +1 @@
-+offset.h
-diff -urNd -urNd linux-2.4.20/include/asm-mips/db1x00.h linux-2.4.20-mipscvs-20050106/include/asm-mips/db1x00.h
---- linux-2.4.20/include/asm-mips/db1x00.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/db1x00.h 2003-01-07 04:41:30.000000000 -0600
-@@ -0,0 +1,109 @@
-+/*
-+ * AMD Alchemy DB1x00 Reference Boards
-+ *
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * ppopov@mvista.com or source@mvista.com
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ *
-+ */
-+#ifndef __ASM_DB1X00_H
-+#define __ASM_DB1X00_H
-+
-+
-+/*
-+ * Overlay data structure of the Db1x00 board registers.
-+ * Registers located at physical 1E0000xx, KSEG1 0xAE0000xx
-+ */
-+typedef volatile struct
-+{
-+ /*00*/ unsigned long whoami;
-+ /*04*/ unsigned long status;
-+ /*08*/ unsigned long switches;
-+ /*0C*/ unsigned long resets;
-+ /*10*/ unsigned long pcmcia;
-+ /*14*/ unsigned long specific;
-+ /*18*/ unsigned long leds;
-+ /*1C*/ unsigned long swreset;
-+
-+} BCSR;
-+
-+/*
-+ * Register/mask bit definitions for the BCSRs
-+ */
-+#define BCSR_WHOAMI_DCID 0x000F
-+#define BCSR_WHOAMI_CPLD 0x00F0
-+#define BCSR_WHOAMI_BOARD 0x0F00
-+
-+#define BCSR_STATUS_PC0VS 0x0003
-+#define BCSR_STATUS_PC1VS 0x000C
-+#define BCSR_STATUS_PC0FI 0x0010
-+#define BCSR_STATUS_PC1FI 0x0020
-+#define BCSR_STATUS_FLASHBUSY 0x0100
-+#define BCSR_STATUS_ROMBUSY 0x0400
-+#define BCSR_STATUS_SWAPBOOT 0x2000
-+#define BCSR_STATUS_FLASHDEN 0xC000
-+
-+#define BCSR_SWITCHES_DIP 0x00FF
-+#define BCSR_SWITCHES_DIP_1 0x0080
-+#define BCSR_SWITCHES_DIP_2 0x0040
-+#define BCSR_SWITCHES_DIP_3 0x0020
-+#define BCSR_SWITCHES_DIP_4 0x0010
-+#define BCSR_SWITCHES_DIP_5 0x0008
-+#define BCSR_SWITCHES_DIP_6 0x0004
-+#define BCSR_SWITCHES_DIP_7 0x0002
-+#define BCSR_SWITCHES_DIP_8 0x0001
-+#define BCSR_SWITCHES_ROTARY 0x0F00
-+
-+#define BCSR_RESETS_PHY0 0x0001
-+#define BCSR_RESETS_PHY1 0x0002
-+#define BCSR_RESETS_DC 0x0004
-+
-+#define BCSR_PCMCIA_PC0VPP 0x0003
-+#define BCSR_PCMCIA_PC0VCC 0x000C
-+#define BCSR_PCMCIA_PC0DRVEN 0x0010
-+#define BCSR_PCMCIA_PC0RST 0x0080
-+#define BCSR_PCMCIA_PC1VPP 0x0300
-+#define BCSR_PCMCIA_PC1VCC 0x0C00
-+#define BCSR_PCMCIA_PC1DRVEN 0x1000
-+#define BCSR_PCMCIA_PC1RST 0x8000
-+
-+#define BCSR_BOARD_PCIM66EN 0x0001
-+#define BCSR_BOARD_PCIM33 0x0100
-+#define BCSR_BOARD_GPIO200RST 0x0400
-+#define BCSR_BOARD_PCICFG 0x1000
-+
-+#define BCSR_LEDS_DECIMALS 0x0003
-+#define BCSR_LEDS_LED0 0x0100
-+#define BCSR_LEDS_LED1 0x0200
-+#define BCSR_LEDS_LED2 0x0400
-+#define BCSR_LEDS_LED3 0x0800
-+
-+#define BCSR_SWRESET_RESET 0x0080
-+
-+/* PCMCIA Db1x00 specific defines */
-+#define PCMCIA_MAX_SOCK 1
-+#define PCMCIA_NUM_SOCKS (PCMCIA_MAX_SOCK+1)
-+
-+/* VPP/VCC */
-+#define SET_VCC_VPP(VCC, VPP, SLOT)\
-+ ((((VCC)<<2) | ((VPP)<<0)) << ((SLOT)*8))
-+
-+#endif /* __ASM_DB1X00_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Entries
---- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,5 @@
-+/ddb5074.h/1.1.2.1/Mon Jul 15 00:02:57 2002/-ko/Tlinux_2_4_20
-+/ddb5476.h/1.1.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/ddb5477.h/1.3.2.3/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/ddb5xxx.h/1.3.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Repository
---- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/ddb5xxx
-diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Root
---- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Tag
---- linux-2.4.20/include/asm-mips/ddb5xxx/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ddb5xxx/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Entries
---- linux-2.4.20/include/asm-mips/dec/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,19 @@
-+/interrupts.h/1.5.2.3/Thu Nov 7 18:39:42 2002/-ko/Tlinux_2_4_20
-+/ioasic.h/1.2.2.3/Thu Jan 30 14:25:16 2003/-ko/Tlinux_2_4_20
-+/ioasic_addrs.h/1.4.2.2/Mon Sep 9 20:26:54 2002/-ko/Tlinux_2_4_20
-+/ioasic_ints.h/1.3.4.3/Thu Nov 7 18:39:42 2002/-ko/Tlinux_2_4_20
-+/kn01.h/1.1.6.3/Mon Sep 9 20:26:54 2002/-ko/Tlinux_2_4_20
-+/kn02.h/1.2.2.3/Mon Sep 9 20:26:54 2002/-ko/Tlinux_2_4_20
-+/kn02ba.h/1.1.2.3/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/kn02ca.h/1.1.2.3/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/kn02xa.h/1.3.4.3/Mon Feb 3 13:11:21 2003/-ko/Tlinux_2_4_20
-+/kn03.h/1.3.2.3/Mon Feb 3 13:11:21 2003/-ko/Tlinux_2_4_20
-+/kn05.h/1.1.2.3/Mon Sep 9 20:26:54 2002/-ko/Tlinux_2_4_20
-+/kn230.h/1.1.2.4/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
-+/machtype.h/1.2.4.2/Thu Dec 12 19:08:50 2002/-ko/Tlinux_2_4_20
-+/prom.h/1.1.2.1/Tue Oct 1 15:01:55 2002/-ko/Tlinux_2_4_20
-+/rtc-dec.h/1.1.2.1/Mon Sep 9 20:26:54 2002/-ko/Tlinux_2_4_20
-+/tc.h/1.1.6.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/tcinfo.h/1.1.6.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/tcmodule.h/1.2.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Repository
---- linux-2.4.20/include/asm-mips/dec/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/dec
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Root
---- linux-2.4.20/include/asm-mips/dec/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Tag
---- linux-2.4.20/include/asm-mips/dec/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/interrupts.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/interrupts.h
---- linux-2.4.20/include/asm-mips/dec/interrupts.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/interrupts.h 2002-11-07 12:39:42.000000000 -0600
-@@ -58,10 +58,10 @@
- #define DEC_IRQ_SCC0A_RXDMA 30 /* SCC0A receive half page */
- #define DEC_IRQ_SCC0A_TXERR 31 /* SCC0A xmit memory read/overrun */
- #define DEC_IRQ_SCC0A_TXDMA 32 /* SCC0A transmit page end */
--#define DEC_IRQ_SCC0B_RXERR 33 /* SCC0B (ACCESS.bus) receive overrun */
--#define DEC_IRQ_SCC0B_RXDMA 34 /* SCC0B receive half page */
--#define DEC_IRQ_SCC0B_TXERR 35 /* SCC0B xmit memory read/overrun */
--#define DEC_IRQ_SCC0B_TXDMA 36 /* SCC0B transmit page end */
-+#define DEC_IRQ_AB_RXERR 33 /* ACCESS.bus receive overrun */
-+#define DEC_IRQ_AB_RXDMA 34 /* ACCESS.bus receive half page */
-+#define DEC_IRQ_AB_TXERR 35 /* ACCESS.bus xmit memory read/ovrn */
-+#define DEC_IRQ_AB_TXDMA 36 /* ACCESS.bus transmit page end */
- #define DEC_IRQ_SCC1A_RXERR 37 /* SCC1A (modem) receive overrun */
- #define DEC_IRQ_SCC1A_RXDMA 38 /* SCC1A receive half page */
- #define DEC_IRQ_SCC1A_TXERR 39 /* SCC1A xmit memory read/overrun */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/ioasic.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic.h
---- linux-2.4.20/include/asm-mips/dec/ioasic.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic.h 2003-01-30 08:25:16.000000000 -0600
-@@ -3,7 +3,7 @@
- *
- * DEC I/O ASIC access operations.
- *
-- * Copyright (C) 2000, 2002 Maciej W. Rozycki
-+ * Copyright (C) 2000, 2002, 2003 Maciej W. Rozycki
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
-@@ -14,8 +14,11 @@
- #ifndef __ASM_DEC_IOASIC_H
- #define __ASM_DEC_IOASIC_H
-
-+#include <linux/spinlock.h>
- #include <linux/types.h>
-
-+extern spinlock_t ioasic_ssr_lock;
-+
- extern volatile u32 *ioasic_base;
-
- static inline void ioasic_write(unsigned int reg, u32 v)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/ioasic_ints.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic_ints.h
---- linux-2.4.20/include/asm-mips/dec/ioasic_ints.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/ioasic_ints.h 2002-11-07 12:39:42.000000000 -0600
-@@ -46,10 +46,10 @@
- #define IO_INR_RES_20 20 /* unused */
-
- /* Maxine */
--#define IO_INR_SCC0B_TXDMA 27 /* SCC0B transmit page end */
--#define IO_INR_SCC0B_TXERR 26 /* SCC0B transmit memory read error */
--#define IO_INR_SCC0B_RXDMA 25 /* SCC0B receive half page */
--#define IO_INR_SCC0B_RXERR 24 /* SCC0B receive overrun */
-+#define IO_INR_AB_TXDMA 27 /* ACCESS.bus transmit page end */
-+#define IO_INR_AB_TXERR 26 /* ACCESS.bus xmit memory read error */
-+#define IO_INR_AB_RXDMA 25 /* ACCESS.bus receive half page */
-+#define IO_INR_AB_RXERR 24 /* ACCESS.bus receive overrun */
- #define IO_INR_FLOPPY_ERR 23 /* FDC error */
- #define IO_INR_ISDN_TXDMA 22 /* ISDN xmit buffer pointer loaded */
- #define IO_INR_ISDN_RXDMA 21 /* ISDN recv buffer pointer loaded */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/kn02xa.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn02xa.h
---- linux-2.4.20/include/asm-mips/dec/kn02xa.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn02xa.h 2003-02-03 07:11:21.000000000 -0600
-@@ -25,6 +25,4 @@
- #define KN02XA_IOASIC_BASE KSEG1ADDR(0x1c040000) /* I/O ASIC */
- #define KN02XA_RTC_BASE KSEG1ADDR(0x1c200000) /* RTC */
-
--#define KN02XA_IOASIC_REG(r) (KN02XA_IOASIC_BASE+(r))
--
- #endif /* __ASM_MIPS_DEC_KN02XA_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/kn03.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn03.h
---- linux-2.4.20/include/asm-mips/dec/kn03.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn03.h 2003-02-03 07:11:21.000000000 -0600
-@@ -30,9 +30,6 @@
- #define KN03_MCR_BNK32M (1<<10) /* 32M stride */
- #define KN03_MCR_ECCEN (1<<13) /* ECC enabled */
-
--#define KN03_IOASIC_REG(r) (KN03_IOASIC_BASE+(r))
--
--
- /*
- * CPU interrupt bits.
- */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/kn230.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn230.h
---- linux-2.4.20/include/asm-mips/dec/kn230.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/kn230.h 2002-12-12 13:08:50.000000000 -0600
-@@ -1,7 +1,7 @@
- /*
- * include/asm-mips/dec/kn230.h
- *
-- * DECstation 5100 (MIPSmate or KN230) definitions.
-+ * DECsystem 5100 (MIPSmate or KN230) definitions.
- *
- * Copyright (C) 2002 Maciej W. Rozycki
- *
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/machtype.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/machtype.h
---- linux-2.4.20/include/asm-mips/dec/machtype.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/machtype.h 2002-12-12 13:08:50.000000000 -0600
-@@ -16,10 +16,12 @@
- #define TURBOCHANNEL (mips_machtype == MACH_DS5000_200 || \
- mips_machtype == MACH_DS5000_1XX || \
- mips_machtype == MACH_DS5000_XX || \
-- mips_machtype == MACH_DS5000_2X0)
-+ mips_machtype == MACH_DS5000_2X0 || \
-+ mips_machtype == MACH_DS5900)
-
- #define IOASIC (mips_machtype == MACH_DS5000_1XX || \
- mips_machtype == MACH_DS5000_XX || \
-- mips_machtype == MACH_DS5000_2X0)
-+ mips_machtype == MACH_DS5000_2X0 || \
-+ mips_machtype == MACH_DS5900)
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/dec/prom.h linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/prom.h
---- linux-2.4.20/include/asm-mips/dec/prom.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/dec/prom.h 2002-10-01 10:01:55.000000000 -0500
-@@ -0,0 +1,169 @@
-+/*
-+ * include/asm-mips/dec/prom.h
-+ *
-+ * DECstation PROM interface.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ *
-+ * Based on arch/mips/dec/prom/prom.h by the Anonymous.
-+ */
-+#ifndef __ASM_MIPS_DEC_PROM_H
-+#define __ASM_MIPS_DEC_PROM_H
-+
-+#include <linux/types.h>
-+
-+#include <asm/addrspace.h>
-+
-+/*
-+ * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's.
-+ * Many of these will work for MIPSen as well!
-+ */
-+#define VEC_RESET (u64 *)KSEG1ADDR(0x1fc00000)
-+ /* Prom base address */
-+
-+#define PMAX_PROM_ENTRY(x) (VEC_RESET + (x)) /* Prom jump table */
-+
-+#define PMAX_PROM_HALT PMAX_PROM_ENTRY(2) /* valid on MIPSen */
-+#define PMAX_PROM_AUTOBOOT PMAX_PROM_ENTRY(5) /* valid on MIPSen */
-+#define PMAX_PROM_OPEN PMAX_PROM_ENTRY(6)
-+#define PMAX_PROM_READ PMAX_PROM_ENTRY(7)
-+#define PMAX_PROM_CLOSE PMAX_PROM_ENTRY(10)
-+#define PMAX_PROM_LSEEK PMAX_PROM_ENTRY(11)
-+#define PMAX_PROM_GETCHAR PMAX_PROM_ENTRY(12)
-+#define PMAX_PROM_PUTCHAR PMAX_PROM_ENTRY(13) /* 12 on MIPSen */
-+#define PMAX_PROM_GETS PMAX_PROM_ENTRY(15)
-+#define PMAX_PROM_PRINTF PMAX_PROM_ENTRY(17)
-+#define PMAX_PROM_GETENV PMAX_PROM_ENTRY(33) /* valid on MIPSen */
-+
-+
-+/*
-+ * Magic number indicating REX PROM available on DECstation. Found in
-+ * register a2 on transfer of control to program from PROM.
-+ */
-+#define REX_PROM_MAGIC 0x30464354
-+
-+#ifdef CONFIG_MIPS64
-+
-+#define prom_is_rex(magic) 1 /* KN04 and KN05 are REX PROMs. */
-+
-+#else /* !CONFIG_MIPS64 */
-+
-+#define prom_is_rex(magic) ((magic) == REX_PROM_MAGIC)
-+
-+#endif /* !CONFIG_MIPS64 */
-+
-+
-+/*
-+ * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
-+ * DS5000/2x0.
-+ */
-+#define REX_PROM_GETBITMAP 0x84/4 /* get mem bitmap */
-+#define REX_PROM_GETCHAR 0x24/4 /* getch() */
-+#define REX_PROM_GETENV 0x64/4 /* get env. variable */
-+#define REX_PROM_GETSYSID 0x80/4 /* get system id */
-+#define REX_PROM_GETTCINFO 0xa4/4
-+#define REX_PROM_PRINTF 0x30/4 /* printf() */
-+#define REX_PROM_SLOTADDR 0x6c/4 /* slotaddr */
-+#define REX_PROM_BOOTINIT 0x54/4 /* open() */
-+#define REX_PROM_BOOTREAD 0x58/4 /* read() */
-+#define REX_PROM_CLEARCACHE 0x7c/4
-+
-+
-+/*
-+ * Used by rex_getbitmap().
-+ */
-+typedef struct {
-+ int pagesize;
-+ unsigned char bitmap[0];
-+} memmap;
-+
-+
-+/*
-+ * Function pointers as read from a PROM's callback vector.
-+ */
-+extern int (*__rex_bootinit)(void);
-+extern int (*__rex_bootread)(void);
-+extern int (*__rex_getbitmap)(memmap *);
-+extern unsigned long *(*__rex_slot_address)(int);
-+extern void *(*__rex_gettcinfo)(void);
-+extern int (*__rex_getsysid)(void);
-+extern void (*__rex_clear_cache)(void);
-+
-+extern int (*__prom_getchar)(void);
-+extern char *(*__prom_getenv)(char *);
-+extern int (*__prom_printf)(char *, ...);
-+
-+extern int (*__pmax_open)(char*, int);
-+extern int (*__pmax_lseek)(int, long, int);
-+extern int (*__pmax_read)(int, void *, int);
-+extern int (*__pmax_close)(int);
-+
-+
-+#ifdef CONFIG_MIPS64
-+
-+/*
-+ * On MIPS64 we have to call PROM functions via a helper
-+ * dispatcher to accomodate ABI incompatibilities.
-+ */
-+#define __DEC_PROM_O32 __attribute__((alias("call_o32")))
-+
-+int _rex_bootinit(int (*)(void)) __DEC_PROM_O32;
-+int _rex_bootread(int (*)(void)) __DEC_PROM_O32;
-+int _rex_getbitmap(int (*)(memmap *), memmap *) __DEC_PROM_O32;
-+unsigned long *_rex_slot_address(unsigned long *(*)(int), int) __DEC_PROM_O32;
-+void *_rex_gettcinfo(void *(*)(void)) __DEC_PROM_O32;
-+int _rex_getsysid(int (*)(void)) __DEC_PROM_O32;
-+void _rex_clear_cache(void (*)(void)) __DEC_PROM_O32;
-+
-+int _prom_getchar(int (*)(void)) __DEC_PROM_O32;
-+char *_prom_getenv(char *(*)(char *), char *) __DEC_PROM_O32;
-+int _prom_printf(int (*)(char *, ...), char *, ...) __DEC_PROM_O32;
-+
-+
-+#define rex_bootinit() _rex_bootinit(__rex_bootinit)
-+#define rex_bootread() _rex_bootread(__rex_bootread)
-+#define rex_getbitmap(x) _rex_getbitmap(__rex_getbitmap, x)
-+#define rex_slot_address(x) _rex_slot_address(__rex_slot_address, x)
-+#define rex_gettcinfo() _rex_gettcinfo(__rex_gettcinfo)
-+#define rex_getsysid() _rex_getsysid(__rex_getsysid)
-+#define rex_clear_cache() _rex_clear_cache(__rex_clear_cache)
-+
-+#define prom_getchar() _prom_getchar(__prom_getchar)
-+#define prom_getenv(x) _prom_getenv(__prom_getenv, x)
-+#define prom_printf(x...) _prom_printf(__prom_printf, x)
-+
-+#else /* !CONFIG_MIPS64 */
-+
-+/*
-+ * On plain MIPS we just call PROM functions directly.
-+ */
-+#define rex_bootinit __rex_bootinit
-+#define rex_bootread __rex_bootread
-+#define rex_getbitmap __rex_getbitmap
-+#define rex_slot_address __rex_slot_address
-+#define rex_gettcinfo __rex_gettcinfo
-+#define rex_getsysid __rex_getsysid
-+#define rex_clear_cache __rex_clear_cache
-+
-+#define prom_getchar __prom_getchar
-+#define prom_getenv __prom_getenv
-+#define prom_printf __prom_printf
-+
-+#define pmax_open __pmax_open
-+#define pmax_lseek __pmax_lseek
-+#define pmax_read __pmax_read
-+#define pmax_close __pmax_close
-+
-+#endif /* !CONFIG_MIPS64 */
-+
-+
-+extern void prom_meminit(u32);
-+extern void prom_identify_arch(u32);
-+extern void prom_init_cmdline(s32, s32 *, u32);
-+
-+#endif /* __ASM_MIPS_DEC_PROM_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/delay.h linux-2.4.20-mipscvs-20050106/include/asm-mips/delay.h
---- linux-2.4.20/include/asm-mips/delay.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/delay.h 2003-01-27 18:08:27.000000000 -0600
-@@ -27,7 +27,7 @@
- }
-
- /*
-- * division by multiplication: you don't have to worry about
-+ * Division by multiplication: you don't have to worry about
- * loss of precision.
- *
- * Use only for very small delays ( < 1 msec). Should probably use a
-@@ -40,11 +40,11 @@
- {
- unsigned long lo;
-
--#if (HZ == 100)
-- usecs *= 0x00068db8; /* 2**32 / (1000000 / HZ) */
--#elif (HZ == 128)
-- usecs *= 0x0008637b; /* 2**32 / (1000000 / HZ) */
--#endif
-+ /*
-+ * Excessive precission? Probably ...
-+ */
-+ usecs *= (unsigned long) (((0x8000000000000000ULL / (500000 / HZ)) +
-+ 0x80000000ULL) >> 32);
- __asm__("multu\t%2,%3"
- :"=h" (usecs), "=l" (lo)
- :"r" (usecs),"r" (lpj));
-diff -urNd -urNd linux-2.4.20/include/asm-mips/div64.h linux-2.4.20-mipscvs-20050106/include/asm-mips/div64.h
---- linux-2.4.20/include/asm-mips/div64.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/div64.h 2003-01-27 08:27:17.000000000 -0600
-@@ -8,8 +8,6 @@
- #ifndef _ASM_DIV64_H
- #define _ASM_DIV64_H
-
--#include <asm/sgidefs.h>
--
- /*
- * No traps on overflows for any of these...
- */
-@@ -33,10 +31,10 @@
- "sll %2, %2, 0x1\n" \
- "1:\n\t" \
- "bnez %3, 2f\n\t" \
-- "sltu %5, %0, %z6\n\t" \
-- "bnez %5, 3f\n\t" \
-+ " sltu %5, %0, %z6\n\t" \
-+ "bnez %5, 3f\n" \
- "2:\n\t" \
-- " addiu %4,%4,-1\n\t" \
-+ " addiu %4, %4, -1\n\t" \
- "subu %0, %0, %z6\n\t" \
- "addiu %2, %2, 1\n" \
- "3:\n\t" \
-@@ -52,19 +50,23 @@
-
- #define do_div(n, base) ({ \
- unsigned long long __quot; \
-- unsigned long __upper, __low, __high, __mod; \
-+ unsigned long __mod; \
-+ unsigned long long __div; \
-+ unsigned long __upper, __low, __high, __base; \
- \
-- __quot = (n); \
-- __high = __quot >> 32; \
-- __low = __quot; \
-+ __div = (n); \
-+ __base = (base); \
-+ \
-+ __high = __div >> 32; \
-+ __low = __div; \
- __upper = __high; \
- \
- if (__high) \
-- __asm__("divu $0,%z2,%z3" \
-+ __asm__("divu $0, %z2, %z3" \
- : "=h" (__upper), "=l" (__high) \
-- : "Jr" (__high), "Jr" (base)); \
-+ : "Jr" (__high), "Jr" (__base)); \
- \
-- __mod = do_div64_32(__low, __upper, __low, base); \
-+ __mod = do_div64_32(__low, __upper, __low, __base); \
- \
- __quot = __high; \
- __quot = __quot << 32 | __low; \
-diff -urNd -urNd linux-2.4.20/include/asm-mips/fpu.h linux-2.4.20-mipscvs-20050106/include/asm-mips/fpu.h
---- linux-2.4.20/include/asm-mips/fpu.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/fpu.h 2002-12-01 18:24:53.000000000 -0600
-@@ -0,0 +1,135 @@
-+/*
-+ * Copyright (C) 2002 MontaVista Software Inc.
-+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ */
-+
-+#ifndef _ASM_FPU_H
-+#define _ASM_FPU_H
-+
-+#include <linux/config.h>
-+#include <linux/sched.h>
-+
-+#include <asm/mipsregs.h>
-+#include <asm/cpu.h>
-+#include <asm/processor.h>
-+#include <asm/current.h>
-+
-+struct sigcontext;
-+
-+extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
-+extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-+
-+extern void fpu_emulator_init_fpu(void);
-+extern void _init_fpu(void);
-+extern void _save_fp(struct task_struct *);
-+extern void _restore_fp(struct task_struct *);
-+
-+#if defined(CONFIG_CPU_SB1)
-+#define __enable_fpu_hazard() \
-+do { \
-+ asm(".set push \n\t" \
-+ ".set mips64 \n\t" \
-+ ".set noreorder \n\t" \
-+ "ssnop \n\t" \
-+ "bnezl $0, .+4 \n\t" \
-+ "ssnop \n\t" \
-+ ".set pop"); \
-+} while (0)
-+#else
-+#define __enable_fpu_hazard() \
-+do { \
-+ asm("nop;nop;nop;nop"); /* max. hazard */ \
-+} while (0)
-+#endif
-+
-+#define __enable_fpu() \
-+do { \
-+ set_c0_status(ST0_CU1); \
-+ __enable_fpu_hazard(); \
-+} while (0)
-+
-+#define __disable_fpu() \
-+do { \
-+ clear_c0_status(ST0_CU1); \
-+ /* We don't care about the c0 hazard here */ \
-+} while (0)
-+
-+#define enable_fpu() \
-+do { \
-+ if (mips_cpu.options & MIPS_CPU_FPU) \
-+ __enable_fpu(); \
-+} while (0)
-+
-+#define disable_fpu() \
-+do { \
-+ if (mips_cpu.options & MIPS_CPU_FPU) \
-+ __disable_fpu(); \
-+} while (0)
-+
-+
-+#define clear_fpu_owner() do {current->flags &= ~PF_USEDFPU; } while(0)
-+
-+static inline int is_fpu_owner(void)
-+{
-+ return (mips_cpu.options & MIPS_CPU_FPU) &&
-+ ((current->flags & PF_USEDFPU) != 0);
-+}
-+
-+static inline void own_fpu(void)
-+{
-+ if(mips_cpu.options & MIPS_CPU_FPU) {
-+ __enable_fpu();
-+ KSTK_STATUS(current) |= ST0_CU1;
-+ current->flags |= PF_USEDFPU;
-+ }
-+}
-+
-+static inline void loose_fpu(void)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU) {
-+ KSTK_STATUS(current) &= ~ST0_CU1;
-+ current->flags &= ~PF_USEDFPU;
-+ __disable_fpu();
-+ }
-+}
-+
-+static inline void init_fpu(void)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU) {
-+ _init_fpu();
-+ } else {
-+ fpu_emulator_init_fpu();
-+ }
-+}
-+
-+static inline void save_fp(struct task_struct *tsk)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU)
-+ _save_fp(tsk);
-+}
-+
-+static inline void restore_fp(struct task_struct *tsk)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU)
-+ _restore_fp(tsk);
-+}
-+
-+static inline unsigned long long *get_fpu_regs(struct task_struct *tsk)
-+{
-+ if(mips_cpu.options & MIPS_CPU_FPU) {
-+ if ((tsk == current) && is_fpu_owner())
-+ _save_fp(current);
-+ return (unsigned long long *)&tsk->thread.fpu.hard.fp_regs[0];
-+ } else {
-+ return (unsigned long long *)tsk->thread.fpu.soft.regs;
-+ }
-+}
-+
-+#endif /* _ASM_FPU_H */
-+
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Entries
---- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,6 @@
-+/ev64120.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/ev64120int.h/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/ev96100.h/1.3.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/ev96100int.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/gt96100.h/1.2.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D/evb64120A////
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Repository
---- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/galileo-boards
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Root
---- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Tag
---- linux-2.4.20/include/asm-mips/galileo-boards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Entries
---- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,9 @@
-+/cntmr.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/core.h/1.2.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/dma.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/eeprom_param.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/flashdrv.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/i2o.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.1/Mon Dec 4 04:04:09 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Repository
---- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/galileo-boards/evb64120A
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Root
---- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Tag
---- linux-2.4.20/include/asm-mips/galileo-boards/evb64120A/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/galileo-boards/evb64120A/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Entries
---- linux-2.4.20/include/asm-mips/gcc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Entries 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1,2 @@
-+/sgidefs.h/1.1/Fri Dec 1 18:15:41 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Repository
---- linux-2.4.20/include/asm-mips/gcc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/gcc
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Root
---- linux-2.4.20/include/asm-mips/gcc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gcc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Tag
---- linux-2.4.20/include/asm-mips/gcc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gcc/CVS/Tag 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Entries
---- linux-2.4.20/include/asm-mips/gt64120/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,2 @@
-+/gt64120.h/1.1.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D/momenco_ocelot////
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Repository
---- linux-2.4.20/include/asm-mips/gt64120/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Repository 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/gt64120
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Root
---- linux-2.4.20/include/asm-mips/gt64120/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Root 2005-01-06 23:06:50.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Tag
---- linux-2.4.20/include/asm-mips/gt64120/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/gt64120.h linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/gt64120.h
---- linux-2.4.20/include/asm-mips/gt64120/gt64120.h 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/gt64120.h 2002-08-05 18:53:38.000000000 -0500
-@@ -63,7 +63,7 @@
- #define GT_PCI1M0REMAP_OFS 0x110
- #define GT_PCI1M1REMAP_OFS 0x118
-
--#define GT_SCS0LD_OFS 0x400
-+#define GT_SCS0LD_OFS 0x400
- #define GT_SCS0HD_OFS 0x404
- #define GT_SCS1LD_OFS 0x408
- #define GT_SCS1HD_OFS 0x40c
-@@ -327,7 +327,7 @@
- #define GT_PCI0_BARE_SWSCS32DIS_SHF 1
- #define GT_PCI0_BARE_SWSCS32DIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS32DIS_SHF)
- #define GT_PCI0_BARE_SWSCS32DIS_BIT GT_PCI0_BARE_SWSCS32DIS_MSK
--
-+
- #define GT_PCI0_BARE_SWSCS10DIS_SHF 2
- #define GT_PCI0_BARE_SWSCS10DIS_MSK (MSK(1) << GT_PCI0_BARE_SWSCS10DIS_SHF)
- #define GT_PCI0_BARE_SWSCS10DIS_BIT GT_PCI0_BARE_SWSCS10DIS_MSK
-@@ -410,7 +410,7 @@
- ***********************************************************************
- */
-
--/*
-+/*
- * include asm/gt64120/<board>/gt64120_dep.h file
- */
-
-@@ -432,7 +432,7 @@
- */
-
- /*
-- * Board-dependent functions, which must be defined in
-+ * Board-dependent functions, which must be defined in
- * arch/mips/gt64120/<board>/pci.c file.
- *
- * This function is called by pcibios_fixup_bus(bus), which in turn is
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries
---- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,2 @@
-+/gt64120_dep.h/1.2.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository
---- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/gt64120/momenco_ocelot
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Root
---- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag
---- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h
---- linux-2.4.20/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/gt64120/momenco_ocelot/gt64120_dep.h 2002-08-05 18:53:38.000000000 -0500
-@@ -19,7 +19,7 @@
- #include <asm/byteorder.h> /* for cpu_to_le32() */
-
- /*
-- * PCI address allocation
-+ * PCI address allocation
- */
- #define GT_PCI_MEM_BASE (0x22000000)
- #define GT_PCI_MEM_SIZE GT_DEF_PCI0_MEM0_SIZE
-diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Entries
---- linux-2.4.20/include/asm-mips/hp-lj/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,2 @@
-+/asic.h/1.1/Sun Nov 18 03:24:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Repository
---- linux-2.4.20/include/asm-mips/hp-lj/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/hp-lj
-diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Root
---- linux-2.4.20/include/asm-mips/hp-lj/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/hp-lj/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Tag
---- linux-2.4.20/include/asm-mips/hp-lj/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/hp-lj/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips/ide.h
---- linux-2.4.20/include/asm-mips/ide.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/ide.h 2002-11-28 17:04:11.000000000 -0600
-@@ -7,7 +7,6 @@
- *
- * Copyright (C) 1994-1996 Linus Torvalds & authors
- */
--
- #ifndef __ASM_IDE_H
- #define __ASM_IDE_H
-
-@@ -37,7 +36,7 @@
- void (*ide_free_irq)(unsigned int irq, void *dev_id);
- int (*ide_check_region) (ide_ioreg_t from, unsigned int extent);
- void (*ide_request_region)(ide_ioreg_t from, unsigned int extent,
-- const char *name);
-+ const char *name);
- void (*ide_release_region)(ide_ioreg_t from, unsigned int extent);
- };
-
-@@ -54,7 +53,7 @@
- }
-
- static inline void ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-- ide_ioreg_t ctrl_port, int *irq)
-+ ide_ioreg_t ctrl_port, int *irq)
- {
- ide_ops->ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
- }
-@@ -129,22 +128,18 @@
- return ide_ops->ide_check_region(from, extent);
- }
-
--static __inline__ void ide_request_region(ide_ioreg_t from,
-- unsigned int extent, const char *name)
-+static __inline__ void ide_request_region(ide_ioreg_t from, unsigned int extent,
-+ const char *name)
- {
- ide_ops->ide_request_region(from, extent, name);
- }
-
--static __inline__ void ide_release_region(ide_ioreg_t from,
-- unsigned int extent)
-+static __inline__ void ide_release_region(ide_ioreg_t from, unsigned int extent)
- {
- ide_ops->ide_release_region(from, extent);
- }
-
--#undef SUPPORT_VLB_SYNC
--#define SUPPORT_VLB_SYNC 0
--
--#if defined(__MIPSEB__)
-+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
-
- /* get rid of defs from io.h - ide has its private and conflicting versions */
- #ifdef insw
-diff -urNd -urNd linux-2.4.20/include/asm-mips/inventory.h linux-2.4.20-mipscvs-20050106/include/asm-mips/inventory.h
---- linux-2.4.20/include/asm-mips/inventory.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/inventory.h 2002-10-31 14:37:38.000000000 -0600
-@@ -4,9 +4,6 @@
- #ifndef __ASM_INVENTORY_H
- #define __ASM_INVENTORY_H
-
--#include <linux/config.h>
--
--#ifdef CONFIG_BINFMT_IRIX
- typedef struct inventory_s {
- struct inventory_s *inv_next;
- int inv_class;
-@@ -19,10 +16,5 @@
- extern int inventory_items;
- void add_to_inventory (int class, int type, int controller, int unit, int state);
- int dump_inventory_to_user (void *userbuf, int size);
--void init_inventory (void);
-
--#else
--#define add_to_inventory(c,t,o,u,s)
--#define init_inventory()
--#endif
- #endif /* __ASM_INVENTORY_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips/io.h
---- linux-2.4.20/include/asm-mips/io.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/io.h 2002-11-28 17:04:11.000000000 -0600
-@@ -21,11 +21,13 @@
- #ifdef CONFIG_SGI_IP27
- extern unsigned long bus_to_baddr[256];
-
--#define bus_to_baddr(hwdev, addr) (bus_to_baddr[(hwdev)->bus->number] + (addr))
--#define baddr_to_bus(hwdev, addr) ((addr) - bus_to_baddr[(hwdev)->bus->number])
-+#define bus_to_baddr(bus, addr) (bus_to_baddr[(bus)->number] + (addr))
-+#define baddr_to_bus(bus, addr) ((addr) - bus_to_baddr[(bus)->number])
-+#define __swizzle_addr_w(port) ((port) ^ 2)
- #else
--#define bus_to_baddr(hwdev, addr) (addr)
--#define baddr_to_bus(hwdev, addr) (addr)
-+#define bus_to_baddr(bus, addr) (addr)
-+#define baddr_to_bus(bus, addr) (addr)
-+#define __swizzle_addr_w(port) (port)
- #endif
-
- /*
-@@ -35,138 +37,27 @@
-
- /*
- * Sane hardware offers swapping of I/O space accesses in hardware; less
-- * sane hardware forces software to fiddle with this ...
-+ * sane hardware forces software to fiddle with this. Totally insane hardware
-+ * introduces special cases like:
-+ *
-+ * IP22 seems braindead enough to swap 16-bits values in hardware, but not
-+ * 32-bits. Go figure... Can't tell without documentation.
-+ *
-+ * We only do the swapping to keep the kernel config bits of bi-endian
-+ * machines a bit saner.
- */
--#if defined(CONFIG_SWAP_IO_SPACE) && defined(__MIPSEB__)
--
--#define __ioswab8(x) (x)
--#ifdef CONFIG_SGI_IP22
--/* IP22 seems braindead enough to swap 16bits values in hardware, but
-- not 32bits. Go figure... Can't tell without documentation. */
--#define __ioswab16(x) (x)
--#else
-+#if defined(CONFIG_SWAP_IO_SPACE_W) && defined(__MIPSEB__)
- #define __ioswab16(x) swab16(x)
--#endif
--#define __ioswab32(x) swab32(x)
--
- #else
--
--#define __ioswab8(x) (x)
- #define __ioswab16(x) (x)
--#define __ioswab32(x) (x)
--
--#endif
--
--/*
-- * <Bacchus> Historically I wrote this stuff the same way as Linus did
-- * because I was young and clueless. And now it's so jucky that I
-- * don't want to put my eyes on it again to get rid of it :-)
-- *
-- * I'll do it then, because this code offends both me and my compiler
-- * - particularly the bits of inline asm which end up doing crap like
-- * 'lb $2,$2($5)' -- dwmw2
-- */
--
--#define IO_SPACE_LIMIT 0xffff
--
--/*
-- * On MIPS I/O ports are memory mapped, so we access them using normal
-- * load/store instructions. mips_io_port_base is the virtual address to
-- * which all ports are being mapped. For sake of efficiency some code
-- * assumes that this is an address that can be loaded with a single lui
-- * instruction, so the lower 16 bits must be zero. Should be true on
-- * on any sane architecture; generic code does not use this assumption.
-- */
--extern const unsigned long mips_io_port_base;
--
--#define set_io_port_base(base) \
-- do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
--
--/*
-- * Thanks to James van Artsdalen for a better timing-fix than
-- * the two short jumps: using outb's to a nonexistent port seems
-- * to guarantee better timings even on fast machines.
-- *
-- * On the other hand, I'd like to be sure of a non-existent port:
-- * I feel a bit unsafe about using 0x80 (should be safe, though)
-- *
-- * Linus
-- *
-- */
--
--#define __SLOW_DOWN_IO \
-- __asm__ __volatile__( \
-- "sb\t$0,0x80(%0)" \
-- : : "r" (mips_io_port_base));
--
--#ifdef CONF_SLOWDOWN_IO
--#ifdef REALLY_SLOW_IO
--#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
--#else
--#define SLOW_DOWN_IO __SLOW_DOWN_IO
- #endif
-+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
-+#define __ioswab32(x) swab32(x)
- #else
--#define SLOW_DOWN_IO
-+#define __ioswab32(x) (x)
- #endif
-
- /*
-- * virt_to_phys - map virtual addresses to physical
-- * @address: address to remap
-- *
-- * The returned physical address is the physical (CPU) mapping for
-- * the memory address given. It is only valid to use this function on
-- * addresses directly mapped or allocated via kmalloc.
-- *
-- * This function does not give bus mappings for DMA transfers. In
-- * almost all conceivable cases a device driver should not be using
-- * this function
-- */
--
--static inline unsigned long virt_to_phys(volatile void * address)
--{
-- return PHYSADDR(address);
--}
--
--/*
-- * phys_to_virt - map physical address to virtual
-- * @address: address to remap
-- *
-- * The returned virtual address is a current CPU mapping for
-- * the memory address given. It is only valid to use this function on
-- * addresses that have a kernel mapping
-- *
-- * This function does not handle bus mappings for DMA transfers. In
-- * almost all conceivable cases a device driver should not be using
-- * this function
-- */
--
--static inline void * phys_to_virt(unsigned long address)
--{
-- return (void *)KSEG0ADDR(address);
--}
--
--/*
-- * IO bus memory addresses are also 1:1 with the physical address
-- */
--static inline unsigned long virt_to_bus(volatile void * address)
--{
-- return PHYSADDR(address);
--}
--
--static inline void * bus_to_virt(unsigned long address)
--{
-- return (void *)KSEG0ADDR(address);
--}
--
--#define page_to_bus page_to_phys
--
--/*
-- * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
-- * for the processor.
-- */
--extern unsigned long isa_slot_offset;
--
--/*
- * Change "struct page" to physical address.
- */
- #ifdef CONFIG_64BIT_PHYS_ADDR
-@@ -175,6 +66,7 @@
- #define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT)
- #endif
-
-+#define IO_SPACE_LIMIT 0xffff
-
- extern void * __ioremap(phys_t offset, phys_t size, unsigned long flags);
-
-@@ -234,7 +126,7 @@
- #define __raw_readw(addr) (*(volatile unsigned short *)(addr))
- #define __raw_readl(addr) (*(volatile unsigned int *)(addr))
-
--#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (__ioswab8(b)))
-+#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (b))
- #define writew(b,addr) ((*(volatile unsigned short *)(addr)) = (__ioswab16(b)))
- #define writel(b,addr) ((*(volatile unsigned int *)(addr)) = (__ioswab32(b)))
-
-@@ -247,6 +139,13 @@
- #define memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
-
- /*
-+ * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
-+ * for the processor. This implies the assumption that there is only
-+ * one of these busses.
-+ */
-+extern unsigned long isa_slot_offset;
-+
-+/*
- * ISA space is 'always mapped' on currently supported MIPS systems, no need
- * to explicitly ioremap() it. The fact that the ISA IO space is mapped
- * to PAGE_OFFSET is pure coincidence - it does not mean ISA values
-@@ -284,7 +183,7 @@
- * Returns 1 on a match.
- */
- static inline int check_signature(unsigned long io_addr,
-- const unsigned char *signature, int length)
-+ const unsigned char *signature, int length)
- {
- int retval = 0;
- do {
-@@ -328,17 +227,95 @@
- return retval;
- }
-
-+/*
-+ * virt_to_phys - map virtual addresses to physical
-+ * @address: address to remap
-+ *
-+ * The returned physical address is the physical (CPU) mapping for
-+ * the memory address given. It is only valid to use this function on
-+ * addresses directly mapped or allocated via kmalloc.
-+ *
-+ * This function does not give bus mappings for DMA transfers. In
-+ * almost all conceivable cases a device driver should not be using
-+ * this function
-+ */
-+
-+static inline unsigned long virt_to_phys(volatile void * address)
-+{
-+ return (unsigned long)address - PAGE_OFFSET;
-+}
-+
-+/*
-+ * phys_to_virt - map physical address to virtual
-+ * @address: address to remap
-+ *
-+ * The returned virtual address is a current CPU mapping for
-+ * the memory address given. It is only valid to use this function on
-+ * addresses that have a kernel mapping
-+ *
-+ * This function does not handle bus mappings for DMA transfers. In
-+ * almost all conceivable cases a device driver should not be using
-+ * this function
-+ */
-+
-+static inline void * phys_to_virt(unsigned long address)
-+{
-+ return (void *)(address + PAGE_OFFSET);
-+}
-+
-+/*
-+ * IO bus memory addresses are also 1:1 with the physical address
-+ */
-+static inline unsigned long virt_to_bus(volatile void * address)
-+{
-+ return (unsigned long)address - PAGE_OFFSET;
-+}
-+
-+static inline void * bus_to_virt(unsigned long address)
-+{
-+ return (void *)(address + PAGE_OFFSET);
-+}
-+
-+/* This is too simpleminded for more sophisticated than dumb hardware ... */
-+#define page_to_bus page_to_phys
-+
-+/*
-+ * On MIPS I/O ports are memory mapped, so we access them using normal
-+ * load/store instructions. mips_io_port_base is the virtual address to
-+ * which all ports are being mapped. For sake of efficiency some code
-+ * assumes that this is an address that can be loaded with a single lui
-+ * instruction, so the lower 16 bits must be zero. Should be true on
-+ * on any sane architecture; generic code does not use this assumption.
-+ */
-+extern const unsigned long mips_io_port_base;
-+
-+#define set_io_port_base(base) \
-+ do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
-
-+#define __SLOW_DOWN_IO \
-+ __asm__ __volatile__( \
-+ "sb\t$0,0x80(%0)" \
-+ : : "r" (mips_io_port_base));
-
-+#ifdef CONF_SLOWDOWN_IO
-+#ifdef REALLY_SLOW_IO
-+#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
-+#else
-+#define SLOW_DOWN_IO __SLOW_DOWN_IO
-+#endif
-+#else
-+#define SLOW_DOWN_IO
-+#endif
-
- #define outb(val,port) \
- do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); \
-+ *(volatile u8 *)(mips_io_port_base + (port)) = (val); \
- } while(0)
-
- #define outw(val,port) \
- do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val); \
-+ *(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) = \
-+ __ioswab16(val); \
- } while(0)
-
- #define outl(val,port) \
-@@ -348,13 +325,14 @@
-
- #define outb_p(val,port) \
- do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); \
-+ *(volatile u8 *)(mips_io_port_base + (port)) = (val); \
- SLOW_DOWN_IO; \
- } while(0)
-
- #define outw_p(val,port) \
- do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\
-+ *(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) = \
-+ __ioswab16(val); \
- SLOW_DOWN_IO; \
- } while(0)
-
-@@ -364,49 +342,45 @@
- SLOW_DOWN_IO; \
- } while(0)
-
--#define inb(port) __inb(port)
--#define inw(port) __inw(port)
--#define inl(port) __inl(port)
--#define inb_p(port) __inb_p(port)
--#define inw_p(port) __inw_p(port)
--#define inl_p(port) __inl_p(port)
--
--static inline unsigned char __inb(unsigned long port)
-+static inline unsigned char inb(unsigned long port)
- {
-- return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
-+ return *(volatile u8 *)(mips_io_port_base + port);
- }
-
--static inline unsigned short __inw(unsigned long port)
-+static inline unsigned short inw(unsigned long port)
- {
-+ port = __swizzle_addr_w(port);
-+
- return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
- }
-
--static inline unsigned int __inl(unsigned long port)
-+static inline unsigned int inl(unsigned long port)
- {
- return __ioswab32(*(volatile u32 *)(mips_io_port_base + port));
- }
-
--static inline unsigned char __inb_p(unsigned long port)
-+static inline unsigned char inb_p(unsigned long port)
- {
- u8 __val;
-
- __val = *(volatile u8 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
-- return __ioswab8(__val);
-+ return __val;
- }
-
--static inline unsigned short __inw_p(unsigned long port)
-+static inline unsigned short inw_p(unsigned long port)
- {
- u16 __val;
-
-+ port = __swizzle_addr_w(port);
- __val = *(volatile u16 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
- return __ioswab16(__val);
- }
-
--static inline unsigned int __inl_p(unsigned long port)
-+static inline unsigned int inl_p(unsigned long port)
- {
- u32 __val;
-
-@@ -415,13 +389,6 @@
- return __ioswab32(__val);
- }
-
--#define outsb(port, addr, count) __outsb(port, addr, count)
--#define insb(port, addr, count) __insb(port, addr, count)
--#define outsw(port, addr, count) __outsw(port, addr, count)
--#define insw(port, addr, count) __insw(port, addr, count)
--#define outsl(port, addr, count) __outsl(port, addr, count)
--#define insl(port, addr, count) __insl(port, addr, count)
--
- static inline void __outsb(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
-@@ -470,6 +437,13 @@
- }
- }
-
-+#define outsb(port, addr, count) __outsb(port, addr, count)
-+#define insb(port, addr, count) __insb(port, addr, count)
-+#define outsw(port, addr, count) __outsw(port, addr, count)
-+#define insw(port, addr, count) __insw(port, addr, count)
-+#define outsl(port, addr, count) __outsl(port, addr, count)
-+#define insl(port, addr, count) __insl(port, addr, count)
-+
- /*
- * The caches on some architectures aren't dma-coherent and have need to
- * handle this in software. There are three types of operations that
-@@ -500,9 +474,12 @@
-
- #else /* Sane hardware */
-
--#define dma_cache_wback_inv(start,size) do { (start); (size); } while (0)
--#define dma_cache_wback(start,size) do { (start); (size); } while (0)
--#define dma_cache_inv(start,size) do { (start); (size); } while (0)
-+#define dma_cache_wback_inv(start,size) \
-+ do { (void) (start); (void) (size); } while (0)
-+#define dma_cache_wback(start,size) \
-+ do { (void) (start); (void) (size); } while (0)
-+#define dma_cache_inv(start,size) \
-+ do { (void) (start); (void) (size); } while (0)
-
- #endif /* CONFIG_NONCOHERENT_IO */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips/irq.h
---- linux-2.4.20/include/asm-mips/irq.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/irq.h 2002-10-06 07:28:03.000000000 -0500
-@@ -26,14 +26,9 @@
-
- struct irqaction;
- extern int i8259_setup_irq(int irq, struct irqaction * new);
--extern void disable_irq(unsigned int);
-
--#ifdef CONFIG_NEW_IRQ
-+extern void disable_irq(unsigned int);
- extern void disable_irq_nosync(unsigned int);
--#else
--#define disable_irq_nosync disable_irq
--#endif
--
- extern void enable_irq(unsigned int);
-
- /* Machine specific interrupt initialization */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Entries
---- linux-2.4.20/include/asm-mips/it8172/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,7 @@
-+/it8172.h/1.2.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/it8172_cir.h/1.2.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/it8172_dbg.h/1.2.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/it8172_int.h/1.3.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/it8172_lpc.h/1.2/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
-+/it8172_pci.h/1.2/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Repository
---- linux-2.4.20/include/asm-mips/it8172/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/it8172
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Root
---- linux-2.4.20/include/asm-mips/it8172/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Tag
---- linux-2.4.20/include/asm-mips/it8172/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172_cir.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_cir.h
---- linux-2.4.20/include/asm-mips/it8172/it8172_cir.h 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_cir.h 2002-08-05 18:53:38.000000000 -0500
-@@ -54,7 +54,7 @@
- #define CFQ_38_480 0xB /* 38 KHz low, 480 KHz high */
- #define CIR_HCFS 0x20
- #define CIR_SET_HS(x) (((x)&0x1)<<5)
--
-+
-
- /* Receiver Control Register */
- #define CIR_SET_RXDCR(x) ((x)&0x7)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172_dbg.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_dbg.h
---- linux-2.4.20/include/asm-mips/it8172/it8172_dbg.h 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_dbg.h 2002-08-05 18:53:38.000000000 -0500
-@@ -1,7 +1,7 @@
- /*
- *
- * BRIEF MODULE DESCRIPTION
-- * Function prototypes for low level uart routines to
-+ * Function prototypes for low level uart routines to
- * directly access a 16550 uart.
- *
- * Copyright 2000 MontaVista Software Inc.
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172.h
---- linux-2.4.20/include/asm-mips/it8172/it8172.h 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172.h 2002-08-05 18:53:38.000000000 -0500
-@@ -33,7 +33,7 @@
-
- #include <asm/addrspace.h>
-
--#define IT8172_BASE 0x18000000
-+#define IT8172_BASE 0x18000000
- #define IT8172_PCI_IO_BASE 0x14000000
- #define IT8172_PCI_MEM_BASE 0x10000000
-
-@@ -99,18 +99,18 @@
-
- // PCI to Internal/LPC Bus Bridge configuration header register offset
- #define IT_P2I_BCR 0x4C
--#define IT_P2I_D0IOSC 0x50
-+#define IT_P2I_D0IOSC 0x50
- #define IT_P2I_D1IOSC 0x54
--#define IT_P2I_D2IOSC 0x58
--#define IT_P2I_D3IOSC 0x5C
--#define IT_P2I_D4IOSC 0x60
--#define IT_P2I_D5IOSC 0x64
--#define IT_P2I_D6IOSC 0x68
--#define IT_P2I_D7IOSC 0x6C
--#define IT_P2I_D8IOSC 0x70
--#define IT_P2I_D9IOSC 0x74
--#define IT_P2I_D10IOSC 0x78
--#define IT_P2I_D11IOSC 0x7C
-+#define IT_P2I_D2IOSC 0x58
-+#define IT_P2I_D3IOSC 0x5C
-+#define IT_P2I_D4IOSC 0x60
-+#define IT_P2I_D5IOSC 0x64
-+#define IT_P2I_D6IOSC 0x68
-+#define IT_P2I_D7IOSC 0x6C
-+#define IT_P2I_D8IOSC 0x70
-+#define IT_P2I_D9IOSC 0x74
-+#define IT_P2I_D10IOSC 0x78
-+#define IT_P2I_D11IOSC 0x7C
-
- // Memory controller register offsets from IT8172_BASE
- #define IT_MC_SDRMR 0x1000
-@@ -134,10 +134,10 @@
- #define IT_M68K_BSR 0x5D
- #define IT_M68K_DTR 0x5F
-
--// Register offset from IT8172_PCI_IO_BASE
-+// Register offset from IT8172_PCI_IO_BASE
- // These registers are accessible through 8172 PCI IO window.
-
--// INTC
-+// INTC
- #define IT_INTC_BASE 0x10000
- #define IT_INTC_LBDNIRR 0x10000
- #define IT_INTC_LBDNIMR 0x10002
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8172/it8172_int.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_int.h
---- linux-2.4.20/include/asm-mips/it8172/it8172_int.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8172/it8172_int.h 2002-08-05 18:53:38.000000000 -0500
-@@ -107,7 +107,7 @@
- */
- #define MIPS_CPU_TIMER_IRQ (NR_IRQS-1)
-
--/*
-+/*
- * IT8172 Interrupt Controller Registers
- */
- struct it8172_intc_regs {
-diff -urNd -urNd linux-2.4.20/include/asm-mips/it8712.h linux-2.4.20-mipscvs-20050106/include/asm-mips/it8712.h
---- linux-2.4.20/include/asm-mips/it8712.h 2001-04-13 22:26:07.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/it8712.h 2002-08-05 18:53:37.000000000 -0500
-@@ -4,7 +4,7 @@
-
- #define LPC_BASE_ADDR 0x14000000
-
--// MB PnP configuration register
-+// MB PnP configuration register
- #define LPC_KEY_ADDR 0x1400002E
- #define LPC_DATA_ADDR 0x1400002F
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jazz.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jazz.h
---- linux-2.4.20/include/asm-mips/jazz.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jazz.h 2002-08-05 18:53:37.000000000 -0500
-@@ -5,8 +5,8 @@
- *
- * Copyright (C) 1995 - 1998 by Andreas Busse and Ralf Baechle
- */
--#ifndef __ASM_JAZZ_H
--#define __ASM_JAZZ_H
-+#ifndef __ASM_JAZZ_H
-+#define __ASM_JAZZ_H
-
- /*
- * The addresses below are virtual address. The mappings are
-@@ -139,7 +139,7 @@
- * Dummy Device Address. Used in jazzdma.c
- */
- #define JAZZ_DUMMY_DEVICE 0xe000d000
--
-+
- /*
- * JAZZ timer registers and interrupt no.
- * Note that the hardware timer interrupt is actually on
-@@ -248,7 +248,7 @@
- #define JAZZ_R4030_CACHE_BWIN 0xE0000060 /* I/O Cache Buffer Window */
-
- /*
-- * Remote Speed Registers.
-+ * Remote Speed Registers.
- *
- * 0: free, 1: Ethernet, 2: SCSI, 3: Floppy,
- * 4: RTC, 5: Kb./Mouse 6: serial 1, 7: serial 2,
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Entries
---- linux-2.4.20/include/asm-mips/jmr3927/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,7 @@
-+/ds1742rtc.h/1.1.2.1/Sun Jun 30 23:49:56 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.1.2.2/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
-+/jmr3927.h/1.1.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/pci.h/1.1.2.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/tx3927.h/1.1.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/txx927.h/1.1.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Repository
---- linux-2.4.20/include/asm-mips/jmr3927/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/jmr3927
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Root
---- linux-2.4.20/include/asm-mips/jmr3927/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Tag
---- linux-2.4.20/include/asm-mips/jmr3927/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/ds1742rtc.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/ds1742rtc.h
---- linux-2.4.20/include/asm-mips/jmr3927/ds1742rtc.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/ds1742rtc.h 2002-06-30 18:49:56.000000000 -0500
-@@ -1,5 +1,4 @@
--/* $Id: ds1742rtc.h,v 1.1 2002/02/27 18:57:58 marcelo Exp $
-- *
-+/*
- * ds1742rtc.h - register definitions for the Real-Time-Clock / CMOS RAM
- *
- * Based on include/asm-mips/ds1643rtc.h.
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/irq.h
---- linux-2.4.20/include/asm-mips/jmr3927/irq.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/irq.h 2002-06-27 09:21:23.000000000 -0500
-@@ -10,7 +10,9 @@
- #ifndef __ASM_TX3927_IRQ_H
- #define __ASM_TX3927_IRQ_H
-
--#ifndef _LANGUAGE_ASSEMBLY
-+#include <linux/config.h>
-+
-+#ifndef __ASSEMBLY__
- #include <asm/irq.h>
-
- struct tb_irq_space {
-@@ -50,7 +52,7 @@
-
- extern int (*toshibaboards_gen_iack)(void);
-
--#endif /* _LANGUAGE_ASSEMBLY */
-+#endif /* !__ASSEMBLY__ */
-
- #define NR_ISA_IRQS 16
- #define TB_IRQ_IS_ISA(irq) \
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/jmr3927.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/jmr3927.h
---- linux-2.4.20/include/asm-mips/jmr3927/jmr3927.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/jmr3927.h 2002-08-05 18:53:38.000000000 -0500
-@@ -7,13 +7,13 @@
- *
- * Copyright (C) 2000-2001 Toshiba Corporation
- */
--#ifndef __ASM_TX3927_JMR3927_H
--#define __ASM_TX3927_JMR3927_H
-+#ifndef __ASM_TX3927_JMR3927_H
-+#define __ASM_TX3927_JMR3927_H
-
- #include <asm/jmr3927/tx3927.h>
- #include <asm/addrspace.h>
- #include <asm/jmr3927/irq.h>
--#ifndef _LANGUAGE_ASSEMBLY
-+#ifndef __ASSEMBLY__
- #include <asm/system.h>
- #endif
-
-@@ -36,14 +36,14 @@
- #define JMR3927_PORT_BASE KSEG1
-
- /* select indirect initiator access per errata */
--#define JMR3927_INIT_INDIRECT_PCI
-+#define JMR3927_INIT_INDIRECT_PCI
- #define PCI_ISTAT_IDICC 0x1000
- #define PCI_IPCIBE_IBE_LONG 0
--#define PCI_IPCIBE_ICMD_IOREAD 2
-+#define PCI_IPCIBE_ICMD_IOREAD 2
- #define PCI_IPCIBE_ICMD_IOWRITE 3
--#define PCI_IPCIBE_ICMD_MEMREAD 6
-+#define PCI_IPCIBE_ICMD_MEMREAD 6
- #define PCI_IPCIBE_ICMD_MEMWRITE 7
--#define PCI_IPCIBE_ICMD_SHIFT 4
-+#define PCI_IPCIBE_ICMD_SHIFT 4
-
- /* Address map (virtual address) */
- #define JMR3927_ROM0_BASE (KSEG1 + JMR3927_ROMCE0)
-@@ -142,7 +142,7 @@
- #define JMR3927_ISAC_INTF_IRQ10 (1 << JMR3927_ISAC_INTB_IRQ10)
- #define JMR3927_ISAC_INTF_ISAER (1 << JMR3927_ISAC_INTB_ISAER)
-
--#ifndef _LANGUAGE_ASSEMBLY
-+#ifndef __ASSEMBLY__
-
- #if 0
- #define jmr3927_ioc_reg_out(d, a) ((*(volatile unsigned short *)(a)) = (d) << 8)
-@@ -197,7 +197,7 @@
- #define jmr3927_io_dipsw() (jmr3927_isac_reg_in(JMR3927_ISAC_LED_ADDR) >> 4)
-
-
--#endif /* _LANGUAGE_ASSEMBLY */
-+#endif /* !__ASSEMBLY__ */
-
- /*
- * UART defines for serial.h
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/pci.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/pci.h
---- linux-2.4.20/include/asm-mips/jmr3927/pci.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/pci.h 2002-08-05 18:53:38.000000000 -0500
-@@ -2,7 +2,7 @@
- *
- * Copyright 2001 MontaVista Software Inc.
- * Author: MontaVista Software, Inc.
-- * ahennessy@mvista.com
-+ * ahennessy@mvista.com
- *
- * include/asm-mips/jmr3927/pci.h
- * Based on include/asm-mips/ddb5xxx/pci.h
-@@ -51,7 +51,7 @@
- struct resource *mem_resource;
- };
-
--/*
-+/*
- * each board defines an array of pci_channels, that ends with all NULL entry
- */
- extern struct pci_channel mips_pci_channels[];
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/tx3927.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/tx3927.h
---- linux-2.4.20/include/asm-mips/jmr3927/tx3927.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/tx3927.h 2002-08-05 18:53:38.000000000 -0500
-@@ -5,8 +5,8 @@
- *
- * Copyright (C) 2000 Toshiba Corporation
- */
--#ifndef __ASM_TX3927_H
--#define __ASM_TX3927_H
-+#ifndef __ASM_TX3927_H
-+#define __ASM_TX3927_H
-
- #include <asm/jmr3927/txx927.h>
-
-@@ -22,7 +22,7 @@
- #define TX3927_SIO_REG(ch) (0xfffef300 + (ch) * 0x100)
- #define TX3927_PIO_REG 0xfffef500
-
--#ifndef _LANGUAGE_ASSEMBLY
-+#ifndef __ASSEMBLY__
-
- struct tx3927_sdramc_reg {
- volatile unsigned long cr[8];
-@@ -164,7 +164,7 @@
- volatile unsigned long pdcr;
- };
-
--#endif /* _LANGUAGE_ASSEMBLY */
-+#endif /* !__ASSEMBLY__ */
-
- /*
- * SDRAMC
-@@ -348,7 +348,7 @@
- #define TX3927_PCFG_SELDMA_ALL 0x0000000f
- #define TX3927_PCFG_SELDMA(ch) (0x00000001<<(ch))
-
--#ifndef _LANGUAGE_ASSEMBLY
-+#ifndef __ASSEMBLY__
-
- #define tx3927_sdramcptr ((struct tx3927_sdramc_reg *)TX3927_SDRAMC_REG)
- #define tx3927_romcptr ((struct tx3927_romc_reg *)TX3927_ROMC_REG)
-@@ -360,6 +360,6 @@
- #define tx3927_sioptr(ch) ((struct txx927_sio_reg *)TX3927_SIO_REG(ch))
- #define tx3927_pioptr ((struct txx927_pio_reg *)TX3927_PIO_REG)
-
--#endif /* _LANGUAGE_ASSEMBLY */
-+#endif /* !__ASSEMBLY__ */
-
- #endif /* __ASM_TX3927_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/jmr3927/txx927.h linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/txx927.h
---- linux-2.4.20/include/asm-mips/jmr3927/txx927.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/jmr3927/txx927.h 2002-08-05 18:53:38.000000000 -0500
-@@ -7,10 +7,10 @@
- *
- * Copyright (C) 2000 Toshiba Corporation
- */
--#ifndef __ASM_TXX927_H
--#define __ASM_TXX927_H
-+#ifndef __ASM_TXX927_H
-+#define __ASM_TXX927_H
-
--#ifndef _LANGUAGE_ASSEMBLY
-+#ifndef __ASSEMBLY__
-
- struct txx927_tmr_reg {
- volatile unsigned long tcr;
-@@ -52,7 +52,7 @@
- volatile unsigned long maskext;
- };
-
--#endif /* _LANGUAGE_ASSEMBLY */
-+#endif /* !__ASSEMBLY__ */
-
-
- /*
-diff -urNd -urNd linux-2.4.20/include/asm-mips/kmap_types.h linux-2.4.20-mipscvs-20050106/include/asm-mips/kmap_types.h
---- linux-2.4.20/include/asm-mips/kmap_types.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/kmap_types.h 2002-09-25 07:10:01.000000000 -0500
-@@ -7,7 +7,7 @@
- KM_SKB_DATA_SOFTIRQ,
- KM_USER0,
- KM_USER1,
-- KM_BIO_IRQ,
-+ KM_BH_IRQ,
- KM_TYPE_NR
- };
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Entries
---- linux-2.4.20/include/asm-mips/lasat/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,8 @@
-+/ds1603.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/eeprom.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/head.h/1.1.2.1/Sun Oct 6 02:01:33 2002/-ko/Tlinux_2_4_20
-+/lasat.h/1.1.2.3/Mon Feb 24 21:26:19 2003/-ko/Tlinux_2_4_20
-+/lasatint.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/picvue.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.1.2.1/Fri Dec 13 19:45:36 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Repository
---- linux-2.4.20/include/asm-mips/lasat/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/lasat
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Root
---- linux-2.4.20/include/asm-mips/lasat/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Tag
---- linux-2.4.20/include/asm-mips/lasat/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/ds1603.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/ds1603.h
---- linux-2.4.20/include/asm-mips/lasat/ds1603.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/ds1603.h 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,18 @@
-+#include <asm/addrspace.h>
-+
-+/* Lasat 100 */
-+#define DS1603_REG_100 (KSEG1ADDR(0x1c810000))
-+#define DS1603_RST_100 (1 << 2)
-+#define DS1603_CLK_100 (1 << 0)
-+#define DS1603_DATA_SHIFT_100 1
-+#define DS1603_DATA_100 (1 << DS1603_DATA_SHIFT_100)
-+
-+/* Lasat 200 */
-+#define DS1603_REG_200 (KSEG1ADDR(0x11000000))
-+#define DS1603_RST_200 (1 << 3)
-+#define DS1603_CLK_200 (1 << 4)
-+#define DS1603_DATA_200 (1 << 5)
-+
-+#define DS1603_DATA_REG_200 (DS1603_REG_200 + 0x10000)
-+#define DS1603_DATA_READ_SHIFT_200 9
-+#define DS1603_DATA_READ_200 (1 << DS1603_DATA_READ_SHIFT_200)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/eeprom.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/eeprom.h
---- linux-2.4.20/include/asm-mips/lasat/eeprom.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/eeprom.h 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,17 @@
-+#include <asm/addrspace.h>
-+
-+/* lasat 100 */
-+#define AT93C_REG_100 KSEG1ADDR(0x1c810000)
-+#define AT93C_RDATA_REG_100 AT93C_REG_100
-+#define AT93C_RDATA_SHIFT_100 4
-+#define AT93C_WDATA_SHIFT_100 4
-+#define AT93C_CS_M_100 ( 1 << 5 )
-+#define AT93C_CLK_M_100 ( 1 << 3 )
-+
-+/* lasat 200 */
-+#define AT93C_REG_200 KSEG1ADDR(0x11000000)
-+#define AT93C_RDATA_REG_200 (AT93C_REG_200+0x10000)
-+#define AT93C_RDATA_SHIFT_200 8
-+#define AT93C_WDATA_SHIFT_200 2
-+#define AT93C_CS_M_200 ( 1 << 0 )
-+#define AT93C_CLK_M_200 ( 1 << 1 )
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/head.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/head.h
---- linux-2.4.20/include/asm-mips/lasat/head.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/head.h 2002-10-05 21:01:33.000000000 -0500
-@@ -0,0 +1,22 @@
-+/*
-+ * Image header stuff
-+ */
-+#ifndef _HEAD_H
-+#define _HEAD_H
-+
-+#define LASAT_K_MAGIC0_VAL 0xfedeabba
-+#define LASAT_K_MAGIC1_VAL 0x00bedead
-+
-+#ifndef _LANGUAGE_ASSEMBLY
-+#include <linux/types.h>
-+struct bootloader_header {
-+ u32 magic[2];
-+ u32 version;
-+ u32 image_start;
-+ u32 image_size;
-+ u32 kernel_start;
-+ u32 kernel_entry;
-+};
-+#endif
-+
-+#endif /* _HEAD_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/lasat.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasat.h
---- linux-2.4.20/include/asm-mips/lasat/lasat.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasat.h 2003-02-24 15:26:19.000000000 -0600
-@@ -0,0 +1,250 @@
-+/*
-+ * lasat.h
-+ *
-+ * Thomas Horsten <thh@lasat.com>
-+ * Copyright (C) 2000 LASAT Networks A/S.
-+ *
-+ * ########################################################################
-+ *
-+ * This program is free software; you can distribute it and/or modify it
-+ * under the terms of the GNU General Public License (Version 2) as
-+ * published by the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 59 Temple Place - Suite 330, Boston MA 02111-1307, USA.
-+ *
-+ * ########################################################################
-+ *
-+ * Configuration for LASAT boards, loads the appropriate include files.
-+ *
-+ */
-+#ifndef _LASAT_H
-+#define _LASAT_H
-+
-+#ifndef _LANGUAGE_ASSEMBLY
-+
-+extern struct lasat_misc {
-+ volatile u32 *reset_reg;
-+ volatile u32 *flash_wp_reg;
-+ u32 flash_wp_bit;
-+} *lasat_misc;
-+
-+enum lasat_mtdparts {
-+ LASAT_MTD_BOOTLOADER,
-+ LASAT_MTD_SERVICE,
-+ LASAT_MTD_NORMAL,
-+ LASAT_MTD_CONFIG,
-+ LASAT_MTD_FS,
-+ LASAT_MTD_LAST
-+};
-+
-+/*
-+ * The format of the data record in the EEPROM.
-+ * See Documentation/LASAT/eeprom.txt for a detailed description
-+ * of the fields in this struct, and the LASAT Hardware Configuration
-+ * field specification for a detailed description of the config
-+ * field.
-+ */
-+#include <linux/types.h>
-+
-+#define LASAT_EEPROM_VERSION 7
-+struct lasat_eeprom_struct {
-+ unsigned int version;
-+ unsigned int cfg[3];
-+ unsigned char hwaddr[6];
-+ unsigned char print_partno[12];
-+ unsigned char term0;
-+ unsigned char print_serial[14];
-+ unsigned char term1;
-+ unsigned char prod_partno[12];
-+ unsigned char term2;
-+ unsigned char prod_serial[14];
-+ unsigned char term3;
-+ unsigned char passwd_hash[16];
-+ unsigned char pwdnull;
-+ unsigned char vendid;
-+ unsigned char ts_ref;
-+ unsigned char ts_signoff;
-+ unsigned char reserved[11];
-+ unsigned char debugaccess;
-+ unsigned short prid;
-+ unsigned int serviceflag;
-+ unsigned int ipaddr;
-+ unsigned int netmask;
-+ unsigned int crc32;
-+};
-+
-+struct lasat_eeprom_struct_pre7 {
-+ unsigned int version;
-+ unsigned int flags[3];
-+ unsigned char hwaddr0[6];
-+ unsigned char hwaddr1[6];
-+ unsigned char print_partno[9];
-+ unsigned char term0;
-+ unsigned char print_serial[14];
-+ unsigned char term1;
-+ unsigned char prod_partno[9];
-+ unsigned char term2;
-+ unsigned char prod_serial[14];
-+ unsigned char term3;
-+ unsigned char passwd_hash[24];
-+ unsigned char pwdnull;
-+ unsigned char vendor;
-+ unsigned char ts_ref;
-+ unsigned char ts_signoff;
-+ unsigned char reserved[6];
-+ unsigned int writecount;
-+ unsigned int ipaddr;
-+ unsigned int netmask;
-+ unsigned int crc32;
-+};
-+
-+/* Configuration descriptor encoding - see the doc for details */
-+
-+#define LASAT_W0_DSCTYPE(v) ( ( (v) ) & 0xf )
-+#define LASAT_W0_BMID(v) ( ( (v) >> 0x04 ) & 0xf )
-+#define LASAT_W0_CPUTYPE(v) ( ( (v) >> 0x08 ) & 0xf )
-+#define LASAT_W0_BUSSPEED(v) ( ( (v) >> 0x0c ) & 0xf )
-+#define LASAT_W0_CPUCLK(v) ( ( (v) >> 0x10 ) & 0xf )
-+#define LASAT_W0_SDRAMBANKSZ(v) ( ( (v) >> 0x14 ) & 0xf )
-+#define LASAT_W0_SDRAMBANKS(v) ( ( (v) >> 0x18 ) & 0xf )
-+#define LASAT_W0_L2CACHE(v) ( ( (v) >> 0x1c ) & 0xf )
-+
-+#define LASAT_W1_EDHAC(v) ( ( (v) ) & 0xf )
-+#define LASAT_W1_HIFN(v) ( ( (v) >> 0x04 ) & 0x1 )
-+#define LASAT_W1_ISDN(v) ( ( (v) >> 0x05 ) & 0x1 )
-+#define LASAT_W1_IDE(v) ( ( (v) >> 0x06 ) & 0x1 )
-+#define LASAT_W1_HDLC(v) ( ( (v) >> 0x07 ) & 0x1 )
-+#define LASAT_W1_USVERSION(v) ( ( (v) >> 0x08 ) & 0x1 )
-+#define LASAT_W1_4MACS(v) ( ( (v) >> 0x09 ) & 0x1 )
-+#define LASAT_W1_EXTSERIAL(v) ( ( (v) >> 0x0a ) & 0x1 )
-+#define LASAT_W1_FLASHSIZE(v) ( ( (v) >> 0x0c ) & 0xf )
-+#define LASAT_W1_PCISLOTS(v) ( ( (v) >> 0x10 ) & 0xf )
-+#define LASAT_W1_PCI1OPT(v) ( ( (v) >> 0x14 ) & 0xf )
-+#define LASAT_W1_PCI2OPT(v) ( ( (v) >> 0x18 ) & 0xf )
-+#define LASAT_W1_PCI3OPT(v) ( ( (v) >> 0x1c ) & 0xf )
-+
-+/* Routines specific to LASAT boards */
-+
-+#define LASAT_BMID_MASQUERADE2 0
-+#define LASAT_BMID_MASQUERADEPRO 1
-+#define LASAT_BMID_SAFEPIPE25 2
-+#define LASAT_BMID_SAFEPIPE50 3
-+#define LASAT_BMID_SAFEPIPE100 4
-+#define LASAT_BMID_SAFEPIPE5000 5
-+#define LASAT_BMID_SAFEPIPE7000 6
-+#define LASAT_BMID_SAFEPIPE1000 7
-+//#define LASAT_BMID_SAFEPIPE30 7
-+//#define LASAT_BMID_SAFEPIPE5100 8
-+//#define LASAT_BMID_SAFEPIPE7100 9
-+#define LASAT_BMID_UNKNOWN 0xf
-+#define LASAT_MAX_BMID_NAMES 9 // no larger than 15!
-+
-+#define LASAT_HAS_EDHAC ( 1 << 0 )
-+#define LASAT_EDHAC_FAST ( 1 << 1 )
-+#define LASAT_HAS_EADI ( 1 << 2 )
-+#define LASAT_HAS_HIFN ( 1 << 3 )
-+#define LASAT_HAS_ISDN ( 1 << 4 )
-+#define LASAT_HAS_LEASEDLINE_IF ( 1 << 5 )
-+#define LASAT_HAS_HDC ( 1 << 6 )
-+
-+#define LASAT_PRID_MASQUERADE2 0
-+#define LASAT_PRID_MASQUERADEPRO 1
-+#define LASAT_PRID_SAFEPIPE25 2
-+#define LASAT_PRID_SAFEPIPE50 3
-+#define LASAT_PRID_SAFEPIPE100 4
-+#define LASAT_PRID_SAFEPIPE5000 5
-+#define LASAT_PRID_SAFEPIPE7000 6
-+#define LASAT_PRID_SAFEPIPE30 7
-+#define LASAT_PRID_SAFEPIPE5100 8
-+#define LASAT_PRID_SAFEPIPE7100 9
-+
-+#define LASAT_PRID_SAFEPIPE1110 10
-+#define LASAT_PRID_SAFEPIPE3020 11
-+#define LASAT_PRID_SAFEPIPE3030 12
-+#define LASAT_PRID_SAFEPIPE5020 13
-+#define LASAT_PRID_SAFEPIPE5030 14
-+#define LASAT_PRID_SAFEPIPE1120 15
-+#define LASAT_PRID_SAFEPIPE1130 16
-+#define LASAT_PRID_SAFEPIPE6010 17
-+#define LASAT_PRID_SAFEPIPE6110 18
-+#define LASAT_PRID_SAFEPIPE6210 19
-+#define LASAT_PRID_SAFEPIPE1020 20
-+#define LASAT_PRID_SAFEPIPE1040 21
-+#define LASAT_PRID_SAFEPIPE1060 22
-+
-+struct lasat_info {
-+ unsigned int li_cpu_hz;
-+ unsigned int li_bus_hz;
-+ unsigned int li_bmid;
-+ unsigned int li_memsize;
-+ unsigned int li_flash_size;
-+ unsigned int li_prid;
-+ unsigned char li_bmstr[16];
-+ unsigned char li_namestr[32];
-+ unsigned char li_typestr[16];
-+ /* Info on the Flash layout */
-+ unsigned int li_flash_base;
-+ unsigned long li_flashpart_base[LASAT_MTD_LAST];
-+ unsigned long li_flashpart_size[LASAT_MTD_LAST];
-+ struct lasat_eeprom_struct li_eeprom_info;
-+ unsigned int li_eeprom_upgrade_version;
-+ unsigned int li_debugaccess;
-+};
-+
-+extern struct lasat_info lasat_board_info;
-+
-+static inline unsigned long lasat_flash_partition_start(int partno)
-+{
-+ if (partno < 0 || partno >= LASAT_MTD_LAST)
-+ return 0;
-+
-+ return lasat_board_info.li_flashpart_base[partno];
-+}
-+
-+static inline unsigned long lasat_flash_partition_size(int partno)
-+{
-+ if (partno < 0 || partno >= LASAT_MTD_LAST)
-+ return 0;
-+
-+ return lasat_board_info.li_flashpart_size[partno];
-+}
-+
-+/* Called from setup() to initialize the global board_info struct */
-+extern int lasat_init_board_info(void);
-+
-+/* Write the modified EEPROM info struct */
-+extern void lasat_write_eeprom_info(void);
-+
-+#define N_MACHTYPES 2
-+/* for calibration of delays */
-+
-+#include <asm/delay.h>
-+#define NANOTH 1000000000L
-+extern inline void ndelay(unsigned int ns) {
-+ if (ns != 0)
-+ __delay(lasat_board_info.li_cpu_hz / 2 / (NANOTH / ns) + 1);
-+}
-+
-+extern void (* prom_printf)(const char *fmt, ...);
-+
-+#endif /* !defined (_LANGUAGE_ASSEMBLY) */
-+
-+#define LASAT_SERVICEMODE_MAGIC_1 0xdeadbeef
-+#define LASAT_SERVICEMODE_MAGIC_2 0xfedeabba
-+
-+/* Lasat 100 boards */
-+#define LASAT_GT_BASE (KSEG1ADDR(0x14000000))
-+
-+/* Lasat 200 boards */
-+#define Vrc5074_PHYS_BASE 0x1fa00000
-+#define Vrc5074_BASE (KSEG1ADDR(Vrc5074_PHYS_BASE))
-+#define PCI_WINDOW1 0x1a000000
-+
-+#endif /* _LASAT_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/lasatint.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasatint.h
---- linux-2.4.20/include/asm-mips/lasat/lasatint.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/lasatint.h 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,12 @@
-+#define LASATINT_END 16
-+
-+/* lasat 100 */
-+#define LASAT_INT_STATUS_REG_100 (KSEG1ADDR(0x1c880000))
-+#define LASAT_INT_MASK_REG_100 (KSEG1ADDR(0x1c890000))
-+#define LASATINT_MASK_SHIFT_100 0
-+
-+/* lasat 200 */
-+#define LASAT_INT_STATUS_REG_200 (KSEG1ADDR(0x1104003c))
-+#define LASAT_INT_MASK_REG_200 (KSEG1ADDR(0x1104003c))
-+#define LASATINT_MASK_SHIFT_200 16
-+
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/picvue.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/picvue.h
---- linux-2.4.20/include/asm-mips/lasat/picvue.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/picvue.h 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,15 @@
-+/* Lasat 100 */
-+#define PVC_REG_100 KSEG1ADDR(0x1c820000)
-+#define PVC_DATA_SHIFT_100 0
-+#define PVC_DATA_M_100 0xFF
-+#define PVC_E_100 (1 << 8)
-+#define PVC_RW_100 (1 << 9)
-+#define PVC_RS_100 (1 << 10)
-+
-+/* Lasat 200 */
-+#define PVC_REG_200 KSEG1ADDR(0x11000000)
-+#define PVC_DATA_SHIFT_200 24
-+#define PVC_DATA_M_200 (0xFF << PVC_DATA_SHIFT_200)
-+#define PVC_E_200 (1 << 16)
-+#define PVC_RW_200 (1 << 17)
-+#define PVC_RS_200 (1 << 18)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/lasat/serial.h linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/serial.h
---- linux-2.4.20/include/asm-mips/lasat/serial.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/lasat/serial.h 2002-12-13 13:45:36.000000000 -0600
-@@ -0,0 +1,13 @@
-+#include <asm/lasat/lasat.h>
-+
-+/* Lasat 100 boards serial configuration */
-+#define LASAT_BASE_BAUD_100 ( 7372800 / 16 )
-+#define LASAT_UART_REGS_BASE_100 0x1c8b0000
-+#define LASAT_UART_REGS_SHIFT_100 2
-+#define LASATINT_UART_100 8
-+
-+/* * LASAT 200 boards serial configuration */
-+#define LASAT_BASE_BAUD_200 (100000000 / 16 / 12)
-+#define LASAT_UART_REGS_BASE_200 (Vrc5074_PHYS_BASE + 0x0300)
-+#define LASAT_UART_REGS_SHIFT_200 3
-+#define LASATINT_UART_200 13
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mips32_cache.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mips32_cache.h
---- linux-2.4.20/include/asm-mips/mips32_cache.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips32_cache.h 2002-12-11 08:23:13.000000000 -0600
-@@ -37,45 +37,70 @@
-
- static inline void flush_icache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Index_Invalidate_I));
-+ unsigned long waystep = icache_size/mips_cpu.icache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.icache.ways; way++)
-+ {
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Index_Invalidate_I));
-+
-+ addr += waystep;
-+ }
- }
-
- static inline void flush_dcache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Index_Writeback_Inv_D));
-+ unsigned long waystep = dcache_size/mips_cpu.dcache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.dcache.ways; way++)
-+ {
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Index_Writeback_Inv_D));
-+
-+ addr += waystep;
-+ }
- }
-
- static inline void flush_scache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Index_Writeback_Inv_SD));
-+ unsigned long waystep = scache_size/mips_cpu.scache.ways;
-+ unsigned int way;
-+
-+ for (way = 0; way < mips_cpu.scache.ways; way++)
-+ {
-+ __asm__ __volatile__(
-+ ".set noreorder\n\t"
-+ ".set mips3\n\t"
-+ "cache %1, (%0)\n\t"
-+ ".set mips0\n\t"
-+ ".set reorder"
-+ :
-+ : "r" (addr),
-+ "i" (Index_Writeback_Inv_SD));
-+
-+ addr += waystep;
-+ }
- }
-
- static inline void flush_icache_line(unsigned long addr)
- {
-+
- __asm__ __volatile__(
- ".set noreorder\n\t"
- ".set mips3\n\t"
-@@ -210,12 +235,17 @@
-
- static inline void blast_dcache_page_indexed(unsigned long page)
- {
-- unsigned long start = page;
-- unsigned long end = (start + PAGE_SIZE);
-+ unsigned long start;
-+ unsigned long end = (page + PAGE_SIZE);
-+ unsigned long waystep = dcache_size/mips_cpu.dcache.ways;
-+ unsigned int way;
-
-- while(start < end) {
-- cache_unroll(start,Index_Writeback_Inv_D);
-- start += dc_lsize;
-+ for (way = 0; way < mips_cpu.dcache.ways; way++) {
-+ start = page + way*waystep;
-+ while(start < end) {
-+ cache_unroll(start,Index_Writeback_Inv_D);
-+ start += dc_lsize;
-+ }
- }
- }
-
-@@ -243,12 +273,17 @@
-
- static inline void blast_icache_page_indexed(unsigned long page)
- {
-- unsigned long start = page;
-- unsigned long end = (start + PAGE_SIZE);
-+ unsigned long start;
-+ unsigned long end = (page + PAGE_SIZE);
-+ unsigned long waystep = icache_size/mips_cpu.icache.ways;
-+ unsigned int way;
-
-- while(start < end) {
-- cache_unroll(start,Index_Invalidate_I);
-- start += ic_lsize;
-+ for (way = 0; way < mips_cpu.icache.ways; way++) {
-+ start = page + way*waystep;
-+ while(start < end) {
-+ cache_unroll(start,Index_Invalidate_I);
-+ start += ic_lsize;
-+ }
- }
- }
-
-@@ -276,12 +311,17 @@
-
- static inline void blast_scache_page_indexed(unsigned long page)
- {
-- unsigned long start = page;
-- unsigned long end = page + PAGE_SIZE;
-+ unsigned long start;
-+ unsigned long end = (page + PAGE_SIZE);
-+ unsigned long waystep = scache_size/mips_cpu.scache.ways;
-+ unsigned int way;
-
-- while(start < end) {
-- cache_unroll(start,Index_Writeback_Inv_SD);
-- start += sc_lsize;
-+ for (way = 0; way < mips_cpu.scache.ways; way++) {
-+ start = page + way*waystep;
-+ while(start < end) {
-+ cache_unroll(start,Index_Writeback_Inv_SD);
-+ start += sc_lsize;
-+ }
- }
- }
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Entries
---- linux-2.4.20/include/asm-mips/mips-boards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,13 @@
-+/atlas.h/1.2.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/atlasint.h/1.1.4.1/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/bonito64.h/1.1.2.4/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/generic.h/1.2.4.1/Wed May 8 03:05:01 2002/-ko/Tlinux_2_4_20
-+/malta.h/1.1.4.3/Wed Dec 11 14:25:15 2002/-ko/Tlinux_2_4_20
-+/maltaint.h/1.1/Mon Oct 9 00:36:07 2000/-ko/Tlinux_2_4_20
-+/msc01_pci.h/1.1.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/piix4.h/1.1/Mon Oct 9 00:36:07 2000/-ko/Tlinux_2_4_20
-+/prom.h/1.2/Fri Dec 29 16:35:43 2000/-ko/Tlinux_2_4_20
-+/saa9730_uart.h/1.1/Fri Dec 29 16:35:43 2000/-ko/Tlinux_2_4_20
-+/sead.h/1.1.2.2/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/seadint.h/1.1.2.1/Wed Jul 24 13:51:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Repository
---- linux-2.4.20/include/asm-mips/mips-boards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/mips-boards
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Root
---- linux-2.4.20/include/asm-mips/mips-boards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Tag
---- linux-2.4.20/include/asm-mips/mips-boards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mips-boards/malta.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/malta.h
---- linux-2.4.20/include/asm-mips/mips-boards/malta.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mips-boards/malta.h 2002-12-11 08:25:15.000000000 -0600
-@@ -32,9 +32,23 @@
- * Malta I/O ports base address for the Galileo GT64120 and Algorithmics
- * Bonito system controllers.
- */
--#define MALTA_GT_PORT_BASE (KSEG1ADDR(0x18000000))
-+#define MALTA_GT_PORT_BASE get_gt_port_base(GT_PCI0IOLD_OFS)
- #define MALTA_BONITO_PORT_BASE (KSEG1ADDR(0x1fd00000))
--#define MALTA_MSC_PORT_BASE (KSEG1ADDR(0x18000000))
-+#define MALTA_MSC_PORT_BASE get_msc_port_base(MSC01_PCI_SC2PIOBASL)
-+
-+static inline unsigned long get_gt_port_base(unsigned long reg)
-+{
-+ unsigned long addr;
-+ GT_READ(reg, addr);
-+ return KSEG1ADDR((addr & 0xffff) << 21);
-+}
-+
-+static inline unsigned long get_msc_port_base(unsigned long reg)
-+{
-+ unsigned long addr;
-+ MSC_READ(reg, addr);
-+ return KSEG1ADDR(addr);
-+}
-
- /*
- * Malta RTC-device indirect register access.
-@@ -59,4 +73,6 @@
-
- #define SMSC_WRITE(x,a) outb(x,a)
-
-+#define MALTA_JMPRS_REG (KSEG1ADDR(0x1f000210))
-+
- #endif /* !(_MIPS_MALTA_H) */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mipsregs.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mipsregs.h
---- linux-2.4.20/include/asm-mips/mipsregs.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mipsregs.h 2003-01-28 08:31:29.000000000 -0600
-@@ -8,6 +8,7 @@
- * Modified for further R[236]000 support by Paul M. Antoine, 1996.
- * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
- * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
-+ * Copyright (C) 2003 Maciej W. Rozycki
- */
- #ifndef _ASM_MIPSREGS_H
- #define _ASM_MIPSREGS_H
-@@ -27,6 +28,15 @@
- #endif
-
- /*
-+ * Configure language
-+ */
-+#ifdef __ASSEMBLY__
-+#define _ULCAST_
-+#else
-+#define _ULCAST_ (unsigned long)
-+#endif
-+
-+/*
- * Coprocessor 0 register names
- */
- #define CP0_INDEX $0
-@@ -190,26 +200,26 @@
- /*
- * R4x00 interrupt enable / cause bits
- */
--#define IE_SW0 (1<< 8)
--#define IE_SW1 (1<< 9)
--#define IE_IRQ0 (1<<10)
--#define IE_IRQ1 (1<<11)
--#define IE_IRQ2 (1<<12)
--#define IE_IRQ3 (1<<13)
--#define IE_IRQ4 (1<<14)
--#define IE_IRQ5 (1<<15)
-+#define IE_SW0 (_ULCAST_(1) << 8)
-+#define IE_SW1 (_ULCAST_(1) << 9)
-+#define IE_IRQ0 (_ULCAST_(1) << 10)
-+#define IE_IRQ1 (_ULCAST_(1) << 11)
-+#define IE_IRQ2 (_ULCAST_(1) << 12)
-+#define IE_IRQ3 (_ULCAST_(1) << 13)
-+#define IE_IRQ4 (_ULCAST_(1) << 14)
-+#define IE_IRQ5 (_ULCAST_(1) << 15)
-
- /*
- * R4x00 interrupt cause bits
- */
--#define C_SW0 (1<< 8)
--#define C_SW1 (1<< 9)
--#define C_IRQ0 (1<<10)
--#define C_IRQ1 (1<<11)
--#define C_IRQ2 (1<<12)
--#define C_IRQ3 (1<<13)
--#define C_IRQ4 (1<<14)
--#define C_IRQ5 (1<<15)
-+#define C_SW0 (_ULCAST_(1) << 8)
-+#define C_SW1 (_ULCAST_(1) << 9)
-+#define C_IRQ0 (_ULCAST_(1) << 10)
-+#define C_IRQ1 (_ULCAST_(1) << 11)
-+#define C_IRQ2 (_ULCAST_(1) << 12)
-+#define C_IRQ3 (_ULCAST_(1) << 13)
-+#define C_IRQ4 (_ULCAST_(1) << 14)
-+#define C_IRQ5 (_ULCAST_(1) << 15)
-
- /*
- * Bitfields in the R4xx0 cp0 status register
-@@ -244,9 +254,9 @@
- /*
- * Bits specific to the R4640/R4650
- */
--#define ST0_UM (1 << 4)
--#define ST0_IL (1 << 23)
--#define ST0_DL (1 << 24)
-+#define ST0_UM (_ULCAST_(1) << 4)
-+#define ST0_IL (_ULCAST_(1) << 23)
-+#define ST0_DL (_ULCAST_(1) << 24)
-
- /*
- * Bitfields in the TX39 family CP0 Configuration Register 3
-@@ -286,37 +296,37 @@
- */
- #define ST0_IM 0x0000ff00
- #define STATUSB_IP0 8
--#define STATUSF_IP0 (1 << 8)
-+#define STATUSF_IP0 (_ULCAST_(1) << 8)
- #define STATUSB_IP1 9
--#define STATUSF_IP1 (1 << 9)
-+#define STATUSF_IP1 (_ULCAST_(1) << 9)
- #define STATUSB_IP2 10
--#define STATUSF_IP2 (1 << 10)
-+#define STATUSF_IP2 (_ULCAST_(1) << 10)
- #define STATUSB_IP3 11
--#define STATUSF_IP3 (1 << 11)
-+#define STATUSF_IP3 (_ULCAST_(1) << 11)
- #define STATUSB_IP4 12
--#define STATUSF_IP4 (1 << 12)
-+#define STATUSF_IP4 (_ULCAST_(1) << 12)
- #define STATUSB_IP5 13
--#define STATUSF_IP5 (1 << 13)
-+#define STATUSF_IP5 (_ULCAST_(1) << 13)
- #define STATUSB_IP6 14
--#define STATUSF_IP6 (1 << 14)
-+#define STATUSF_IP6 (_ULCAST_(1) << 14)
- #define STATUSB_IP7 15
--#define STATUSF_IP7 (1 << 15)
-+#define STATUSF_IP7 (_ULCAST_(1) << 15)
- #define STATUSB_IP8 0
--#define STATUSF_IP8 (1 << 0)
-+#define STATUSF_IP8 (_ULCAST_(1) << 0)
- #define STATUSB_IP9 1
--#define STATUSF_IP9 (1 << 1)
-+#define STATUSF_IP9 (_ULCAST_(1) << 1)
- #define STATUSB_IP10 2
--#define STATUSF_IP10 (1 << 2)
-+#define STATUSF_IP10 (_ULCAST_(1) << 2)
- #define STATUSB_IP11 3
--#define STATUSF_IP11 (1 << 3)
-+#define STATUSF_IP11 (_ULCAST_(1) << 3)
- #define STATUSB_IP12 4
--#define STATUSF_IP12 (1 << 4)
-+#define STATUSF_IP12 (_ULCAST_(1) << 4)
- #define STATUSB_IP13 5
--#define STATUSF_IP13 (1 << 5)
-+#define STATUSF_IP13 (_ULCAST_(1) << 5)
- #define STATUSB_IP14 6
--#define STATUSF_IP14 (1 << 6)
-+#define STATUSF_IP14 (_ULCAST_(1) << 6)
- #define STATUSB_IP15 7
--#define STATUSF_IP15 (1 << 7)
-+#define STATUSF_IP15 (_ULCAST_(1) << 7)
- #define ST0_CH 0x00040000
- #define ST0_SR 0x00100000
- #define ST0_TS 0x00200000
-@@ -336,31 +346,31 @@
- * Refer to your MIPS R4xx0 manual, chapter 5 for explanation.
- */
- #define CAUSEB_EXCCODE 2
--#define CAUSEF_EXCCODE (31 << 2)
-+#define CAUSEF_EXCCODE (_ULCAST_(31) << 2)
- #define CAUSEB_IP 8
--#define CAUSEF_IP (255 << 8)
-+#define CAUSEF_IP (_ULCAST_(255) << 8)
- #define CAUSEB_IP0 8
--#define CAUSEF_IP0 (1 << 8)
-+#define CAUSEF_IP0 (_ULCAST_(1) << 8)
- #define CAUSEB_IP1 9
--#define CAUSEF_IP1 (1 << 9)
-+#define CAUSEF_IP1 (_ULCAST_(1) << 9)
- #define CAUSEB_IP2 10
--#define CAUSEF_IP2 (1 << 10)
-+#define CAUSEF_IP2 (_ULCAST_(1) << 10)
- #define CAUSEB_IP3 11
--#define CAUSEF_IP3 (1 << 11)
-+#define CAUSEF_IP3 (_ULCAST_(1) << 11)
- #define CAUSEB_IP4 12
--#define CAUSEF_IP4 (1 << 12)
-+#define CAUSEF_IP4 (_ULCAST_(1) << 12)
- #define CAUSEB_IP5 13
--#define CAUSEF_IP5 (1 << 13)
-+#define CAUSEF_IP5 (_ULCAST_(1) << 13)
- #define CAUSEB_IP6 14
--#define CAUSEF_IP6 (1 << 14)
-+#define CAUSEF_IP6 (_ULCAST_(1) << 14)
- #define CAUSEB_IP7 15
--#define CAUSEF_IP7 (1 << 15)
-+#define CAUSEF_IP7 (_ULCAST_(1) << 15)
- #define CAUSEB_IV 23
--#define CAUSEF_IV (1 << 23)
-+#define CAUSEF_IV (_ULCAST_(1) << 23)
- #define CAUSEB_CE 28
--#define CAUSEF_CE (3 << 28)
-+#define CAUSEF_CE (_ULCAST_(3) << 28)
- #define CAUSEB_BD 31
--#define CAUSEF_BD (1 << 31)
-+#define CAUSEF_BD (_ULCAST_(1) << 31)
-
- /*
- * Bits in the coprozessor 0 config register.
-@@ -374,21 +384,21 @@
- #define CONF_CM_CACHABLE_CUW 6
- #define CONF_CM_CACHABLE_ACCELERATED 7
- #define CONF_CM_CMASK 7
--#define CONF_CU (1 << 3)
--#define CONF_DB (1 << 4)
--#define CONF_IB (1 << 5)
--#define CONF_SE (1 << 12)
--#define CONF_SC (1 << 17)
--#define CONF_AC (1 << 23)
--#define CONF_HALT (1 << 25)
-+#define CONF_CU (_ULCAST_(1) << 3)
-+#define CONF_DB (_ULCAST_(1) << 4)
-+#define CONF_IB (_ULCAST_(1) << 5)
-+#define CONF_SE (_ULCAST_(1) << 12)
-+#define CONF_SC (_ULCAST_(1) << 17)
-+#define CONF_AC (_ULCAST_(1) << 23)
-+#define CONF_HALT (_ULCAST_(1) << 25)
-
- /*
- * Bits in the TX49 coprozessor 0 config register.
- */
--#define TX49_CONF_DC (1 << 16)
--#define TX49_CONF_IC (1 << 17) /* conflict with CONF_SC */
--#define TX49_CONF_HALT (1 << 18)
--#define TX49_CONF_CWFON (1 << 27)
-+#define TX49_CONF_DC (_ULCAST_(1) << 16)
-+#define TX49_CONF_IC (_ULCAST_(1) << 17) /* conflict with CONF_SC */
-+#define TX49_CONF_HALT (_ULCAST_(1) << 18)
-+#define TX49_CONF_CWFON (_ULCAST_(1) << 27)
-
- /*
- * R10000 performance counter definitions.
-@@ -478,553 +488,361 @@
- /*
- * Macros to access the system control coprocessor
- */
--#define read_32bit_cp0_register(source) \
--({ int __res; \
-- __asm__ __volatile__( \
-- ".set\tpush\n\t" \
-- ".set\treorder\n\t" \
-- "mfc0\t%0,"STR(source)"\n\t" \
-- ".set\tpop" \
-- : "=r" (__res)); \
-- __res;})
--
--#define read_32bit_cp0_set1_register(source) \
--({ int __res; \
-- __asm__ __volatile__( \
-- ".set\tpush\n\t" \
-- ".set\treorder\n\t" \
-- "cfc0\t%0,"STR(source)"\n\t" \
-- ".set\tpop" \
-- : "=r" (__res)); \
-- __res;})
--
--/*
-- * For now use this only with interrupts disabled!
-- */
--#define read_64bit_cp0_register(source) \
--({ unsigned long __res; \
-- __asm__ __volatile__( \
-- ".set\tmips3\n\t" \
-- "dmfc0\t%0,"STR(source)"\n\t" \
-- ".set\tmips0" \
-- : "=r" (__res)); \
-- __res;})
--
--#define write_32bit_cp0_register(register,value) \
-- __asm__ __volatile__( \
-- "mtc0\t%0,"STR(register)"\n\t" \
-- "nop" \
-- : : "r" (value));
--
--#define write_32bit_cp0_set1_register(register,value) \
-- __asm__ __volatile__( \
-- "ctc0\t%0,"STR(register)"\n\t" \
-- "nop" \
-- : : "r" (value));
--
--#define write_64bit_cp0_register(register,value) \
-- __asm__ __volatile__( \
-- ".set\tmips3\n\t" \
-- "dmtc0\t%0,"STR(register)"\n\t" \
-- ".set\tmips0" \
-- : : "r" (value))
--
--/*
-- * This should be changed when we get a compiler that support the MIPS32 ISA.
-- */
--#define read_mips32_cp0_config1() \
--({ int __res; \
-- __asm__ __volatile__( \
-- ".set\tnoreorder\n\t" \
-- ".set\tnoat\n\t" \
-- "#.set\tmips64\n\t" \
-- "#mfc0\t$1, $16, 1\n\t" \
-- "#.set\tmips0\n\t" \
-- ".word\t0x40018001\n\t" \
-- "move\t%0,$1\n\t" \
-- ".set\tat\n\t" \
-- ".set\treorder" \
-- :"=r" (__res)); \
-- __res;})
--
--/*
-- * Macros to access the floating point coprocessor control registers
-- */
--#define read_32bit_cp1_register(source) \
--({ int __res; \
-- __asm__ __volatile__( \
-- ".set\tpush\n\t" \
-- ".set\treorder\n\t" \
-- "cfc1\t%0,"STR(source)"\n\t" \
-- ".set\tpop" \
-- : "=r" (__res)); \
-- __res;})
--
--/* TLB operations. */
--static inline void tlb_probe(void)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "tlbp\n\t"
-- ".set pop");
--}
--
--static inline void tlb_read(void)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "tlbr\n\t"
-- ".set pop");
--}
--
--static inline void tlb_write_indexed(void)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "tlbwi\n\t"
-- ".set pop");
--}
--
--static inline void tlb_write_random(void)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "tlbwr\n\t"
-- ".set pop");
--}
--
--/* Dealing with various CP0 mmu/cache related registers. */
-
-+#define __read_32bit_c0_register(source, sel) \
-+({ int __res; \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ "mfc0\t%0, " #source "\n\t" \
-+ : "=r" (__res)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips32\n\t" \
-+ "mfc0\t%0, " #source ", " #sel "\n\t" \
-+ ".set\tmips0\n\t" \
-+ : "=r" (__res)); \
-+ __res; \
-+})
-
--static inline unsigned long get_pagemask(void)
--{
-- unsigned long val;
-+#define __read_64bit_c0_register(source, sel) \
-+({ unsigned long __res; \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips3\n\t" \
-+ "dmfc0\t%0, " #source "\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (__res)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmfc0\t%0, " #source ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (__res)); \
-+ __res; \
-+})
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $5\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define __write_32bit_c0_register(register, sel, value) \
-+do { \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ "mtc0\t%z0, " #register "\n\t" \
-+ : : "Jr" (value)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips32\n\t" \
-+ "mtc0\t%z0, " #register ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : : "Jr" (value)); \
-+} while (0)
-
--static inline void set_pagemask(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $5\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define __write_64bit_c0_register(register, sel, value) \
-+do { \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips3\n\t" \
-+ "dmtc0\t%z0, " #register "\n\t" \
-+ ".set\tmips0" \
-+ : : "Jr" (value)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmtc0\t%z0, " #register ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : : "Jr" (value)); \
-+} while (0)
-
--#if defined(CONFIG_64BIT_PHYS_ADDR) && !defined(CONFIG_CPU_MIPS32)
-+#define __read_ulong_c0_register(reg, sel) \
-+ ((sizeof(unsigned long) == 4) ? \
-+ __read_32bit_c0_register(reg, sel) : \
-+ __read_64bit_c0_register(reg, sel))
-
--#include <asm/system.h>
-+#define __write_ulong_c0_register(reg, sel, val) \
-+do { \
-+ if (sizeof(unsigned long) == 4) \
-+ __write_32bit_c0_register(reg, sel, val); \
-+ else \
-+ __write_64bit_c0_register(reg, sel, val); \
-+} while (0)
-
- /*
- * These versions are only needed for systems with more than 38 bits of
-- * physical address space.
-+ * physical address space running the 32-bit kernel. That's none atm :-)
- */
--static inline void set_entrylo0(unsigned long long val)
--{
-- unsigned long flags;
--
-- __save_and_cli(flags);
-- __asm__ __volatile__(
-- ".set\tmips3\n\t"
-- "dsll\t%L0, %L0, 32\n\t"
-- "dsrl\t%L0, %L0, 32\n\t"
-- "dsll\t%M0, %M0, 32\n\t"
-- "or\t%L0, %L0, %M0\n\t"
-- "dmtc0\t%L0, $2\n\t"
-- ".set\tmips0"
-- : : "r" (val));
-- __restore_flags(flags);
--}
--
--static inline void set_entrylo1(unsigned long long val)
--{
-- unsigned long flags;
--
-- __save_and_cli(flags);
-- __asm__ __volatile__(
-- ".set\tmips3\n\t"
-- "dsll\t%L0, %L0, 32\n\t"
-- "dsrl\t%L0, %L0, 32\n\t"
-- "dsll\t%M0, %M0, 32\n\t"
-- "or\t%L0, %L0, %M0\n\t"
-- "dmtc0\t%L0, $3\n\t"
-- ".set\tmips0"
-- : : "r" (val));
-- __restore_flags(flags);
--}
--
--static inline unsigned long long get_entrylo0(void)
--{
-- unsigned long flags, val;
--
-- __save_and_cli(flags);
-- __asm__ __volatile__(
-- ".set\tmips3\n\t"
-- "dmfc0\t%M0, $2\n\t"
-- "dsll\t%L0, %M0, 32\n\t"
-- "dsrl\t%M0, %M0, 32\n\t"
-- "dsrl\t%L0, %L0, 32\n\t"
-- ".set\tmips0"
-- : "=r" (val));
-- __restore_flags(flags);
--
-- return val;
--}
--
--static inline unsigned long long get_entrylo1(void)
--{
-- unsigned long flags, val;
-+#define __read_64bit_c0_split(source, sel) \
-+({ \
-+ unsigned long long val; \
-+ unsigned long flags; \
-+ \
-+ local_irq_save(flags); \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmfc0\t%M0, " #source "\n\t" \
-+ "dsll\t%L0, %M0, 32\n\t" \
-+ "dsrl\t%M0, %M0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (val)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmfc0\t%M0, " #source ", " #sel "\n\t" \
-+ "dsll\t%L0, %M0, 32\n\t" \
-+ "dsrl\t%M0, %M0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (val)); \
-+ local_irq_restore(flags); \
-+ \
-+ val; \
-+})
-
-- __save_and_cli(flags);
-- __asm__ __volatile__(
-- ".set\tmips3\n\t"
-- "dmfc0\t%M0, $3\n\t"
-- "dsrl\t%L0, %M0, 32\n\t"
-- "dsrl\t%M0, %M0, 32\n\t"
-- "dsll\t%L0, %L0, 32\n\t"
-- ".set\tmips0"
-- : "=r" (val));
-- __restore_flags(flags);
-+#define __write_64bit_c0_split(source, sel, val) \
-+do { \
-+ unsigned long flags; \
-+ \
-+ local_irq_save(flags); \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dsll\t%L0, %L0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ "dsll\t%M0, %M0, 32\n\t" \
-+ "or\t%L0, %L0, %M0\n\t" \
-+ "dmtc0\t%L0, " #source "\n\t" \
-+ ".set\tmips0" \
-+ : : "r" (val)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dsll\t%L0, %L0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ "dsll\t%M0, %M0, 32\n\t" \
-+ "or\t%L0, %L0, %M0\n\t" \
-+ "dmtc0\t%L0, " #source ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : : "r" (val)); \
-+ local_irq_restore(flags); \
-+} while (0)
-
-- return val;
--}
-+#define read_c0_index() __read_32bit_c0_register($0, 0)
-+#define write_c0_index(val) __write_32bit_c0_register($0, 0, val)
-
--#else
-+#define read_c0_entrylo0() __read_ulong_c0_register($2, 0)
-+#define write_c0_entrylo0(val) __write_ulong_c0_register($2, 0, val)
-
--static inline void set_entrylo0(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $2\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define read_c0_entrylo1() __read_ulong_c0_register($3, 0)
-+#define write_c0_entrylo1(val) __write_ulong_c0_register($3, 0, val)
-
--static inline void set_entrylo1(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $3\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define read_c0_conf() __read_32bit_c0_register($3, 0)
-+#define write_c0_conf(val) __write_32bit_c0_register($3, 0, val)
-
--static inline unsigned long get_entrylo0(void)
--{
-- unsigned long val;
-+#define read_c0_context() __read_ulong_c0_register($4, 0)
-+#define write_c0_context(val) __write_ulong_c0_register($4, 0, val)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $2\n\t"
-- ".set pop" : "=r" (val));
-+#define read_c0_pagemask() __read_32bit_c0_register($5, 0)
-+#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val)
-
-- return val;
--}
-+#define read_c0_wired() __read_32bit_c0_register($6, 0)
-+#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val)
-
--static inline unsigned long get_entrylo1(void)
--{
-- unsigned long val;
-+#define read_c0_info() __read_32bit_c0_register($7, 0)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $3\n\t"
-- ".set pop" : "=r" (val));
-+#define read_c0_cache() __read_32bit_c0_register($7, 0) /* TX39xx */
-+#define write_c0_cache(val) __write_32bit_c0_register($7, 0, val)
-
-- return val;
--}
-+#define read_c0_count() __read_32bit_c0_register($9, 0)
-+#define write_c0_count(val) __write_32bit_c0_register($9, 0, val)
-
--#endif
-+#define read_c0_entryhi() __read_ulong_c0_register($10, 0)
-+#define write_c0_entryhi(val) __write_ulong_c0_register($10, 0, val)
-
--/* CP0_ENTRYHI register */
--static inline unsigned long get_entryhi(void)
--{
-- unsigned long val;
-+#define read_c0_compare() __read_32bit_c0_register($11, 0)
-+#define write_c0_compare(val) __write_32bit_c0_register($11, 0, val)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $10\n\t"
-- ".set pop"
-- : "=r" (val));
-+#define read_c0_status() __read_32bit_c0_register($12, 0)
-+#define write_c0_status(val) __write_32bit_c0_register($12, 0, val)
-
-- return val;
--}
-+#define read_c0_cause() __read_32bit_c0_register($13, 0)
-+#define write_c0_cause(val) __write_32bit_c0_register($13, 0, val)
-
--static inline void set_entryhi(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $10\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define read_c0_prid() __read_32bit_c0_register($15, 0)
-
--/* CP0_INDEX register */
--static inline unsigned long get_index(void)
--{
-- unsigned long val;
-+#define read_c0_config() __read_32bit_c0_register($16, 0)
-+#define read_c0_config1() __read_32bit_c0_register($16, 1)
-+#define read_c0_config2() __read_32bit_c0_register($16, 2)
-+#define read_c0_config3() __read_32bit_c0_register($16, 3)
-+#define write_c0_config(val) __write_32bit_c0_register($16, 0, val)
-+#define write_c0_config1(val) __write_32bit_c0_register($16, 1, val)
-+#define write_c0_config2(val) __write_32bit_c0_register($16, 2, val)
-+#define write_c0_config3(val) __write_32bit_c0_register($16, 3, val)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $0\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+/*
-+ * The WatchLo register. There may be upto 8 of them.
-+ */
-+#define read_c0_watchlo0() __read_ulong_c0_register($18, 0)
-+#define read_c0_watchlo1() __read_ulong_c0_register($18, 1)
-+#define read_c0_watchlo2() __read_ulong_c0_register($18, 2)
-+#define read_c0_watchlo3() __read_ulong_c0_register($18, 3)
-+#define read_c0_watchlo4() __read_ulong_c0_register($18, 4)
-+#define read_c0_watchlo5() __read_ulong_c0_register($18, 5)
-+#define read_c0_watchlo6() __read_ulong_c0_register($18, 6)
-+#define read_c0_watchlo7() __read_ulong_c0_register($18, 7)
-+#define write_c0_watchlo0(val) __write_ulong_c0_register($18, 0, val)
-+#define write_c0_watchlo1(val) __write_ulong_c0_register($18, 1, val)
-+#define write_c0_watchlo2(val) __write_ulong_c0_register($18, 2, val)
-+#define write_c0_watchlo3(val) __write_ulong_c0_register($18, 3, val)
-+#define write_c0_watchlo4(val) __write_ulong_c0_register($18, 4, val)
-+#define write_c0_watchlo5(val) __write_ulong_c0_register($18, 5, val)
-+#define write_c0_watchlo6(val) __write_ulong_c0_register($18, 6, val)
-+#define write_c0_watchlo7(val) __write_ulong_c0_register($18, 7, val)
-
--static inline void set_index(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $0\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+/*
-+ * The WatchHi register. There may be upto 8 of them.
-+ */
-+#define read_c0_watchhi0() __read_32bit_c0_register($19, 0)
-+#define read_c0_watchhi1() __read_32bit_c0_register($19, 1)
-+#define read_c0_watchhi2() __read_32bit_c0_register($19, 2)
-+#define read_c0_watchhi3() __read_32bit_c0_register($19, 3)
-+#define read_c0_watchhi4() __read_32bit_c0_register($19, 4)
-+#define read_c0_watchhi5() __read_32bit_c0_register($19, 5)
-+#define read_c0_watchhi6() __read_32bit_c0_register($19, 6)
-+#define read_c0_watchhi7() __read_32bit_c0_register($19, 7)
-
--/* CP0_WIRED register */
--static inline unsigned long get_wired(void)
--{
-- unsigned long val;
-+#define write_c0_watchhi0(val) __write_32bit_c0_register($19, 0, val)
-+#define write_c0_watchhi1(val) __write_32bit_c0_register($19, 1, val)
-+#define write_c0_watchhi2(val) __write_32bit_c0_register($19, 2, val)
-+#define write_c0_watchhi3(val) __write_32bit_c0_register($19, 3, val)
-+#define write_c0_watchhi4(val) __write_32bit_c0_register($19, 4, val)
-+#define write_c0_watchhi5(val) __write_32bit_c0_register($19, 5, val)
-+#define write_c0_watchhi6(val) __write_32bit_c0_register($19, 6, val)
-+#define write_c0_watchhi7(val) __write_32bit_c0_register($19, 7, val)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $6\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_xcontext() __read_ulong_c0_register($20, 0)
-+#define write_c0_xcontext(val) __write_ulong_c0_register($20, 0, val)
-
--static inline void set_wired(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $6\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define read_c0_intcontrol() __read_32bit_c0_register($20, 1)
-+#define write_c0_intcontrol(val) __write_32bit_c0_register($20, 1, val)
-
--/* CP0_STATUS register */
--static inline unsigned int get_status(void)
--{
-- unsigned long val;
-+#define read_c0_framemask() __read_32bit_c0_register($21, 0)
-+#define write_c0_framemask(val) __write_32bit_c0_register($21, 0, val)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $12\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_debug() __read_32bit_c0_register($23, 0)
-+#define write_c0_debug(val) __write_32bit_c0_register($23, 0, val)
-
--static inline void set_status(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $12\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define read_c0_depc() __read_ulong_c0_register($24, 0)
-+#define write_c0_depc(val) __write_ulong_c0_register($24, 0, val)
-
--static inline unsigned long get_info(void)
--{
-- unsigned long val;
-+#define read_c0_ecc() __read_32bit_c0_register($26, 0)
-+#define write_c0_ecc(val) __write_32bit_c0_register($26, 0, val)
-
-- __asm__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $7\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_derraddr0() __read_ulong_c0_register($26, 1)
-+#define write_c0_derraddr0(val) __write_ulong_c0_register($26, 1, val)
-
--/* CP0_TAGLO and CP0_TAGHI registers */
--static inline unsigned long get_taglo(void)
--{
-- unsigned long val;
-+#define read_c0_cacheerr() __read_32bit_c0_register($27, 0)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $28\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_derraddr1() __read_ulong_c0_register($27, 1)
-+#define write_c0_derraddr1(val) __write_ulong_c0_register($27, 1, val)
-
--static inline void set_taglo(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $28\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+#define read_c0_taglo() __read_32bit_c0_register($28, 0)
-+#define write_c0_taglo(val) __write_32bit_c0_register($28, 0, val)
-
--static inline unsigned long get_taghi(void)
--{
-- unsigned long val;
-+#define read_c0_taghi() __read_32bit_c0_register($29, 0)
-+#define write_c0_taghi(val) __write_32bit_c0_register($29, 0, val)
-
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $29\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_errorepc() __read_ulong_c0_register($30, 0)
-+#define write_c0_errorepc(val) __write_ulong_c0_register($30, 0, val)
-
--static inline void set_taghi(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $29\n\t"
-- ".set pop"
-- : : "Jr" (val));
--}
-+/*
-+ * Macros to access the floating point coprocessor control registers
-+ */
-+#define read_32bit_cp1_register(source) \
-+({ int __res; \
-+ __asm__ __volatile__( \
-+ ".set\tpush\n\t" \
-+ ".set\treorder\n\t" \
-+ "cfc1\t%0,"STR(source)"\n\t" \
-+ ".set\tpop" \
-+ : "=r" (__res)); \
-+ __res;})
-
--static inline unsigned long get_context(void)
-+/* TLB operations. */
-+static inline void tlb_probe(void)
- {
-- unsigned long val;
--
- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $4\n\t"
-- ".set pop"
-- : "=r" (val));
--
-- return val;
-+ ".set noreorder\n\t"
-+ "tlbp\n\t"
-+ ".set reorder");
- }
-
--static inline void set_context(unsigned long val)
-+static inline void tlb_read(void)
- {
- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $4\n\t"
-- ".set pop"
-- : : "Jr" (val));
-+ ".set noreorder\n\t"
-+ "tlbr\n\t"
-+ ".set reorder");
- }
-
--static inline unsigned long get_errorepc(void)
-+static inline void tlb_write_indexed(void)
- {
-- unsigned long val;
--
- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $30\n\t"
-- ".set pop"
-- : "=r" (val));
--
-- return val;
-+ ".set noreorder\n\t"
-+ "tlbwi\n\t"
-+ ".set reorder");
- }
-
--static inline void set_errorepc(unsigned long val)
-+static inline void tlb_write_random(void)
- {
- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "mtc0 %z0, $30\n\t"
-- ".set pop"
-- : : "Jr" (val));
-+ ".set noreorder\n\t"
-+ "tlbwr\n\t"
-+ ".set reorder");
- }
-
- /*
-- * Manipulate the status register.
-- * Mostly used to access the interrupt bits.
-+ * Manipulate bits in a c0 register.
- */
--#define __BUILD_SET_CP0(name,register) \
-+#define __BUILD_SET_C0(name,register) \
- static inline unsigned int \
--set_cp0_##name(unsigned int set) \
-+set_c0_##name(unsigned int set) \
- { \
- unsigned int res; \
- \
-- res = read_32bit_cp0_register(register); \
-+ res = read_c0_##name(); \
- res |= set; \
-- write_32bit_cp0_register(register, res); \
-+ write_c0_##name(res); \
- \
- return res; \
- } \
- \
- static inline unsigned int \
--clear_cp0_##name(unsigned int clear) \
-+clear_c0_##name(unsigned int clear) \
- { \
- unsigned int res; \
- \
-- res = read_32bit_cp0_register(register); \
-+ res = read_c0_##name(); \
- res &= ~clear; \
-- write_32bit_cp0_register(register, res); \
-+ write_c0_##name(res); \
- \
- return res; \
- } \
- \
- static inline unsigned int \
--change_cp0_##name(unsigned int change, unsigned int new) \
-+change_c0_##name(unsigned int change, unsigned int new) \
- { \
- unsigned int res; \
- \
-- res = read_32bit_cp0_register(register); \
-+ res = read_c0_##name(); \
- res &= ~change; \
- res |= (new & change); \
-- write_32bit_cp0_register(register, res); \
-+ write_c0_##name(res); \
- \
- return res; \
- }
-
--__BUILD_SET_CP0(status,CP0_STATUS)
--__BUILD_SET_CP0(cause,CP0_CAUSE)
--__BUILD_SET_CP0(config,CP0_CONFIG)
--
--#define __enable_fpu() \
--do { \
-- set_cp0_status(ST0_CU1); \
-- asm("nop;nop;nop;nop"); /* max. hazard */ \
--} while (0)
--
--#define __disable_fpu() \
--do { \
-- clear_cp0_status(ST0_CU1); \
-- /* We don't care about the cp0 hazard here */ \
--} while (0)
--
--#define enable_fpu() \
--do { \
-- if (mips_cpu.options & MIPS_CPU_FPU) \
-- __enable_fpu(); \
--} while (0)
--
--#define disable_fpu() \
--do { \
-- if (mips_cpu.options & MIPS_CPU_FPU) \
-- __disable_fpu(); \
--} while (0)
-+__BUILD_SET_C0(status,CP0_STATUS)
-+__BUILD_SET_C0(cause,CP0_CAUSE)
-+__BUILD_SET_C0(config,CP0_CONFIG)
-
- #endif /* !__ASSEMBLY__ */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mmu_context.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu_context.h
---- linux-2.4.20/include/asm-mips/mmu_context.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu_context.h 2003-02-14 05:04:00.000000000 -0600
-@@ -27,16 +27,13 @@
- #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
- pgd_current[smp_processor_id()] = (unsigned long)(pgd)
- #define TLBMISS_HANDLER_SETUP() \
-- set_context((unsigned long) smp_processor_id() << (23 + 3)); \
-+ write_c0_context((unsigned long) smp_processor_id() << (23 + 3)); \
- TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
- extern unsigned long pgd_current[];
-
--#ifndef CONFIG_SMP
--#define CPU_CONTEXT(cpu, mm) (mm)->context
--#else
--#define CPU_CONTEXT(cpu, mm) (*((unsigned long *)((mm)->context) + cpu))
--#endif
--#define ASID_CACHE(cpu) cpu_data[cpu].asid_cache
-+#define cpu_context(cpu, mm) ((mm)->context[cpu])
-+#define cpu_asid(cpu, mm) (cpu_context((cpu), (mm)) & ASID_MASK)
-+#define asid_cache(cpu) cpu_data[cpu].asid_cache
-
- #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_TX39XX)
-
-@@ -64,7 +61,7 @@
- static inline void
- get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
- {
-- unsigned long asid = ASID_CACHE(cpu);
-+ unsigned long asid = asid_cache(cpu);
-
- if (! ((asid += ASID_INC) & ASID_MASK) ) {
- flush_icache_all();
-@@ -72,7 +69,7 @@
- if (!asid) /* fix version if needed */
- asid = ASID_FIRST_VERSION;
- }
-- CPU_CONTEXT(cpu, mm) = ASID_CACHE(cpu) = asid;
-+ cpu_context(cpu, mm) = asid_cache(cpu) = asid;
- }
-
- /*
-@@ -82,31 +79,35 @@
- static inline int
- init_new_context(struct task_struct *tsk, struct mm_struct *mm)
- {
--#ifndef CONFIG_SMP
-- mm->context = 0;
--#else
-- mm->context = (unsigned long)kmalloc(smp_num_cpus *
-- sizeof(unsigned long), GFP_KERNEL);
-- /*
-- * Init the "context" values so that a tlbpid allocation
-- * happens on the first switch.
-- */
-- if (mm->context == 0)
-- return -ENOMEM;
-- memset((void *)mm->context, 0, smp_num_cpus * sizeof(unsigned long));
--#endif
-+ int i;
-+
-+ for (i = 0; i < smp_num_cpus; i++)
-+ cpu_context(i, mm) = 0;
- return 0;
- }
-
- static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
- struct task_struct *tsk, unsigned cpu)
- {
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
- /* Check if our ASID is of an older version and thus invalid */
-- if ((CPU_CONTEXT(cpu, next) ^ ASID_CACHE(cpu)) & ASID_VERSION_MASK)
-+ if ((cpu_context(cpu, next) ^ asid_cache(cpu)) & ASID_VERSION_MASK)
- get_new_mmu_context(next, cpu);
-
-- set_entryhi(CPU_CONTEXT(cpu, next));
-+ write_c0_entryhi(cpu_context(cpu, next));
- TLBMISS_HANDLER_SETUP_PGD(next->pgd);
-+
-+ /*
-+ * Mark current->active_mm as not "active" anymore.
-+ * We don't want to mislead possible IPI tlb flush routines.
-+ */
-+ clear_bit(cpu, &prev->cpu_vm_mask);
-+ set_bit(cpu, &next->cpu_vm_mask);
-+
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -115,10 +116,6 @@
- */
- static inline void destroy_context(struct mm_struct *mm)
- {
--#ifdef CONFIG_SMP
-- if (mm->context)
-- kfree((void *)mm->context);
--#endif
- }
-
- /*
-@@ -128,11 +125,39 @@
- static inline void
- activate_mm(struct mm_struct *prev, struct mm_struct *next)
- {
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
- /* Unconditionally get a new ASID. */
- get_new_mmu_context(next, smp_processor_id());
-
-- set_entryhi(CPU_CONTEXT(smp_processor_id(), next));
-+ write_c0_entryhi(cpu_context(smp_processor_id(), next));
- TLBMISS_HANDLER_SETUP_PGD(next->pgd);
-+
-+ local_irq_restore(flags);
-+}
-+
-+/*
-+ * If mm is currently active_mm, we can't really drop it. Instead,
-+ * we will get a new one for it.
-+ */
-+static inline void
-+drop_mmu_context(struct mm_struct *mm, unsigned cpu)
-+{
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
-+ if (test_bit(cpu, &mm->cpu_vm_mask)) {
-+ get_new_mmu_context(mm, cpu);
-+ write_c0_entryhi(cpu_asid(cpu, mm));
-+ } else {
-+ /* will get a new context next time */
-+ cpu_context(cpu, mm) = 0;
-+ }
-+
-+ local_irq_restore(flags);
- }
-
- #endif /* _ASM_MMU_CONTEXT_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/mmu.h linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu.h
---- linux-2.4.20/include/asm-mips/mmu.h 2000-12-29 16:07:23.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/mmu.h 2003-01-16 22:23:41.000000000 -0600
-@@ -1,7 +1,6 @@
--#ifndef __MMU_H
--#define __MMU_H
-+#ifndef __ASM_MMU_H
-+#define __ASM_MMU_H
-
--/* Default "unsigned long" context */
--typedef unsigned long mm_context_t;
-+typedef unsigned long mm_context_t[NR_CPUS];
-
--#endif
-+#endif /* __ASM_MMU_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/module.h linux-2.4.20-mipscvs-20050106/include/asm-mips/module.h
---- linux-2.4.20/include/asm-mips/module.h 2001-09-09 12:43:01.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/module.h 2002-11-06 19:47:46.000000000 -0600
-@@ -56,8 +56,8 @@
- extern const struct exception_table_entry __start___dbe_table[];
- extern const struct exception_table_entry __stop___dbe_table[];
- static struct archdata archdata = {
-- dbe_table_start: __start___dbe_table,
-- dbe_table_end: __stop___dbe_table,
-+ .dbe_table_start = __start___dbe_table,
-+ .dbe_table_end = __stop___dbe_table,
- };
-
- mod->archdata_start = (char *)&archdata;
-diff -urNd -urNd linux-2.4.20/include/asm-mips/page.h linux-2.4.20-mipscvs-20050106/include/asm-mips/page.h
---- linux-2.4.20/include/asm-mips/page.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/page.h 2002-12-19 20:34:17.000000000 -0600
-@@ -131,7 +131,7 @@
- /*
- * Memory above this physical address will be considered highmem.
- */
--#define HIGHMEM_START (0x20000000)
-+#define HIGHMEM_START 0x20000000UL
-
- #endif /* defined (__KERNEL__) */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/param.h linux-2.4.20-mipscvs-20050106/include/asm-mips/param.h
---- linux-2.4.20/include/asm-mips/param.h 2001-07-02 15:56:40.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/param.h 2003-01-20 14:21:43.000000000 -0600
-@@ -24,13 +24,13 @@
- * This works only if 100 / HZ <= 1
- */
- # define QUOTIENT ((1UL << (32 - LOG_2_HZ)) * 100)
--# define hz_to_std(a) \
-- ({ unsigned int __res; \
-- unsigned long __lo; \
-- __asm__("multu\t%2,%3\n\t" \
-- :"=h" (__res), "=l" (__lo) \
-- :"r" (a),"r" (QUOTIENT)); \
-- (__typeof__(a)) __res;})
-+# define hz_to_std(a) \
-+ ({ unsigned long __res; \
-+ unsigned long __lo; \
-+ __asm__("multu\t%2,%3\n\t" \
-+ :"=h" (__res), "=l" (__lo) \
-+ :"r" (a), "r" (QUOTIENT)); \
-+ (__typeof__(a)) __res;})
-
- #else /* Not a DECstation */
-
-@@ -41,7 +41,7 @@
- # define HZ 100
- # define hz_to_std(a) (a)
-
--#endif /* Not a DECstation */
-+#endif /* Not a DECstation */
-
- #else /* defined(__KERNEL__) */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/pci.h linux-2.4.20-mipscvs-20050106/include/asm-mips/pci.h
---- linux-2.4.20/include/asm-mips/pci.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/pci.h 2002-10-01 06:14:37.000000000 -0500
-@@ -100,7 +100,7 @@
-
- dma_cache_wback_inv(addr, size);
-
-- return bus_to_baddr(hwdev->bus->number, __pa(ptr));
-+ return bus_to_baddr(hwdev->bus, __pa(ptr));
- }
-
- /*
-@@ -120,7 +120,7 @@
- if (direction != PCI_DMA_TODEVICE) {
- unsigned long addr;
-
-- addr = baddr_to_bus(hwdev, dma_addr) + PAGE_OFFSET;
-+ addr = baddr_to_bus(hwdev->bus, dma_addr) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, size);
- }
- }
-@@ -141,7 +141,7 @@
- addr = (unsigned long) page_address(page) + offset;
- dma_cache_wback_inv(addr, size);
-
-- return bus_to_baddr(hwdev, page_to_phys(page) + offset);
-+ return bus_to_baddr(hwdev->bus, page_to_phys(page) + offset);
- }
-
- static inline void pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
-@@ -153,7 +153,7 @@
- if (direction != PCI_DMA_TODEVICE) {
- unsigned long addr;
-
-- addr = baddr_to_bus(hwdev, dma_address) + PAGE_OFFSET;
-+ addr = baddr_to_bus(hwdev->bus, dma_address) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, size);
- }
- }
-@@ -199,10 +199,14 @@
- if (sg->address) {
- dma_cache_wback_inv((unsigned long)sg->address,
- sg->length);
-- sg->dma_address = bus_to_baddr(hwdev, __pa(sg->address));
-- } else
-+ sg->dma_address = bus_to_baddr(hwdev->bus, __pa(sg->address));
-+ } else {
- sg->dma_address = page_to_bus(sg->page) +
- sg->offset;
-+ dma_cache_wback_inv((unsigned long)
-+ (page_address(sg->page) + sg->offset),
-+ sg->length);
-+ }
- }
-
- return nents;
-@@ -255,7 +259,7 @@
- if (direction == PCI_DMA_NONE)
- out_of_line_bug();
-
-- addr = baddr_to_bus(hwdev, dma_handle) + PAGE_OFFSET;
-+ addr = baddr_to_bus(hwdev->bus, dma_handle) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, size);
- }
-
-@@ -313,13 +317,13 @@
- {
- dma64_addr_t addr = page_to_phys(page) + offset;
-
-- return (dma64_addr_t) bus_to_baddr(hwdev->bus->number, addr);
-+ return (dma64_addr_t) bus_to_baddr(pdev->bus, addr);
- }
-
- static inline struct page *pci_dac_dma_to_page(struct pci_dev *pdev,
- dma64_addr_t dma_addr)
- {
-- unsigned long poff = baddr_to_bus(hwdev, dma_addr) >> PAGE_SHIFT;
-+ unsigned long poff = baddr_to_bus(pdev->bus, dma_addr) >> PAGE_SHIFT;
-
- return mem_map + poff;
- }
-@@ -338,7 +342,7 @@
- if (direction == PCI_DMA_NONE)
- BUG();
-
-- addr = baddr_to_bus(hwdev->bus->number, dma_addr) + PAGE_OFFSET;
-+ addr = baddr_to_bus(pdev->bus, dma_addr) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, len);
- }
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/posix_types.h linux-2.4.20-mipscvs-20050106/include/asm-mips/posix_types.h
---- linux-2.4.20/include/asm-mips/posix_types.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/posix_types.h 2003-01-20 06:17:54.000000000 -0600
-@@ -17,7 +17,7 @@
- typedef unsigned int __kernel_dev_t;
- typedef unsigned long __kernel_ino_t;
- typedef unsigned int __kernel_mode_t;
--typedef int __kernel_nlink_t;
-+typedef unsigned long __kernel_nlink_t;
- typedef long __kernel_off_t;
- typedef int __kernel_pid_t;
- typedef int __kernel_ipc_pid_t;
-diff -urNd -urNd linux-2.4.20/include/asm-mips/processor.h linux-2.4.20-mipscvs-20050106/include/asm-mips/processor.h
---- linux-2.4.20/include/asm-mips/processor.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/processor.h 2002-12-12 05:46:25.000000000 -0600
-@@ -40,10 +40,6 @@
- * System setup and hardware flags..
- */
- extern void (*cpu_wait)(void);
--extern void r3081_wait(void);
--extern void r39xx_wait(void);
--extern void r4k_wait(void);
--extern void au1k_wait(void);
-
- extern struct cpuinfo_mips cpu_data[];
- extern unsigned int vced_count, vcei_count;
-@@ -72,9 +68,6 @@
- #define wp_works_ok 1
- #define wp_works_ok__is_a_macro /* for versions in ksyms.c */
-
--/* Lazy FPU handling on uni-processor */
--extern struct task_struct *last_task_used_math;
--
- /*
- * User space process size: 2GB. This is hardcoded into a few places,
- * so don't change it unless you know what you are doing. TASK_SIZE
-@@ -211,20 +204,16 @@
- /*
- * Do necessary setup to start up a newly executed thread.
- */
--#define start_thread(regs, new_pc, new_sp) do { \
-- /* New thread loses kernel and FPU privileges. */ \
-- regs->cp0_status = (regs->cp0_status & ~(ST0_CU0|ST0_KSU|ST0_CU1)) | KU_USER;\
-- regs->cp0_epc = new_pc; \
-- regs->regs[29] = new_sp; \
-- current->thread.current_ds = USER_DS; \
--} while (0)
-+extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
-
-+struct task_struct;
- unsigned long get_wchan(struct task_struct *p);
-
- #define __PT_REG(reg) ((long)&((struct pt_regs *)0)->reg - sizeof(struct pt_regs))
- #define __KSTK_TOS(tsk) ((unsigned long)(tsk) + KERNEL_STACK_SIZE - 32)
- #define KSTK_EIP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_epc)))
- #define KSTK_ESP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(regs[29])))
-+#define KSTK_STATUS(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_status)))
-
- /* Allocation and freeing of basic task resources. */
- /*
-diff -urNd -urNd linux-2.4.20/include/asm-mips/r4kcache.h linux-2.4.20-mipscvs-20050106/include/asm-mips/r4kcache.h
---- linux-2.4.20/include/asm-mips/r4kcache.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/r4kcache.h 2002-10-03 21:39:52.000000000 -0500
-@@ -1,118 +1,67 @@
- /*
-- * r4kcache.h: Inline assembly cache operations.
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
- *
-- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-+ * Inline assembly cache operations.
- *
-- * FIXME: Handle split L2 caches.
-+ * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-+ * Copyright (C) 1997 - 2002 Ralf Baechle (ralf@gnu.org)
- */
--#ifndef _MIPS_R4KCACHE_H
--#define _MIPS_R4KCACHE_H
-+#ifndef __ASM_R4KCACHE_H
-+#define __ASM_R4KCACHE_H
-
- #include <asm/asm.h>
- #include <asm/cacheops.h>
-
-+#define cache_op(op,addr) \
-+ __asm__ __volatile__( \
-+ " .set noreorder \n" \
-+ " .set mips3\n\t \n" \
-+ " cache %0, %1 \n" \
-+ " .set mips0 \n" \
-+ " .set reorder" \
-+ : \
-+ : "i" (op), "m" (*(unsigned char *)(addr)))
-+
- static inline void flush_icache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Index_Invalidate_I));
-+ cache_op(Index_Invalidate_I, addr);
- }
-
- static inline void flush_dcache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Index_Writeback_Inv_D));
-+ cache_op(Index_Writeback_Inv_D, addr);
- }
-
- static inline void flush_scache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Index_Writeback_Inv_SD));
-+ cache_op(Index_Writeback_Inv_SD, addr);
- }
-
- static inline void flush_icache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Hit_Invalidate_I));
-+ cache_op(Hit_Invalidate_I, addr);
- }
-
- static inline void flush_dcache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Hit_Writeback_Inv_D));
-+ cache_op(Hit_Writeback_Inv_D, addr);
- }
-
- static inline void invalidate_dcache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Hit_Invalidate_D));
-+ cache_op(Hit_Invalidate_D, addr);
- }
-
- static inline void invalidate_scache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Hit_Invalidate_SD));
-+ cache_op(Hit_Invalidate_SD, addr);
- }
-
- static inline void flush_scache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- ".set mips3\n\t"
-- "cache %1, (%0)\n\t"
-- ".set mips0\n\t"
-- ".set reorder"
-- :
-- : "r" (addr),
-- "i" (Hit_Writeback_Inv_SD));
-+ cache_op(Hit_Writeback_Inv_SD, addr);
- }
-
- /*
-@@ -123,15 +72,14 @@
- __asm__ __volatile__(
- ".set noreorder\n\t"
- ".set mips3\n"
-- "1:\tcache %1,(%0)\n"
-+ "1:\tcache %0,(%1)\n"
- "2:\t.set mips0\n\t"
- ".set reorder\n\t"
- ".section\t__ex_table,\"a\"\n\t"
- STR(PTR)"\t1b,2b\n\t"
- ".previous"
- :
-- : "r" (addr),
-- "i" (Hit_Invalidate_I));
-+ : "i" (Hit_Invalidate_I), "r" (addr));
- }
-
- static inline void protected_writeback_dcache_line(unsigned long addr)
-@@ -139,15 +87,14 @@
- __asm__ __volatile__(
- ".set noreorder\n\t"
- ".set mips3\n"
-- "1:\tcache %1,(%0)\n"
-+ "1:\tcache %0,(%1)\n"
- "2:\t.set mips0\n\t"
- ".set reorder\n\t"
- ".section\t__ex_table,\"a\"\n\t"
- STR(PTR)"\t1b,2b\n\t"
- ".previous"
- :
-- : "r" (addr),
-- "i" (Hit_Writeback_D));
-+ : "i" (Hit_Writeback_D), "r" (addr));
- }
-
- #define cache16_unroll32(base,op) \
-@@ -181,7 +128,7 @@
- unsigned long start = KSEG0;
- unsigned long end = (start + dcache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_D);
- start += 0x200;
- }
-@@ -193,7 +140,7 @@
- unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
- int way;
-
-- while(start < end) {
-+ while (start < end) {
- /* LSB of VA select the way */
- for (way = 0; way < mips_cpu.dcache.ways; way++)
- cache16_unroll32(start|way,Index_Writeback_Inv_D);
-@@ -206,7 +153,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Hit_Writeback_Inv_D);
- start += 0x200;
- }
-@@ -217,7 +164,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_D);
- start += 0x200;
- }
-@@ -229,7 +176,7 @@
- unsigned long end = (start + PAGE_SIZE);
- int way;
-
-- while(start < end) {
-+ while (start < end) {
- /* LSB of VA select the way */
- for (way = 0; way < mips_cpu.dcache.ways; way++)
- cache16_unroll32(start|way,Index_Writeback_Inv_D);
-@@ -242,7 +189,7 @@
- unsigned long start = KSEG0;
- unsigned long end = (start + icache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Invalidate_I);
- start += 0x200;
- }
-@@ -254,7 +201,7 @@
- unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
- int way;
-
-- while(start < end) {
-+ while (start < end) {
- /* LSB of VA select the way */
- for (way = 0; way < mips_cpu.icache.ways; way++)
- cache16_unroll32(start|way,Index_Invalidate_I);
-@@ -267,7 +214,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Hit_Invalidate_I);
- start += 0x200;
- }
-@@ -278,7 +225,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Invalidate_I);
- start += 0x200;
- }
-@@ -289,7 +236,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x200;
- }
-@@ -300,7 +247,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Hit_Writeback_Inv_SD);
- start += 0x200;
- }
-@@ -311,7 +258,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x200;
- }
-@@ -348,7 +295,7 @@
- unsigned long start = KSEG0;
- unsigned long end = (start + dcache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_D);
- start += 0x400;
- }
-@@ -360,7 +307,7 @@
- unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
- int way;
-
-- while(start < end) {
-+ while (start < end) {
- /* LSB of VA select the way */
- for (way = 0; way < mips_cpu.dcache.ways; way++)
- cache32_unroll32(start|way,Index_Writeback_Inv_D);
-@@ -391,7 +338,7 @@
- *(volatile unsigned long *)KSEG1;
-
- __asm__ __volatile__("nop;nop;nop;nop");
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Hit_Writeback_Inv_D);
- start += 0x400;
- }
-@@ -402,7 +349,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_D);
- start += 0x400;
- }
-@@ -414,7 +361,7 @@
- unsigned long end = (start + PAGE_SIZE);
- int way;
-
-- while(start < end) {
-+ while (start < end) {
- /* LSB of VA select the way */
- for (way = 0; way < mips_cpu.dcache.ways; way++)
- cache32_unroll32(start|way,Index_Writeback_Inv_D);
-@@ -427,7 +374,7 @@
- unsigned long start = KSEG0;
- unsigned long end = (start + icache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Invalidate_I);
- start += 0x400;
- }
-@@ -439,7 +386,7 @@
- unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
- int way;
-
-- while(start < end) {
-+ while (start < end) {
- /* LSB of VA select the way */
- for (way = 0; way < mips_cpu.icache.ways; way++)
- cache32_unroll32(start|way,Index_Invalidate_I);
-@@ -452,7 +399,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Hit_Invalidate_I);
- start += 0x400;
- }
-@@ -463,7 +410,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Invalidate_I);
- start += 0x400;
- }
-@@ -474,7 +421,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x400;
- }
-@@ -485,7 +432,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Hit_Writeback_Inv_SD);
- start += 0x400;
- }
-@@ -496,7 +443,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x400;
- }
-@@ -533,7 +480,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache64_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x800;
- }
-@@ -544,7 +491,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache64_unroll32(start,Hit_Writeback_Inv_SD);
- start += 0x800;
- }
-@@ -555,7 +502,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache64_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x800;
- }
-@@ -592,7 +539,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache128_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x1000;
- }
-@@ -608,4 +555,4 @@
- cache128_unroll32(page,Index_Writeback_Inv_SD);
- }
-
--#endif /* !(_MIPS_R4KCACHE_H) */
-+#endif /* __ASM_R4KCACHE_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/scatterlist.h linux-2.4.20-mipscvs-20050106/include/asm-mips/scatterlist.h
---- linux-2.4.20/include/asm-mips/scatterlist.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/scatterlist.h 2002-09-28 13:51:41.000000000 -0500
-@@ -10,13 +10,6 @@
- unsigned int length;
- };
-
--struct mmu_sglist {
-- char *addr;
-- char *__dont_touch;
-- unsigned int len;
-- dma_addr_t dvma_addr;
--};
--
- #define ISA_DMA_THRESHOLD (0x00ffffff)
-
- #endif /* __ASM_SCATTERLIST_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/semaphore-helper.h linux-2.4.20-mipscvs-20050106/include/asm-mips/semaphore-helper.h
---- linux-2.4.20/include/asm-mips/semaphore-helper.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/semaphore-helper.h 2003-01-24 06:58:30.000000000 -0600
-@@ -54,12 +54,12 @@
- unsigned long flags;
- int ret = 0;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- if (sem_read(&sem->waking) > 0) {
- sem_dec(&sem->waking);
- ret = 1;
- }
-- restore_flags(flags);
-+ local_irq_restore(flags);
- return ret;
- }
- #endif /* !CONFIG_CPU_HAS_LLSC */
-@@ -147,7 +147,7 @@
- int ret = 0;
- unsigned long flags;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- if (sem_read(&sem->waking) > 0) {
- sem_dec(&sem->waking);
- ret = 1;
-@@ -155,7 +155,7 @@
- sem_inc(&sem->count);
- ret = -EINTR;
- }
-- restore_flags(flags);
-+ local_irq_restore(flags);
- return ret;
- }
-
-@@ -164,14 +164,14 @@
- int ret = 1;
- unsigned long flags;
-
-- save_and_cli(flags);
-+ local_irq_save(flags);
- if (sem_read(&sem->waking) <= 0)
- sem_inc(&sem->count);
- else {
- sem_dec(&sem->waking);
- ret = 0;
- }
-- restore_flags(flags);
-+ local_irq_restore(flags);
-
- return ret;
- }
-diff -urNd -urNd linux-2.4.20/include/asm-mips/serial.h linux-2.4.20-mipscvs-20050106/include/asm-mips/serial.h
---- linux-2.4.20/include/asm-mips/serial.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/serial.h 2002-12-13 13:45:36.000000000 -0600
-@@ -64,9 +64,9 @@
-
- #ifdef CONFIG_MIPS_JAZZ
- #define _JAZZ_SERIAL_INIT(int, base) \
-- { baud_base: JAZZ_BASE_BAUD, irq: int, flags: STD_COM_FLAGS, \
-- iomem_base: (u8 *) base, iomem_reg_shift: 0, \
-- io_type: SERIAL_IO_MEM }
-+ { .baud_base = JAZZ_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \
-+ .iomem_base = (u8 *) base, .iomem_reg_shift = 0, \
-+ .io_type = SERIAL_IO_MEM }
- #define JAZZ_SERIAL_PORT_DEFNS \
- _JAZZ_SERIAL_INIT(JAZZ_SERIAL1_IRQ, JAZZ_SERIAL1_BASE), \
- _JAZZ_SERIAL_INIT(JAZZ_SERIAL2_IRQ, JAZZ_SERIAL2_BASE),
-@@ -111,14 +111,14 @@
- #include <asm/galileo-boards/ev96100.h>
- #include <asm/galileo-boards/ev96100int.h>
- #define EV96100_SERIAL_PORT_DEFNS \
-- { baud_base: EV96100_BASE_BAUD, irq: EV96100INT_UART_0, \
-- flags: STD_COM_FLAGS, \
-- iomem_base: EV96100_UART0_REGS_BASE, iomem_reg_shift: 2, \
-- io_type: SERIAL_IO_MEM }, \
-- { baud_base: EV96100_BASE_BAUD, irq: EV96100INT_UART_0, \
-- flags: STD_COM_FLAGS, \
-- iomem_base: EV96100_UART1_REGS_BASE, iomem_reg_shift: 2, \
-- io_type: SERIAL_IO_MEM },
-+ { .baud_base = EV96100_BASE_BAUD, .irq = EV96100INT_UART_0, \
-+ .flags = STD_COM_FLAGS, \
-+ .iomem_base = EV96100_UART0_REGS_BASE, .iomem_reg_shift = 2, \
-+ .io_type = SERIAL_IO_MEM }, \
-+ { .baud_base = EV96100_BASE_BAUD, .irq = EV96100INT_UART_0, \
-+ .flags = STD_COM_FLAGS, \
-+ .iomem_base = EV96100_UART1_REGS_BASE, .iomem_reg_shift = 2, \
-+ .io_type = SERIAL_IO_MEM },
- #else
- #define EV96100_SERIAL_PORT_DEFNS
- #endif
-@@ -128,16 +128,16 @@
- #include <asm/it8172/it8172_int.h>
- #include <asm/it8712.h>
- #define ITE_SERIAL_PORT_DEFNS \
-- { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_UART_BASE), \
-- irq: IT8172_UART_IRQ, flags: STD_COM_FLAGS, type: 0x3 }, \
-- { baud_base: (24000000/(16*13)), port: (IT8172_PCI_IO_BASE + IT8712_UART1_PORT), \
-- irq: IT8172_SERIRQ_4, flags: STD_COM_FLAGS, type: 0x3 }, \
-+ { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_UART_BASE), \
-+ .irq = IT8172_UART_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 }, \
-+ { .baud_base = (24000000/(16*13)), .port = (IT8172_PCI_IO_BASE + IT8712_UART1_PORT), \
-+ .irq = IT8172_SERIRQ_4, .flags = STD_COM_FLAGS, .type = 0x3 }, \
- /* Smart Card Reader 0 */ \
-- { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_SCR0_BASE), \
-- irq: IT8172_SCR0_IRQ, flags: STD_COM_FLAGS, type: 0x3 }, \
-+ { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_SCR0_BASE), \
-+ .irq = IT8172_SCR0_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 }, \
- /* Smart Card Reader 1 */ \
-- { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
-- irq: IT8172_SCR1_IRQ, flags: STD_COM_FLAGS, type: 0x3 },
-+ { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
-+ .irq = IT8172_SCR1_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 },
- #else
- #define ITE_SERIAL_PORT_DEFNS
- #endif
-@@ -146,26 +146,26 @@
- #include <asm/it8172/it8172.h>
- #include <asm/it8172/it8172_int.h>
- #define IVR_SERIAL_PORT_DEFNS \
-- { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_UART_BASE), \
-- irq: IT8172_UART_IRQ, flags: STD_COM_FLAGS, type: 0x3 }, \
-+ { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_UART_BASE), \
-+ .irq = IT8172_UART_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 }, \
- /* Smart Card Reader 1 */ \
-- { baud_base: BASE_BAUD, port: (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
-- irq: IT8172_SCR1_IRQ, flags: STD_COM_FLAGS, type: 0x3 },
-+ { .baud_base = BASE_BAUD, .port = (IT8172_PCI_IO_BASE + IT_SCR1_BASE), \
-+ .irq = IT8172_SCR1_IRQ, .flags = STD_COM_FLAGS, .type = 0x3 },
- #else
- #define IVR_SERIAL_PORT_DEFNS
- #endif
-
--#ifdef CONFIG_AU1000_UART
-+#ifdef CONFIG_AU1X00_UART
- #include <asm/au1000.h>
- #define AU1000_SERIAL_PORT_DEFNS \
-- { baud_base: 0, port: UART0_ADDR, irq: AU1000_UART0_INT, \
-- flags: STD_COM_FLAGS, type: 1 }, \
-- { baud_base: 0, port: UART1_ADDR, irq: AU1000_UART1_INT, \
-- flags: STD_COM_FLAGS, type: 1 }, \
-- { baud_base: 0, port: UART2_ADDR, irq: AU1000_UART2_INT, \
-- flags: STD_COM_FLAGS, type: 1 }, \
-- { baud_base: 0, port: UART3_ADDR, irq: AU1000_UART3_INT, \
-- flags: STD_COM_FLAGS, type: 1 },
-+ { .baud_base = 0, .port = UART0_ADDR, .irq = AU1000_UART0_INT, \
-+ .flags = STD_COM_FLAGS, .type = 1 }, \
-+ { .baud_base = 0, .port = UART1_ADDR, .irq = AU1000_UART1_INT, \
-+ .flags = STD_COM_FLAGS, .type = 1 }, \
-+ { .baud_base = 0, .port = UART2_ADDR, .irq = AU1000_UART2_INT, \
-+ .flags = STD_COM_FLAGS, .type = 1 }, \
-+ { .baud_base = 0, .port = UART3_ADDR, .irq = AU1000_UART3_INT, \
-+ .flags = STD_COM_FLAGS, .type = 1 },
- #else
- #define AU1000_SERIAL_PORT_DEFNS
- #endif
-@@ -173,10 +173,10 @@
- #ifdef CONFIG_TOSHIBA_JMR3927
- #include <asm/jmr3927/jmr3927.h>
- #define TXX927_SERIAL_PORT_DEFNS \
-- { baud_base: JMR3927_BASE_BAUD, port: UART0_ADDR, irq: UART0_INT, \
-- flags: UART0_FLAGS, type: 1 }, \
-- { baud_base: JMR3927_BASE_BAUD, port: UART1_ADDR, irq: UART1_INT, \
-- flags: UART1_FLAGS, type: 1 },
-+ { .baud_base = JMR3927_BASE_BAUD, .port = UART0_ADDR, .irq = UART0_INT, \
-+ .flags = UART0_FLAGS, .type = 1 }, \
-+ { .baud_base = JMR3927_BASE_BAUD, .port = UART1_ADDR, .irq = UART1_INT, \
-+ .flags = UART1_FLAGS, .type = 1 },
- #else
- #define TXX927_SERIAL_PORT_DEFNS
- #endif
-@@ -269,9 +269,9 @@
- #define OCELOT_SERIAL1_BASE 0xe0001020
-
- #define _OCELOT_SERIAL_INIT(int, base) \
-- { baud_base: OCELOT_BASE_BAUD, irq: int, flags: STD_COM_FLAGS, \
-- iomem_base: (u8 *) base, iomem_reg_shift: 2, \
-- io_type: SERIAL_IO_MEM }
-+ { .baud_base = OCELOT_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS, \
-+ .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \
-+ .io_type = SERIAL_IO_MEM }
- #define MOMENCO_OCELOT_SERIAL_PORT_DEFNS \
- _OCELOT_SERIAL_INIT(OCELOT_SERIAL1_IRQ, OCELOT_SERIAL1_BASE)
- #else
-@@ -290,9 +290,9 @@
- #endif
-
- #define _OCELOT_G_SERIAL_INIT(int, base) \
-- { baud_base: OCELOT_G_BASE_BAUD, irq: int, flags: STD_COM_FLAGS,\
-- iomem_base: (u8 *) base, iomem_reg_shift: 2, \
-- io_type: SERIAL_IO_MEM }
-+ { .baud_base = OCELOT_G_BASE_BAUD, .irq = int, .flags = STD_COM_FLAGS,\
-+ .iomem_base = (u8 *) base, .iomem_reg_shift = 2, \
-+ .io_type = SERIAL_IO_MEM }
- #define MOMENCO_OCELOT_G_SERIAL_PORT_DEFNS \
- _OCELOT_G_SERIAL_INIT(OCELOT_G_SERIAL1_IRQ, OCELOT_G_SERIAL1_BASE)
- #else
-@@ -301,13 +301,13 @@
-
- #ifdef CONFIG_DDB5477
- #include <asm/ddb5xxx/ddb5477.h>
--#define DDB5477_SERIAL_PORT_DEFNS \
-- { baud_base: BASE_BAUD, irq: VRC5477_IRQ_UART0, flags: STD_COM_FLAGS, \
-- iomem_base: (u8*)0xbfa04200, iomem_reg_shift: 3, \
-- io_type: SERIAL_IO_MEM},\
-- { baud_base: BASE_BAUD, irq: VRC5477_IRQ_UART1, flags: STD_COM_FLAGS, \
-- iomem_base: (u8*)0xbfa04240, iomem_reg_shift: 3, \
-- io_type: SERIAL_IO_MEM},
-+#define DDB5477_SERIAL_PORT_DEFNS \
-+ { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART0, \
-+ .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04200, \
-+ .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM}, \
-+ { .baud_base = BASE_BAUD, .irq = VRC5477_IRQ_UART1, \
-+ .flags = STD_COM_FLAGS, .iomem_base = (u8*)0xbfa04240, \
-+ .iomem_reg_shift = 3, .io_type = SERIAL_IO_MEM},
- #else
- #define DDB5477_SERIAL_PORT_DEFNS
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Entries
---- linux-2.4.20/include/asm-mips/sgi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,6 @@
-+/sgi.h/1.2.2.1/Thu Jan 9 13:33:16 2003/-ko/Tlinux_2_4_20
-+/sgigio.h/1.1.2.3/Thu Jan 9 13:25:37 2003/-ko/Tlinux_2_4_20
-+/sgihpc.h/1.4.2.3/Mon Aug 5 23:53:38 2002/-ko/Tlinux_2_4_20
-+/sgimc.h/1.5.2.1/Tue Jan 28 05:36:27 2003/-ko/Tlinux_2_4_20
-+/sgint23.h/1.5.2.3/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Repository
---- linux-2.4.20/include/asm-mips/sgi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/sgi
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Root
---- linux-2.4.20/include/asm-mips/sgi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Tag
---- linux-2.4.20/include/asm-mips/sgi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/sgigio.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgigio.h
---- linux-2.4.20/include/asm-mips/sgi/sgigio.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgigio.h 2003-01-09 07:25:37.000000000 -0600
-@@ -12,6 +12,11 @@
- #define _ASM_SGI_SGIGIO_H
-
- /*
-+ * GIO bus addresses
-+ *
-+ * The Indigo and Indy have two GIO bus connectors. Indigo2 (all models) have
-+ * three physical connectors, but only two slots, GFX and EXP0.
-+ *
- * There is 10MB of GIO address space for GIO64 slot devices
- * slot# slot type address range size
- * ----- --------- ----------------------- -----
-@@ -26,44 +31,56 @@
- * Following space is reserved and unused
- * - RESERVED 0x18000000 - 0x1effffff 112MB
- *
-- * The GIO specification tends to use slot numbers while the MC specification
-- * tends to use slot types.
-+ * GIO bus IDs
-+ *
-+ * Each GIO bus device identifies itself to the system by answering a
-+ * read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
-+ * than 128 are 8 bits long, with the most significant 24 bits read from
-+ * the slot undefined.
-+ *
-+ * 32-bit IDs are divided into
-+ * bits 0:6 the product ID; ranges from 0x00 to 0x7F.
-+ * bit 7 0=GIO Product ID is 8 bits wide
-+ * 1=GIO Product ID is 32 bits wide.
-+ * bits 8:15 manufacturer version for the product.
-+ * bit 16 0=GIO32 and GIO32-bis, 1=GIO64.
-+ * bit 17 0=no ROM present
-+ * 1=ROM present on this board AND next three words
-+ * space define the ROM.
-+ * bits 18:31 up to manufacturer.
-+ *
-+ * IDs above 0x50/0xd0 are of 3rd party boards.
-+ *
-+ * 8-bit IDs
-+ * 0x01 XPI low cost FDDI
-+ * 0x02 GTR TokenRing
-+ * 0x04 Synchronous ISDN
-+ * 0x05 ATM board [*]
-+ * 0x06 Canon Interface
-+ * 0x07 16 bit SCSI Card [*]
-+ * 0x08 JPEG (Double Wide)
-+ * 0x09 JPEG (Single Wide)
-+ * 0x0a XPI mez. FDDI device 0
-+ * 0x0b XPI mez. FDDI device 1
-+ * 0x0c SMPTE 259M Video [*]
-+ * 0x0d Babblefish Compression [*]
-+ * 0x0e E-Plex 8-port Ethernet
-+ * 0x30 Lyon Lamb IVAS
-+ * 0xb8 GIO 100BaseTX Fast Ethernet (gfe)
-+ *
-+ * [*] Device provide 32-bit ID.
- *
-- * slot0 - the "graphics" (GFX) slot but there is no requirement that
-- * a graphics dev may only use this slot
-- * slot1 - this is the "expansion"-slot 0 (EXP0), do not confuse with
-- * slot 0 (GFX).
-- * slot2 - this is the "expansion"-slot 1 (EXP1), do not confuse with
-- * slot 1 (EXP0).
- */
-
--#define GIO_SLOT_GFX 0
--#define GIO_SLOT_GIO1 1
--#define GIO_SLOT_GIO2 2
--#define GIO_NUM_SLOTS 3
--
--#define GIO_ANY_ID 0xff
--
--#define GIO_VALID_ID_ONLY 0x01
--#define GIO_IFACE_64 0x02
--#define GIO_HAS_ROM 0x04
--
--struct gio_dev {
-- unsigned char device;
-- unsigned char revision;
-- unsigned short vendor;
-- unsigned char flags;
--
-- unsigned char slot_number;
-- unsigned long base_addr;
-- unsigned int map_size;
--
-- char *name;
-- char slot_name[5];
--};
--
--extern struct gio_dev* gio_find_device(unsigned char device, const struct gio_dev *from);
-+#define GIO_ID(x) (x & 0x7f)
-+#define GIO_32BIT_ID 0x80
-+#define GIO_REV(x) ((x >> 8) & 0xff)
-+#define GIO_64BIT_IFACE 0x10000
-+#define GIO_ROM_PRESENT 0x20000
-+#define GIO_VENDOR_CODE(x) ((x >> 18) & 0x3fff)
-
--extern void sgigio_init(void);
-+#define GIO_SLOT_GFX_BASE 0x1f000000
-+#define GIO_SLOT_EXP0_BASE 0x1f400000
-+#define GIO_SLOT_EXP1_BASE 0x1f600000
-
- #endif /* _ASM_SGI_SGIGIO_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/sgi.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgi.h
---- linux-2.4.20/include/asm-mips/sgi/sgi.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgi.h 2003-01-09 07:33:16.000000000 -0600
-@@ -1,28 +1,33 @@
- /*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
- * sgi.h: Definitions specific to SGI machines.
- *
- * Copyright (C) 1996 David S. Miller (dm@sgi.com)
- */
--#ifndef __ASM_SGI_SGI_H
--#define __ASM_SGI_SGI_H
-+#ifndef _ASM_SGI_SGI_H
-+#define _ASM_SGI_SGI_H
-
- /* UP=UniProcessor MP=MultiProcessor(capable) */
- enum sgi_mach {
-- ip4, /* R2k UP */
-- ip5, /* R2k MP */
-- ip6, /* R3k UP */
-- ip7, /* R3k MP */
-- ip9, /* R3k UP */
-- ip12, /* R3kA UP, Indigo */
-- ip15, /* R3kA MP */
-- ip17, /* R4K UP */
-- ip19, /* R4K MP */
-- ip20, /* R4K UP, Indigo */
-- ip21, /* TFP MP */
-- ip22, /* R4x00 UP, Indigo2 */
-- ip25, /* R10k MP */
-- ip26, /* TFP UP, Indigo2 */
-- ip28, /* R10k UP, Indigo2 */
-+ ip4, /* R2k UP */
-+ ip5, /* R2k MP */
-+ ip6, /* R3k UP */
-+ ip7, /* R3k MP */
-+ ip9, /* R3k UP */
-+ ip12, /* R3kA UP, Indigo */
-+ ip15, /* R3kA MP */
-+ ip17, /* R4K UP */
-+ ip19, /* R4K MP */
-+ ip20, /* R4K UP, Indigo */
-+ ip21, /* TFP MP */
-+ ip22, /* R4x00 UP, Indigo2 */
-+ ip25, /* R10k MP */
-+ ip26, /* TFP UP, Indigo2 */
-+ ip27, /* R10k MP, R12k MP, Origin */
-+ ip28, /* R10k UP, Indigo2 */
- ip30,
- ip32,
- };
-@@ -39,4 +44,4 @@
- #define SGI_MSB(regaddr) ((regaddr) | 0x3)
- #endif
-
--#endif /* __ASM_SGI_SGI_H */
-+#endif /* _ASM_SGI_SGI_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sgi/sgimc.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgimc.h
---- linux-2.4.20/include/asm-mips/sgi/sgimc.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sgi/sgimc.h 2003-01-27 23:36:27.000000000 -0600
-@@ -125,13 +125,30 @@
-
- /* Error address/status regs from GIO and CPU perspectives. */
- u32 _unused21;
-- volatile u32 cerr; /* Error address reg for CPU */
-+ volatile u32 cerr; /* Error address reg for CPU */
- u32 _unused22;
-- volatile u32 cstat; /* Status reg for CPU */
-+ volatile u32 cstat; /* Status reg for CPU */
-+#define SGIMC_CSTAT_RD 0x00000100 /* read parity error */
-+#define SGIMC_CSTAT_PAR 0x00000200 /* CPU parity error */
-+#define SGIMC_CSTAT_ADDR 0x00000400 /* memory bus error bad addr */
-+#define SGIMC_CSTAT_SYSAD_PAR 0x00000800 /* sysad parity error */
-+#define SGIMC_CSTAT_SYSCMD_PAR 0x00001000 /* syscmd parity error */
-+#define SGIMC_CSTAT_BAD_DATA 0x00002000 /* bad data identifier */
-+#define SGIMC_CSTAT_PAR_MASK 0x00001f00 /* parity error mask */
-+#define SGIMC_CSTAT_RD_PAR (SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
-+
- u32 _unused23;
-- volatile u32 gerr; /* Error address reg for GIO */
-+ volatile u32 gerr; /* Error address reg for GIO */
- u32 _unused24;
-- volatile u32 gstat; /* Status reg for GIO */
-+ volatile u32 gstat; /* Status reg for GIO */
-+#define SGIMC_GSTAT_RD 0x00000100 /* read parity error */
-+#define SGIMC_GSTAT_WR 0x00000200 /* write parity error */
-+#define SGIMC_GSTAT_TIME 0x00000400 /* GIO bus timed out */
-+#define SGIMC_GSTAT_PROM 0x00000800 /* write to PROM when PROM_EN not set */
-+#define SGIMC_GSTAT_ADDR 0x00001000 /* parity error on addr cycle */
-+#define SGIMC_GSTAT_BC 0x00002000 /* parity error on byte count cycle */
-+#define SGIMC_GSTAT_PIO_RD 0x00004000 /* read data parity on pio */
-+#define SGIMC_GSTAT_PIO_WR 0x00008000 /* write data parity on pio */
-
- /* Special hard bus locking registers. */
- u32 _unused25;
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/64bit.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/64bit.h
---- linux-2.4.20/include/asm-mips/sibyte/64bit.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/64bit.h 2003-02-19 15:06:52.000000000 -0600
-@@ -32,47 +32,57 @@
- * without having access to 64-bit registers... which doesn't work by default
- * in o32 format...grrr...
- */
-+static inline void __out64(u64 val, unsigned long addr)
-+{
-+ u64 tmp;
-+
-+ __asm__ __volatile__ (
-+ " .set mips3 \n"
-+ " dsll32 %L0, %L0, 0 # __out64 \n"
-+ " dsrl32 %L0, %L0, 0 \n"
-+ " dsll32 %M0, %M0, 0 \n"
-+ " or %L0, %L0, %M0 \n"
-+ " sd %L0, (%2) \n"
-+ " .set mips0 \n"
-+ : "=r" (tmp)
-+ : "0" (val), "r" (addr));
-+}
-+
- static inline void out64(u64 val, unsigned long addr)
- {
-- u32 low, high;
- unsigned long flags;
-- high = val >> 32;
-- low = val & 0xffffffff;
-- // save_flags(flags);
-- __save_and_cli(flags);
-+
-+ local_irq_save(flags);
-+ __out64(val, addr);
-+ local_irq_restore(flags);
-+}
-+
-+static inline u64 __in64(unsigned long addr)
-+{
-+ u64 res;
-+
- __asm__ __volatile__ (
-- ".set push\n"
-- ".set noreorder\n"
-- ".set noat\n"
-- ".set mips4\n"
-- " dsll32 $2, %1, 0 \n"
-- " dsll32 $1, %0, 0 \n"
-- " dsrl32 $2, $2, 0 \n"
-- " or $1, $1, $2 \n"
-- " sd $1, (%2)\n"
-- ".set pop\n"
-- ::"r" (high), "r" (low), "r" (addr)
-- :"$1", "$2");
-- __restore_flags(flags);
-+ " .set mips3 # __in64 \n"
-+ " ld %L0, (%1) \n"
-+ " dsra32 %M0, %L0, 0 \n"
-+ " sll %L0, %L0, 0 \n"
-+ " .set mips0 \n"
-+ : "=r" (res)
-+ : "r" (addr));
-+
-+ return res;
- }
-
- static inline u64 in64(unsigned long addr)
- {
-- u32 low, high;
- unsigned long flags;
-- __save_and_cli(flags);
-- __asm__ __volatile__ (
-- ".set push\n"
-- ".set noreorder\n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " ld %1, (%2)\n"
-- " dsra32 %0, %1, 0\n"
-- " sll %1, %1, 0\n"
-- ".set pop\n"
-- :"=r" (high), "=r" (low): "r" (addr));
-- __restore_flags(flags);
-- return (((u64)high) << 32) | low;
-+ u64 res;
-+
-+ local_irq_save(flags);
-+ res = __in64(addr);
-+ local_irq_restore(flags);
-+
-+ return res;
- }
-
- #endif /* CONFIG_MIPS32 */
-@@ -93,6 +103,9 @@
- return *(volatile unsigned long *)addr;
- }
-
-+#define __in64(a) in64(a)
-+#define __out64(v,a) out64(v,a)
-+
- #endif /* CONFIG_MIPS64 */
-
- /*
-@@ -106,7 +119,7 @@
- #define __CSR_32_ADJUST 0
- #endif
-
--#define csr_out32(v,a) (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
--#define csr_in32(a) (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-+#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
-+#define csr_in32(a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-
- #endif /* __ASM_SIBYTE_64BIT_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/board.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/board.h
---- linux-2.4.20/include/asm-mips/sibyte/board.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/board.h 2003-01-21 23:11:38.000000000 -0600
-@@ -19,10 +19,50 @@
- #ifndef _SIBYTE_BOARD_H
- #define _SIBYTE_BOARD_H
-
--#if defined(CONFIG_SIBYTE_PTSWARM) || defined(CONFIG_SIBYTE_SWARM)
-+#ifdef CONFIG_SIBYTE_BOARD
-+
-+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM) || \
-+ defined(CONFIG_SIBYTE_CRHONE) || defined(CONFIG_SIBYTE_CRHINE)
- #include <asm/sibyte/swarm.h>
- #endif
-
-+#if defined(CONFIG_SIBYTE_SENTOSA) || defined(CONFIG_SIBYTE_RHONE)
-+#include <asm/sibyte/sentosa.h>
-+#endif
-+
-+#ifdef CONFIG_SIBYTE_CARMEL
-+#include <asm/sibyte/carmel.h>
- #endif
-
-+#ifdef __ASSEMBLY__
-+
-+#ifdef LEDS_PHYS
-+#define setleds(t0,t1,c0,c1,c2,c3) \
-+ li t0, (LEDS_PHYS|0xa0000000); \
-+ li t1, c0; \
-+ sb t1, 0x18(t0); \
-+ li t1, c1; \
-+ sb t1, 0x10(t0); \
-+ li t1, c2; \
-+ sb t1, 0x08(t0); \
-+ li t1, c3; \
-+ sb t1, 0x00(t0)
-+#else
-+#define setleds(t0,t1,c0,c1,c2,c3)
-+#endif /* LEDS_PHYS */
-+
-+#else
-
-+void swarm_setup(void);
-+
-+#ifdef LEDS_PHYS
-+extern void setleds(char *str);
-+#else
-+#define setleds(s) do { } while (0)
-+#endif /* LEDS_PHYS */
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* CONFIG_SIBYTE_BOARD */
-+
-+#endif /* _SIBYTE_BOARD_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/carmel.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/carmel.h
---- linux-2.4.20/include/asm-mips/sibyte/carmel.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/carmel.h 2003-01-21 23:11:38.000000000 -0600
-@@ -0,0 +1,58 @@
-+/*
-+ * Copyright (C) 2002 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#ifndef __ASM_SIBYTE_CARMEL_H
-+#define __ASM_SIBYTE_CARMEL_H
-+
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_int.h>
-+
-+#define SIBYTE_BOARD_NAME "Carmel"
-+
-+#define GPIO_PHY_INTERRUPT 2
-+#define GPIO_NONMASKABLE_INT 3
-+#define GPIO_CF_INSERTED 6
-+#define GPIO_MONTEREY_RESET 7
-+#define GPIO_QUADUART_INT 8
-+#define GPIO_CF_INT 9
-+#define GPIO_FPGA_CCLK 10
-+#define GPIO_FPGA_DOUT 11
-+#define GPIO_FPGA_DIN 12
-+#define GPIO_FPGA_PGM 13
-+#define GPIO_FPGA_DONE 14
-+#define GPIO_FPGA_INIT 15
-+
-+#define LEDS_CS 2
-+#define LEDS_PHYS 0x100C0000
-+#define MLEDS_CS 3
-+#define MLEDS_PHYS 0x100A0000
-+#define UART_CS 4
-+#define UART_PHYS 0x100D0000
-+#define ARAVALI_CS 5
-+#define ARAVALI_PHYS 0x11000000
-+#define IDE_CS 6
-+#define IDE_PHYS 0x100B0000
-+#define ARAVALI2_CS 7
-+#define ARAVALI2_PHYS 0x100E0000
-+
-+#if defined(CONFIG_SIBYTE_CARMEL)
-+#define K_GPIO_GB_IDE 9
-+#define K_INT_GB_IDE (K_INT_GPIO_0 + K_GPIO_GB_IDE)
-+#endif
-+
-+
-+#endif /* __ASM_SIBYTE_CARMEL_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Entries
---- linux-2.4.20/include/asm-mips/sibyte/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,21 @@
-+/64bit.h/1.1.2.6/Wed Feb 19 21:06:52 2003/-ko/Tlinux_2_4_20
-+/board.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/carmel.h/1.1.2.1/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_defs.h/1.1.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_dma.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_genbus.h/1.1.2.4/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_int.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_l2c.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_ldt.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_mac.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_mc.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_regs.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_scd.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_smbus.h/1.1.2.3/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_syncser.h/1.1.2.4/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sb1250_uart.h/1.1.2.5/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/sentosa.h/1.1.2.1/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/swarm.h/1.1.2.4/Wed Jan 22 05:11:38 2003/-ko/Tlinux_2_4_20
-+/trace_prof.h/1.1.2.1/Fri Feb 7 22:00:22 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Repository
---- linux-2.4.20/include/asm-mips/sibyte/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/sibyte
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Root
---- linux-2.4.20/include/asm-mips/sibyte/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Tag
---- linux-2.4.20/include/asm-mips/sibyte/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_defs.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_defs.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_defs.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_defs.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-- * Global constants and macros File: sb1250_defs.h
-- *
-+ *
-+ * Global constants and macros File: sb1250_defs.h
-+ *
- * This file contains macros and definitions used by the other
- * include files.
- *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,38 +27,154 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-+#ifndef _SB1250_DEFS_H
-+#define _SB1250_DEFS_H
-+
-+/*
-+ * These headers require ANSI C89 string concatenation, and GCC or other
-+ * 'long long' (64-bit integer) support.
-+ */
-+#if !defined(__STDC__) && !defined(_MSC_VER)
-+#error SiByte headers require ANSI C89 support
-+#endif
-+
-
- /* *********************************************************************
-- * Naming schemes for constants in these files:
-+ * Macros for feature tests, used to enable include file features
-+ * for chip features only present in certain chip revisions.
- *
-- * M_xxx MASK constant (identifies bits in a register).
-+ * SIBYTE_HDR_FEATURES may be defined to be the mask value chip/revision
-+ * which is to be exposed by the headers. If undefined, it defaults to
-+ * "all features."
-+ *
-+ * Use like:
-+ *
-+ * #define SIBYTE_HDR_FEATURES SIBYTE_HDR_FMASK_112x_PASS1
-+ *
-+ * Generate defines only for that revision of chip.
-+ *
-+ * #if SIBYTE_HDR_FEATURE(chip,pass)
-+ *
-+ * True if header features for that revision or later of
-+ * that particular chip type are enabled in SIBYTE_HDR_FEATURES.
-+ * (Use this to bracket #defines for features present in a given
-+ * revision and later.)
-+ *
-+ * Note that there is no implied ordering between chip types.
-+ *
-+ * Note also that 'chip' and 'pass' must textually exactly
-+ * match the defines below. So, for example,
-+ * SIBYTE_HDR_FEATURE(112x, PASS1) is OK, but
-+ * SIBYTE_HDR_FEATURE(1120, pass1) is not (for two reasons).
-+ *
-+ * #if SIBYTE_HDR_FEATURE_UP_TO(chip,pass)
-+ *
-+ * Same as SIBYTE_HDR_FEATURE, but true for the named revision
-+ * and earlier revisions of the named chip type.
-+ *
-+ * #if SIBYTE_HDR_FEATURE_EXACT(chip,pass)
-+ *
-+ * Same as SIBYTE_HDR_FEATURE, but only true for the named
-+ * revision of the named chip type. (Note that this CANNOT
-+ * be used to verify that you're compiling only for that
-+ * particular chip/revision. It will be true any time this
-+ * chip/revision is included in SIBYTE_HDR_FEATURES.)
-+ *
-+ * #if SIBYTE_HDR_FEATURE_CHIP(chip)
-+ *
-+ * True if header features for (any revision of) that chip type
-+ * are enabled in SIBYTE_HDR_FEATURES. (Use this to bracket
-+ * #defines for features specific to a given chip type.)
-+ *
-+ * Mask values currently include room for additional revisions of each
-+ * chip type, but can be renumbered at will. Note that they MUST fit
-+ * into 31 bits and may not include C type constructs, for safe use in
-+ * CPP conditionals. Bit positions within chip types DO indicate
-+ * ordering, so be careful when adding support for new minor revs.
-+ ********************************************************************* */
-+
-+#define SIBYTE_HDR_FMASK_1250_ALL 0x00000ff
-+#define SIBYTE_HDR_FMASK_1250_PASS1 0x0000001
-+#define SIBYTE_HDR_FMASK_1250_PASS2 0x0000002
-+
-+#define SIBYTE_HDR_FMASK_112x_ALL 0x0000f00
-+#define SIBYTE_HDR_FMASK_112x_PASS1 0x0000100
-+#define SIBYTE_HDR_FMASK_112x_PASS3 0x0000200
-+
-+/* Bit mask for chip/revision. (use _ALL for all revisions of a chip). */
-+#define SIBYTE_HDR_FMASK(chip, pass) \
-+ (SIBYTE_HDR_FMASK_ ## chip ## _ ## pass)
-+#define SIBYTE_HDR_FMASK_ALLREVS(chip) \
-+ (SIBYTE_HDR_FMASK_ ## chip ## _ALL)
-+
-+#define SIBYTE_HDR_FMASK_ALL \
-+ (SIBYTE_HDR_FMASK_1250_ALL | SIBYTE_HDR_FMASK_112x_ALL)
-+
-+#ifndef SIBYTE_HDR_FEATURES
-+#define SIBYTE_HDR_FEATURES SIBYTE_HDR_FMASK_ALL
-+#endif
-+
-+
-+/* Bit mask for revisions of chip exclusively before the named revision. */
-+#define SIBYTE_HDR_FMASK_BEFORE(chip, pass) \
-+ ((SIBYTE_HDR_FMASK(chip, pass) - 1) & SIBYTE_HDR_FMASK_ALLREVS(chip))
-+
-+/* Bit mask for revisions of chip exclusively after the named revision. */
-+#define SIBYTE_HDR_FMASK_AFTER(chip, pass) \
-+ (~(SIBYTE_HDR_FMASK(chip, pass) \
-+ | (SIBYTE_HDR_FMASK(chip, pass) - 1)) & SIBYTE_HDR_FMASK_ALLREVS(chip))
-+
-+
-+/* True if header features enabled for (any revision of) that chip type. */
-+#define SIBYTE_HDR_FEATURE_CHIP(chip) \
-+ (!! (SIBYTE_HDR_FMASK_ALLREVS(chip) & SIBYTE_HDR_FEATURES))
-+
-+/* True if header features enabled for that rev or later, inclusive. */
-+#define SIBYTE_HDR_FEATURE(chip, pass) \
-+ (!! ((SIBYTE_HDR_FMASK(chip, pass) \
-+ | SIBYTE_HDR_FMASK_AFTER(chip, pass)) & SIBYTE_HDR_FEATURES))
-+
-+/* True if header features enabled for exactly that rev. */
-+#define SIBYTE_HDR_FEATURE_EXACT(chip, pass) \
-+ (!! (SIBYTE_HDR_FMASK(chip, pass) & SIBYTE_HDR_FEATURES))
-+
-+/* True if header features enabled for that rev or before, inclusive. */
-+#define SIBYTE_HDR_FEATURE_UP_TO(chip, pass) \
-+ (!! ((SIBYTE_HDR_FMASK(chip, pass) \
-+ | SIBYTE_HDR_FMASK_BEFORE(chip, pass)) & SIBYTE_HDR_FEATURES))
-+
-+
-+/* *********************************************************************
-+ * Naming schemes for constants in these files:
-+ *
-+ * M_xxx MASK constant (identifies bits in a register).
- * For multi-bit fields, all bits in the field will
- * be set.
- *
- * K_xxx "Code" constant (value for data in a multi-bit
- * field). The value is right justified.
- *
-- * V_xxx "Value" constant. This is the same as the
-+ * V_xxx "Value" constant. This is the same as the
- * corresponding "K_xxx" constant, except it is
- * shifted to the correct position in the register.
- *
- * S_xxx SHIFT constant. This is the number of bits that
-- * a field value (code) needs to be shifted
-+ * a field value (code) needs to be shifted
- * (towards the left) to put the value in the right
- * position for the register.
- *
-- * A_xxx ADDRESS constant. This will be a physical
-+ * A_xxx ADDRESS constant. This will be a physical
- * address. Use the PHYS_TO_K1 macro to generate
- * a K1SEG address.
- *
- * R_xxx RELATIVE offset constant. This is an offset from
- * an A_xxx constant (usually the first register in
- * a group).
-- *
-+ *
- * G_xxx(X) GET value. This macro obtains a multi-bit field
- * from a register, masks it, and shifts it to
- * the bottom of the register (retrieving a K_xxx
-@@ -72,17 +188,14 @@
-
-
-
--#ifndef _SB1250_DEFS_H
--#define _SB1250_DEFS_H
--
- /*
-- * Cast to 64-bit number. Presumably the syntax is different in
-+ * Cast to 64-bit number. Presumably the syntax is different in
- * assembly language.
- *
- * Note: you'll need to define uint32_t and uint64_t in your headers.
- */
-
--#if !defined(__ASSEMBLY__)
-+#if !defined(__ASSEMBLER__)
- #define _SB_MAKE64(x) ((uint64_t)(x))
- #define _SB_MAKE32(x) ((uint32_t)(x))
- #else
-@@ -121,9 +234,9 @@
- */
-
-
--#if !defined(__ASSEMBLY__)
-+#if !defined(__ASSEMBLER__)
- #define SBWRITECSR(csr,val) *((volatile uint64_t *) PHYS_TO_K1(csr)) = (val)
- #define SBREADCSR(csr) (*((volatile uint64_t *) PHYS_TO_K1(csr)))
--#endif /* __ASSEMBLY__ */
-+#endif /* __ASSEMBLER__ */
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_dma.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_dma.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_dma.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_dma.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,24 +1,24 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * DMA definitions File: sb1250_dma.h
-- *
-+ *
- * This module contains constants and macros useful for
- * programming the SB1250's DMA controllers, both the data mover
- * and the Ethernet DMA.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -28,7 +28,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -43,9 +43,9 @@
- * DMA Registers
- ********************************************************************* */
-
--/*
-+/*
- * Ethernet and Serial DMA Configuration Register 0 (Table 7-4)
-- * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
-+ * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
- * Registers: DMA_CONFIG0_MAC_x_TX_CH_0
- * Registers: DMA_CONFIG0_SER_x_RX
- * Registers: DMA_CONFIG0_SER_x_TX
-@@ -53,8 +53,23 @@
-
-
- #define M_DMA_DROP _SB_MAKEMASK1(0)
-+
- #define M_DMA_CHAIN_SEL _SB_MAKEMASK1(1)
- #define M_DMA_RESERVED1 _SB_MAKEMASK1(2)
-+
-+#define S_DMA_DESC_TYPE _SB_MAKE64(1)
-+#define M_DMA_DESC_TYPE _SB_MAKE64(2,S_DMA_DESC_TYPE)
-+#define V_DMA_DESC_TYPE(x) _SB_MAKEVALUE(x,S_DMA_DESC_TYPE)
-+#define G_DMA_DESC_TYPE(x) _SB_GETVALUE(x,S_DMA_DESC_TYPE,M_DMA_DESC_TYPE)
-+
-+#define K_DMA_DESC_TYPE_RING_AL 0
-+#define K_DMA_DESC_TYPE_CHAIN_AL 1
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define K_DMA_DESC_TYPE_RING_UAL_WI 2
-+#define K_DMA_DESC_TYPE_RING_UAL_RMW 3
-+#endif
-+
- #define M_DMA_EOP_INT_EN _SB_MAKEMASK1(3)
- #define M_DMA_HWM_INT_EN _SB_MAKEMASK1(4)
- #define M_DMA_LWM_INT_EN _SB_MAKEMASK1(5)
-@@ -82,8 +97,8 @@
- #define G_DMA_LOW_WATERMARK(x) _SB_GETVALUE(x,S_DMA_LOW_WATERMARK,M_DMA_LOW_WATERMARK)
-
- /*
-- * Ethernet and Serial DMA Configuration Register 2 (Table 7-5)
-- * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
-+ * Ethernet and Serial DMA Configuration Register 1 (Table 7-5)
-+ * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
- * Registers: DMA_CONFIG1_DMA_x_TX_CH_0
- * Registers: DMA_CONFIG1_SER_x_RX
- * Registers: DMA_CONFIG1_SER_x_TX
-@@ -96,6 +111,12 @@
- #define M_DMA_NO_DSCR_UPDT _SB_MAKEMASK1(4)
- #define M_DMA_L2CA _SB_MAKEMASK1(5)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define M_DMA_RX_XTRA_STATUS _SB_MAKEMASK1(6)
-+#define M_DMA_TX_CPU_PAUSE _SB_MAKEMASK1(6)
-+#define M_DMA_TX_FC_PAUSE_EN _SB_MAKEMASK1(7)
-+#endif
-+
- #define M_DMA_MBZ1 _SB_MAKEMASK(6,15)
-
- #define S_DMA_HDR_SIZE _SB_MAKE64(21)
-@@ -131,19 +152,36 @@
- /*
- * DMA Descriptor Count Registers (Table 7-8)
- */
--
-+
- /* No bitfields */
-
-
--/*
-+/*
- * Current Descriptor Address Register (Table 7-11)
- */
-
- #define S_DMA_CURDSCR_ADDR _SB_MAKE64(0)
- #define M_DMA_CURDSCR_ADDR _SB_MAKEMASK(40,S_DMA_CURDSCR_ADDR)
--#define S_DMA_CURDSCR_COUNT _SB_MAKE64(48)
-+#define S_DMA_CURDSCR_COUNT _SB_MAKE64(40)
- #define M_DMA_CURDSCR_COUNT _SB_MAKEMASK(16,S_DMA_CURDSCR_COUNT)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define M_DMA_TX_CH_PAUSE_ON _SB_MAKEMASK1(56)
-+#endif
-+
-+/*
-+ * Receive Packet Drop Registers
-+ */
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_OODLOST_RX _SB_MAKE64(0)
-+#define M_DMA_OODLOST_RX _SB_MAKEMASK(16,S_DMA_OODLOST_RX)
-+#define G_DMA_OODLOST_RX(x) _SB_GETVALUE(x,S_DMA_OODLOST_RX,M_DMA_OODLOST_RX)
-+
-+#define S_DMA_EOP_COUNT_RX _SB_MAKE64(16)
-+#define M_DMA_EOP_COUNT_RX _SB_MAKEMASK(8,S_DMA_EOP_COUNT_RX)
-+#define G_DMA_EOP_COUNT_RX(x) _SB_GETVALUE(x,S_DMA_EOP_COUNT_RX,M_DMA_EOP_COUNT_RX)
-+#endif
-+
- /* *********************************************************************
- * DMA Descriptors
- ********************************************************************* */
-@@ -154,6 +192,8 @@
-
- #define S_DMA_DSCRA_OFFSET _SB_MAKE64(0)
- #define M_DMA_DSCRA_OFFSET _SB_MAKEMASK(5,S_DMA_DSCRA_OFFSET)
-+#define V_DMA_DSCRA_OFFSET(x) _SB_MAKEVALUE(x,S_DMA_DSCRA_OFFSET)
-+#define G_DMA_DSCRA_OFFSET(x) _SB_GETVALUE(x,S_DMA_DSCRA_OFFSET,M_DMA_DSCRA_OFFSET)
-
- /* Note: Don't shift the address over, just mask it with the mask below */
- #define S_DMA_DSCRA_A_ADDR _SB_MAKE64(5)
-@@ -161,11 +201,22 @@
-
- #define M_DMA_DSCRA_A_ADDR_OFFSET (M_DMA_DSCRA_OFFSET | M_DMA_DSCRA_A_ADDR)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRA_A_ADDR_UA _SB_MAKE64(0)
-+#define M_DMA_DSCRA_A_ADDR_UA _SB_MAKEMASK(40,S_DMA_DSCRA_A_ADDR_UA)
-+#endif
-+
- #define S_DMA_DSCRA_A_SIZE _SB_MAKE64(40)
- #define M_DMA_DSCRA_A_SIZE _SB_MAKEMASK(9,S_DMA_DSCRA_A_SIZE)
- #define V_DMA_DSCRA_A_SIZE(x) _SB_MAKEVALUE(x,S_DMA_DSCRA_A_SIZE)
- #define G_DMA_DSCRA_A_SIZE(x) _SB_GETVALUE(x,S_DMA_DSCRA_A_SIZE,M_DMA_DSCRA_A_SIZE)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRA_DSCR_CNT _SB_MAKE64(40)
-+#define M_DMA_DSCRA_DSCR_CNT _SB_MAKEMASK(8,S_DMA_DSCRA_DSCR_CNT)
-+#define G_DMA_DSCRA_DSCR_CNT(x) _SB_GETVALUE(x,S_DMA_DSCRA_DSCR_CNT,M_DMA_DSCRA_DSCR_CNT)
-+#endif
-+
- #define M_DMA_DSCRA_INTERRUPT _SB_MAKEMASK1(49)
- #define M_DMA_DSCRA_OFFSETB _SB_MAKEMASK1(50)
-
-@@ -184,6 +235,13 @@
- #define V_DMA_DSCRB_OPTIONS(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_OPTIONS)
- #define G_DMA_DSCRB_OPTIONS(x) _SB_GETVALUE(x,S_DMA_DSCRB_OPTIONS,M_DMA_DSCRB_OPTIONS)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRB_A_SIZE _SB_MAKE64(8)
-+#define M_DMA_DSCRB_A_SIZE _SB_MAKEMASK(14,S_DMA_DSCRB_A_SIZE)
-+#define V_DMA_DSCRB_A_SIZE(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_A_SIZE)
-+#define G_DMA_DSCRB_A_SIZE(x) _SB_GETVALUE(x,S_DMA_DSCRB_A_SIZE,M_DMA_DSCRB_A_SIZE)
-+#endif
-+
- #define R_DMA_DSCRB_ADDR _SB_MAKE64(0x10)
-
- /* Note: Don't shift the address over, just mask it with the mask below */
-@@ -197,20 +255,42 @@
-
- #define M_DMA_DSCRB_B_VALID _SB_MAKEMASK1(49)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRB_PKT_SIZE_MSB _SB_MAKE64(48)
-+#define M_DMA_DSCRB_PKT_SIZE_MSB _SB_MAKEMASK(2,S_DMA_DSCRB_PKT_SIZE_MSB)
-+#define V_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB)
-+#define G_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB,M_DMA_DSCRB_PKT_SIZE_MSB)
-+#endif
-+
- #define S_DMA_DSCRB_PKT_SIZE _SB_MAKE64(50)
- #define M_DMA_DSCRB_PKT_SIZE _SB_MAKEMASK(14,S_DMA_DSCRB_PKT_SIZE)
- #define V_DMA_DSCRB_PKT_SIZE(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE)
- #define G_DMA_DSCRB_PKT_SIZE(x) _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE,M_DMA_DSCRB_PKT_SIZE)
-
- /*
-+ * from pass2 some bits in dscr_b are also used for rx status
-+ */
-+#define S_DMA_DSCRB_STATUS _SB_MAKE64(0)
-+#define M_DMA_DSCRB_STATUS _SB_MAKEMASK(1,S_DMA_DSCRB_STATUS)
-+#define V_DMA_DSCRB_STATUS(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_STATUS)
-+#define G_DMA_DSCRB_STATUS(x) _SB_GETVALUE(x,S_DMA_DSCRB_STATUS,M_DMA_DSCRB_STATUS)
-+
-+/*
- * Ethernet Descriptor Status Bits (Table 7-15)
- */
-
- #define M_DMA_ETHRX_BADIP4CS _SB_MAKEMASK1(51)
- #define M_DMA_ETHRX_DSCRERR _SB_MAKEMASK1(52)
-
--/* Note: BADTCPCS is actually in DSCR_A */
--#define M_DMA_ETHRX_BADTCPCS _SB_MAKEMASK1(0) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+/* Note: BADTCPCS is actually in DSCR_B options field */
-+#define M_DMA_ETHRX_BADTCPCS _SB_MAKEMASK1(0)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define M_DMA_ETH_VLAN_FLAG _SB_MAKEMASK1(1)
-+#define M_DMA_ETH_CRC_FLAG _SB_MAKEMASK1(2)
-+#endif
-
- #define S_DMA_ETHRX_RXCH 53
- #define M_DMA_ETHRX_RXCH _SB_MAKEMASK(2,S_DMA_ETHRX_RXCH)
-@@ -231,8 +311,8 @@
- #define K_DMA_ETHRX_PKTTYPE_USER2 6
- #define K_DMA_ETHRX_PKTTYPE_USER3 7
-
--#define M_DMA_ETHRX_MATCH_EXACT _SB_MAKEMASK1(58)
--#define M_DMA_ETHRX_MATCH_HASH _SB_MAKEMASK1(59)
-+#define M_DMA_ETHRX_MATCH_HASH _SB_MAKEMASK1(58)
-+#define M_DMA_ETHRX_MATCH_EXACT _SB_MAKEMASK1(59)
- #define M_DMA_ETHRX_BCAST _SB_MAKEMASK1(60)
- #define M_DMA_ETHRX_MCAST _SB_MAKEMASK1(61)
- #define M_DMA_ETHRX_BAD _SB_MAKEMASK1(62)
-@@ -244,7 +324,7 @@
-
- #define M_DMA_ETHTX_SOP _SB_MAKEMASK1(63)
-
--/*
-+/*
- * Ethernet Transmit Options (Table 7-17)
- */
-
-@@ -297,7 +377,7 @@
- * Data Mover Registers
- ********************************************************************* */
-
--/*
-+/*
- * Data Mover Descriptor Base Address Register (Table 7-22)
- * Register: DM_DSCR_BASE_0
- * Register: DM_DSCR_BASE_1
-@@ -334,7 +414,7 @@
- #define M_DM_DSCR_BASE_ABORT _SB_MAKEMASK1(62)
- #define M_DM_DSCR_BASE_ENABL _SB_MAKEMASK1(63)
-
--/*
-+/*
- * Data Mover Descriptor Count Register (Table 7-25)
- */
-
-@@ -357,6 +437,83 @@
- #define G_DM_CUR_DSCR_DSCR_COUNT(r) _SB_GETVALUE(r,S_DM_CUR_DSCR_DSCR_COUNT,\
- M_DM_CUR_DSCR_DSCR_COUNT)
-
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Data Mover Channel Partial Result Registers
-+ * Register: DM_PARTIAL_0
-+ * Register: DM_PARTIAL_1
-+ * Register: DM_PARTIAL_2
-+ * Register: DM_PARTIAL_3
-+ */
-+#define S_DM_PARTIAL_CRC_PARTIAL _SB_MAKE64(0)
-+#define M_DM_PARTIAL_CRC_PARTIAL _SB_MAKEMASK(32,S_DM_PARTIAL_CRC_PARTIAL)
-+#define V_DM_PARTIAL_CRC_PARTIAL(r) _SB_MAKEVALUE(r,S_DM_PARTIAL_CRC_PARTIAL)
-+#define G_DM_PARTIAL_CRC_PARTIAL(r) _SB_GETVALUE(r,S_DM_PARTIAL_CRC_PARTIAL,\
-+ M_DM_PARTIAL_CRC_PARTIAL)
-+
-+#define S_DM_PARTIAL_TCPCS_PARTIAL _SB_MAKE64(32)
-+#define M_DM_PARTIAL_TCPCS_PARTIAL _SB_MAKEMASK(16,S_DM_PARTIAL_TCPCS_PARTIAL)
-+#define V_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_MAKEVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL)
-+#define G_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_GETVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL,\
-+ M_DM_PARTIAL_TCPCS_PARTIAL)
-+
-+#define M_DM_PARTIAL_ODD_BYTE _SB_MAKEMASK1(48)
-+#endif /* 112x PASS1 */
-+
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Data Mover CRC Definition Registers
-+ * Register: CRC_DEF_0
-+ * Register: CRC_DEF_1
-+ */
-+#define S_CRC_DEF_CRC_INIT _SB_MAKE64(0)
-+#define M_CRC_DEF_CRC_INIT _SB_MAKEMASK(32,S_CRC_DEF_CRC_INIT)
-+#define V_CRC_DEF_CRC_INIT(r) _SB_MAKEVALUE(r,S_CRC_DEF_CRC_INIT)
-+#define G_CRC_DEF_CRC_INIT(r) _SB_GETVALUE(r,S_CRC_DEF_CRC_INIT,\
-+ M_CRC_DEF_CRC_INIT)
-+
-+#define S_CRC_DEF_CRC_POLY _SB_MAKE64(32)
-+#define M_CRC_DEF_CRC_POLY _SB_MAKEMASK(32,S_CRC_DEF_CRC_POLY)
-+#define V_CRC_DEF_CRC_POLY(r) _SB_MAKEVALUE(r,S_CRC_DEF_CRC_POLY)
-+#define G_CRC_DEF_CRC_POLY(r) _SB_GETVALUE(r,S_CRC_DEF_CRC_POLY,\
-+ M_CRC_DEF_CRC_POLY)
-+#endif /* 112x PASS1 */
-+
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Data Mover CRC/Checksum Definition Registers
-+ * Register: CTCP_DEF_0
-+ * Register: CTCP_DEF_1
-+ */
-+#define S_CTCP_DEF_CRC_TXOR _SB_MAKE64(0)
-+#define M_CTCP_DEF_CRC_TXOR _SB_MAKEMASK(32,S_CTCP_DEF_CRC_TXOR)
-+#define V_CTCP_DEF_CRC_TXOR(r) _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_TXOR)
-+#define G_CTCP_DEF_CRC_TXOR(r) _SB_GETVALUE(r,S_CTCP_DEF_CRC_TXOR,\
-+ M_CTCP_DEF_CRC_TXOR)
-+
-+#define S_CTCP_DEF_TCPCS_INIT _SB_MAKE64(32)
-+#define M_CTCP_DEF_TCPCS_INIT _SB_MAKEMASK(16,S_CTCP_DEF_TCPCS_INIT)
-+#define V_CTCP_DEF_TCPCS_INIT(r) _SB_MAKEVALUE(r,S_CTCP_DEF_TCPCS_INIT)
-+#define G_CTCP_DEF_TCPCS_INIT(r) _SB_GETVALUE(r,S_CTCP_DEF_TCPCS_INIT,\
-+ M_CTCP_DEF_TCPCS_INIT)
-+
-+#define S_CTCP_DEF_CRC_WIDTH _SB_MAKE64(48)
-+#define M_CTCP_DEF_CRC_WIDTH _SB_MAKEMASK(2,S_CTCP_DEF_CRC_WIDTH)
-+#define V_CTCP_DEF_CRC_WIDTH(r) _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_WIDTH)
-+#define G_CTCP_DEF_CRC_WIDTH(r) _SB_GETVALUE(r,S_CTCP_DEF_CRC_WIDTH,\
-+ M_CTCP_DEF_CRC_WIDTH)
-+
-+#define K_CTCP_DEF_CRC_WIDTH_4 0
-+#define K_CTCP_DEF_CRC_WIDTH_2 1
-+#define K_CTCP_DEF_CRC_WIDTH_1 2
-+
-+#define M_CTCP_DEF_CRC_BIT_ORDER _SB_MAKEMASK1(50)
-+#endif /* 112x PASS1 */
-+
-+
- /*
- * Data Mover Descriptor Doubleword "A" (Table 7-26)
- */
-@@ -367,10 +524,9 @@
- #define M_DM_DSCRA_UN_DEST _SB_MAKEMASK1(40)
- #define M_DM_DSCRA_UN_SRC _SB_MAKEMASK1(41)
- #define M_DM_DSCRA_INTERRUPT _SB_MAKEMASK1(42)
--/*#define M_DM_DSCRA_THROTTLE _SB_MAKEMASK1(43) */ /* REMOVED PASS2 */
--
--#define M_DM_DSCRA_RD_BKOFF _SB_MAKEMASK1(52) /* PASS2 */
--#define M_DM_DSCRA_WR_BKOFF _SB_MAKEMASK1(53) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+#define M_DM_DSCRA_THROTTLE _SB_MAKEMASK1(43)
-+#endif /* up to 1250 PASS1 */
-
- #define S_DM_DSCRA_DIR_DEST _SB_MAKE64(44)
- #define M_DM_DSCRA_DIR_DEST _SB_MAKEMASK(2,S_DM_DSCRA_DIR_DEST)
-@@ -404,7 +560,23 @@
- #define M_DM_DSCRA_L2C_DEST _SB_MAKEMASK1(50)
- #define M_DM_DSCRA_L2C_SRC _SB_MAKEMASK1(51)
-
--#define M_DM_DSCRA_RESERVED2 _SB_MAKEMASK(10,54)
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_DM_DSCRA_RD_BKOFF _SB_MAKEMASK1(52)
-+#define M_DM_DSCRA_WR_BKOFF _SB_MAKEMASK1(53)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_DM_DSCRA_TCPCS_EN _SB_MAKEMASK1(54)
-+#define M_DM_DSCRA_TCPCS_RES _SB_MAKEMASK1(55)
-+#define M_DM_DSCRA_TCPCS_AP _SB_MAKEMASK1(56)
-+#define M_DM_DSCRA_CRC_EN _SB_MAKEMASK1(57)
-+#define M_DM_DSCRA_CRC_RES _SB_MAKEMASK1(58)
-+#define M_DM_DSCRA_CRC_AP _SB_MAKEMASK1(59)
-+#define M_DM_DSCRA_CRC_DFN _SB_MAKEMASK1(60)
-+#define M_DM_DSCRA_CRC_XBIT _SB_MAKEMASK1(61)
-+#endif /* 112x PASS1 */
-+
-+#define M_DM_DSCRA_RESERVED2 _SB_MAKEMASK(3,61)
-
- /*
- * Data Mover Descriptor Doubleword "B" (Table 7-25)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_genbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_genbus.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_genbus.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_genbus.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * Generic Bus Constants File: sb1250_genbus.h
-- *
-- * This module contains constants and macros useful for
-+ *
-+ * This module contains constants and macros useful for
- * manipulating the SB1250's Generic Bus interface
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -41,22 +41,33 @@
- * Generic Bus Region Configuration Registers (Table 11-4)
- */
-
--#define M_IO_RDY_ACTIVE _SB_MAKEMASK1(0)
--#define M_IO_ENA_RDY _SB_MAKEMASK1(1)
-+#define S_IO_RDY_ACTIVE 0
-+#define M_IO_RDY_ACTIVE _SB_MAKEMASK1(S_IO_RDY_ACTIVE)
-+
-+#define S_IO_ENA_RDY 1
-+#define M_IO_ENA_RDY _SB_MAKEMASK1(S_IO_ENA_RDY)
-
- #define S_IO_WIDTH_SEL 2
- #define M_IO_WIDTH_SEL _SB_MAKEMASK(2,S_IO_WIDTH_SEL)
- #define K_IO_WIDTH_SEL_1 0
- #define K_IO_WIDTH_SEL_2 1
--#define K_IO_WIDTH_SEL_1L 2 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define K_IO_WIDTH_SEL_1L 2
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define K_IO_WIDTH_SEL_4 3
- #define V_IO_WIDTH_SEL(x) _SB_MAKEVALUE(x,S_IO_WIDTH_SEL)
- #define G_IO_WIDTH_SEL(x) _SB_GETVALUE(x,S_IO_WIDTH_SEL,M_IO_WIDTH_SEL)
-
--#define M_IO_PARITY_ENA _SB_MAKEMASK1(4)
--#define M_IO_BURST_EN _SB_MAKEMASK1(5) /* PASS2 */
--#define M_IO_PARITY_ODD _SB_MAKEMASK1(6)
--#define M_IO_NONMUX _SB_MAKEMASK1(7)
-+#define S_IO_PARITY_ENA 4
-+#define M_IO_PARITY_ENA _SB_MAKEMASK1(S_IO_PARITY_ENA)
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_IO_BURST_EN 5
-+#define M_IO_BURST_EN _SB_MAKEMASK1(S_IO_BURST_EN)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+#define S_IO_PARITY_ODD 6
-+#define M_IO_PARITY_ODD _SB_MAKEMASK1(S_IO_PARITY_ODD)
-+#define S_IO_NONMUX 7
-+#define M_IO_NONMUX _SB_MAKEMASK1(S_IO_NONMUX)
-
- #define S_IO_TIMEOUT 8
- #define M_IO_TIMEOUT _SB_MAKEMASK(8,S_IO_TIMEOUT)
-@@ -94,17 +105,21 @@
- #define V_IO_ALE_WIDTH(x) _SB_MAKEVALUE(x,S_IO_ALE_WIDTH)
- #define G_IO_ALE_WIDTH(x) _SB_GETVALUE(x,S_IO_ALE_WIDTH,M_IO_ALE_WIDTH)
-
--#define M_IO_EARLY_CS _SB_MAKEMASK1(3) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_IO_EARLY_CS _SB_MAKEMASK1(3)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_IO_ALE_TO_CS 4
- #define M_IO_ALE_TO_CS _SB_MAKEMASK(2,S_IO_ALE_TO_CS)
- #define V_IO_ALE_TO_CS(x) _SB_MAKEVALUE(x,S_IO_ALE_TO_CS)
- #define G_IO_ALE_TO_CS(x) _SB_GETVALUE(x,S_IO_ALE_TO_CS,M_IO_ALE_TO_CS)
-
--#define S_IO_BURST_WIDTH _SB_MAKE64(6) /* PASS2 */
--#define M_IO_BURST_WIDTH _SB_MAKEMASK(2,S_IO_BURST_WIDTH) /* PASS2 */
--#define V_IO_BURST_WIDTH(x) _SB_MAKEVALUE(x,S_IO_BURST_WIDTH) /* PASS2 */
--#define G_IO_BURST_WIDTH(x) _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_IO_BURST_WIDTH _SB_MAKE64(6)
-+#define M_IO_BURST_WIDTH _SB_MAKEMASK(2,S_IO_BURST_WIDTH)
-+#define V_IO_BURST_WIDTH(x) _SB_MAKEVALUE(x,S_IO_BURST_WIDTH)
-+#define G_IO_BURST_WIDTH(x) _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_IO_CS_WIDTH 8
- #define M_IO_CS_WIDTH _SB_MAKEMASK(5,S_IO_CS_WIDTH)
-@@ -126,7 +141,9 @@
- #define V_IO_ALE_TO_WRITE(x) _SB_MAKEVALUE(x,S_IO_ALE_TO_WRITE)
- #define G_IO_ALE_TO_WRITE(x) _SB_GETVALUE(x,S_IO_ALE_TO_WRITE,M_IO_ALE_TO_WRITE)
-
--#define M_IO_RDY_SYNC _SB_MAKEMASK1(3) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_IO_RDY_SYNC _SB_MAKEMASK1(3)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_IO_WRITE_WIDTH 4
- #define M_IO_WRITE_WIDTH _SB_MAKEMASK(4,S_IO_WRITE_WIDTH)
-@@ -166,7 +183,9 @@
- #define M_IO_TIMEOUT_INT _SB_MAKEMASK1(10)
- #define M_IO_ILL_ADDR_INT _SB_MAKEMASK1(11)
- #define M_IO_MULT_CS_INT _SB_MAKEMASK1(12)
--#define M_IO_COH_ERR _SB_MAKEMASK1(14) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_IO_COH_ERR _SB_MAKEMASK1(14)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * PCMCIA configuration register (Table 12-6)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250.h 2003-01-21 23:11:38.000000000 -0600
-@@ -19,19 +19,32 @@
- #ifndef _ASM_SIBYTE_SB1250_H
- #define _ASM_SIBYTE_SB1250_H
-
-+#define SB1250_NR_IRQS 64
-+
- #ifndef __ASSEMBLY__
-
- #include <asm/addrspace.h>
-
- /* For revision/pass information */
- #include <asm/sibyte/sb1250_scd.h>
--extern unsigned int sb1250_pass;
-+extern unsigned int sb1_pass;
-+extern unsigned int soc_pass;
-+extern unsigned int soc_type;
-
- extern void sb1250_time_init(void);
- extern unsigned long sb1250_gettimeoffset(void);
- extern void sb1250_mask_irq(int cpu, int irq);
- extern void sb1250_unmask_irq(int cpu, int irq);
- extern void sb1250_smp_finish(void);
-+
-+#define AT_spin \
-+ __asm__ __volatile__ ( \
-+ ".set noat\n" \
-+ "li $at, 0\n" \
-+ "1: beqz $at, 1b\n" \
-+ ".set at\n" \
-+ )
-+
- #endif
-
- #define IO_SPACE_BASE KSEG1
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_int.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_int.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_int.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_int.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * Interrupt Mapper definitions File: sb1250_int.h
-- *
-+ *
- * This module contains constants for manipulating the SB1250's
- * interrupt mapper and definitions for the interrupt sources.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -43,7 +43,7 @@
-
- /*
- * Interrupt sources (Table 4-8, UM 0.2)
-- *
-+ *
- * First, the interrupt numbers.
- */
-
-@@ -77,8 +77,10 @@
- #define K_INT_MBOX_1 27
- #define K_INT_MBOX_2 28
- #define K_INT_MBOX_3 29
--#define K_INT_CYCLE_CP0_INT 30 /* PASS2 */
--#define K_INT_CYCLE_CP1_INT 31 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define K_INT_CYCLE_CP0_INT 30
-+#define K_INT_CYCLE_CP1_INT 31
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define K_INT_GPIO_0 32
- #define K_INT_GPIO_1 33
- #define K_INT_GPIO_2 34
-@@ -108,9 +110,11 @@
- #define K_INT_PCI_INTC 58
- #define K_INT_PCI_INTD 59
- #define K_INT_SPARE_2 60
--#define K_INT_MAC_0_CH1 61 /* PASS2 */
--#define K_INT_MAC_1_CH1 62 /* PASS2 */
--#define K_INT_MAC_2_CH1 63 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define K_INT_MAC_0_CH1 61
-+#define K_INT_MAC_1_CH1 62
-+#define K_INT_MAC_2_CH1 63
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * Mask values for each interrupt
-@@ -146,8 +150,10 @@
- #define M_INT_MBOX_1 _SB_MAKEMASK1(K_INT_MBOX_1)
- #define M_INT_MBOX_2 _SB_MAKEMASK1(K_INT_MBOX_2)
- #define M_INT_MBOX_3 _SB_MAKEMASK1(K_INT_MBOX_3)
--#define M_INT_CYCLE_CP0_INT _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT) /* PASS2 */
--#define M_INT_CYCLE_CP1_INT _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_INT_CYCLE_CP0_INT _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
-+#define M_INT_CYCLE_CP1_INT _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define M_INT_GPIO_0 _SB_MAKEMASK1(K_INT_GPIO_0)
- #define M_INT_GPIO_1 _SB_MAKEMASK1(K_INT_GPIO_1)
- #define M_INT_GPIO_2 _SB_MAKEMASK1(K_INT_GPIO_2)
-@@ -177,9 +183,11 @@
- #define M_INT_PCI_INTC _SB_MAKEMASK1(K_INT_PCI_INTC)
- #define M_INT_PCI_INTD _SB_MAKEMASK1(K_INT_PCI_INTD)
- #define M_INT_SPARE_2 _SB_MAKEMASK1(K_INT_SPARE_2)
--#define M_INT_MAC_0_CH1 _SB_MAKEMASK1(K_INT_MAC_0_CH1) /* PASS2 */
--#define M_INT_MAC_1_CH1 _SB_MAKEMASK1(K_INT_MAC_1_CH1) /* PASS2 */
--#define M_INT_MAC_2_CH1 _SB_MAKEMASK1(K_INT_MAC_2_CH1) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_INT_MAC_0_CH1 _SB_MAKEMASK1(K_INT_MAC_0_CH1)
-+#define M_INT_MAC_1_CH1 _SB_MAKEMASK1(K_INT_MAC_1_CH1)
-+#define M_INT_MAC_2_CH1 _SB_MAKEMASK1(K_INT_MAC_2_CH1)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * Interrupt mappings
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_l2c.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_l2c.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_l2c.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_l2c.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * L2 Cache constants and macros File: sb1250_l2c.h
-- *
-+ *
- * This module contains constants useful for manipulating the
- * level 2 cache.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -102,4 +102,27 @@
- #define L2C_ENTRIES_PER_WAY 4096
- #define L2C_NUM_WAYS 4
-
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * L2 Read Misc. register (A_L2_READ_MISC)
-+ */
-+#define S_L2C_MISC_NO_WAY 10
-+#define M_L2C_MISC_NO_WAY _SB_MAKEMASK(4,S_L2C_MISC_NO_WAY)
-+#define V_L2C_MISC_NO_WAY(x) _SB_MAKEVALUE(x,S_L2C_MISC_NO_WAY)
-+#define G_L2C_MISC_NO_WAY(x) _SB_GETVALUE(x,S_L2C_MISC_NO_WAY,M_L2C_MISC_NO_WAY)
-+
-+#define M_L2C_MISC_ECC_CLEANUP_DIS _SB_MAKEMASK1(9)
-+#define M_L2C_MISC_MC_PRIO_LOW _SB_MAKEMASK1(8)
-+#define M_L2C_MISC_SOFT_DISABLE_T _SB_MAKEMASK1(7)
-+#define M_L2C_MISC_SOFT_DISABLE_B _SB_MAKEMASK1(6)
-+#define M_L2C_MISC_SOFT_DISABLE_R _SB_MAKEMASK1(5)
-+#define M_L2C_MISC_SOFT_DISABLE_L _SB_MAKEMASK1(4)
-+#define M_L2C_MISC_SCACHE_DISABLE_T _SB_MAKEMASK1(3)
-+#define M_L2C_MISC_SCACHE_DISABLE_B _SB_MAKEMASK1(2)
-+#define M_L2C_MISC_SCACHE_DISABLE_R _SB_MAKEMASK1(1)
-+#define M_L2C_MISC_SCACHE_DISABLE_L _SB_MAKEMASK1(0)
-+#endif /* 112x PASS1 */
-+
-+
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_ldt.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_ldt.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_ldt.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_ldt.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * LDT constants File: sb1250_ldt.h
-- *
-- * This module contains constants and macros to describe
-- * the LDT interface on the SB1250.
-- *
-+ *
-+ * This module contains constants and macros to describe
-+ * the LDT interface on the SB1250.
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -70,7 +70,9 @@
- #define R_LDT_TYPE1_SRIRXNUM 0x0058
- #define R_LDT_TYPE1_ERRSTATUS 0x0068
- #define R_LDT_TYPE1_SRICTRL 0x006C
--#define R_LDT_TYPE1_ADDSTATUS 0x0070 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_LDT_TYPE1_ADDSTATUS 0x0070
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define R_LDT_TYPE1_TXBUFCNT 0x00C8
- #define R_LDT_TYPE1_EXPCRC 0x00DC
- #define R_LDT_TYPE1_RXCRC 0x00F0
-@@ -153,14 +155,16 @@
-
- /*
- * LDT Status Register (Table 8-14). Note that these constants
-- * assume you've read the command and status register
-+ * assume you've read the command and status register
- * together (32-bit read at offset 0x04)
- *
- * These bits also apply to the secondary status
- * register (Table 8-15), offset 0x1C
- */
-
--#define M_LDT_STATUS_VGAEN _SB_MAKEMASK1_32(3) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_LDT_STATUS_VGAEN _SB_MAKEMASK1_32(3)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define M_LDT_STATUS_CAPLIST _SB_MAKEMASK1_32(20)
- #define M_LDT_STATUS_66MHZCAP _SB_MAKEMASK1_32(21)
- #define M_LDT_STATUS_RESERVED2 _SB_MAKEMASK1_32(22)
-@@ -179,8 +183,8 @@
- #define M_LDT_STATUS_DETPARERR _SB_MAKEMASK1_32(31)
-
- /*
-- * Bridge Control Register (Table 8-16). Note that these
-- * constants assume you've read the register as a 32-bit
-+ * Bridge Control Register (Table 8-16). Note that these
-+ * constants assume you've read the register as a 32-bit
- * read (offset 0x3C)
- */
-
-@@ -281,9 +285,13 @@
- #define M_LDT_SRICMD_SIPREADY _SB_MAKEMASK1_32(16)
- #define M_LDT_SRICMD_SYNCPTRCTL _SB_MAKEMASK1_32(17)
- #define M_LDT_SRICMD_REDUCESYNCZERO _SB_MAKEMASK1_32(18)
--/*#define M_LDT_SRICMD_DISSTARVATIONCNT _SB_MAKEMASK1_32(19) */ /* PASS1 */
--#define M_LDT_SRICMD_DISMULTTXVLD _SB_MAKEMASK1_32(19) /* PASS2 */
--#define M_LDT_SRICMD_EXPENDIAN _SB_MAKEMASK1_32(26) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+#define M_LDT_SRICMD_DISSTARVATIONCNT _SB_MAKEMASK1_32(19) /* PASS1 */
-+#endif /* up to 1250 PASS1 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_LDT_SRICMD_DISMULTTXVLD _SB_MAKEMASK1_32(19)
-+#define M_LDT_SRICMD_EXPENDIAN _SB_MAKEMASK1_32(26)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- #define S_LDT_SRICMD_RXMARGIN 20
-@@ -402,14 +410,16 @@
- #define V_LDT_TXBUFCNT_RDATA(x) _SB_MAKEVALUE_32(x,S_LDT_TXBUFCNT_RDATA)
- #define G_LDT_TXBUFCNT_RDATA(x) _SB_GETVALUE_32(x,S_LDT_TXBUFCNT_RDATA,M_LDT_TXBUFCNT_RDATA)
-
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
- /*
-- * Additional Status Register (PASS2)
-+ * Additional Status Register
- */
-
- #define S_LDT_ADDSTATUS_TGTDONE 0
- #define M_LDT_ADDSTATUS_TGTDONE _SB_MAKEMASK_32(8,S_LDT_ADDSTATUS_TGTDONE)
- #define V_LDT_ADDSTATUS_TGTDONE(x) _SB_MAKEVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE)
- #define G_LDT_ADDSTATUS_TGTDONE(x) _SB_GETVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE,M_LDT_ADDSTATUS_TGTDONE)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #endif
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_mac.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mac.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_mac.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mac.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * MAC constants and macros File: sb1250_mac.h
-- *
-+ *
- * This module contains constants and macros for the SB1250's
- * ethernet controllers.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -128,7 +128,13 @@
- #define M_MAC_BYPASS_16 _SB_MAKEMASK1(42)
- #define M_MAC_BYPASS_FCS_CHK _SB_MAKEMASK1(43)
-
--#define M_MAC_RX_CH_SEL_MSB _SB_MAKEMASK1(44) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_RX_CH_SEL_MSB _SB_MAKEMASK1(44)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_SPLIT_CH_SEL _SB_MAKEMASK1(45)
-+#endif /* 112x PASS1 */
-
- #define S_MAC_BYPASS_IFG _SB_MAKE64(46)
- #define M_MAC_BYPASS_IFG _SB_MAKEMASK(8,S_MAC_BYPASS_IFG)
-@@ -200,14 +206,24 @@
- */
-
- #define S_MAC_TX_WR_THRSH _SB_MAKE64(0)
--/* #define M_MAC_TX_WR_THRSH _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */ /* PASS1 */
--#define M_MAC_TX_WR_THRSH _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+/* XXX: Can't enable, as it has the same name as a pass2+ define below. */
-+/* #define M_MAC_TX_WR_THRSH _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */
-+#endif /* up to 1250 PASS1 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_TX_WR_THRSH _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define V_MAC_TX_WR_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)
- #define G_MAC_TX_WR_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)
-
- #define S_MAC_TX_RD_THRSH _SB_MAKE64(8)
--/* #define M_MAC_TX_RD_THRSH _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */ /* PASS1 */
--#define M_MAC_TX_RD_THRSH _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+/* XXX: Can't enable, as it has the same name as a pass2+ define below. */
-+/* #define M_MAC_TX_RD_THRSH _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */
-+#endif /* up to 1250 PASS1 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_TX_RD_THRSH _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define V_MAC_TX_RD_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)
- #define G_MAC_TX_RD_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)
-
-@@ -231,10 +247,12 @@
- #define V_MAC_RX_RL_THRSH(x) _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)
- #define G_MAC_RX_RL_THRSH(x) _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)
-
--#define S_MAC_ENC_FC_THRSH _SB_MAKE64(56) /* PASS2 */
--#define M_MAC_ENC_FC_THRSH _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH) /* PASS2 */
--#define V_MAC_ENC_FC_THRSH(x) _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH) /* PASS2 */
--#define G_MAC_ENC_FC_THRSH(x) _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_ENC_FC_THRSH _SB_MAKE64(56)
-+#define M_MAC_ENC_FC_THRSH _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)
-+#define V_MAC_ENC_FC_THRSH(x) _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)
-+#define G_MAC_ENC_FC_THRSH(x) _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * MAC Frame Configuration Registers (Table 9-15)
-@@ -243,11 +261,19 @@
- * Register: MAC_FRAME_CFG_2
- */
-
-+/* XXXCGD: ??? Unused in pass2? */
- #define S_MAC_IFG_RX _SB_MAKE64(0)
- #define M_MAC_IFG_RX _SB_MAKEMASK(6,S_MAC_IFG_RX)
- #define V_MAC_IFG_RX(x) _SB_MAKEVALUE(x,S_MAC_IFG_RX)
- #define G_MAC_IFG_RX(x) _SB_GETVALUE(x,S_MAC_IFG_RX,M_MAC_IFG_RX)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_PRE_LEN _SB_MAKE64(0)
-+#define M_MAC_PRE_LEN _SB_MAKEMASK(6,S_MAC_PRE_LEN)
-+#define V_MAC_PRE_LEN(x) _SB_MAKEVALUE(x,S_MAC_PRE_LEN)
-+#define G_MAC_PRE_LEN(x) _SB_GETVALUE(x,S_MAC_PRE_LEN,M_MAC_PRE_LEN)
-+#endif /* 112x PASS1 */
-+
- #define S_MAC_IFG_TX _SB_MAKE64(6)
- #define M_MAC_IFG_TX _SB_MAKEMASK(6,S_MAC_IFG_TX)
- #define V_MAC_IFG_TX(x) _SB_MAKEVALUE(x,S_MAC_IFG_TX)
-@@ -285,7 +311,7 @@
-
- /*
- * These constants are used to configure the fields within the Frame
-- * Configuration Register.
-+ * Configuration Register.
- */
-
- #define K_MAC_IFG_RX_10 _SB_MAKE64(0) /* See table 176, not used */
-@@ -320,10 +346,12 @@
- #define V_MAC_SLOT_SIZE_100 V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_100)
- #define V_MAC_SLOT_SIZE_1000 V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_1000)
-
-+#define K_MAC_MIN_FRAMESZ_FIFO _SB_MAKE64(9)
- #define K_MAC_MIN_FRAMESZ_DEFAULT _SB_MAKE64(64)
- #define K_MAC_MAX_FRAMESZ_DEFAULT _SB_MAKE64(1518)
- #define K_MAC_MAX_FRAMESZ_JUMBO _SB_MAKE64(9216)
-
-+#define V_MAC_MIN_FRAMESZ_FIFO V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_FIFO)
- #define V_MAC_MIN_FRAMESZ_DEFAULT V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_DEFAULT)
- #define V_MAC_MAX_FRAMESZ_DEFAULT V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_DEFAULT)
- #define V_MAC_MAX_FRAMESZ_JUMBO V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_JUMBO)
-@@ -335,7 +363,24 @@
- * Register: MAC_VLANTAG_2
- */
-
--/* No bit fields: lower 32 bits of register are the tags */
-+#define S_MAC_VLAN_TAG _SB_MAKE64(0)
-+#define M_MAC_VLAN_TAG _SB_MAKEMASK(32,S_MAC_VLAN_TAG)
-+#define V_MAC_VLAN_TAG(x) _SB_MAKEVALUE(x,S_MAC_VLAN_TAG)
-+#define G_MAC_VLAN_TAG(x) _SB_GETVALUE(x,S_MAC_VLAN_TAG,M_MAC_VLAN_TAG)
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_TX_PKT_OFFSET _SB_MAKE64(32)
-+#define M_MAC_TX_PKT_OFFSET _SB_MAKEMASK(8,S_MAC_TX_PKT_OFFSET)
-+#define V_MAC_TX_PKT_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_TX_PKT_OFFSET)
-+#define G_MAC_TX_PKT_OFFSET(x) _SB_GETVALUE(x,S_MAC_TX_PKT_OFFSET,M_MAC_TX_PKT_OFFSET)
-+
-+#define S_MAC_TX_CRC_OFFSET _SB_MAKE64(40)
-+#define M_MAC_TX_CRC_OFFSET _SB_MAKEMASK(8,S_MAC_TX_CRC_OFFSET)
-+#define V_MAC_TX_CRC_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_TX_CRC_OFFSET)
-+#define G_MAC_TX_CRC_OFFSET(x) _SB_GETVALUE(x,S_MAC_TX_CRC_OFFSET,M_MAC_TX_CRC_OFFSET)
-+
-+#define M_MAC_CH_BASE_FC_EN _SB_MAKEMASK1(48)
-+#endif /* 112x PASS1 */
-
- /*
- * MAC Status Registers (Table 9-17)
-@@ -348,7 +393,7 @@
- * Register: MAC_INT_MASK_2
- */
-
--/*
-+/*
- * Use these constants to shift the appropriate channel
- * into the CH0 position so the same tests can be used
- * on each channel.
-@@ -376,6 +421,25 @@
- #define M_MAC_INT_DSCR _SB_MAKEMASK1(5)
- #define M_MAC_INT_ERR _SB_MAKEMASK1(6)
- #define M_MAC_INT_DZERO _SB_MAKEMASK1(7) /* only for TX channels */
-+#define M_MAC_INT_DROP _SB_MAKEMASK1(7) /* only for RX channels */
-+
-+/*
-+ * In the following definitions we use ch (0/1) and txrx (TX=1, RX=0, see
-+ * also DMA_TX/DMA_RX in sb_regs.h).
-+ */
-+#define S_MAC_STATUS_CH_OFFSET(ch,txrx) _SB_MAKE64(((ch) + 2 * (txrx)) * S_MAC_CHANWIDTH)
-+
-+#define M_MAC_STATUS_CHANNEL(ch,txrx) _SB_MAKEVALUE(_SB_MAKEMASK(8,0),S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_EOP_COUNT(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_COUNT,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_EOP_TIMER(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_TIMER,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_EOP_SEEN(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_SEEN,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_HWM(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_HWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_LWM(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_LWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_DSCR(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_DSCR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_ERR(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_ERR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_DZERO(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_DZERO,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_DROP(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_DROP,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_OTHER_ERR _SB_MAKEVALUE(_SB_MAKEMASK(7,0),40)
-
-
- #define M_MAC_RX_UNDRFL _SB_MAKEMASK1(40)
-@@ -385,13 +449,19 @@
- #define M_MAC_LTCOL_ERR _SB_MAKEMASK1(44)
- #define M_MAC_EXCOL_ERR _SB_MAKEMASK1(45)
- #define M_MAC_CNTR_OVRFL_ERR _SB_MAKEMASK1(46)
--#define M_MAC_SPLIT_EN _SB_MAKEMASK1(47) /* interrupt mask only */ /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_SPLIT_EN _SB_MAKEMASK1(47) /* interrupt mask only */
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_MAC_COUNTER_ADDR _SB_MAKE64(47)
- #define M_MAC_COUNTER_ADDR _SB_MAKEMASK(5,S_MAC_COUNTER_ADDR)
- #define V_MAC_COUNTER_ADDR(x) _SB_MAKEVALUE(x,S_MAC_COUNTER_ADDR)
- #define G_MAC_COUNTER_ADDR(x) _SB_GETVALUE(x,S_MAC_COUNTER_ADDR,M_MAC_COUNTER_ADDR)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_TX_PAUSE_ON _SB_MAKEMASK1(52)
-+#endif /* 112x PASS1 */
-+
- /*
- * MAC Fifo Pointer Registers (Table 9-19) [Debug register]
- * Register: MAC_FIFO_PTRS_0
-@@ -446,6 +516,15 @@
- /* No bitfields */
-
- /*
-+ * MAC Receive Address Filter Mask Registers
-+ * Registers: MAC_ADDRMASK0_0 and MAC_ADDRMASK0_1
-+ * Registers: MAC_ADDRMASK1_0 and MAC_ADDRMASK1_1
-+ * Registers: MAC_ADDRMASK2_0 and MAC_ADDRMASK2_1
-+ */
-+
-+/* No bitfields */
-+
-+/*
- * MAC Recieve Address Filter Hash Match Registers (Table 9-22)
- * Registers: MAC_HASH0_0 through MAC_HASH7_0
- * Registers: MAC_HASH0_1 through MAC_HASH7_1
-@@ -506,13 +585,35 @@
- #define M_MAC_MCAST_INV _SB_MAKEMASK1(4)
- #define M_MAC_BCAST_EN _SB_MAKEMASK1(5)
- #define M_MAC_DIRECT_INV _SB_MAKEMASK1(6)
--#define M_MAC_ALLMCAST_EN _SB_MAKEMASK1(7) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_ALLMCAST_EN _SB_MAKEMASK1(7)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_MAC_IPHDR_OFFSET _SB_MAKE64(8)
- #define M_MAC_IPHDR_OFFSET _SB_MAKEMASK(8,S_MAC_IPHDR_OFFSET)
- #define V_MAC_IPHDR_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_IPHDR_OFFSET)
- #define G_MAC_IPHDR_OFFSET(x) _SB_GETVALUE(x,S_MAC_IPHDR_OFFSET,M_MAC_IPHDR_OFFSET)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_RX_CRC_OFFSET _SB_MAKE64(16)
-+#define M_MAC_RX_CRC_OFFSET _SB_MAKEMASK(8,S_MAC_RX_CRC_OFFSET)
-+#define V_MAC_RX_CRC_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_RX_CRC_OFFSET)
-+#define G_MAC_RX_CRC_OFFSET(x) _SB_GETVALUE(x,S_MAC_RX_CRC_OFFSET,M_MAC_RX_CRC_OFFSET)
-+
-+#define S_MAC_RX_PKT_OFFSET _SB_MAKE64(24)
-+#define M_MAC_RX_PKT_OFFSET _SB_MAKEMASK(8,S_MAC_RX_PKT_OFFSET)
-+#define V_MAC_RX_PKT_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_RX_PKT_OFFSET)
-+#define G_MAC_RX_PKT_OFFSET(x) _SB_GETVALUE(x,S_MAC_RX_PKT_OFFSET,M_MAC_RX_PKT_OFFSET)
-+
-+#define M_MAC_FWDPAUSE_EN _SB_MAKEMASK1(32)
-+#define M_MAC_VLAN_DET_EN _SB_MAKEMASK1(33)
-+
-+#define S_MAC_RX_CH_MSN_SEL _SB_MAKE64(34)
-+#define M_MAC_RX_CH_MSN_SEL _SB_MAKEMASK(8,S_MAC_RX_CH_MSN_SEL)
-+#define V_MAC_RX_CH_MSN_SEL(x) _SB_MAKEVALUE(x,S_MAC_RX_CH_MSN_SEL)
-+#define G_MAC_RX_CH_MSN_SEL(x) _SB_GETVALUE(x,S_MAC_RX_CH_MSN_SEL,M_MAC_RX_CH_MSN_SEL)
-+#endif /* 112x PASS1 */
-+
- /*
- * MAC Receive Channel Select Registers (Table 9-25)
- */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_mc.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mc.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_mc.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_mc.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-- * Memory Controller constants File: sb1250_mc.h
-- *
-+ *
-+ * Memory Controller constants File: sb1250_mc.h
-+ *
- * This module contains constants and macros useful for
- * programming the memory controller.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -166,7 +166,7 @@
-
- #define K_MC_REF_RATE_100MHz 0x62
- #define K_MC_REF_RATE_133MHz 0x81
--#define K_MC_REF_RATE_200MHz 0xC4
-+#define K_MC_REF_RATE_200MHz 0xC4
-
- #define V_MC_REF_RATE_100MHz V_MC_REF_RATE(K_MC_REF_RATE_100MHz)
- #define V_MC_REF_RATE_133MHz V_MC_REF_RATE(K_MC_REF_RATE_133MHz)
-@@ -191,6 +191,10 @@
- #define G_MC_ADDR_DRIVE(x) _SB_GETVALUE(x,S_MC_ADDR_DRIVE,M_MC_ADDR_DRIVE)
- #define V_MC_ADDR_DRIVE_DEFAULT V_MC_ADDR_DRIVE(0x0)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MC_REF_DISABLE _SB_MAKEMASK1(30)
-+#endif /* 112x PASS1 */
-+
- #define M_MC_DLL_BYPASS _SB_MAKEMASK1(31)
-
- #define S_MC_DQI_SKEW 32
-@@ -224,7 +228,7 @@
- V_MC_ADDR_DRIVE_DEFAULT | \
- V_MC_DATA_DRIVE_DEFAULT | \
- V_MC_CLOCK_DRIVE_DEFAULT | \
-- V_MC_REF_RATE_DEFAULT
-+ V_MC_REF_RATE_DEFAULT
-
-
-
-@@ -291,6 +295,10 @@
-
- #define M_MC_EXTERNALDECODE _SB_MAKEMASK1(35)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MC_PRE_ON_A8 _SB_MAKEMASK1(36)
-+#define M_MC_RAM_WITH_A13 _SB_MAKEMASK1(38)
-+#endif /* 112x PASS1 */
-
-
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_prof.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_prof.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_prof.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,133 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--/*
-- *
-- * Definitions for the sb1250_prof pseudo device.
-- *
-- */
--//#include <sys/param.h>
--//#include <sys/device.h>
--
--#ifndef SB1250_PROF_H
--#define SB1250_PROF_H 1
--
--#define MAXCPUS 1
--#define NEWPIDSIZE 160
--/* The two definitions below must match those in pgather.c */
--#define MAX_COUNTERS 4
--#define MAX_SLOTS 8
--
--#define STATS
--
--typedef struct {
-- u_int8_t event;
-- u_int8_t hwcode; /* pcarch-specific bits identifying desired event */
-- u_int64_t period; /* 40-bit sampling period during slot */
--} sbprof_mux_counter_t;
--
--typedef struct {
-- sbprof_mux_counter_t
-- counter[MAX_COUNTERS]; /* data for setting up counter */
-- u_int8_t n; /* number of counters to use in slot */
--} sbprof_mux_slot_t;
--
--typedef struct {
-- sbprof_mux_slot_t slots[MAX_SLOTS];
--} sbprof_mux_slots;
--
--typedef struct {
-- u_int64_t total; /* total number of interrupts */
-- u_int64_t dropped; /* total interrupts when buffers were full */
-- u_int64_t value; /* initial counter value when slot next entered */
-- u_int32_t start_period_low; /* counter val for starting a period */
-- u_int8_t start_period_high;
-- u_int8_t event; /* pcarch-specific event_t */
-- u_int8_t hwcode; /* pcarch-specific code for event */
-- u_int8_t inuse; /* Is counter X slot actually used? */
--} event_counter_state_t;
--
--typedef struct {
-- u_int32_t total; /* total for current run of slot */
-- u_int32_t dropped; /* dropped for current run of slot */
-- u_int64_t start_period;/* counter value to start a full period */
--} active_counter_state_t;
--
--struct _cpudata1 {
-- /******* page-aligned boundary *********************************************/
-- u_int32_t last_pid; /* Pid for last sample in buffer (-1 initially) */
-- u_int8_t curbuf; /* 2 -> both buffers full at end of last interrupt
-- 1 -> use buffer[1]
-- 0 -> use buffer[0] */
-- u_int8_t nextbuf; /* the index of the next buffer to be filled */
-- u_int8_t nnewpid[2]; /* number of entries set in new_pid[i] */
-- u_int32_t next; /* index of next free entry in curbuf */
-- int32_t last_event; /* index of byte just past last event DP_D_EVENTS
-- message in curbuf that needs the number of events
-- filled in. -1 means there is no such message and
-- that such a message must be entered before
-- adding event samples.
-- */
-- /* 16-byte boundary */
-- volatile u_int32_t full[2];
-- /* full[i] > 0 means buffer[i] needs emptying.
-- 0 to nonzero done by sbprofintr().
-- nonzero to zero by sbprofioctl().
-- When nonzero, full[i] is the number of bytes
-- set in buffer[i].
-- */
-- u_int32_t threshold; /* when does the current multiplexing slot expire? */
-- u_int8_t slotid; /* index into slots[] of current multiplexing slot */
-- u_int8_t nslots; /* number of slots */
-- u_int8_t needs_scan;
-- u_int8_t pad[1];
-- /******* 32-byte boundary *********************************************/
-- active_counter_state_t cur_slot[MAX_COUNTERS];
-- /******* 32-byte boundary *********************************************/
-- event_counter_state_t event_counter_state[MAX_SLOTS][MAX_COUNTERS];
-- /******* 32-byte boundary *********************************************/
-- u_int32_t overshot[MAX_SLOTS];
--
-- u_int32_t newpid[2][NEWPIDSIZE]; /* new_pid[i][] contains indices of
-- buffer[i][] where a new_pid message
-- is encoded and needs to have the
-- image_id, base addr, and num_inst
-- fields set by the user-level daemon */
--#ifdef STATS
-- u_int64_t newpidlimit;
-- u_int64_t buflimit;
--#endif
--};
--
--#define SBPROF_BUFSIZE (32*1024 - (sizeof(struct _cpudata1)+1)/2)
--
--typedef struct _cpudata {
-- struct _cpudata1 x;
-- u_int8_t buffer[2][SBPROF_BUFSIZE];
--} cpudata_t;
--
--#define SBPROF_START _IOW('S', 0x1, sbprof_mux_slots)
--#define SBPROF_STOP _IO('S', 0x2)
--#define SBPROF_BUFFULL _IOWR('S', 0x3, int)
--#define SBPROF_BUFEMPTY _IOW('S', 0x4, int)
--
--#if NEWPIDSIZE > 254
--#error "newpidsize too big"
--#endif
--
--#endif /* SB1250_PROF_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_regs.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_regs.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_regs.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_regs.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * Register Definitions File: sb1250_regs.h
-- *
-+ *
- * This module contains the addresses of the on-chip peripherals
- * on the SB1250.
-- *
-+ *
- * SB1250 specification level: 01/02/2002
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -40,23 +40,27 @@
-
- /* *********************************************************************
- * Some general notes:
-- *
-+ *
- * For the most part, when there is more than one peripheral
- * of the same type on the SOC, the constants below will be
- * offsets from the base of each peripheral. For example,
- * the MAC registers are described as offsets from the first
- * MAC register, and there will be a MAC_REGISTER() macro
-- * to calculate the base address of a given MAC.
-- *
-+ * to calculate the base address of a given MAC.
-+ *
- * The information in this file is based on the SB1250 SOC
- * manual version 0.2, July 2000.
- ********************************************************************* */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * Memory Controller Registers
- ********************************************************************* */
-
-+/*
-+ * XXX: can't remove MC base 0 if 112x, since it's used by other macros,
-+ * since there is one reg there (but it could get its addr/offset constant).
-+ */
- #define A_MC_BASE_0 0x0010051000
- #define A_MC_BASE_1 0x0010052000
- #define MC_REGISTER_SPACING 0x1000
-@@ -97,22 +101,32 @@
- #define R_MC_TEST_ECC 0x0000000420
- #define R_MC_MCLK_CFG 0x0000000500
-
--/* *********************************************************************
-+/* *********************************************************************
- * L2 Cache Control Registers
- ********************************************************************* */
-
--#define A_L2_READ_ADDRESS 0x0010040018
--#define A_L2_EEC_ADDRESS 0x0010040038
-+#define A_L2_READ_TAG 0x0010040018
-+#define A_L2_ECC_TAG 0x0010040038
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_L2_READ_MISC 0x0010040058
-+#endif /* 112x PASS1 */
- #define A_L2_WAY_DISABLE 0x0010041000
- #define A_L2_MAKEDISABLE(x) (A_L2_WAY_DISABLE | (((~(x))&0x0F) << 8))
- #define A_L2_MGMT_TAG_BASE 0x00D0000000
-
--#define A_L2_CACHE_DISABLE 0x0010042000 /* PASS2 */
--#define A_L2_MAKECACHEDISABLE(x) (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8)) /* PASS2 */
--#define A_L2_MISC_CONFIG 0x0010043000 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_L2_CACHE_DISABLE 0x0010042000
-+#define A_L2_MAKECACHEDISABLE(x) (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8))
-+#define A_L2_MISC_CONFIG 0x0010043000
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+/* Backward-compatibility definitions. */
-+/* XXX: discourage people from using these constants. */
-+#define A_L2_READ_ADDRESS A_L2_READ_TAG
-+#define A_L2_EEC_ADDRESS A_L2_ECC_TAG
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * PCI Interface Registers
- ********************************************************************* */
-
-@@ -120,13 +134,15 @@
- #define A_PCI_TYPE01_HEADER 0x00DE000800
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * Ethernet DMA and MACs
- ********************************************************************* */
-
- #define A_MAC_BASE_0 0x0010064000
- #define A_MAC_BASE_1 0x0010065000
-+#if SIBYTE_HDR_FEATURE_CHIP(1250)
- #define A_MAC_BASE_2 0x0010066000
-+#endif /* 1250 */
-
- #define MAC_SPACING 0x1000
- #define MAC_DMA_TXRX_SPACING 0x0400
-@@ -135,6 +151,7 @@
- #define DMA_TX 1
- #define MAC_NUM_DMACHAN 2 /* channels per direction */
-
-+/* XXX: not correct; depends on SOC type. */
- #define MAC_NUM_PORTS 3
-
- #define A_MAC_CHANNEL_BASE(macnum) \
-@@ -167,7 +184,7 @@
- (R_MAC_DMA_CHANNEL_BASE(txrx,chan) + \
- (reg))
-
--/*
-+/*
- * DMA channel registers, relative to A_MAC_DMA_CHANNEL_BASE
- */
-
-@@ -178,6 +195,9 @@
- #define R_MAC_DMA_CUR_DSCRA 0x00000020
- #define R_MAC_DMA_CUR_DSCRB 0x00000028
- #define R_MAC_DMA_CUR_DSCRADDR 0x00000030
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_MAC_DMA_OODPKTLOST_RX 0x00000038 /* rx only */
-+#endif /* 112x PASS1 */
-
- /*
- * RMON Counters
-@@ -216,6 +236,10 @@
- #define R_MAC_ADFILTER_CFG 0x00000200
- #define R_MAC_ETHERNET_ADDR 0x00000208
- #define R_MAC_PKT_TYPE 0x00000210
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_MAC_ADMASK0 0x00000218
-+#define R_MAC_ADMASK1 0x00000220
-+#endif /* 112x PASS1 */
- #define R_MAC_HASH_BASE 0x00000240
- #define R_MAC_ADDR_BASE 0x00000280
- #define R_MAC_CHLO0_BASE 0x00000300
-@@ -225,7 +249,9 @@
- #define R_MAC_INT_MASK 0x00000410
- #define R_MAC_TXD_CTL 0x00000420
- #define R_MAC_MDIO 0x00000428
--#define R_MAC_STATUS1 0x00000430 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_MAC_STATUS1 0x00000430
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define R_MAC_DEBUG_STATUS 0x00000448
-
- #define MAC_HASH_COUNT 8
-@@ -233,7 +259,7 @@
- #define MAC_CHMAP_COUNT 4
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * DUART Registers
- ********************************************************************* */
-
-@@ -256,9 +282,11 @@
- #define R_DUART_RX_HOLD 0x160
- #define R_DUART_TX_HOLD 0x170
-
--#define R_DUART_FULL_CTL 0x140 /* PASS2 */
--#define R_DUART_OPCR_X 0x180 /* PASS2 */
--#define R_DUART_AUXCTL_X 0x190 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_DUART_FULL_CTL 0x140
-+#define R_DUART_OPCR_X 0x180
-+#define R_DUART_AUXCTL_X 0x190
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- /*
-@@ -285,6 +313,9 @@
- #define A_DUART_IMRREG(chan) (A_DUART + R_DUART_IMRREG(chan))
- #define A_DUART_ISRREG(chan) (A_DUART + R_DUART_ISRREG(chan))
-
-+
-+
-+
- /*
- * These constants are the absolute addresses.
- */
-@@ -321,16 +352,18 @@
- #define A_DUART_INPORT_CHNG_A 0x00100603D0
- #define A_DUART_INPORT_CHNG_B 0x00100603E0
-
--#define A_DUART_FULL_CTL_A 0x0010060140 /* PASS2 */
--#define A_DUART_FULL_CTL_B 0x0010060240 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_DUART_FULL_CTL_A 0x0010060140
-+#define A_DUART_FULL_CTL_B 0x0010060240
-
--#define A_DUART_OPCR_A 0x0010060180 /* PASS2 */
--#define A_DUART_OPCR_B 0x0010060280 /* PASS2 */
-+#define A_DUART_OPCR_A 0x0010060180
-+#define A_DUART_OPCR_B 0x0010060280
-
--#define A_DUART_INPORT_CHNG_DEBUG 0x00100603F0 /* PASS2 */
-+#define A_DUART_INPORT_CHNG_DEBUG 0x00100603F0
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * Synchronous Serial Registers
- ********************************************************************* */
-
-@@ -364,7 +397,7 @@
- (reg))
-
-
--/*
-+/*
- * DMA channel registers, relative to A_SER_DMA_CHANNEL_BASE
- */
-
-@@ -424,7 +457,7 @@
- #define R_SER_RMON_RX_ERRORS 0x000001F0
- #define R_SER_RMON_RX_BADADDR 0x000001F8
-
--/* *********************************************************************
-+/* *********************************************************************
- * Generic Bus Registers
- ********************************************************************* */
-
-@@ -464,6 +497,10 @@
- #define A_IO_DRIVE_1 0x0010061308
- #define A_IO_DRIVE_2 0x0010061310
- #define A_IO_DRIVE_3 0x0010061318
-+#define A_IO_DRIVE_BASE A_IO_DRIVE_0
-+#define IO_DRIVE_REGISTER_SPACING 8
-+#define R_IO_DRIVE(x) ((x)*IO_DRIVE_REGISTER_SPACING)
-+#define A_IO_DRIVE(x) (A_IO_DRIVE_BASE + R_IO_DRIVE(x))
-
- #define R_IO_INTERRUPT_STATUS 0x0A00
- #define R_IO_INTERRUPT_DATA0 0x0A10
-@@ -476,7 +513,7 @@
- #define R_IO_PCMCIA_CFG 0x0A60
- #define R_IO_PCMCIA_STATUS 0x0A70
-
--/* *********************************************************************
-+/* *********************************************************************
- * GPIO Registers
- ********************************************************************* */
-
-@@ -500,7 +537,7 @@
- #define R_GPIO_PIN_CLR 0x30
- #define R_GPIO_PIN_SET 0x38
-
--/* *********************************************************************
-+/* *********************************************************************
- * SMBus Registers
- ********************************************************************* */
-
-@@ -536,7 +573,7 @@
- #define R_SMB_CONTROL 0x0000000060
- #define R_SMB_PEC 0x0000000070
-
--/* *********************************************************************
-+/* *********************************************************************
- * Timer Registers
- ********************************************************************* */
-
-@@ -595,21 +632,23 @@
- #define A_SCD_TIMER_CNT_3 0x0010020188
- #define A_SCD_TIMER_CFG_3 0x0010020198
-
--#define A_SCD_SCRATCH 0x0010020C10 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_SCD_SCRATCH 0x0010020C10
-
--#define A_SCD_ZBBUS_CYCLE_COUNT 0x0010030000 /* PASS2 */
--#define A_SCD_ZBBUS_CYCLE_CP0 0x0010020C00 /* PASS2 */
--#define A_SCD_ZBBUS_CYCLE_CP1 0x0010020C08 /* PASS2 */
-+#define A_SCD_ZBBUS_CYCLE_COUNT 0x0010030000
-+#define A_SCD_ZBBUS_CYCLE_CP0 0x0010020C00
-+#define A_SCD_ZBBUS_CYCLE_CP1 0x0010020C08
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Control Registers
- ********************************************************************* */
-
- #define A_SCD_SYSTEM_REVISION 0x0010020000
- #define A_SCD_SYSTEM_CFG 0x0010020008
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Address Trap Registers
- ********************************************************************* */
-
-@@ -627,16 +666,19 @@
- #define A_ADDR_TRAP_CFG_1 0x0010020448
- #define A_ADDR_TRAP_CFG_2 0x0010020450
- #define A_ADDR_TRAP_CFG_3 0x0010020458
--#define A_ADDR_TRAP_REG_DEBUG 0x0010020460 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_ADDR_TRAP_REG_DEBUG 0x0010020460
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Interrupt Mapper Registers
- ********************************************************************* */
-
- #define A_IMR_CPU0_BASE 0x0010020000
- #define A_IMR_CPU1_BASE 0x0010022000
- #define IMR_REGISTER_SPACING 0x2000
-+#define IMR_REGISTER_SPACING_SHIFT 13
-
- #define A_IMR_MAPPER(cpu) (A_IMR_CPU0_BASE+(cpu)*IMR_REGISTER_SPACING)
- #define A_IMR_REGISTER(cpu,reg) (A_IMR_MAPPER(cpu)+(reg))
-@@ -658,7 +700,7 @@
- #define R_IMR_INTERRUPT_MAP_BASE 0x0200
- #define R_IMR_INTERRUPT_MAP_COUNT 64
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Performance Counter Registers
- ********************************************************************* */
-
-@@ -668,12 +710,14 @@
- #define A_SCD_PERF_CNT_2 0x00100204E0
- #define A_SCD_PERF_CNT_3 0x00100204E8
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Bus Watcher Registers
- ********************************************************************* */
-
- #define A_SCD_BUS_ERR_STATUS 0x0010020880
--#define A_SCD_BUS_ERR_STATUS_DEBUG 0x00100208D0 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_SCD_BUS_ERR_STATUS_DEBUG 0x00100208D0
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define A_BUS_ERR_DATA_0 0x00100208A0
- #define A_BUS_ERR_DATA_1 0x00100208A8
- #define A_BUS_ERR_DATA_2 0x00100208B0
-@@ -681,13 +725,13 @@
- #define A_BUS_L2_ERRORS 0x00100208C0
- #define A_BUS_MEM_IO_ERRORS 0x00100208C8
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Debug Controller Registers
- ********************************************************************* */
-
- #define A_SCD_JTAG_BASE 0x0010000000
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Trace Buffer Registers
- ********************************************************************* */
-
-@@ -710,7 +754,7 @@
- #define A_SCD_TRACE_SEQUENCE_6 0x0010020A90
- #define A_SCD_TRACE_SEQUENCE_7 0x0010020A98
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Generic DMA Registers
- ********************************************************************* */
-
-@@ -728,6 +772,26 @@
- #define R_DM_CUR_DSCR_ADDR 0x0000000010
- #define R_DM_DSCR_BASE_DEBUG 0x0000000018
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_DM_PARTIAL_0 0x0010020ba0
-+#define A_DM_PARTIAL_1 0x0010020ba8
-+#define A_DM_PARTIAL_2 0x0010020bb0
-+#define A_DM_PARTIAL_3 0x0010020bb8
-+#define DM_PARTIAL_REGISTER_SPACING 0x8
-+#define A_DM_PARTIAL(idx) (A_DM_PARTIAL_0 + ((idx) * DM_PARTIAL_REGISTER_SPACING))
-+#endif /* 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_DM_CRC_0 0x0010020b80
-+#define A_DM_CRC_1 0x0010020b90
-+#define DM_CRC_REGISTER_SPACING 0x10
-+#define DM_CRC_NUM_CHANNELS 2
-+#define A_DM_CRC_BASE(idx) (A_DM_CRC_0 + ((idx) * DM_CRC_REGISTER_SPACING))
-+#define A_DM_CRC_REGISTER(idx,reg) (A_DM_CRC_BASE(idx) + (reg))
-+
-+#define R_CRC_DEF_0 0x00
-+#define R_CTCP_DEF_0 0x08
-+#endif /* 112x PASS1 */
-
- /* *********************************************************************
- * Physical Address Map
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_scd.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_scd.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_scd.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_scd.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * SCD Constants and Macros File: sb1250_scd.h
-- *
-+ *
- * This module contains constants and macros useful for
- * manipulating the System Control and Debug module on the 1250.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -51,18 +51,73 @@
- #define V_SYS_REVISION(x) _SB_MAKEVALUE(x,S_SYS_REVISION)
- #define G_SYS_REVISION(x) _SB_GETVALUE(x,S_SYS_REVISION,M_SYS_REVISION)
-
--#define K_SYS_REVISION_PASS1 1
--#define K_SYS_REVISION_PASS2 3
--#define K_SYS_REVISION_PASS2_2 16
--#define K_SYS_REVISION_PASS3 32
-+#if SIBYTE_HDR_FEATURE_CHIP(1250)
-+#define K_SYS_REVISION_BCM1250_PASS1 1
-+#define K_SYS_REVISION_BCM1250_PASS2 3
-+#define K_SYS_REVISION_BCM1250_PASS2_2 16
-+#define K_SYS_REVISION_BCM1250_PASS3 32
-+
-+/* XXX: discourage people from using these constants. */
-+#define K_SYS_REVISION_PASS1 K_SYS_REVISION_BCM1250_PASS1
-+#define K_SYS_REVISION_PASS2 K_SYS_REVISION_BCM1250_PASS2
-+#define K_SYS_REVISION_PASS2_2 K_SYS_REVISION_BCM1250_PASS2_2
-+#define K_SYS_REVISION_PASS3 K_SYS_REVISION_BCM1250_PASS3
-+#endif /* 1250 */
-+
-+#if SIBYTE_HDR_FEATURE_CHIP(112x)
-+#define K_SYS_REVISION_BCM112x_A1 32
-+#define K_SYS_REVISION_BCM112x_A2 33
-+#endif /* 112x */
-
-+/* XXX: discourage people from using these constants. */
- #define S_SYS_PART _SB_MAKE64(16)
- #define M_SYS_PART _SB_MAKEMASK(16,S_SYS_PART)
- #define V_SYS_PART(x) _SB_MAKEVALUE(x,S_SYS_PART)
- #define G_SYS_PART(x) _SB_GETVALUE(x,S_SYS_PART,M_SYS_PART)
-
-+/* XXX: discourage people from using these constants. */
- #define K_SYS_PART_SB1250 0x1250
--#define K_SYS_PART_SB1125 0x1125
-+#define K_SYS_PART_BCM1120 0x1121
-+#define K_SYS_PART_BCM1125 0x1123
-+#define K_SYS_PART_BCM1125H 0x1124
-+
-+/* The "peripheral set" (SOC type) is the low 4 bits of the "part" field. */
-+#define S_SYS_SOC_TYPE _SB_MAKE64(16)
-+#define M_SYS_SOC_TYPE _SB_MAKEMASK(4,S_SYS_SOC_TYPE)
-+#define V_SYS_SOC_TYPE(x) _SB_MAKEVALUE(x,S_SYS_SOC_TYPE)
-+#define G_SYS_SOC_TYPE(x) _SB_GETVALUE(x,S_SYS_SOC_TYPE,M_SYS_SOC_TYPE)
-+
-+#define K_SYS_SOC_TYPE_BCM1250 0x0
-+#define K_SYS_SOC_TYPE_BCM1120 0x1
-+#define K_SYS_SOC_TYPE_BCM1250_ALT 0x2 /* 1250pass2 w/ 1/4 L2. */
-+#define K_SYS_SOC_TYPE_BCM1125 0x3
-+#define K_SYS_SOC_TYPE_BCM1125H 0x4
-+#define K_SYS_SOC_TYPE_BCM1250_ALT2 0x5 /* 1250pass2 w/ 1/2 L2. */
-+
-+/*
-+ * Calculate correct SOC type given a copy of system revision register.
-+ *
-+ * (For the assembler version, sysrev and dest may be the same register.
-+ * Also, it clobbers AT.)
-+ */
-+#ifdef __ASSEMBLER__
-+#define SYS_SOC_TYPE(dest, sysrev) \
-+ .set push ; \
-+ .set reorder ; \
-+ dsrl dest, sysrev, S_SYS_SOC_TYPE ; \
-+ andi dest, dest, (M_SYS_SOC_TYPE >> S_SYS_SOC_TYPE); \
-+ beq dest, K_SYS_SOC_TYPE_BCM1250_ALT, 991f ; \
-+ beq dest, K_SYS_SOC_TYPE_BCM1250_ALT2, 991f ; \
-+ b 992f ; \
-+991: li dest, K_SYS_SOC_TYPE_BCM1250 ; \
-+992: \
-+ .set pop
-+#else
-+#define SYS_SOC_TYPE(sysrev) \
-+ ((G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT \
-+ || G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT2) \
-+ ? K_SYS_SOC_TYPE_BCM1250 : G_SYS_SOC_TYPE(sysrev))
-+#endif
-
- #define S_SYS_WID _SB_MAKE64(32)
- #define M_SYS_WID _SB_MAKEMASK(32,S_SYS_WID)
-@@ -154,7 +209,9 @@
- #define M_SYS_MISR_MODE _SB_MAKEMASK1(61)
- #define M_SYS_MISR_RESET _SB_MAKEMASK1(62)
-
--#define M_SYS_SW_FLAG _SB_MAKEMASK1(63) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_SYS_SW_FLAG _SB_MAKEMASK1(63)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- /*
-@@ -179,10 +236,10 @@
- #define V_SCD_WDOG_FREQ 1000000
-
- #define S_SCD_WDOG_INIT 0
--#define M_SCD_WDOG_INIT _SB_MAKEMASK(13,S_SCD_WDOG_INIT)
-+#define M_SCD_WDOG_INIT _SB_MAKEMASK(23,S_SCD_WDOG_INIT)
-
- #define S_SCD_WDOG_CNT 0
--#define M_SCD_WDOG_CNT _SB_MAKEMASK(13,S_SCD_WDOG_CNT)
-+#define M_SCD_WDOG_CNT _SB_MAKEMASK(23,S_SCD_WDOG_CNT)
-
- #define M_SCD_WDOG_ENABLE _SB_MAKEMASK1(0)
-
-@@ -248,48 +305,48 @@
- #define V_SCD_BERR_RID(x) _SB_MAKEVALUE(x,S_SCD_BERR_RID)
- #define G_SCD_BERR_RID(x) _SB_GETVALUE(x,S_SCD_BERR_RID,M_SCD_BERR_RID)
-
--#define S_SCD_BERR_DCODE 22
--#define M_SCD_BERR_DCODE _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
--#define V_SCD_BERR_DCODE(x) _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
--#define G_SCD_BERR_DCODE(x) _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
-+#define S_SCD_BERR_DCODE 22
-+#define M_SCD_BERR_DCODE _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
-+#define V_SCD_BERR_DCODE(x) _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
-+#define G_SCD_BERR_DCODE(x) _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
-
--#define M_SCD_BERR_MULTERRS _SB_MAKEMASK1(30)
-+#define M_SCD_BERR_MULTERRS _SB_MAKEMASK1(30)
-
-
--#define S_SCD_L2ECC_CORR_D 0
--#define M_SCD_L2ECC_CORR_D _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
--#define V_SCD_L2ECC_CORR_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
--#define G_SCD_L2ECC_CORR_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
-+#define S_SCD_L2ECC_CORR_D 0
-+#define M_SCD_L2ECC_CORR_D _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
-+#define V_SCD_L2ECC_CORR_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
-+#define G_SCD_L2ECC_CORR_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
-
--#define S_SCD_L2ECC_BAD_D 8
--#define M_SCD_L2ECC_BAD_D _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
--#define V_SCD_L2ECC_BAD_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
--#define G_SCD_L2ECC_BAD_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
-+#define S_SCD_L2ECC_BAD_D 8
-+#define M_SCD_L2ECC_BAD_D _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
-+#define V_SCD_L2ECC_BAD_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
-+#define G_SCD_L2ECC_BAD_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
-
--#define S_SCD_L2ECC_CORR_T 16
--#define M_SCD_L2ECC_CORR_T _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
--#define V_SCD_L2ECC_CORR_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
--#define G_SCD_L2ECC_CORR_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
-+#define S_SCD_L2ECC_CORR_T 16
-+#define M_SCD_L2ECC_CORR_T _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
-+#define V_SCD_L2ECC_CORR_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
-+#define G_SCD_L2ECC_CORR_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
-
--#define S_SCD_L2ECC_BAD_T 24
--#define M_SCD_L2ECC_BAD_T _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
--#define V_SCD_L2ECC_BAD_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
--#define G_SCD_L2ECC_BAD_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
-+#define S_SCD_L2ECC_BAD_T 24
-+#define M_SCD_L2ECC_BAD_T _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
-+#define V_SCD_L2ECC_BAD_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
-+#define G_SCD_L2ECC_BAD_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
-
--#define S_SCD_MEM_ECC_CORR 0
--#define M_SCD_MEM_ECC_CORR _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
--#define V_SCD_MEM_ECC_CORR(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
--#define G_SCD_MEM_ECC_CORR(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
-+#define S_SCD_MEM_ECC_CORR 0
-+#define M_SCD_MEM_ECC_CORR _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
-+#define V_SCD_MEM_ECC_CORR(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
-+#define G_SCD_MEM_ECC_CORR(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
-
--#define S_SCD_MEM_ECC_BAD 16
--#define M_SCD_MEM_ECC_BAD _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
--#define V_SCD_MEM_ECC_BAD(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
--#define G_SCD_MEM_ECC_BAD(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
-+#define S_SCD_MEM_ECC_BAD 8
-+#define M_SCD_MEM_ECC_BAD _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
-+#define V_SCD_MEM_ECC_BAD(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
-+#define G_SCD_MEM_ECC_BAD(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
-
--#define S_SCD_MEM_BUSERR 24
--#define M_SCD_MEM_BUSERR _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
--#define V_SCD_MEM_BUSERR(x) _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
--#define G_SCD_MEM_BUSERR(x) _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
-+#define S_SCD_MEM_BUSERR 16
-+#define M_SCD_MEM_BUSERR _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
-+#define V_SCD_MEM_BUSERR(x) _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
-+#define G_SCD_MEM_BUSERR(x) _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
-
-
- /*
-@@ -350,7 +407,9 @@
- #define M_SCD_TRACE_CFG_FREEZE_FULL _SB_MAKEMASK1(5)
- #define M_SCD_TRACE_CFG_DEBUG_FULL _SB_MAKEMASK1(6)
- #define M_SCD_TRACE_CFG_FULL _SB_MAKEMASK1(7)
--#define M_SCD_TRACE_CFG_FORCECNT _SB_MAKEMASK1(8) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_SCD_TRACE_CFG_FORCECNT _SB_MAKEMASK1(8)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_SCD_TRACE_CFG_CUR_ADDR 10
- #define M_SCD_TRACE_CFG_CUR_ADDR _SB_MAKEMASK(8,S_SCD_TRACE_CFG_CUR_ADDR)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_smbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_smbus.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_smbus.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_smbus.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * SMBUS Constants File: sb1250_smbus.h
-- *
-- * This module contains constants and macros useful for
-+ *
-+ * This module contains constants and macros useful for
- * manipulating the SB1250's SMbus devices.
-- *
-+ *
- * SB1250 specification level: 01/02/2002
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -132,11 +132,7 @@
- #define V_SPEC_MB(x) _SB_MAKEVALUE(x,S_SPEC_PEC)
-
-
--/* *********************************************************************
-- * PASS2 Extensions to SMBus
-- ********************************************************************* */
--
--/* BEGIN PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-
- #define S_SMB_CMDH 8
- #define M_SMB_CMDH _SB_MAKEMASK(8,S_SMBH_CMD)
-@@ -169,6 +165,6 @@
- #define V_SMB_DFMT_CMD5BYTE V_SMB_DFMT(K_SMB_DFMT_CMD5BYTE)
- #define V_SMB_DFMT_RESERVED V_SMB_DFMT(K_SMB_DFMT_RESERVED)
-
--/* END PASS2 */
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_syncser.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_syncser.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_syncser.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_syncser.h 2003-01-21 23:11:38.000000000 -0600
-@@ -7,17 +7,17 @@
- * manipulating the SB1250's Synchronous Serial
- *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
- *
- *********************************************************************
- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sb1250_uart.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_uart.h
---- linux-2.4.20/include/asm-mips/sibyte/sb1250_uart.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sb1250_uart.h 2003-01-21 23:11:38.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * UART Constants File: sb1250_uart.h
-- *
-- * This module contains constants and macros useful for
-+ *
-+ * This module contains constants and macros useful for
- * manipulating the SB1250's UARTs
- *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -37,7 +37,7 @@
-
- #include "sb1250_defs.h"
-
--/* **********************************************************************
-+/* **********************************************************************
- * DUART Registers
- ********************************************************************** */
-
-@@ -97,6 +97,7 @@
-
- #define M_DUART_TX_CTS_ENA _SB_MAKEMASK1(4)
-
-+
- #define M_DUART_MODE_RESERVED2 _SB_MAKEMASK1(5) /* must be zero */
-
- #define S_DUART_CHAN_MODE 6
-@@ -144,7 +145,7 @@
- #define V_DUART_MISC_CMD_START_BREAK V_DUART_MISC_CMD(K_DUART_MISC_CMD_START_BREAK)
- #define V_DUART_MISC_CMD_STOP_BREAK V_DUART_MISC_CMD(K_DUART_MISC_CMD_STOP_BREAK)
-
--#define M_DUART_CMD_RESERVED _SB_MAKEMASK1(7)
-+#define M_DUART_CMD_RESERVED _SB_MAKEMASK1(7)
-
- /*
- * DUART Status Register (Table 10-6)
-@@ -164,7 +165,7 @@
-
- /*
- * DUART Baud Rate Register (Table 10-7)
-- * Register: DUART_CLK_SEL_A
-+ * Register: DUART_CLK_SEL_A
- * Register: DUART_CLK_SEL_B
- */
-
-@@ -207,6 +208,7 @@
- #define S_DUART_IN_PIN_CHNG 4
- #define M_DUART_IN_PIN_CHNG _SB_MAKEMASK(4,S_DUART_IN_PIN_CHNG)
-
-+
- /*
- * DUART Output port control register (Table 10-14)
- * Register: DUART_OPCR
-@@ -329,8 +331,9 @@
- #define M_DUART_OUT_PIN_CLR(chan) \
- (chan == 0 ? M_DUART_OUT_PIN_CLR0 : M_DUART_OUT_PIN_CLR1)
-
--/*
-- * Full Interrupt Control Register (PASS2)
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Full Interrupt Control Register
- */
-
- #define S_DUART_SIG_FULL _SB_MAKE64(0)
-@@ -342,6 +345,7 @@
- #define M_DUART_INT_TIME _SB_MAKEMASK(4,S_DUART_INT_TIME)
- #define V_DUART_INT_TIME(x) _SB_MAKEVALUE(x,S_DUART_INT_TIME)
- #define G_DUART_INT_TIME(x) _SB_GETVALUE(x,S_DUART_INT_TIME,M_DUART_INT_TIME)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- /* ********************************************************************** */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/sentosa.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sentosa.h
---- linux-2.4.20/include/asm-mips/sibyte/sentosa.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/sentosa.h 2003-01-21 23:11:38.000000000 -0600
-@@ -0,0 +1,40 @@
-+/*
-+ * Copyright (C) 2000, 2001 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#ifndef __ASM_SIBYTE_SENTOSA_H
-+#define __ASM_SIBYTE_SENTOSA_H
-+
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_int.h>
-+
-+#ifdef CONFIG_SIBYTE_SENTOSA
-+#define SIBYTE_BOARD_NAME "BCM91250E (Sentosa)"
-+#endif
-+#ifdef CONFIG_SIBYTE_RHONE
-+#define SIBYTE_BOARD_NAME "BCM91125E (Rhone)"
-+#endif
-+
-+/* Generic bus chip selects */
-+#ifdef CONFIG_SIBYTE_RHONE
-+#define LEDS_CS 6
-+#define LEDS_PHYS 0x1d0a0000
-+#endif
-+
-+/* GPIOs */
-+#define K_GPIO_DBG_LED 0
-+
-+#endif /* __ASM_SIBYTE_SENTOSA_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/swarm.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm.h
---- linux-2.4.20/include/asm-mips/sibyte/swarm.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm.h 2003-01-21 23:11:38.000000000 -0600
-@@ -21,46 +21,35 @@
- #include <asm/sibyte/sb1250.h>
- #include <asm/sibyte/sb1250_int.h>
-
--#define KERNEL_RESERVED_MEM 0x100000
--
--#define LEDS_CS 3
--
- #ifdef CONFIG_SIBYTE_SWARM
-+#define SIBYTE_BOARD_NAME "BCM91250A (SWARM)"
-+#endif
-+#ifdef CONFIG_SIBYTE_PTSWARM
-+#define SIBYTE_BOARD_NAME "PTSWARM"
-+#endif
-+#ifdef CONFIG_SIBYTE_CRHONE
-+#define SIBYTE_BOARD_NAME "BCM91125C (CRhone)"
-+#endif
-+#ifdef CONFIG_SIBYTE_CRHINE
-+#define SIBYTE_BOARD_NAME "BCM91120C (CRhine)"
-+#endif
-
- /* Generic bus chip selects */
-+#define LEDS_CS 3
-+#define LEDS_PHYS 0x100a0000
-+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
- #define IDE_CS 4
-+#define IDE_PHYS 0x100b0000
- #define PCMCIA_CS 6
-+#define PCMCIA_PHYS 0x11000000
-+#endif
-
- /* GPIOs */
-+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
- #define K_GPIO_GB_IDE 4
- #define K_INT_GB_IDE (K_INT_GPIO_0 + K_GPIO_GB_IDE)
- #define K_GPIO_PC_READY 9
- #define K_INT_PC_READY (K_INT_GPIO_0 + K_GPIO_PC_READY)
--
--#endif
--
--#ifdef __ASSEMBLY__
--#define setleds(t0,t1,c0,c1,c2,c3) \
-- li t0, (LED_BASE_ADDR|0xa0000000); \
-- li t1, c0; \
-- sb t1, 0x18(t0); \
-- li t1, c1; \
-- sb t1, 0x10(t0); \
-- li t1, c2; \
-- sb t1, 0x08(t0); \
-- li t1, c3; \
-- sb t1, 0x00(t0)
--#else
--void swarm_setup(void);
--void setleds(char *str);
--
--#define AT_spin \
-- __asm__ __volatile__ ( \
-- ".set noat\n" \
-- "li $at, 0\n" \
-- "1: beqz $at, 1b\n" \
-- ".set at\n" \
-- )
- #endif
-
- #endif /* __ASM_SIBYTE_SWARM_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/swarm_ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm_ide.h
---- linux-2.4.20/include/asm-mips/sibyte/swarm_ide.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/swarm_ide.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,109 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--#ifndef _SWARM_IDE_H
--#define _SWARM_IDE_H
--
--#include <asm/sibyte/sb1250_int.h>
--
--#define SWARM_IDE_BASE (0xb00b0000-mips_io_port_base)
--#define SWARM_IDE_REG(pcaddr) (SWARM_IDE_BASE + ((pcaddr)<<5))
--#define SWARM_IDE_INT (K_INT_GPIO_4)
--
--extern ide_ideproc_t swarm_ideproc;
--
--#define swarm_outb(val,port) \
--do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--#define swarm_outw(val,port) \
--do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--#define swarm_outl(val,port) \
--do { \
-- *(volatile u32 *)(mips_io_port_base + (port)) = val;\
--} while(0)
--
--static inline unsigned char swarm_inb(unsigned long port)
--{
-- return (*(volatile u8 *)(mips_io_port_base + port));
--}
--
--static inline unsigned short swarm_inw(unsigned long port)
--{
-- return (*(volatile u16 *)(mips_io_port_base + port));
--}
--
--static inline unsigned int swarm_inl(unsigned long port)
--{
-- return (*(volatile u32 *)(mips_io_port_base + port));
--}
--
--
--static inline void swarm_outsb(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- swarm_outb(*(u8 *)addr, port);
-- addr++;
-- }
--}
--
--static inline void swarm_insb(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u8 *)addr = swarm_inb(port);
-- addr++;
-- }
--}
--
--static inline void swarm_outsw(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- swarm_outw(*(u16 *)addr, port);
-- addr += 2;
-- }
--}
--
--static inline void swarm_insw(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u16 *)addr = swarm_inw(port);
-- addr += 2;
-- }
--}
--
--static inline void swarm_outsl(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- swarm_outl(*(u32 *)addr, port);
-- addr += 4;
-- }
--}
--
--static inline void swarm_insl(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u32 *)addr = swarm_inl(port);
-- addr += 4;
-- }
--}
--
--#endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sibyte/trace_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/trace_prof.h
---- linux-2.4.20/include/asm-mips/sibyte/trace_prof.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sibyte/trace_prof.h 2003-02-07 16:00:22.000000000 -0600
-@@ -0,0 +1,109 @@
-+/*
-+ * Copyright (C) 2001 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#ifndef __ASM_SIBYTE_TRACE_PROF_H
-+#define __ASM_SIBYTE_TRACE_PROF_H
-+
-+#if SBPROF_TB_DEBUG
-+#define DBG(a) a
-+#else
-+#define DBG(a)
-+#endif
-+
-+#define SBPROF_TB_MAJOR 240
-+#define DEVNAME "bcm1250_tbprof"
-+
-+typedef u_int64_t tb_sample_t[6*256];
-+
-+struct sbprof_tb {
-+ int open;
-+ tb_sample_t *sbprof_tbbuf;
-+ int next_tb_sample;
-+
-+ volatile int tb_enable;
-+ volatile int tb_armed;
-+
-+ wait_queue_head_t tb_sync;
-+ wait_queue_head_t tb_read;
-+};
-+
-+#define MAX_SAMPLE_BYTES (24*1024*1024)
-+#define MAX_TBSAMPLE_BYTES (12*1024*1024)
-+
-+#define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t))
-+#define TB_SAMPLE_SIZE (sizeof(tb_sample_t))
-+#define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE)
-+
-+/* IOCTLs */
-+#define SBPROF_ZBSTART _IOW('s', 0, int)
-+#define SBPROF_ZBSTOP _IOW('s', 1, int)
-+#define SBPROF_ZBWAITFULL _IOW('s', 2, int)
-+
-+/***************************************************************************
-+ * Routines for gathering ZBbus profiles using trace buffer
-+ ***************************************************************************/
-+
-+/* Requires: Already called zclk_timer_init with a value that won't
-+ saturate 40 bits. No subsequent use of SCD performance counters
-+ or trace buffer.
-+ Effect: Starts gathering random ZBbus profiles using trace buffer. */
-+static int sbprof_zbprof_start(struct file *filp);
-+
-+/* Effect: Stops collection of ZBbus profiles */
-+static int sbprof_zbprof_stop(void);
-+
-+
-+/***************************************************************************
-+ * Routines for using 40-bit SCD cycle counter
-+ *
-+ * Client responsible for either handling interrupts or making sure
-+ * the cycles counter never saturates, e.g., by doing
-+ * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs.
-+ ***************************************************************************/
-+
-+/* Configures SCD counter 0 to count ZCLKs starting from val;
-+ Configures SCD counters1,2,3 to count nothing.
-+ Must not be called while gathering ZBbus profiles.
-+
-+unsigned long long val; */
-+#define zclk_timer_init(val) \
-+ __asm__ __volatile__ (".set push;" \
-+ ".set mips64;" \
-+ "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-+ "sd %0, 0x10($8);" /* write val to counter0 */ \
-+ "sd %1, 0($8);" /* config counter0 for zclks*/ \
-+ ".set pop" \
-+ : /* no outputs */ \
-+ /* enable, counter0 */ \
-+ : /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \
-+ : /* modifies */ "$8" )
-+
-+
-+/* Reads SCD counter 0 and puts result in value
-+ unsigned long long val; */
-+#define zclk_get(val) \
-+ __asm__ __volatile__ (".set push;" \
-+ ".set mips64;" \
-+ "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-+ "ld %0, 0x10($8);" /* write val to counter0 */ \
-+ ".set pop" \
-+ : /* outputs */ "=r"(val) \
-+ : /* inputs */ \
-+ : /* modifies */ "$8" )
-+
-+#endif /* __ASM_SIBYTE_TRACE_PROF_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sigcontext.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sigcontext.h
---- linux-2.4.20/include/asm-mips/sigcontext.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sigcontext.h 2002-11-07 12:49:38.000000000 -0600
-@@ -18,7 +18,7 @@
- unsigned long long sc_pc;
- unsigned long long sc_regs[32];
- unsigned long long sc_fpregs[32];
-- unsigned int sc_ownedfp;
-+ unsigned int sc_ownedfp; /* Unused */
- unsigned int sc_fpc_csr;
- unsigned int sc_fpc_eir; /* Unused */
- unsigned int sc_used_math;
-diff -urNd -urNd linux-2.4.20/include/asm-mips/smp.h linux-2.4.20-mipscvs-20050106/include/asm-mips/smp.h
---- linux-2.4.20/include/asm-mips/smp.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/smp.h 2002-11-28 18:11:36.000000000 -0600
-@@ -1,6 +1,4 @@
- /*
-- * Copyright (C) 2000, 2001 Broadcom Corporation
-- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
-@@ -14,21 +12,24 @@
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ *
-+ * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com)
-+ * Copyright (C) 2000, 2001, 2002 by Ralf Baechle
-+ * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc.
-+ * Copyright (C) 2000, 2001 Broadcom Corporation
- */
--
--#ifndef __ASM_MIPS_SMP_H
--#define __ASM_MIPS_SMP_H
-+#ifndef _ASM_SMP_H
-+#define _ASM_SMP_H
-
- #include <linux/config.h>
-
- #ifdef CONFIG_SMP
-
--#include <asm/spinlock.h>
- #include <linux/threads.h>
- #include <asm/atomic.h>
- #include <asm/current.h>
-
--#define smp_processor_id() (current->processor)
-+#define smp_processor_id() (current->processor)
-
- #define PROC_CHANGE_PENALTY 20
-
-@@ -43,17 +44,6 @@
-
- #define NO_PROC_ID (-1)
-
--struct call_data_struct {
-- void (*func)(void *);
-- void *info;
-- atomic_t started;
-- atomic_t finished;
-- int wait;
--};
--
--extern struct call_data_struct *call_data;
--
--/* ipi types that boards must handle, one bit per type */
- #define SMP_RESCHEDULE_YOURSELF 0x1 /* XXX braindead */
- #define SMP_CALL_FUNCTION 0x2
-
-@@ -61,8 +51,8 @@
-
- typedef unsigned long cpumask_t;
-
--#define CPUMASK_CLRALL(p) (p) = 0
--#define CPUMASK_SETB(p, bit) (p) |= 1 << (bit)
-+#define CPUMASK_CLRALL(p) do { (p) = 0; } while(0)
-+#define CPUMASK_SETB(p, bit) (p) |= 1UL << (bit)
- #define CPUMASK_CLRB(p, bit) (p) &= ~(1UL << (bit))
- #define CPUMASK_TSTB(p, bit) ((p) & (1UL << (bit)))
-
-@@ -91,7 +81,17 @@
- #error cpumask macros only defined for 128p kernels
- #endif
-
-+struct call_data_struct {
-+ void (*func)(void *);
-+ void *info;
-+ atomic_t started;
-+ atomic_t finished;
-+ int wait;
-+};
-+
-+extern struct call_data_struct *call_data;
-+
- extern cpumask_t cpu_online_map;
-
- #endif /* CONFIG_SMP */
--#endif /* __ASM_MIPS_SMP_H */
-+#endif /* _ASM_SMP_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/sni.h linux-2.4.20-mipscvs-20050106/include/asm-mips/sni.h
---- linux-2.4.20/include/asm-mips/sni.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/sni.h 2002-08-05 18:53:37.000000000 -0500
-@@ -7,8 +7,8 @@
- *
- * Copyright (C) 1997, 1998 by Ralf Baechle
- */
--#ifndef __ASM_MIPS_SNI_H
--#define __ASM_MIPS_SNI_H
-+#ifndef __ASM_MIPS_SNI_H
-+#define __ASM_MIPS_SNI_H
-
- #define SNI_PORT_BASE 0xb4000000
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/stat.h linux-2.4.20-mipscvs-20050106/include/asm-mips/stat.h
---- linux-2.4.20/include/asm-mips/stat.h 2001-07-02 15:56:40.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/stat.h 2002-11-21 06:38:57.000000000 -0600
-@@ -3,23 +3,6 @@
-
- #include <linux/types.h>
-
--struct __old_kernel_stat {
-- unsigned int st_dev;
-- unsigned int st_ino;
-- unsigned int st_mode;
-- unsigned int st_nlink;
-- unsigned int st_uid;
-- unsigned int st_gid;
-- unsigned int st_rdev;
-- long st_size;
-- unsigned int st_atime, st_res1;
-- unsigned int st_mtime, st_res2;
-- unsigned int st_ctime, st_res3;
-- unsigned int st_blksize;
-- int st_blocks;
-- unsigned int st_unused0[2];
--};
--
- struct stat {
- dev_t st_dev;
- long st_pad1[3]; /* Reserved for network id */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/string.h linux-2.4.20-mipscvs-20050106/include/asm-mips/string.h
---- linux-2.4.20/include/asm-mips/string.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/string.h 2002-11-18 18:35:40.000000000 -0600
-@@ -58,7 +58,7 @@
- : "0" (__dest), "1" (__src), "2" (__n)
- : "memory");
-
-- return __dest;
-+ return __xdest;
- }
-
- #define __HAVE_ARCH_STRCMP
-diff -urNd -urNd linux-2.4.20/include/asm-mips/system.h linux-2.4.20-mipscvs-20050106/include/asm-mips/system.h
---- linux-2.4.20/include/asm-mips/system.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/system.h 2003-01-24 06:58:30.000000000 -0600
-@@ -250,11 +250,6 @@
-
- struct task_struct;
-
--extern asmlinkage void lazy_fpu_switch(void *);
--extern asmlinkage void init_fpu(void);
--extern asmlinkage void save_fp(struct task_struct *);
--extern asmlinkage void restore_fp(struct task_struct *);
--
- #define switch_to(prev,next,last) \
- do { \
- (last) = resume(prev, next); \
-@@ -288,11 +283,10 @@
- #else
- unsigned long flags, retval;
-
-- save_flags(flags);
-- cli();
-+ local_irq_save(flags);
- retval = *m;
- *m = val;
-- restore_flags(flags); /* implies memory barrier */
-+ local_irq_restore(flags); /* implies memory barrier */
- return retval;
- #endif /* Processor-dependent optimization */
- }
-diff -urNd -urNd linux-2.4.20/include/asm-mips/timex.h linux-2.4.20-mipscvs-20050106/include/asm-mips/timex.h
---- linux-2.4.20/include/asm-mips/timex.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/timex.h 2002-12-01 18:24:53.000000000 -0600
-@@ -7,8 +7,10 @@
- *
- * FIXME: For some of the supported machines this is dead wrong.
- */
--#ifndef __ASM_MIPS_TIMEX_H
--#define __ASM_MIPS_TIMEX_H
-+#ifndef _ASM_TIMEX_H
-+#define _ASM_TIMEX_H
-+
-+#include <asm/mipsregs.h>
-
- #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
- #define CLOCK_TICK_FACTOR 20 /* Factor of both 1000000 and CLOCK_TICK_RATE */
-@@ -16,7 +18,6 @@
- (1000000/CLOCK_TICK_FACTOR) / (CLOCK_TICK_RATE/CLOCK_TICK_FACTOR)) \
- << (SHIFT_SCALE-SHIFT_HZ)) / HZ)
-
--#ifdef __KERNEL__
- /*
- * Standard way to access the cycle counter.
- * Currently only used on SMP for scheduling.
-@@ -33,11 +34,10 @@
-
- static inline cycles_t get_cycles (void)
- {
-- return read_32bit_cp0_register(CP0_COUNT);
-+ return read_c0_count();
- }
--#endif /* __KERNEL__ */
-
- #define vxtime_lock() do {} while (0)
- #define vxtime_unlock() do {} while (0)
-
--#endif /* __ASM_MIPS_TIMEX_H */
-+#endif /* _ASM_TIMEX_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/tlbdebug.h linux-2.4.20-mipscvs-20050106/include/asm-mips/tlbdebug.h
---- linux-2.4.20/include/asm-mips/tlbdebug.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/tlbdebug.h 2002-09-15 18:32:24.000000000 -0500
-@@ -0,0 +1,20 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 2002 by Ralf Baechle
-+ */
-+#ifndef __ASM_TLBDEBUG_H
-+#define __ASM_TLBDEBUG_H
-+
-+/*
-+ * TLB debugging functions:
-+ */
-+extern void dump_tlb(int first, int last);
-+extern void dump_tlb_all(void);
-+extern void dump_tlb_wired(void);
-+extern void dump_tlb_addr(unsigned long addr);
-+extern void dump_tlb_nonwired(void);
-+
-+#endif /* __ASM_TLBDEBUG_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/unistd.h linux-2.4.20-mipscvs-20050106/include/asm-mips/unistd.h
---- linux-2.4.20/include/asm-mips/unistd.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/unistd.h 2002-11-06 15:00:09.000000000 -0600
-@@ -27,7 +27,7 @@
- #define __NR_chmod (__NR_Linux + 15)
- #define __NR_lchown (__NR_Linux + 16)
- #define __NR_break (__NR_Linux + 17)
--#define __NR_oldstat (__NR_Linux + 18)
-+#define __NR_unused18 (__NR_Linux + 18)
- #define __NR_lseek (__NR_Linux + 19)
- #define __NR_getpid (__NR_Linux + 20)
- #define __NR_mount (__NR_Linux + 21)
-@@ -37,7 +37,7 @@
- #define __NR_stime (__NR_Linux + 25)
- #define __NR_ptrace (__NR_Linux + 26)
- #define __NR_alarm (__NR_Linux + 27)
--#define __NR_oldfstat (__NR_Linux + 28)
-+#define __NR_unused28 (__NR_Linux + 28)
- #define __NR_pause (__NR_Linux + 29)
- #define __NR_utime (__NR_Linux + 30)
- #define __NR_stty (__NR_Linux + 31)
-@@ -93,7 +93,7 @@
- #define __NR_setgroups (__NR_Linux + 81)
- #define __NR_reserved82 (__NR_Linux + 82)
- #define __NR_symlink (__NR_Linux + 83)
--#define __NR_oldlstat (__NR_Linux + 84)
-+#define __NR_unused84 (__NR_Linux + 84)
- #define __NR_readlink (__NR_Linux + 85)
- #define __NR_uselib (__NR_Linux + 86)
- #define __NR_swapon (__NR_Linux + 87)
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Entries
---- linux-2.4.20/include/asm-mips/vr4181/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,3 @@
-+/irq.h/1.1.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/vr4181.h/1.1.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Repository
---- linux-2.4.20/include/asm-mips/vr4181/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/vr4181
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Root
---- linux-2.4.20/include/asm-mips/vr4181/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Tag
---- linux-2.4.20/include/asm-mips/vr4181/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/irq.h
---- linux-2.4.20/include/asm-mips/vr4181/irq.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/irq.h 2002-08-05 18:53:39.000000000 -0500
-@@ -33,19 +33,19 @@
-
- /* CPU interrupts */
-
--/*
-- IP0 - Software interrupt
-- IP1 - Software interrupt
-- IP2 - All but battery, high speed modem, and real time clock
-- IP3 - RTC Long1 (system timer)
-- IP4 - RTC Long2
-- IP5 - High Speed Modem (unused on VR4181)
-- IP6 - Unused
-- IP7 - Timer interrupt from CPO_COMPARE
-+/*
-+ IP0 - Software interrupt
-+ IP1 - Software interrupt
-+ IP2 - All but battery, high speed modem, and real time clock
-+ IP3 - RTC Long1 (system timer)
-+ IP4 - RTC Long2
-+ IP5 - High Speed Modem (unused on VR4181)
-+ IP6 - Unused
-+ IP7 - Timer interrupt from CPO_COMPARE
- */
-
--#define VR4181_IRQ_SW1 (VR4181_CPU_IRQ_BASE + 0)
--#define VR4181_IRQ_SW2 (VR4181_CPU_IRQ_BASE + 1)
-+#define VR4181_IRQ_SW1 (VR4181_CPU_IRQ_BASE + 0)
-+#define VR4181_IRQ_SW2 (VR4181_CPU_IRQ_BASE + 1)
- #define VR4181_IRQ_INT0 (VR4181_CPU_IRQ_BASE + 2)
- #define VR4181_IRQ_INT1 (VR4181_CPU_IRQ_BASE + 3)
- #define VR4181_IRQ_INT2 (VR4181_CPU_IRQ_BASE + 4)
-@@ -56,7 +56,7 @@
-
- /* Cascaded from VR4181_IRQ_INT0 (ICU mapped interrupts) */
-
--/*
-+/*
- IP2 - same as VR4181_IRQ_INT1
- IP8 - This is a cascade to GPIO IRQ's. Do not use.
- IP16 - same as VR4181_IRQ_INT2
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr4181/vr4181.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/vr4181.h
---- linux-2.4.20/include/asm-mips/vr4181/vr4181.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr4181/vr4181.h 2002-08-05 18:53:39.000000000 -0500
-@@ -4,13 +4,13 @@
- * for more details.
- *
- * Copyright (C) 1999 by Michael Klar
-- *
-+ *
- * Copyright 2001 MontaVista Software Inc.
- * Author: jsun@mvista.com or jsun@junsun.net
- *
- */
--#ifndef __ASM_VR4181_VR4181_H
--#define __ASM_VR4181_VR4181_H
-+#ifndef __ASM_VR4181_VR4181_H
-+#define __ASM_VR4181_VR4181_H
-
- #include <asm/addrspace.h>
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Entries
---- linux-2.4.20/include/asm-mips/vr41xx/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Entries 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1,9 @@
-+/capcella.h/1.1.2.1/Mon Jul 15 00:02:57 2002/-ko/Tlinux_2_4_20
-+/e55.h/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/eagle.h/1.1.2.3/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/mpc30x.h/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/tb0226.h/1.1.2.1/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/vr41xx.h/1.1.2.3/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+/vrc4173.h/1.1.2.1/Thu Dec 12 01:10:10 2002/-ko/Tlinux_2_4_20
-+/workpad.h/1.1.2.1/Thu Oct 3 16:58:02 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Repository
---- linux-2.4.20/include/asm-mips/vr41xx/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips/vr41xx
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Root
---- linux-2.4.20/include/asm-mips/vr41xx/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Tag
---- linux-2.4.20/include/asm-mips/vr41xx/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/CVS/Tag 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/e55.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/e55.h
---- linux-2.4.20/include/asm-mips/vr41xx/e55.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/e55.h 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,37 @@
-+/*
-+ * FILE NAME
-+ * include/asm-mips/vr41xx/e55.h
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Include file for CASIO CASSIOPEIA E-10/15/55/65.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#ifndef __CASIO_E55_H
-+#define __CASIO_E55_H
-+
-+#include <asm/addrspace.h>
-+#include <asm/vr41xx/vr41xx.h>
-+
-+/*
-+ * Board specific address mapping
-+ */
-+#define VR41XX_ISA_MEM_BASE 0x10000000
-+#define VR41XX_ISA_MEM_SIZE 0x04000000
-+
-+#define VR41XX_ISA_IO_BASE 0x14000000
-+#define VR41XX_ISA_IO_SIZE 0x04000000
-+
-+#define IO_PORT_BASE KSEG1ADDR(VR41XX_ISA_IO_BASE)
-+#define IO_PORT_RESOURCE_START 0
-+#define IO_PORT_RESOURCE_END VR41XX_ISA_IO_SIZE
-+#define IO_MEM_RESOURCE_START VR41XX_ISA_MEM_BASE
-+#define IO_MEM_RESOURCE_END (VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE)
-+
-+#endif /* __CASIO_E55_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/eagle.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/eagle.h
---- linux-2.4.20/include/asm-mips/vr41xx/eagle.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/eagle.h 2002-10-03 11:58:02.000000000 -0500
-@@ -81,7 +81,7 @@
- #define FPGA_CASCADE_IRQ GIU_IRQ(FPGA_PIN)
- #define DCD_IRQ GIU_IRQ(DCD_PIN)
-
--#define SDBINT_IRQ_BASE 89
-+#define SDBINT_IRQ_BASE 88
- #define DEG_IRQ (SDBINT_IRQ_BASE + 1)
- #define ENUM_IRQ (SDBINT_IRQ_BASE + 2)
- #define SIO1INT_IRQ (SDBINT_IRQ_BASE + 3)
-@@ -89,7 +89,7 @@
- #define PARINT_IRQ (SDBINT_IRQ_BASE + 5)
- #define SDBINT_IRQ_LAST PARINT_IRQ
-
--#define PCIINT_IRQ_BASE 97
-+#define PCIINT_IRQ_BASE 96
- #define CP_INTA_IRQ (PCIINT_IRQ_BASE + 0)
- #define CP_INTB_IRQ (PCIINT_IRQ_BASE + 1)
- #define CP_INTC_IRQ (PCIINT_IRQ_BASE + 2)
-@@ -97,7 +97,6 @@
- #define LANINTA_IRQ (PCIINT_IRQ_BASE + 4)
- #define PCIINT_IRQ_LAST LANINTA_IRQ
-
--
- /*
- * On board Devices I/O Mapping
- */
-@@ -134,7 +133,6 @@
- #define NEC_EAGLE_PIOECP_CONFIG KSEG1ADDR(0x0DFFFEF2)
- #define NEC_EAGLE_PIOECP_EXTCNT KSEG1ADDR(0x0DFFFEF4)
-
--
- /*
- * FLSHCNT Register
- */
-@@ -143,7 +141,6 @@
- #define NEC_EAGLE_FLSHCNT_VPPE 0x40
- #define NEC_EAGLE_FLSHCNT_WP2 0x01
-
--
- /*
- * FLSHBANK Register
- */
-@@ -156,7 +153,6 @@
- #define NEC_EAGLE_FLSHBANK_BNKQ1 0x02
- #define NEC_EAGLE_FLSHBANK_BNKQ0 0x01
-
--
- /*
- * SWITCH Setting Register
- */
-@@ -170,7 +166,6 @@
- #define NEC_EAGLE_SWTCHSET_DP1SW2 0x02
- #define NEC_EAGLE_SWTCHSET_DP1SW1 0x01
-
--
- /*
- * PPT Parallel Port Device Controller
- */
-@@ -196,14 +191,12 @@
- #define NEC_EAGLE_PPT_SELECT 0x02
- #define NEC_EAGLE_PPT_FAULT 0x01
-
--
- /*
- * LEDWR Register
- */
- #define NEC_EAGLE_LEDWR1 KSEG1ADDR(0x0DFFFFC0)
- #define NEC_EAGLE_LEDWR2 KSEG1ADDR(0x0DFFFFC4)
-
--
- /*
- * SDBINT Register
- */
-@@ -214,7 +207,6 @@
- #define NEC_EAGLE_SDBINT_ENUM 0x04
- #define NEC_EAGLE_SDBINT_DEG 0x02
-
--
- /*
- * SDB INTMSK Register
- */
-@@ -225,7 +217,6 @@
- #define NEC_EAGLE_SDBINTMSK_MSKENUM 0x04
- #define NEC_EAGLE_SDBINTMSK_MSKDEG 0x02
-
--
- /*
- * RSTREG Register
- */
-@@ -233,7 +224,6 @@
- #define NEC_EAGLE_RST_RSTSW 0x02
- #define NEC_EAGLE_RST_LEDOFF 0x01
-
--
- /*
- * PCI INT Rgister
- */
-@@ -244,7 +234,6 @@
- #define NEC_EAGLE_PCIINT_CP_INTB 0x02
- #define NEC_EAGLE_PCIINT_CP_INTA 0x01
-
--
- /*
- * PCI INT Mask Register
- */
-@@ -255,7 +244,6 @@
- #define NEC_EAGLE_PCIINTMSK_MSKCP_INTB 0x02
- #define NEC_EAGLE_PCIINTMSK_MSKCP_INTA 0x01
-
--
- /*
- * CLK Division Register
- */
-@@ -266,7 +254,6 @@
- #define NEC_EAGLE_CLKDIV_VTDIV1 0x02
- #define NEC_EAGLE_CLKDIV_VTDIV0 0x01
-
--
- /*
- * Source Revision Register
- */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/mpc30x.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/mpc30x.h
---- linux-2.4.20/include/asm-mips/vr41xx/mpc30x.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/mpc30x.h 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,71 @@
-+/*
-+ * FILE NAME
-+ * include/asm-mips/vr41xx/mpc30x.h
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Include file for Victor MP-C303/304.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#ifndef __VICTOR_MPC30X_H
-+#define __VICTOR_MPC30X_H
-+
-+#include <linux/config.h>
-+
-+#include <asm/addrspace.h>
-+#include <asm/vr41xx/vr41xx.h>
-+
-+/*
-+ * Board specific address mapping
-+ */
-+#define VR41XX_PCI_MEM1_BASE 0x10000000
-+#define VR41XX_PCI_MEM1_SIZE 0x04000000
-+#define VR41XX_PCI_MEM1_MASK 0x7c000000
-+
-+#define VR41XX_PCI_MEM2_BASE 0x14000000
-+#define VR41XX_PCI_MEM2_SIZE 0x02000000
-+#define VR41XX_PCI_MEM2_MASK 0x7e000000
-+
-+#define VR41XX_PCI_IO_BASE 0x16000000
-+#define VR41XX_PCI_IO_SIZE 0x02000000
-+#define VR41XX_PCI_IO_MASK 0x7e000000
-+
-+#define VR41XX_PCI_IO_START 0x01000000
-+#define VR41XX_PCI_IO_END 0x01ffffff
-+
-+#define VR41XX_PCI_MEM_START 0x12000000
-+#define VR41XX_PCI_MEM_END 0x15ffffff
-+
-+#define IO_PORT_BASE KSEG1ADDR(VR41XX_PCI_IO_BASE)
-+#define IO_PORT_RESOURCE_START 0
-+#define IO_PORT_RESOURCE_END VR41XX_PCI_IO_SIZE
-+#define IO_MEM1_RESOURCE_START VR41XX_PCI_MEM1_BASE
-+#define IO_MEM1_RESOURCE_END (VR41XX_PCI_MEM1_BASE + VR41XX_PCI_MEM1_SIZE)
-+#define IO_MEM2_RESOURCE_START VR41XX_PCI_MEM2_BASE
-+#define IO_MEM2_RESOURCE_END (VR41XX_PCI_MEM2_BASE + VR41XX_PCI_MEM2_SIZE)
-+
-+/*
-+ * Interrupt Number
-+ */
-+#define VRC4173_CASCADE_IRQ GIU_IRQ(1)
-+#define MQ200_IRQ GIU_IRQ(4)
-+
-+#ifdef CONFIG_VRC4173
-+
-+#define VRC4173_IRQ_BASE 72
-+#define USB_IRQ (VRC4173_IRQ_BASE + 0)
-+#define PCMCIA2_IRQ (VRC4173_IRQ_BASE + 1)
-+#define PCMCIA1_IRQ (VRC4173_IRQ_BASE + 2)
-+#define PIU_IRQ (VRC4173_IRQ_BASE + 5)
-+#define KIU_IRQ (VRC4173_IRQ_BASE + 7)
-+#define AC97_IRQ (VRC4173_IRQ_BASE + 9)
-+
-+#endif /* CONFIG_VRC4173 */
-+
-+#endif /* __VICTOR_MPC30X_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/tb0226.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/tb0226.h
---- linux-2.4.20/include/asm-mips/vr41xx/tb0226.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/tb0226.h 2003-02-04 06:43:06.000000000 -0600
-@@ -0,0 +1,69 @@
-+/*
-+ * FILE NAME
-+ * include/asm-mips/vr41xx/tb0226.h
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Include file for TANBAC TB0226.
-+ *
-+ * Copyright 2002,2003 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#ifndef __TANBAC_TB0226_H
-+#define __TANBAC_TB0226_H
-+
-+#include <asm/addrspace.h>
-+#include <asm/vr41xx/vr41xx.h>
-+
-+/*
-+ * Board specific address mapping
-+ */
-+#define VR41XX_PCI_MEM1_BASE 0x10000000
-+#define VR41XX_PCI_MEM1_SIZE 0x04000000
-+#define VR41XX_PCI_MEM1_MASK 0x7c000000
-+
-+#define VR41XX_PCI_MEM2_BASE 0x14000000
-+#define VR41XX_PCI_MEM2_SIZE 0x02000000
-+#define VR41XX_PCI_MEM2_MASK 0x7e000000
-+
-+#define VR41XX_PCI_IO_BASE 0x16000000
-+#define VR41XX_PCI_IO_SIZE 0x02000000
-+#define VR41XX_PCI_IO_MASK 0x7e000000
-+
-+#define VR41XX_PCI_IO_START 0x01000000
-+#define VR41XX_PCI_IO_END 0x01ffffff
-+
-+#define VR41XX_PCI_MEM_START 0x12000000
-+#define VR41XX_PCI_MEM_END 0x15ffffff
-+
-+#define IO_PORT_BASE KSEG1ADDR(VR41XX_PCI_IO_BASE)
-+#define IO_PORT_RESOURCE_START 0
-+#define IO_PORT_RESOURCE_END VR41XX_PCI_IO_SIZE
-+#define IO_MEM1_RESOURCE_START VR41XX_PCI_MEM1_BASE
-+#define IO_MEM1_RESOURCE_END (VR41XX_PCI_MEM1_BASE + VR41XX_PCI_MEM1_SIZE)
-+#define IO_MEM2_RESOURCE_START VR41XX_PCI_MEM2_BASE
-+#define IO_MEM2_RESOURCE_END (VR41XX_PCI_MEM2_BASE + VR41XX_PCI_MEM2_SIZE)
-+
-+/*
-+ * General-Purpose I/O Pin Number
-+ */
-+#define GD82559_1_PIN 2
-+#define GD82559_2_PIN 3
-+#define UPD720100_INTA_PIN 4
-+#define UPD720100_INTB_PIN 8
-+#define UPD720100_INTC_PIN 13
-+
-+/*
-+ * Interrupt Number
-+ */
-+#define GD82559_1_IRQ GIU_IRQ(GD82559_1_PIN)
-+#define GD82559_2_IRQ GIU_IRQ(GD82559_2_PIN)
-+#define UPD720100_INTA_IRQ GIU_IRQ(UPD720100_INTA_PIN)
-+#define UPD720100_INTB_IRQ GIU_IRQ(UPD720100_INTB_PIN)
-+#define UPD720100_INTC_IRQ GIU_IRQ(UPD720100_INTC_PIN)
-+
-+#endif /* __TANBAC_TB0226_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/vr41xx.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vr41xx.h
---- linux-2.4.20/include/asm-mips/vr41xx/vr41xx.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vr41xx.h 2002-10-03 11:58:02.000000000 -0500
-@@ -38,7 +38,6 @@
- #define PRID_VR4131_REV2_1 0x00000c82
- #define PRID_VR4131_REV2_2 0x00000c83
-
--
- /*
- * Bus Control Uint
- */
-@@ -64,6 +63,10 @@
- /*
- * Gegeral-Purpose I/O Unit
- */
-+extern void vr41xx_enable_giuint(int pin);
-+extern void vr41xx_disable_giuint(int pin);
-+extern void vr41xx_clear_giuint(int pin);
-+
- enum {
- TRIGGER_LEVEL,
- TRIGGER_EDGE
-@@ -74,14 +77,14 @@
- SIGNAL_HOLD
- };
-
--extern void vr41xx_set_irq_trigger(u8 pin, u8 trigger, u8 hold);
-+extern void vr41xx_set_irq_trigger(int pin, int trigger, int hold);
-
- enum {
- LEVEL_LOW,
- LEVEL_HIGH
- };
-
--extern void vr41xx_set_irq_level(u8 pin, u8 level);
-+extern void vr41xx_set_irq_level(int pin, int level);
-
- enum {
- PIO_INPUT,
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/vrc4173.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vrc4173.h
---- linux-2.4.20/include/asm-mips/vr41xx/vrc4173.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/vrc4173.h 2002-12-11 19:10:10.000000000 -0600
-@@ -0,0 +1,91 @@
-+/*
-+ * FILE NAME
-+ * include/asm-mips/vr41xx/vrc4173.h
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Include file for NEC VRC4173.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 2000 by Michael R. McDonald
-+ *
-+ * Copyright 2001,2002 Montavista Software Inc.
-+ * Author: Yoichi Yuasa
-+ * yyuasa@mvista.com or source@mvista.com
-+ */
-+#ifndef __NEC_VRC4173_H
-+#define __NEC_VRC4173_H
-+
-+#include <asm/io.h>
-+
-+/*
-+ * Interrupt Number
-+ */
-+#define VRC4173_IRQ_BASE 72
-+#define VRC4173_USB_IRQ (VRC4173_IRQ_BASE + 0)
-+#define VRC4173_PCMCIA2_IRQ (VRC4173_IRQ_BASE + 1)
-+#define VRC4173_PCMCIA1_IRQ (VRC4173_IRQ_BASE + 2)
-+#define VRC4173_PS2CH2_IRQ (VRC4173_IRQ_BASE + 3)
-+#define VRC4173_PS2CH1_IRQ (VRC4173_IRQ_BASE + 4)
-+#define VRC4173_PIU_IRQ (VRC4173_IRQ_BASE + 5)
-+#define VRC4173_AIU_IRQ (VRC4173_IRQ_BASE + 6)
-+#define VRC4173_KIU_IRQ (VRC4173_IRQ_BASE + 7)
-+#define VRC4173_GIU_IRQ (VRC4173_IRQ_BASE + 8)
-+#define VRC4173_AC97_IRQ (VRC4173_IRQ_BASE + 9)
-+#define VRC4173_AC97INT1_IRQ (VRC4173_IRQ_BASE + 10)
-+#define VRC4173_DOZEPIU_IRQ (VRC4173_IRQ_BASE + 13)
-+#define VRC4173_IRQ_LAST VRC4173_DOZEPIU_IRQ
-+
-+/*
-+ * PCI I/O accesses
-+ */
-+extern unsigned long vrc4173_io_offset;
-+
-+#define set_vrc4173_io_offset(offset) do { vrc4173_io_offset = (offset); } while (0)
-+
-+#define vrc4173_outb(val,port) outb((val), vrc4173_io_offset+(port))
-+#define vrc4173_outw(val,port) outw((val), vrc4173_io_offset+(port))
-+#define vrc4173_outl(val,port) outl((val), vrc4173_io_offset+(port))
-+#define vrc4173_outb_p(val,port) outb_p((val), vrc4173_io_offset+(port))
-+#define vrc4173_outw_p(val,port) outw_p((val), vrc4173_io_offset+(port))
-+#define vrc4173_outl_p(val,port) outl_p((val), vrc4173_io_offset+(port))
-+
-+#define vrc4173_inb(port) inb(vrc4173_io_offset+(port))
-+#define vrc4173_inw(port) inw(vrc4173_io_offset+(port))
-+#define vrc4173_inl(port) inl(vrc4173_io_offset+(port))
-+#define vrc4173_inb_p(port) inb_p(vrc4173_io_offset+(port))
-+#define vrc4173_inw_p(port) inw_p(vrc4173_io_offset+(port))
-+#define vrc4173_inl_p(port) inl_p(vrc4173_io_offset+(port))
-+
-+#define vrc4173_outsb(port,addr,count) outsb(vrc4173_io_offset+(port),(addr),(count))
-+#define vrc4173_outsw(port,addr,count) outsw(vrc4173_io_offset+(port),(addr),(count))
-+#define vrc4173_outsl(port,addr,count) outsl(vrc4173_io_offset+(port),(addr),(count))
-+
-+#define vrc4173_insb(port,addr,count) insb(vrc4173_io_offset+(port),(addr),(count))
-+#define vrc4173_insw(port,addr,count) insw(vrc4173_io_offset+(port),(addr),(count))
-+#define vrc4173_insl(port,addr,count) insl(vrc4173_io_offset+(port),(addr),(count))
-+
-+/*
-+ * Clock Mask Unit
-+ */
-+extern void vrc4173_clock_supply(u16 mask);
-+extern void vrc4173_clock_mask(u16 mask);
-+
-+/*
-+ * General-Purpose I/O Unit
-+ */
-+enum {
-+ PS2CH1_SELECT,
-+ PS2CH2_SELECT,
-+ TOUCHPANEL_SELECT,
-+ KIU8_SELECT,
-+ KIU10_SELECT,
-+ KIU12_SELECT,
-+ GPIO_SELECT
-+};
-+
-+extern void vrc4173_select_function(int func);
-+
-+#endif /* __NEC_VRC4173_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/vr41xx/workpad.h linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/workpad.h
---- linux-2.4.20/include/asm-mips/vr41xx/workpad.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/vr41xx/workpad.h 2002-10-03 11:58:02.000000000 -0500
-@@ -0,0 +1,38 @@
-+/*
-+ * FILE NAME
-+ * include/asm-mips/vr41xx/workpad.h
-+ *
-+ * BRIEF MODULE DESCRIPTION
-+ * Include file for IBM WorkPad z50.
-+ *
-+ * Copyright 2002 Yoichi Yuasa
-+ * yuasa@hh.iij4u.or.jp
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ */
-+#ifndef __IBM_WORKPAD_H
-+#define __IBM_WORKPAD_H
-+
-+#include <asm/addrspace.h>
-+#include <asm/vr41xx/vr41xx.h>
-+
-+/*
-+ * Board specific address mapping
-+ */
-+#define VR41XX_ISA_MEM_BASE 0x100000000
-+#define VR41XX_ISA_MEM_SIZE 0x04000000
-+
-+/* VR41XX_ISA_IO_BASE includes offset from real base. */
-+#define VR41XX_ISA_IO_BASE 0x15000000
-+#define VR41XX_ISA_IO_SIZE 0x03000000
-+
-+#define IO_PORT_BASE KSEG1ADDR(VR41XX_ISA_IO_BASE)
-+#define IO_PORT_RESOURCE_START 0
-+#define IO_PORT_RESOURCE_END VR41XX_ISA_IO_SIZE
-+#define IO_MEM_RESOURCE_START VR41XX_ISA_MEM_BASE
-+#define IO_MEM_RESOURCE_END (VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE)
-+
-+#endif /* __IBM_WORKPAD_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips/war.h linux-2.4.20-mipscvs-20050106/include/asm-mips/war.h
---- linux-2.4.20/include/asm-mips/war.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips/war.h 2003-01-29 10:39:00.000000000 -0600
-@@ -67,4 +67,21 @@
-
- #endif
-
-+#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \
-+ defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
-+
-+/*
-+ * Workaround for the Sibyte M3 errata the text of which can be found at
-+ *
-+ * http://sibyte.broadcom.com/hw/bcm1250/docs/pass2errata.txt
-+ *
-+ * This will enable the use of a special TLB refill handler which does a
-+ * consistency check on the information in c0_badvaddr and c0_entryhi and
-+ * will just return and take the exception again if the information was
-+ * found to be inconsistent.
-+ */
-+#define BCM1250_M3_WAR
-+
-+#endif
-+
- #endif /* _ASM_WAR_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/addrspace.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/addrspace.h
---- linux-2.4.20/include/asm-mips64/addrspace.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/addrspace.h 2002-10-23 09:24:20.000000000 -0500
-@@ -58,7 +58,7 @@
-
- #ifndef __ASSEMBLY__
- #define PHYSADDR(a) ({ \
-- const _ATYPE64_ _a = (a); \
-+ const _ATYPE64_ _a = _ACAST64_ (a); \
- _a == _ACAST32_ _a ? CPHYSADDR(_a) : XPHYSADDR(_a); })
- #endif
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/a.out.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/a.out.h
---- linux-2.4.20/include/asm-mips64/a.out.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/a.out.h 2003-02-20 13:46:34.000000000 -0600
-@@ -26,7 +26,7 @@
-
- #ifdef __KERNEL__
-
--#define STACK_TOP (current->thread.mflags & MF_32BIT ? TASK_SIZE32 : TASK_SIZE)
-+#define STACK_TOP (current->thread.mflags & MF_32BIT_ADDR ? TASK_SIZE32 : TASK_SIZE)
-
- #endif
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Entries
---- linux-2.4.20/include/asm-mips64/arc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Entries 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1,3 @@
-+/hinv.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/types.h/1.3/Mon Jan 17 23:32:47 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Repository
---- linux-2.4.20/include/asm-mips64/arc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Repository 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/arc
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Root
---- linux-2.4.20/include/asm-mips64/arc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Root 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/arc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Tag
---- linux-2.4.20/include/asm-mips64/arc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/arc/CVS/Tag 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/asm.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/asm.h
---- linux-2.4.20/include/asm-mips64/asm.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/asm.h 2003-01-07 17:51:51.000000000 -0600
-@@ -128,8 +128,7 @@
- * MIPS IV implementations are free to treat this as a nop. The R5000
- * is one of them. So we should have an option not to use this instruction.
- */
--#if (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5) || \
-- (_MIPS_ISA == _MIPS_ISA_MIPS64)
-+#ifdef CONFIG_CPU_HAS_PREFETCH
-
- #define PREF(hint,addr) \
- .set push; \
-@@ -143,12 +142,12 @@
- prefx hint,addr; \
- .set pop
-
--#else
-+#else /* !CONFIG_CPU_HAS_PREFETCH */
-
- #define PREF(hint,addr)
- #define PREFX(hint,addr)
-
--#endif
-+#endif /* !CONFIG_CPU_HAS_PREFETCH */
-
- /*
- * MIPS ISA IV/V movn/movz instructions and equivalents for older CPUs.
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/atomic.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/atomic.h
---- linux-2.4.20/include/asm-mips64/atomic.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/atomic.h 2002-11-14 13:54:11.000000000 -0600
-@@ -140,8 +140,8 @@
- * and returns true if the result is zero, or false for all
- * other cases. Note that the guaranteed
- * useful range of an atomic_t is only 24 bits.
-- * atomic_inc_and_test is currently not implemented for mips64.
- */
-+#define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
-
- /*
- * atomic_dec_and_test - decrement by 1 and test
-@@ -181,9 +181,8 @@
- * if the result is negative, or false when
- * result is greater than or equal to zero. Note that the guaranteed
- * useful range of an atomic_t is only 24 bits.
-- *
-- * atomic_add_negative is currently not implemented for mips64.
- */
-+#define atomic_add_negative(i,v) (atomic_add_return(i, (v)) < 0)
-
- /* Atomic operations are already serializing */
- #define smp_mb__before_atomic_dec() smp_mb()
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/bitops.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/bitops.h
---- linux-2.4.20/include/asm-mips64/bitops.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/bitops.h 2002-12-20 07:01:02.000000000 -0600
-@@ -13,6 +13,14 @@
- #include <linux/types.h>
- #include <asm/byteorder.h> /* sigh ... */
-
-+#if (_MIPS_SZLONG == 32)
-+#define SZLONG_LOG 5
-+#define SZLONG_MASK 31UL
-+#elif (_MIPS_SZLONG == 64)
-+#define SZLONG_LOG 6
-+#define SZLONG_MASK 63UL
-+#endif
-+
- #ifndef __KERNEL__
- #error "Don't do this, sucker ..."
- #endif
-@@ -90,7 +98,7 @@
-
- /*
- * change_bit - Toggle a bit in memory
-- * @nr: Bit to clear
-+ * @nr: Bit to change
- * @addr: Address to start counting from
- *
- * change_bit() is atomic and may not be reordered.
-@@ -113,7 +121,7 @@
-
- /*
- * __change_bit - Toggle a bit in memory
-- * @nr: the bit to set
-+ * @nr: the bit to change
- * @addr: the address to start counting from
- *
- * Unlike change_bit(), this function is non-atomic and may be reordered.
-@@ -136,7 +144,7 @@
- * It also implies a memory barrier.
- */
- static inline unsigned long test_and_set_bit(unsigned long nr,
-- volatile void *addr)
-+ volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 6);
- unsigned long temp, res;
-@@ -183,14 +191,14 @@
-
- /*
- * test_and_clear_bit - Clear a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
- static inline unsigned long test_and_clear_bit(unsigned long nr,
-- volatile void *addr)
-+ volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 6);
- unsigned long temp, res;
-@@ -216,7 +224,7 @@
-
- /*
- * __test_and_clear_bit - Clear a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to clear
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
-@@ -238,14 +246,14 @@
-
- /*
- * test_and_change_bit - Change a bit and return its new value
-- * @nr: Bit to set
-+ * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is atomic and cannot be reordered.
- * It also implies a memory barrier.
- */
- static inline unsigned long test_and_change_bit(unsigned long nr,
-- volatile void *addr)
-+ volatile void *addr)
- {
- unsigned long *m = ((unsigned long *) addr) + (nr >> 6);
- unsigned long temp, res;
-@@ -270,7 +278,7 @@
-
- /*
- * __test_and_change_bit - Change a bit and return its old value
-- * @nr: Bit to set
-+ * @nr: Bit to change
- * @addr: Address to count from
- *
- * This operation is non-atomic and can be reordered.
-@@ -294,106 +302,11 @@
- * @nr: bit number to test
- * @addr: Address to start counting from
- */
--static inline unsigned long test_bit(int nr, volatile void * addr)
--{
-- return 1UL & (((volatile unsigned long *) addr)[nr >> 6] >> (nr & 0x3f));
--}
--
--#ifndef __MIPSEB__
--
--/* Little endian versions. */
--
--/*
-- * find_first_zero_bit - find the first zero bit in a memory region
-- * @addr: The address to start the search at
-- * @size: The maximum size to search
-- *
-- * Returns the bit-number of the first zero bit, not the number of the byte
-- * containing a bit.
-- */
--static inline int find_first_zero_bit (void *addr, unsigned size)
--{
-- unsigned long dummy;
-- int res;
--
-- if (!size)
-- return 0;
--
-- __asm__ (".set\tnoreorder\n\t"
-- ".set\tnoat\n"
-- "1:\tsubu\t$1,%6,%0\n\t"
-- "blez\t$1,2f\n\t"
-- "lw\t$1,(%5)\n\t"
-- "addiu\t%5,4\n\t"
--#if (_MIPS_ISA == _MIPS_ISA_MIPS2 ) || (_MIPS_ISA == _MIPS_ISA_MIPS3 ) || \
-- (_MIPS_ISA == _MIPS_ISA_MIPS4 ) || (_MIPS_ISA == _MIPS_ISA_MIPS5 ) || \
-- (_MIPS_ISA == _MIPS_ISA_MIPS32) || (_MIPS_ISA == _MIPS_ISA_MIPS64)
-- "beql\t%1,$1,1b\n\t"
-- "addiu\t%0,32\n\t"
--#else
-- "addiu\t%0,32\n\t"
-- "beq\t%1,$1,1b\n\t"
-- "nop\n\t"
-- "subu\t%0,32\n\t"
--#endif
-- "li\t%1,1\n"
-- "1:\tand\t%2,$1,%1\n\t"
-- "beqz\t%2,2f\n\t"
-- "sll\t%1,%1,1\n\t"
-- "bnez\t%1,1b\n\t"
-- "add\t%0,%0,1\n\t"
-- ".set\tat\n\t"
-- ".set\treorder\n"
-- "2:"
-- : "=r" (res), "=r" (dummy), "=r" (addr)
-- : "0" ((signed int) 0), "1" ((unsigned int) 0xffffffff),
-- "2" (addr), "r" (size));
--
-- return res;
--}
--
--/*
-- * find_next_zero_bit - find the first zero bit in a memory region
-- * @addr: The address to base the search on
-- * @offset: The bitnumber to start searching at
-- * @size: The maximum size to search
-- */
--static inline int find_next_zero_bit (void * addr, int size, int offset)
-+static inline int test_bit(int nr, volatile void * addr)
- {
-- unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-- int set = 0, bit = offset & 31, res;
-- unsigned long dummy;
--
-- if (bit) {
-- /*
-- * Look for zero in first byte
-- */
-- __asm__(".set\tnoreorder\n\t"
-- ".set\tnoat\n"
-- "1:\tand\t$1,%4,%1\n\t"
-- "beqz\t$1,1f\n\t"
-- "sll\t%1,%1,1\n\t"
-- "bnez\t%1,1b\n\t"
-- "addiu\t%0,1\n\t"
-- ".set\tat\n\t"
-- ".set\treorder\n"
-- "1:"
-- : "=r" (set), "=r" (dummy)
-- : "0" (0), "1" (1 << bit), "r" (*p));
-- if (set < (32 - bit))
-- return set + offset;
-- set = 32 - bit;
-- p++;
-- }
-- /*
-- * No zero yet, search remaining full bytes for a zero
-- */
-- res = find_first_zero_bit(p, size - 32 * (p - (unsigned int *) addr));
-- return offset + set + res;
-+ return 1UL & (((const volatile unsigned long *) addr)[nr >> SZLONG_LOG] >> (nr & SZLONG_MASK));
- }
-
--#endif /* !(__MIPSEB__) */
--
- /*
- * ffz - find first zero in word.
- * @word: The word to search
-@@ -415,35 +328,6 @@
- return b;
- }
-
--#ifdef __KERNEL__
--
--
--/*
-- * ffs - find first bit set
-- * @x: the word to search
-- *
-- * This is defined the same way as
-- * the libc and compiler builtin ffs routines, therefore
-- * differs in spirit from the above ffz (man ffs).
-- */
--
--#define ffs(x) generic_ffs(x)
--
--/*
-- * hweightN - returns the hamming weight of a N-bit word
-- * @x: the word to weigh
-- *
-- * The Hamming Weight of a number is the total number of bits set in it.
-- */
--
--#define hweight32(x) generic_hweight32(x)
--#define hweight16(x) generic_hweight16(x)
--#define hweight8(x) generic_hweight8(x)
--
--#endif /* __KERNEL__ */
--
--#ifdef __MIPSEB__
--
- /*
- * find_next_zero_bit - find the first zero bit in a memory region
- * @addr: The address to base the search on
-@@ -453,29 +337,29 @@
- static inline unsigned long find_next_zero_bit(void *addr, unsigned long size,
- unsigned long offset)
- {
-- unsigned long *p = ((unsigned long *) addr) + (offset >> 6);
-- unsigned long result = offset & ~63UL;
-+ unsigned long *p = ((unsigned long *) addr) + (offset >> SZLONG_LOG);
-+ unsigned long result = offset & ~SZLONG_MASK;
- unsigned long tmp;
-
- if (offset >= size)
- return size;
- size -= result;
-- offset &= 63UL;
-+ offset &= SZLONG_MASK;
- if (offset) {
- tmp = *(p++);
-- tmp |= ~0UL >> (64-offset);
-- if (size < 64)
-+ tmp |= ~0UL >> (_MIPS_SZLONG-offset);
-+ if (size < _MIPS_SZLONG)
- goto found_first;
- if (~tmp)
- goto found_middle;
-- size -= 64;
-- result += 64;
-+ size -= _MIPS_SZLONG;
-+ result += _MIPS_SZLONG;
- }
-- while (size & ~63UL) {
-+ while (size & ~SZLONG_MASK) {
- if (~(tmp = *(p++)))
- goto found_middle;
-- result += 64;
-- size -= 64;
-+ result += _MIPS_SZLONG;
-+ size -= _MIPS_SZLONG;
- }
- if (!size)
- return result;
-@@ -483,127 +367,143 @@
-
- found_first:
- tmp |= ~0UL << size;
-+ if (tmp == ~0UL) /* Are any bits zero? */
-+ return result + size; /* Nope. */
- found_middle:
- return result + ffz(tmp);
- }
-
- #define find_first_zero_bit(addr, size) \
-- find_next_zero_bit((addr), (size), 0)
--
--#endif /* (__MIPSEB__) */
-+ find_next_zero_bit((addr), (size), 0)
-
- #ifdef __KERNEL__
-
--/* Now for the ext2 filesystem bit operations and helper routines. */
-+/*
-+ * ffs - find first bit set
-+ * @x: the word to search
-+ *
-+ * This is defined the same way as
-+ * the libc and compiler builtin ffs routines, therefore
-+ * differs in spirit from the above ffz (man ffs).
-+ */
-
--#ifdef __MIPSEB__
-+#define ffs(x) generic_ffs(x)
-
--static inline int ext2_set_bit(int nr,void * addr)
-+/*
-+ * hweightN - returns the hamming weight of a N-bit word
-+ * @x: the word to weigh
-+ *
-+ * The Hamming Weight of a number is the total number of bits set in it.
-+ */
-+
-+#define hweight32(x) generic_hweight32(x)
-+#define hweight16(x) generic_hweight16(x)
-+#define hweight8(x) generic_hweight8(x)
-+
-+static inline int __test_and_set_le_bit(unsigned long nr, void * addr)
- {
-- int mask, retval, flags;
- unsigned char *ADDR = (unsigned char *) addr;
-+ int mask, retval;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
-- save_and_cli(flags);
- retval = (mask & *ADDR) != 0;
- *ADDR |= mask;
-- restore_flags(flags);
-+
- return retval;
- }
-
--static inline int ext2_clear_bit(int nr, void * addr)
-+static inline int __test_and_clear_le_bit(unsigned long nr, void * addr)
- {
-- int mask, retval, flags;
- unsigned char *ADDR = (unsigned char *) addr;
-+ int mask, retval;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
-- save_and_cli(flags);
- retval = (mask & *ADDR) != 0;
- *ADDR &= ~mask;
-- restore_flags(flags);
-+
- return retval;
- }
-
--static inline int ext2_test_bit(int nr, const void * addr)
-+static inline int test_le_bit(unsigned long nr, const void * addr)
- {
-- int mask;
- const unsigned char *ADDR = (const unsigned char *) addr;
-+ int mask;
-
- ADDR += nr >> 3;
- mask = 1 << (nr & 0x07);
-+
- return ((mask & *ADDR) != 0);
- }
-
--#define ext2_find_first_zero_bit(addr, size) \
-- ext2_find_next_zero_bit((addr), (size), 0)
-+static inline unsigned long ext2_ffz(unsigned int word)
-+{
-+ int b = 0, s;
-
--static inline unsigned int ext2_find_next_zero_bit(void *addr,
-- unsigned long size,
-- unsigned long offset)
-+ word = ~word;
-+ s = 16; if (word << 16 != 0) s = 0; b += s; word >>= s;
-+ s = 8; if (word << 24 != 0) s = 0; b += s; word >>= s;
-+ s = 4; if (word << 28 != 0) s = 0; b += s; word >>= s;
-+ s = 2; if (word << 30 != 0) s = 0; b += s; word >>= s;
-+ s = 1; if (word << 31 != 0) s = 0; b += s;
-+
-+ return b;
-+}
-+
-+static inline unsigned long find_next_zero_le_bit(void *addr,
-+ unsigned long size, unsigned long offset)
- {
- unsigned int *p = ((unsigned int *) addr) + (offset >> 5);
-- unsigned int result = offset & ~31UL;
-+ unsigned int result = offset & ~31;
- unsigned int tmp;
-
- if (offset >= size)
- return size;
-+
- size -= result;
-- offset &= 31UL;
-- if(offset) {
-- /* We hold the little endian value in tmp, but then the
-- * shift is illegal. So we could keep a big endian value
-- * in tmp, like this:
-- *
-- * tmp = __swab32(*(p++));
-- * tmp |= ~0UL >> (32-offset);
-- *
-- * but this would decrease preformance, so we change the
-- * shift:
-- */
-- tmp = *(p++);
-- tmp |= __swab32(~0UL >> (32-offset));
-- if(size < 32)
-+ offset &= 31;
-+ if (offset) {
-+ tmp = cpu_to_le32p(p++);
-+ tmp |= ~0U >> (32-offset); /* bug or feature ? */
-+ if (size < 32)
- goto found_first;
-- if(~tmp)
-+ if (tmp != ~0U)
- goto found_middle;
- size -= 32;
- result += 32;
- }
-- while(size & ~31UL) {
-- if(~(tmp = *(p++)))
-+ while (size >= 32) {
-+ if ((tmp = cpu_to_le32p(p++)) != ~0U)
- goto found_middle;
- result += 32;
- size -= 32;
- }
-- if(!size)
-+ if (!size)
- return result;
-- tmp = *p;
-
-+ tmp = cpu_to_le32p(p);
- found_first:
-- /* tmp is little endian, so we would have to swab the shift,
-- * see above. But then we have to swab tmp below for ffz, so
-- * we might as well do this here.
-- */
-- return result + ffz(__swab32(tmp) | (~0UL << size));
-+ tmp |= ~0 << size;
-+ if (tmp == ~0U) /* Are any bits zero? */
-+ return result + size; /* Nope. */
-+
- found_middle:
-- return result + ffz(__swab32(tmp));
-+ return result + ext2_ffz(tmp);
- }
--#else /* !(__MIPSEB__) */
-
--/* Native ext2 byte ordering, just collapse using defines. */
--#define ext2_set_bit(nr, addr) test_and_set_bit((nr), (addr))
--#define ext2_clear_bit(nr, addr) test_and_clear_bit((nr), (addr))
--#define ext2_test_bit(nr, addr) test_bit((nr), (addr))
--#define ext2_find_first_zero_bit(addr, size) find_first_zero_bit((addr), (size))
--#define ext2_find_next_zero_bit(addr, size, offset) \
-- find_next_zero_bit((addr), (size), (offset))
-+#define find_first_zero_le_bit(addr, size) \
-+ find_next_zero_le_bit((addr), (size), 0)
-
--#endif /* !(__MIPSEB__) */
-+#define ext2_set_bit __test_and_set_le_bit
-+#define ext2_clear_bit __test_and_clear_le_bit
-+#define ext2_test_bit test_le_bit
-+#define ext2_find_first_zero_bit find_first_zero_le_bit
-+#define ext2_find_next_zero_bit find_next_zero_le_bit
-
- /*
- * Bitmap functions for the minix filesystem.
-+ *
- * FIXME: These assume that Minix uses the native byte/bitorder.
- * This limits the Minix filesystem's value for data exchange very much.
- */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/bootinfo.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/bootinfo.h
---- linux-2.4.20/include/asm-mips64/bootinfo.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/bootinfo.h 2003-02-04 06:43:06.000000000 -0600
-@@ -35,6 +35,7 @@
- #define MACH_GROUP_ALCHEMY 18 /* Alchemy Semi Eval Boards */
- #define MACH_GROUP_NEC_VR41XX 19 /* NEC Vr41xx based boards/gadgets */
- #define MACH_GROUP_HP_LJ 20 /* Hewlett Packard LaserJet */
-+#define MACH_GROUP_LASAT 21
-
- /*
- * Valid machtype values for group unknown (low order halfword of mips_machtype)
-@@ -53,14 +54,15 @@
- */
- #define MACH_DSUNKNOWN 0
- #define MACH_DS23100 1 /* DECstation 2100 or 3100 */
--#define MACH_DS5100 2 /* DECstation 5100 */
-+#define MACH_DS5100 2 /* DECsystem 5100 */
- #define MACH_DS5000_200 3 /* DECstation 5000/200 */
- #define MACH_DS5000_1XX 4 /* DECstation 5000/120, 125, 133, 150 */
- #define MACH_DS5000_XX 5 /* DECstation 5000/20, 25, 33, 50 */
- #define MACH_DS5000_2X0 6 /* DECstation 5000/240, 260 */
--#define MACH_DS5400 7 /* DECstation 5400 */
--#define MACH_DS5500 8 /* DECstation 5500 */
--#define MACH_DS5800 9 /* DECstation 5800 */
-+#define MACH_DS5400 7 /* DECsystem 5400 */
-+#define MACH_DS5500 8 /* DECsystem 5500 */
-+#define MACH_DS5800 9 /* DECsystem 5800 */
-+#define MACH_DS5900 10 /* DECsystem 5900 */
-
- /*
- * Valid machtype for group ARC
-@@ -81,17 +83,15 @@
- /*
- * Valid machtype for group SGI
- */
--#define MACH_SGI_INDY 0 /* R4?K and R5K Indy workstations */
--#define MACH_SGI_CHALLENGE_S 1 /* The Challenge S server */
--#define MACH_SGI_INDIGO2 2 /* The Indigo2 system */
--#define MACH_SGI_IP27 3 /* Origin 200, Origin 2000, Onyx 2 */
--#define MACH_SGI_IP28 4 /* Indigo2 Impact */
--#define MACH_SGI_IP32 5 /* O2 */
-+#define MACH_SGI_IP22 0 /* Indy, Indigo2, Challenge S */
-+#define MACH_SGI_IP27 1 /* Origin 200, Origin 2000, Onyx 2 */
-+#define MACH_SGI_IP28 2 /* Indigo2 Impact */
-+#define MACH_SGI_IP32 3 /* O2 */
-
- /*
- * Valid machtype for group COBALT
- */
--#define MACH_COBALT_27 0 /* Proto "27" hardware */
-+#define MACH_COBALT_27 0 /* Proto "27" hardware */
-
- /*
- * Valid machtype for group NEC DDB
-@@ -155,11 +155,20 @@
- #define MACH_TOSHIBA_JMR3927 3 /* JMR-TX3927 CPU/IO board */
-
- /*
-+ * Valid machtype for group LASAT
-+ */
-+#define MACH_LASAT_100 0 /* Masquerade II/SP100/SP50/SP25 */
-+#define MACH_LASAT_200 1 /* Masquerade PRO/SP200 */
-+
-+/*
- * Valid machtype for group Alchemy
- */
- #define MACH_PB1000 0 /* Au1000-based eval board */
- #define MACH_PB1100 1 /* Au1100-based eval board */
- #define MACH_PB1500 2 /* Au1500-based eval board */
-+#define MACH_DB1000 3 /* Au1000-based eval board */
-+#define MACH_DB1100 4 /* Au1100-based eval board */
-+#define MACH_DB1500 5 /* Au1500-based eval board */
-
- /*
- * Valid machtype for group NEC_VR41XX
-@@ -167,6 +176,10 @@
- #define MACH_NEC_OSPREY 0 /* Osprey eval board */
- #define MACH_NEC_EAGLE 1 /* NEC Eagle/Hawk board */
- #define MACH_ZAO_CAPCELLA 2 /* ZAO Networks Capcella */
-+#define MACH_VICTOR_MPC30X 3 /* Victor MP-C303/304 */
-+#define MACH_IBM_WORKPAD 4 /* IBM WorkPad z50 */
-+#define MACH_CASIO_E55 5 /* CASIO CASSIOPEIA E-10/15/55/65 */
-+#define MACH_TANBAC_TB0226 6 /* TANBAC TB0226 (MBASE) */
-
- #define CL_SIZE (256)
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/cache.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/cache.h
---- linux-2.4.20/include/asm-mips64/cache.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/cache.h 2002-12-11 08:23:13.000000000 -0600
-@@ -27,6 +27,7 @@
- * Flag definitions
- */
- #define MIPS_CACHE_NOT_PRESENT 0x00000001
-+#define MIPS_CACHE_VTAG_CACHE 0x00000002 /* Virtually tagged cache. */
-
- #if defined(CONFIG_CPU_R3000) || defined(CONFIG_CPU_R6000) || defined(CONFIG_CPU_TX39XX)
- #define L1_CACHE_BYTES 16
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/cacheops.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/cacheops.h
---- linux-2.4.20/include/asm-mips64/cacheops.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/cacheops.h 2002-09-30 11:53:55.000000000 -0500
-@@ -5,10 +5,10 @@
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- *
-- * (C) Copyright 1996, 1997 by Ralf Baechle
-+ * (C) Copyright 1996, 1997, 2002 by Ralf Baechle
- */
--#ifndef __ASM_MIPS_CACHEOPS_H
--#define __ASM_MIPS_CACHEOPS_H
-+#ifndef __ASM_CACHEOPS_H
-+#define __ASM_CACHEOPS_H
-
- /*
- * Cache Operations
-@@ -35,6 +35,7 @@
- #define Hit_Writeback_Inv_D 0x15
- /* 0x16 is unused */
- #define Hit_Writeback_Inv_SD 0x17
-+#define R5K_Page_Invalidate_S 0x17
- #define Hit_Writeback_I 0x18
- #define Hit_Writeback_D 0x19
- /* 0x1a is unused */
-@@ -44,4 +45,4 @@
- #define Hit_Set_Virtual_SI 0x1e
- #define Hit_Set_Virtual_SD 0x1f
-
--#endif /* __ASM_MIPS_CACHEOPS_H */
-+#endif /* __ASM_CACHEOPS_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/checksum.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/checksum.h
---- linux-2.4.20/include/asm-mips64/checksum.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/checksum.h 2003-01-26 11:36:11.000000000 -0600
-@@ -205,7 +205,8 @@
- unsigned int sum)
- {
- __asm__(
-- ".set\tnoreorder\t\t\t# csum_ipv6_magic\n\t"
-+ ".set\tpush\t\t\t# csum_ipv6_magic\n\t"
-+ ".set\tnoreorder\n\t"
- ".set\tnoat\n\t"
- "addu\t%0, %5\t\t\t# proto (long in network byte order)\n\t"
- "sltu\t$1, %0, %5\n\t"
-@@ -254,8 +255,7 @@
- "sltu\t$1, %0, %1\n\t"
-
- "addu\t%0, $1\t\t\t# Add final carry\n\t"
-- ".set\tnoat\n\t"
-- ".set\tnoreorder"
-+ ".set\tpop"
- : "=&r" (sum), "=&r" (proto)
- : "r" (saddr), "r" (daddr),
- "0" (htonl(len)), "1" (htonl(proto)), "r" (sum));
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Entries
---- linux-2.4.20/include/asm-mips64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,137 @@
-+/.cvsignore/1.1/Tue May 23 18:00:50 2000//Tlinux_2_4_20
-+/a.out.h/1.3.2.2/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
-+/addrspace.h/1.10.2.4/Wed Oct 23 14:24:20 2002/-ko/Tlinux_2_4_20
-+/asm.h/1.8.2.9/Tue Jan 7 23:51:51 2003/-ko/Tlinux_2_4_20
-+/asmmacro.h/1.2.2.3/Mon Sep 2 18:04:06 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.7.2.3/Thu Nov 14 19:54:11 2002/-ko/Tlinux_2_4_20
-+/bcache.h/1.7.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.15.2.11/Fri Dec 20 13:01:02 2002/-ko/Tlinux_2_4_20
-+/bootinfo.h/1.10.2.20/Tue Feb 4 12:43:06 2003/-ko/Tlinux_2_4_20
-+/branch.h/1.3.2.3/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
-+/bugs.h/1.3/Sun Oct 28 05:04:32 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.2/Mon Jul 9 00:25:37 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.7.2.4/Wed Dec 11 14:23:13 2002/-ko/Tlinux_2_4_20
-+/cachectl.h/1.2/Tue Jul 24 12:07:31 2001/-ko/Tlinux_2_4_20
-+/cacheops.h/1.3.2.2/Mon Sep 30 16:53:55 2002/-ko/Tlinux_2_4_20
-+/checksum.h/1.12.2.3/Sun Jan 26 17:36:11 2003/-ko/Tlinux_2_4_20
-+/cpu.h/1.12.2.9/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/current.h/1.6.2.1/Thu Jun 27 14:21:23 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.8.2.3/Tue Jan 28 00:08:27 2003/-ko/Tlinux_2_4_20
-+/div64.h/1.2.2.2/Mon Jan 27 14:27:20 2003/-ko/Tlinux_2_4_20
-+/dma.h/1.7.4.3/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/ds1286.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.10.2.4/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
-+/errno.h/1.4.2.1/Wed Jun 26 22:36:37 2002/-ko/Tlinux_2_4_20
-+/exception.h/1.1.2.4/Mon Aug 12 22:54:12 2002/-ko/Tlinux_2_4_20
-+/fcntl.h/1.6.2.1/Tue Jul 23 12:08:50 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.6.2.1/Thu Jan 3 22:54:52 2002/-ko/Tlinux_2_4_20
-+/fpregdef.h/1.1/Sat Aug 21 22:19:17 1999/-ko/Tlinux_2_4_20
-+/fpu.h/1.1.2.2/Mon Dec 2 00:24:54 2002//Tlinux_2_4_20
-+/fpu_emulator.h/1.1.2.2/Wed May 1 17:09:55 2002/-ko/Tlinux_2_4_20
-+/gdb-stub.h/1.1.2.3/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/gfx.h/1.2.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/gt64120.h/1.1.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.12/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.2/Tue Feb 20 20:50:50 2001/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.2.2.3/Tue Dec 3 19:46:59 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.6.2.3/Thu Nov 28 23:04:11 2002/-ko/Tlinux_2_4_20
-+/init.h/1.3/Tue Jul 24 12:04:31 2001/-ko/Tlinux_2_4_20
-+/inst.h/1.2.2.1/Tue Feb 26 23:59:55 2002/-ko/Tlinux_2_4_20
-+/io.h/1.25.2.16/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
-+/ioctl.h/1.3/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.4.2.2/Tue Sep 3 00:42:54 2002/-ko/Tlinux_2_4_20
-+/ipc.h/1.1.4.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1.4.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.4.2.2/Sun Oct 6 12:28:03 2002/-ko/Tlinux_2_4_20
-+/irq_cpu.h/1.1.2.1/Wed May 29 14:38:20 2002//Tlinux_2_4_20
-+/keyboard.h/1.8.2.1/Thu Jan 3 22:54:52 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.3.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/m48t35.h/1.1.4.1/Tue Nov 26 11:03:17 2002/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.3.2.2/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
-+/mips64_cache.h/1.1.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/mipsregs.h/1.15.2.18/Tue Jan 28 14:31:33 2003/-ko/Tlinux_2_4_20
-+/mman.h/1.5/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.1.2.2/Fri Jan 17 04:23:41 2003/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.19.2.9/Fri Feb 14 11:04:04 2003/-ko/Tlinux_2_4_20
-+/mmzone.h/1.10/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/module.h/1.3.2.1/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1.4.2/Tue Aug 13 03:14:24 2002/-ko/Tlinux_2_4_20
-+/namei.h/1.3/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/ng1.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/paccess.h/1.4/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/page.h/1.10.2.16/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
-+/param.h/1.5.4.1/Mon Jan 20 20:21:43 2003/-ko/Tlinux_2_4_20
-+/parport.h/1.5/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.16.2.14/Tue Oct 1 11:14:37 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.15.2.1/Tue Jul 2 13:04:32 2002/-ko/Tlinux_2_4_20
-+/pgtable-bits.h/1.1.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.47.2.20/Tue Aug 13 03:29:54 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/posix_types.h/1.9.4.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/processor.h/1.32.2.12/Thu Feb 20 19:46:34 2003/-ko/Tlinux_2_4_20
-+/ptrace.h/1.6.4.4/Fri Dec 20 03:26:02 2002/-ko/Tlinux_2_4_20
-+/r10kcache.h/1.4.2.1/Mon Dec 2 00:24:54 2002/-ko/Tlinux_2_4_20
-+/r10kcacheops.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/r4kcache.h/1.4.2.5/Fri Oct 4 02:39:52 2002/-ko/Tlinux_2_4_20
-+/reboot.h/1.3.2.1/Thu Jan 24 23:14:28 2002/-ko/Tlinux_2_4_20
-+/reg.h/1.1.4.1/Wed Sep 18 02:48:05 2002/-ko/Tlinux_2_4_20
-+/regdef.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.8/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/riscos-syscall.h/1.1.4.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/rrm.h/1.1.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.4.2.5/Sat Sep 28 18:51:41 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.1/Sat Dec 4 03:59:12 1999/-ko/Tlinux_2_4_20
-+/semaphore-helper.h/1.5.2.5/Fri Nov 15 04:20:34 2002/-ko/Tlinux_2_4_20
-+/semaphore.h/1.11.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1.4.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.7.2.7/Thu Nov 7 01:47:46 2002/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.1/Tue May 23 01:38:56 2000/-ko/Tlinux_2_4_20
-+/sgialib.h/1.7.2.3/Wed Aug 7 00:26:49 2002/-ko/Tlinux_2_4_20
-+/sgiarcs.h/1.7.2.2/Wed Aug 7 00:14:21 2002/-ko/Tlinux_2_4_20
-+/sgidefs.h/1.3/Mon Jul 2 23:11:36 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1.4.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/shmiq.h/1.3.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/shmparam.h/1.3/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.3.2.2/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/siginfo.h/1.6.2.3/Fri Aug 23 13:54:50 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.4.2.4/Mon Jan 27 19:19:13 2003/-ko/Tlinux_2_4_20
-+/smp.h/1.10.2.4/Fri Nov 29 00:11:36 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.2/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
-+/socket.h/1.7.2.1/Tue Aug 13 04:19:38 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/softirq.h/1.9.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/spinlock.h/1.10.2.4/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/stackframe.h/1.7.2.4/Tue Jan 28 14:31:33 2003/-ko/Tlinux_2_4_20
-+/stat.h/1.7.4.1/Thu Nov 21 12:38:57 2002/-ko/Tlinux_2_4_20
-+/statfs.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/string.h/1.5/Wed Aug 9 20:55:43 2000/-ko/Tlinux_2_4_20
-+/sysmips.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/system.h/1.18.2.13/Mon Nov 4 19:39:56 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.3/Sat Aug 11 00:37:03 2001/-ko/Tlinux_2_4_20
-+/termios.h/1.5.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/time.h/1.1.2.3/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.3.2.3/Mon Dec 2 00:24:54 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:00 2001/-ko/Tlinux_2_4_20
-+/tlbdebug.h/1.1.2.1/Sun Sep 15 23:32:24 2002/-ko/Tlinux_2_4_20
-+/traps.h/1.1.2.1/Wed Jun 26 12:22:42 2002//Tlinux_2_4_20
-+/types.h/1.4.2.3/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.13.2.2/Mon Dec 9 21:24:13 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.7.2.2/Wed Oct 2 13:23:43 2002/-ko/Tlinux_2_4_20
-+/unistd.h/1.19.2.7/Wed Nov 6 21:00:09 2002/-ko/Tlinux_2_4_20
-+/user.h/1.2.2.1/Fri Jan 17 13:56:24 2003/-ko/Tlinux_2_4_20
-+/usioctl.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/war.h/1.1.2.5/Wed Jan 29 16:39:00 2003/-ko/Tlinux_2_4_20
-+/watch.h/1.2/Mon Jan 8 03:11:57 2001/-ko/Tlinux_2_4_20
-+/wbflush.h/1.1.2.1/Mon Jul 22 20:25:37 2002//Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D/arc////
-+D/dec////
-+D/gcc////
-+D/ip32////
-+D/mips-boards////
-+D/pci////
-+D/sgi////
-+D/sibyte////
-+D/sn////
-+D/xtalk////
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Repository
---- linux-2.4.20/include/asm-mips64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Repository 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Root
---- linux-2.4.20/include/asm-mips64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Root 2005-01-06 23:06:51.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Tag
---- linux-2.4.20/include/asm-mips64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/CVS/Tag 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/.cvsignore linux-2.4.20-mipscvs-20050106/include/asm-mips64/.cvsignore
---- linux-2.4.20/include/asm-mips64/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/.cvsignore 2000-05-23 13:00:50.000000000 -0500
-@@ -0,0 +1 @@
-+offset.h
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Entries
---- linux-2.4.20/include/asm-mips64/dec/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Entries 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1,20 @@
-+/interrupts.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/io.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/ioasic.h/1.1.2.2/Thu Jan 30 14:25:16 2003//Tlinux_2_4_20
-+/ioasic_addrs.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/ioasic_ints.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/kn01.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/kn02.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/kn02ba.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/kn02ca.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/kn02xa.h/1.1.2.2/Mon Feb 3 13:11:23 2003//Tlinux_2_4_20
-+/kn03.h/1.1.2.2/Mon Feb 3 13:11:23 2003//Tlinux_2_4_20
-+/kn05.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/kn230.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/machtype.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/prom.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/rtc-dec.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/tc.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/tcinfo.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+/tcmodule.h/1.1.2.1/Mon Jan 20 20:21:43 2003//Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Repository
---- linux-2.4.20/include/asm-mips64/dec/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Repository 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/dec
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Root
---- linux-2.4.20/include/asm-mips64/dec/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Root 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Tag
---- linux-2.4.20/include/asm-mips64/dec/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/CVS/Tag 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/interrupts.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/interrupts.h
---- linux-2.4.20/include/asm-mips64/dec/interrupts.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/interrupts.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,125 @@
-+/*
-+ * Miscellaneous definitions used to initialise the interrupt vector table
-+ * with the machine-specific interrupt routines.
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1997 by Paul M. Antoine.
-+ * reworked 1998 by Harald Koerfgen.
-+ * Copyright (C) 2001, 2002 Maciej W. Rozycki
-+ */
-+
-+#ifndef __ASM_DEC_INTERRUPTS_H
-+#define __ASM_DEC_INTERRUPTS_H
-+
-+#include <asm/mipsregs.h>
-+
-+
-+/*
-+ * The list of possible system devices which provide an
-+ * interrupt. Not all devices exist on a given system.
-+ */
-+#define DEC_IRQ_CASCADE 0 /* cascade from CSR or I/O ASIC */
-+
-+/* Ordinary interrupts */
-+#define DEC_IRQ_AB_RECV 1 /* ACCESS.bus receive */
-+#define DEC_IRQ_AB_XMIT 2 /* ACCESS.bus transmit */
-+#define DEC_IRQ_DZ11 3 /* DZ11 (DC7085) serial */
-+#define DEC_IRQ_ASC 4 /* ASC (NCR53C94) SCSI */
-+#define DEC_IRQ_FLOPPY 5 /* 82077 FDC */
-+#define DEC_IRQ_FPU 6 /* R3k FPU */
-+#define DEC_IRQ_HALT 7 /* HALT button or from ACCESS.Bus */
-+#define DEC_IRQ_ISDN 8 /* Am79C30A ISDN */
-+#define DEC_IRQ_LANCE 9 /* LANCE (Am7990) Ethernet */
-+#define DEC_IRQ_MEMORY 10 /* memory, I/O bus write errors */
-+#define DEC_IRQ_PSU 11 /* power supply unit warning */
-+#define DEC_IRQ_RTC 12 /* DS1287 RTC */
-+#define DEC_IRQ_SCC0 13 /* SCC (Z85C30) serial #0 */
-+#define DEC_IRQ_SCC1 14 /* SCC (Z85C30) serial #1 */
-+#define DEC_IRQ_SII 15 /* SII (DC7061) SCSI */
-+#define DEC_IRQ_TC0 16 /* TURBOchannel slot #0 */
-+#define DEC_IRQ_TC1 17 /* TURBOchannel slot #1 */
-+#define DEC_IRQ_TC2 18 /* TURBOchannel slot #2 */
-+#define DEC_IRQ_TIMER 19 /* ARC periodic timer */
-+#define DEC_IRQ_VIDEO 20 /* framebuffer */
-+
-+/* I/O ASIC DMA interrupts */
-+#define DEC_IRQ_ASC_MERR 21 /* ASC memory read error */
-+#define DEC_IRQ_ASC_ERR 22 /* ASC page overrun */
-+#define DEC_IRQ_ASC_DMA 23 /* ASC buffer pointer loaded */
-+#define DEC_IRQ_FLOPPY_ERR 24 /* FDC error */
-+#define DEC_IRQ_ISDN_ERR 25 /* ISDN memory read/overrun error */
-+#define DEC_IRQ_ISDN_RXDMA 26 /* ISDN recv buffer pointer loaded */
-+#define DEC_IRQ_ISDN_TXDMA 27 /* ISDN xmit buffer pointer loaded */
-+#define DEC_IRQ_LANCE_MERR 28 /* LANCE memory read error */
-+#define DEC_IRQ_SCC0A_RXERR 29 /* SCC0A (printer) receive overrun */
-+#define DEC_IRQ_SCC0A_RXDMA 30 /* SCC0A receive half page */
-+#define DEC_IRQ_SCC0A_TXERR 31 /* SCC0A xmit memory read/overrun */
-+#define DEC_IRQ_SCC0A_TXDMA 32 /* SCC0A transmit page end */
-+#define DEC_IRQ_AB_RXERR 33 /* ACCESS.bus receive overrun */
-+#define DEC_IRQ_AB_RXDMA 34 /* ACCESS.bus receive half page */
-+#define DEC_IRQ_AB_TXERR 35 /* ACCESS.bus xmit memory read/ovrn */
-+#define DEC_IRQ_AB_TXDMA 36 /* ACCESS.bus transmit page end */
-+#define DEC_IRQ_SCC1A_RXERR 37 /* SCC1A (modem) receive overrun */
-+#define DEC_IRQ_SCC1A_RXDMA 38 /* SCC1A receive half page */
-+#define DEC_IRQ_SCC1A_TXERR 39 /* SCC1A xmit memory read/overrun */
-+#define DEC_IRQ_SCC1A_TXDMA 40 /* SCC1A transmit page end */
-+
-+/* TC5 & TC6 are virtual slots for KN02's onboard devices */
-+#define DEC_IRQ_TC5 DEC_IRQ_ASC /* virtual PMAZ-AA */
-+#define DEC_IRQ_TC6 DEC_IRQ_LANCE /* virtual PMAD-AA */
-+
-+#define DEC_NR_INTS 41
-+
-+
-+/* Largest of cpu mask_nr tables. */
-+#define DEC_MAX_CPU_INTS 6
-+/* Largest of asic mask_nr tables. */
-+#define DEC_MAX_ASIC_INTS 9
-+
-+
-+/*
-+ * CPU interrupt bits common to all systems.
-+ */
-+#define DEC_CPU_INR_FPU 7 /* R3k FPU */
-+#define DEC_CPU_INR_SW1 1 /* software #1 */
-+#define DEC_CPU_INR_SW0 0 /* software #0 */
-+
-+#define DEC_CPU_IRQ_BASE 0 /* first IRQ assigned to CPU */
-+
-+#define DEC_CPU_IRQ_NR(n) ((n) + DEC_CPU_IRQ_BASE)
-+#define DEC_CPU_IRQ_MASK(n) (1 << ((n) + CAUSEB_IP))
-+#define DEC_CPU_IRQ_ALL (0xff << CAUSEB_IP)
-+
-+
-+#ifndef __ASSEMBLY__
-+
-+/*
-+ * Interrupt table structures to hide differences between systems.
-+ */
-+typedef union { int i; void *p; } int_ptr;
-+extern int dec_interrupt[DEC_NR_INTS];
-+extern int_ptr cpu_mask_nr_tbl[DEC_MAX_CPU_INTS][2];
-+extern int_ptr asic_mask_nr_tbl[DEC_MAX_ASIC_INTS][2];
-+extern int cpu_fpu_mask;
-+
-+
-+/*
-+ * Common interrupt routine prototypes for all DECStations
-+ */
-+extern void kn02_io_int(void);
-+extern void kn02xa_io_int(void);
-+extern void kn03_io_int(void);
-+extern void asic_dma_int(void);
-+extern void asic_all_int(void);
-+extern void kn02_all_int(void);
-+extern void cpu_all_int(void);
-+
-+extern void dec_intr_unimplemented(void);
-+extern void asic_intr_unimplemented(void);
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/ioasic_addrs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_addrs.h
---- linux-2.4.20/include/asm-mips64/dec/ioasic_addrs.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_addrs.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,83 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Definitions for the address map in the JUNKIO Asic
-+ *
-+ * Created with Information from:
-+ *
-+ * "DEC 3000 300/400/500/600/700/800/900 AXP Models System Programmer's Manual"
-+ *
-+ * and the Mach Sources
-+ */
-+
-+#ifndef IOASIC_ADDRS_H
-+#define IOASIC_ADDRS_H
-+
-+#define IOASIC_SLOT_SIZE 0x00040000
-+
-+#define SYSTEM_ROM (0*IOASIC_SLOT_SIZE) /* board ROM */
-+#define IOCTL (1*IOASIC_SLOT_SIZE) /* I/O ASIC */
-+#define ESAR (2*IOASIC_SLOT_SIZE) /* LANCE MAC address chip */
-+#define LANCE (3*IOASIC_SLOT_SIZE) /* LANCE Ethernet */
-+#define SCC0 (4*IOASIC_SLOT_SIZE) /* SCC #0 */
-+#define VDAC_HI (5*IOASIC_SLOT_SIZE) /* VDAC (maxine) */
-+#define SCC1 (6*IOASIC_SLOT_SIZE) /* SCC #1 (3min, 3max+) */
-+#define VDAC_LO (7*IOASIC_SLOT_SIZE) /* VDAC (maxine) */
-+#define TOY (8*IOASIC_SLOT_SIZE) /* RTC */
-+#define ISDN (9*IOASIC_SLOT_SIZE) /* ISDN (maxine) */
-+#define ERRADDR (9*IOASIC_SLOT_SIZE) /* bus error address (3max+) */
-+#define CHKSYN (10*IOASIC_SLOT_SIZE) /* ECC syndrome (3max+) */
-+#define ACCESS_BUS (10*IOASIC_SLOT_SIZE) /* Access.Bus (maxine) */
-+#define MCR (11*IOASIC_SLOT_SIZE) /* memory control (3max+) */
-+#define FLOPPY (11*IOASIC_SLOT_SIZE) /* FDC (maxine) */
-+#define SCSI (12*IOASIC_SLOT_SIZE) /* ASC SCSI */
-+#define FLOPPY_DMA (13*IOASIC_SLOT_SIZE) /* FDC DMA (maxine) */
-+#define SCSI_DMA (14*IOASIC_SLOT_SIZE) /* ??? */
-+#define RESERVED_4 (15*IOASIC_SLOT_SIZE) /* unused? */
-+
-+/*
-+ * Offsets for IOCTL registers (relative to (system_base + IOCTL))
-+ */
-+#define SCSI_DMA_P 0x00 /* SCSI DMA Pointer */
-+#define SCSI_DMA_BP 0x10 /* SCSI DMA Buffer Pointer */
-+#define LANCE_DMA_P 0x20 /* LANCE DMA Pointer */
-+#define SCC0_T_DMA_P 0x30 /* Communication Port 1 Transmit DMA Pointer */
-+#define SCC0_R_DMA_P 0x40 /* Communication Port 1 Receive DMA Pointer */
-+#define SCC1_T_DMA_P 0x50 /* Communication Port 2 Transmit DMA Pointer */
-+#define SCC1_R_DMA_P 0x60 /* Communication Port 2 Receive DMA Pointer */
-+#define FLOPPY_DMA_P 0x70 /* Floppy DMA Pointer */
-+#define ISDN_T_DMA_P 0x80 /* ISDN Transmit DMA Pointer */
-+#define ISDN_T_DMA_BP 0x90 /* ISDN Transmit DMA Buffer Pointer */
-+#define ISDN_R_DMA_P 0xa0 /* ISDN Receive DMA Pointer */
-+#define ISDN_R_DMA_BP 0xb0 /* ISDN Receive DMA Buffer Pointer */
-+
-+#define SSR 0x100 /* System Support Register */
-+#define SIR 0x110 /* System Interrupt Register */
-+#define SIMR 0x120 /* System Interrupt Mask Register */
-+#define FCTR 0x1e0 /* Free-Running Counter */
-+
-+/*
-+ * Handle partial word SCSI DMA transfers
-+ */
-+#define SCSI_SCR 0x1b0
-+#define SCSI_SDR0 0x1c0
-+#define SCSI_SDR1 0x1d0
-+
-+/*
-+ * DMA defines for the System Support Register
-+ */
-+#define LANCE_DMA_EN (1UL<<16) /* LANCE DMA enable */
-+#define SCSI_DMA_EN (1UL<<17) /* SCSI DMA enable */
-+#define SCSI_DMA_DIR (1UL<<18) /* SCSI DMA direction */
-+#define ISDN_REC_DMA_EN (1UL<<19) /* ISDN receive DMA enable */
-+#define ISDN_TRN_DMA_EN (1UL<<20) /* ISDN transmit DMA enable */
-+#define FLOPPY_DMA_EN (1UL<<21) /* Floppy DMA enable */
-+#define FLOPPY_DMA_DIR (1UL<<22) /* Floppy DMA direction */
-+#define SCC1A_DMA_EN (1UL<<28) /* SCC1 Channel A DMA enable */
-+#define SCC1B_DMA_EN (1UL<<29) /* SCC1 Channel B DMA enable */
-+#define SCC0A_DMA_EN (1UL<<30) /* SCC0 Channel A DMA enable */
-+#define SCC0B_DMA_EN (1UL<<31) /* Scc0 Channel B DMA enable */
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/ioasic.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic.h
---- linux-2.4.20/include/asm-mips64/dec/ioasic.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic.h 2003-01-30 08:25:16.000000000 -0600
-@@ -0,0 +1,36 @@
-+/*
-+ * include/asm-mips/dec/ioasic.h
-+ *
-+ * DEC I/O ASIC access operations.
-+ *
-+ * Copyright (C) 2000, 2002, 2003 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+
-+#ifndef __ASM_DEC_IOASIC_H
-+#define __ASM_DEC_IOASIC_H
-+
-+#include <linux/spinlock.h>
-+#include <linux/types.h>
-+
-+extern spinlock_t ioasic_ssr_lock;
-+
-+extern volatile u32 *ioasic_base;
-+
-+static inline void ioasic_write(unsigned int reg, u32 v)
-+{
-+ ioasic_base[reg / 4] = v;
-+}
-+
-+static inline u32 ioasic_read(unsigned int reg)
-+{
-+ return ioasic_base[reg / 4];
-+}
-+
-+extern void init_ioasic_irqs(int base);
-+
-+#endif /* __ASM_DEC_IOASIC_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/ioasic_ints.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_ints.h
---- linux-2.4.20/include/asm-mips64/dec/ioasic_ints.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/ioasic_ints.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,74 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Definitions for the interrupt related bits in the I/O ASIC
-+ * interrupt status register (and the interrupt mask register, of course)
-+ *
-+ * Created with Information from:
-+ *
-+ * "DEC 3000 300/400/500/600/700/800/900 AXP Models System Programmer's Manual"
-+ *
-+ * and the Mach Sources
-+ *
-+ * Copyright (C) 199x the Anonymous
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ */
-+
-+#ifndef __ASM_DEC_IOASIC_INTS_H
-+#define __ASM_DEC_IOASIC_INTS_H
-+
-+/*
-+ * The upper 16 bits are a part of the I/O ASIC's internal DMA engine
-+ * and thus are common to all I/O ASIC machines. The exception is
-+ * the Maxine, which makes use of the FLOPPY and ISDN bits (otherwise
-+ * unused) and has a different SCC wiring.
-+ */
-+ /* all systems */
-+#define IO_INR_SCC0A_TXDMA 31 /* SCC0A transmit page end */
-+#define IO_INR_SCC0A_TXERR 30 /* SCC0A transmit memory read error */
-+#define IO_INR_SCC0A_RXDMA 29 /* SCC0A receive half page */
-+#define IO_INR_SCC0A_RXERR 28 /* SCC0A receive overrun */
-+#define IO_INR_ASC_DMA 19 /* ASC buffer pointer loaded */
-+#define IO_INR_ASC_ERR 18 /* ASC page overrun */
-+#define IO_INR_ASC_MERR 17 /* ASC memory read error */
-+#define IO_INR_LANCE_MERR 16 /* LANCE memory read error */
-+
-+ /* except Maxine */
-+#define IO_INR_SCC1A_TXDMA 27 /* SCC1A transmit page end */
-+#define IO_INR_SCC1A_TXERR 26 /* SCC1A transmit memory read error */
-+#define IO_INR_SCC1A_RXDMA 25 /* SCC1A receive half page */
-+#define IO_INR_SCC1A_RXERR 24 /* SCC1A receive overrun */
-+#define IO_INR_RES_23 23 /* unused */
-+#define IO_INR_RES_22 22 /* unused */
-+#define IO_INR_RES_21 21 /* unused */
-+#define IO_INR_RES_20 20 /* unused */
-+
-+ /* Maxine */
-+#define IO_INR_AB_TXDMA 27 /* ACCESS.bus transmit page end */
-+#define IO_INR_AB_TXERR 26 /* ACCESS.bus xmit memory read error */
-+#define IO_INR_AB_RXDMA 25 /* ACCESS.bus receive half page */
-+#define IO_INR_AB_RXERR 24 /* ACCESS.bus receive overrun */
-+#define IO_INR_FLOPPY_ERR 23 /* FDC error */
-+#define IO_INR_ISDN_TXDMA 22 /* ISDN xmit buffer pointer loaded */
-+#define IO_INR_ISDN_RXDMA 21 /* ISDN recv buffer pointer loaded */
-+#define IO_INR_ISDN_ERR 20 /* ISDN memory read/overrun error */
-+
-+#define IO_INR_DMA 16 /* first DMA IRQ */
-+
-+/*
-+ * The lower 16 bits are system-specific and thus defined in
-+ * system-specific headers.
-+ */
-+
-+
-+#define IO_IRQ_BASE 8 /* first IRQ assigned to I/O ASIC */
-+#define IO_IRQ_LINES 32 /* number of I/O ASIC interrupts */
-+
-+#define IO_IRQ_NR(n) ((n) + IO_IRQ_BASE)
-+#define IO_IRQ_MASK(n) (1 << (n))
-+#define IO_IRQ_ALL 0x0000ffff
-+#define IO_IRQ_DMA 0xffff0000
-+
-+#endif /* __ASM_DEC_IOASIC_INTS_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/io.h
---- linux-2.4.20/include/asm-mips64/dec/io.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/io.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,20 @@
-+/*
-+ * include/asm-mips64/dec/io.h
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef __ASM_MIPS64_DEC_IO_H
-+#define __ASM_MIPS64_DEC_IO_H
-+
-+#include <asm/addrspace.h>
-+
-+#define IO_SPACE_BASE K1BASE
-+
-+#define IO_SPACE_LIMIT 0xffffffff
-+
-+#endif /* __ASM_MIPS64_DEC_IO_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn01.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn01.h
---- linux-2.4.20/include/asm-mips64/dec/kn01.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn01.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,38 @@
-+/*
-+ * Hardware info about DECstation DS2100/3100 systems (otherwise known as
-+ * pmin/pmax or KN01).
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
-+ * are by courtesy of Chris Fraser.
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ */
-+#ifndef __ASM_MIPS_DEC_KN01_H
-+#define __ASM_MIPS_DEC_KN01_H
-+
-+#include <asm/addrspace.h>
-+
-+/*
-+ * Some port addresses...
-+ */
-+#define KN01_SLOT_SIZE 0x01000000
-+
-+#define KN01_LANCE_BASE (KSEG1ADDR(0x18000000)) /* 0xB8000000 */
-+#define KN01_DZ11_BASE (KSEG1ADDR(0x1c000000)) /* 0xBC000000 */
-+#define KN01_RTC_BASE (KSEG1ADDR(0x1d000000)) /* 0xBD000000 */
-+
-+
-+/*
-+ * CPU interrupt bits.
-+ */
-+#define KN01_CPU_INR_MEMORY 6 /* memory, I/O bus write errors */
-+#define KN01_CPU_INR_VIDEO 6 /* framebuffer */
-+#define KN01_CPU_INR_RTC 5 /* DS1287 RTC */
-+#define KN01_CPU_INR_DZ11 4 /* DZ11 (DC7085) serial */
-+#define KN01_CPU_INR_LANCE 3 /* LANCE (Am7990) Ethernet */
-+#define KN01_CPU_INR_SII 2 /* SII (DC7061) SCSI */
-+
-+#endif /* __ASM_MIPS_DEC_KN01_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02ba.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ba.h
---- linux-2.4.20/include/asm-mips64/dec/kn02ba.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ba.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,53 @@
-+/*
-+ * include/asm-mips/dec/kn02ba.h
-+ *
-+ * DECstation 5000/1xx (3min or KN02-BA) definitions.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef __ASM_MIPS_DEC_KN02BA_H
-+#define __ASM_MIPS_DEC_KN02BA_H
-+
-+#include <asm/dec/kn02xa.h> /* For common definitions. */
-+
-+/*
-+ * Some port addresses...
-+ */
-+#define KN02BA_IOASIC_BASE KN02XA_IOASIC_BASE /* I/O ASIC */
-+#define KN02BA_RTC_BASE KN02XA_RTC_BASE /* RTC */
-+
-+/*
-+ * CPU interrupt bits.
-+ */
-+#define KN02BA_CPU_INR_HALT 6 /* HALT button */
-+#define KN02BA_CPU_INR_CASCADE 5 /* I/O ASIC cascade */
-+#define KN02BA_CPU_INR_TC2 4 /* TURBOchannel slot #2 */
-+#define KN02BA_CPU_INR_TC1 3 /* TURBOchannel slot #1 */
-+#define KN02BA_CPU_INR_TC0 2 /* TURBOchannel slot #0 */
-+
-+/*
-+ * I/O ASIC interrupt bits. Star marks denote non-IRQ status bits.
-+ */
-+#define KN02BA_IO_INR_RES_15 15 /* unused */
-+#define KN02BA_IO_INR_NVRAM 14 /* (*) NVRAM clear jumper */
-+#define KN02BA_IO_INR_RES_13 13 /* unused */
-+#define KN02BA_IO_INR_MEMORY 12 /* memory, I/O bus write errors */
-+#define KN02BA_IO_INR_RES_11 11 /* unused */
-+#define KN02BA_IO_INR_NRMOD 10 /* (*) NRMOD manufacturing jumper */
-+#define KN02BA_IO_INR_ASC 9 /* ASC (NCR53C94) SCSI */
-+#define KN02BA_IO_INR_LANCE 8 /* LANCE (Am7990) Ethernet */
-+#define KN02BA_IO_INR_SCC1 7 /* SCC (Z85C30) serial #1 */
-+#define KN02BA_IO_INR_SCC0 6 /* SCC (Z85C30) serial #0 */
-+#define KN02BA_IO_INR_RTC 5 /* DS1287 RTC */
-+#define KN02BA_IO_INR_PSU 4 /* power supply unit warning */
-+#define KN02BA_IO_INR_RES_3 3 /* unused */
-+#define KN02BA_IO_INR_ASC_DATA 2 /* SCSI data ready (discouraged?) */
-+#define KN02BA_IO_INR_PBNC 1 /* HALT button debouncer */
-+#define KN02BA_IO_INR_PBNO 0 /* ~HALT button debouncer */
-+
-+#endif /* __ASM_MIPS_DEC_KN02BA_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02ca.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ca.h
---- linux-2.4.20/include/asm-mips64/dec/kn02ca.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02ca.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,53 @@
-+/*
-+ * include/asm-mips/dec/kn02ca.h
-+ *
-+ * Personal DECstation 5000/xx (Maxine or KN02-CA) definitions.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef __ASM_MIPS_DEC_KN02CA_H
-+#define __ASM_MIPS_DEC_KN02CA_H
-+
-+#include <asm/dec/kn02xa.h> /* For common definitions. */
-+
-+/*
-+ * Some port addresses...
-+ */
-+#define KN02CA_IOASIC_BASE KN02XA_IOASIC_BASE /* I/O ASIC */
-+#define KN02CA_RTC_BASE KN02XA_RTC_BASE /* RTC */
-+
-+/*
-+ * CPU interrupt bits.
-+ */
-+#define KN02CA_CPU_INR_HALT 6 /* HALT from ACCESS.Bus */
-+#define KN02CA_CPU_INR_CASCADE 5 /* I/O ASIC cascade */
-+#define KN02CA_CPU_INR_MEMORY 4 /* memory, I/O bus write errors */
-+#define KN02CA_CPU_INR_RTC 3 /* DS1287 RTC */
-+#define KN02CA_CPU_INR_TIMER 2 /* ARC periodic timer */
-+
-+/*
-+ * I/O ASIC interrupt bits. Star marks denote non-IRQ status bits.
-+ */
-+#define KN02CA_IO_INR_FLOPPY 15 /* 82077 FDC */
-+#define KN02CA_IO_INR_NVRAM 14 /* (*) NVRAM clear jumper */
-+#define KN02CA_IO_INR_POWERON 13 /* (*) power-on reset */
-+#define KN02CA_IO_INR_TC0 12 /* TURBOchannel slot #0 */
-+#define KN02CA_IO_INR_ISDN 11 /* Am79C30A ISDN */
-+#define KN02CA_IO_INR_NRMOD 10 /* (*) NRMOD manufacturing jumper */
-+#define KN02CA_IO_INR_ASC 9 /* ASC (NCR53C94) SCSI */
-+#define KN02CA_IO_INR_LANCE 8 /* LANCE (Am7990) Ethernet */
-+#define KN02CA_IO_INR_HDFLOPPY 7 /* (*) HD (1.44MB) floppy status */
-+#define KN02CA_IO_INR_SCC0 6 /* SCC (Z85C30) serial #0 */
-+#define KN02CA_IO_INR_TC1 5 /* TURBOchannel slot #1 */
-+#define KN02CA_IO_INR_XDFLOPPY 4 /* (*) XD (2.88MB) floppy status */
-+#define KN02CA_IO_INR_VIDEO 3 /* framebuffer */
-+#define KN02CA_IO_INR_XVIDEO 2 /* ~framebuffer */
-+#define KN02CA_IO_INR_AB_XMIT 1 /* ACCESS.bus transmit */
-+#define KN02CA_IO_INR_AB_RECV 0 /* ACCESS.bus receive */
-+
-+#endif /* __ASM_MIPS_DEC_KN02CA_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02.h
---- linux-2.4.20/include/asm-mips64/dec/kn02.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,76 @@
-+/*
-+ * Hardware info about DECstation 5000/200 systems (otherwise known as
-+ * 3max or KN02).
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
-+ * are by courtesy of Chris Fraser.
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ */
-+#ifndef __ASM_MIPS_DEC_KN02_H
-+#define __ASM_MIPS_DEC_KN02_H
-+
-+#ifndef __ASSEMBLY__
-+#include <linux/spinlock.h>
-+#include <linux/types.h>
-+#endif
-+
-+#include <asm/addrspace.h>
-+
-+
-+/*
-+ * Motherboard regs (kseg1 addresses)
-+ */
-+#define KN02_CSR_ADDR KSEG1ADDR(0x1ff00000) /* system control & status reg */
-+
-+/*
-+ * Some port addresses...
-+ */
-+#define KN02_SLOT_SIZE 0x00080000
-+
-+#define KN02_RTC_BASE KSEG1ADDR(0x1fe80000)
-+#define KN02_DZ11_BASE KSEG1ADDR(0x1fe00000)
-+
-+#define KN02_CSR_BNK32M (1<<10) /* 32M stride */
-+
-+
-+/*
-+ * CPU interrupt bits.
-+ */
-+#define KN02_CPU_INR_RES_6 6 /* unused */
-+#define KN02_CPU_INR_MEMORY 5 /* memory, I/O bus write errors */
-+#define KN02_CPU_INR_RES_4 4 /* unused */
-+#define KN02_CPU_INR_RTC 3 /* DS1287 RTC */
-+#define KN02_CPU_INR_CASCADE 2 /* CSR cascade */
-+
-+/*
-+ * CSR interrupt bits.
-+ */
-+#define KN02_CSR_INR_DZ11 7 /* DZ11 (DC7085) serial */
-+#define KN02_CSR_INR_LANCE 6 /* LANCE (Am7990) Ethernet */
-+#define KN02_CSR_INR_ASC 5 /* ASC (NCR53C94) SCSI */
-+#define KN02_CSR_INR_RES_4 4 /* unused */
-+#define KN02_CSR_INR_RES_3 3 /* unused */
-+#define KN02_CSR_INR_TC2 2 /* TURBOchannel slot #2 */
-+#define KN02_CSR_INR_TC1 1 /* TURBOchannel slot #1 */
-+#define KN02_CSR_INR_TC0 0 /* TURBOchannel slot #0 */
-+
-+
-+#define KN02_IRQ_BASE 8 /* first IRQ assigned to CSR */
-+#define KN02_IRQ_LINES 8 /* number of CSR interrupts */
-+
-+#define KN02_IRQ_NR(n) ((n) + KN02_IRQ_BASE)
-+#define KN02_IRQ_MASK(n) (1 << (n))
-+#define KN02_IRQ_ALL 0xff
-+
-+
-+#ifndef __ASSEMBLY__
-+extern u32 cached_kn02_csr;
-+extern spinlock_t kn02_lock;
-+extern void init_kn02_irqs(int base);
-+#endif
-+
-+#endif /* __ASM_MIPS_DEC_KN02_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn02xa.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02xa.h
---- linux-2.4.20/include/asm-mips64/dec/kn02xa.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn02xa.h 2003-02-03 07:11:23.000000000 -0600
-@@ -0,0 +1,28 @@
-+/*
-+ * Hardware info common to DECstation 5000/1xx systems (otherwise
-+ * known as 3min or kn02ba) and Personal DECstations 5000/xx ones
-+ * (otherwise known as maxine or kn02ca).
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
-+ * are by courtesy of Chris Fraser.
-+ * Copyright (C) 2000, 2002 Maciej W. Rozycki
-+ *
-+ * These are addresses which have to be known early in the boot process.
-+ * For other addresses refer to tc.h, ioasic_addrs.h and friends.
-+ */
-+#ifndef __ASM_MIPS_DEC_KN02XA_H
-+#define __ASM_MIPS_DEC_KN02XA_H
-+
-+#include <asm/addrspace.h>
-+
-+/*
-+ * Some port addresses...
-+ */
-+#define KN02XA_IOASIC_BASE KSEG1ADDR(0x1c040000) /* I/O ASIC */
-+#define KN02XA_RTC_BASE KSEG1ADDR(0x1c200000) /* RTC */
-+
-+#endif /* __ASM_MIPS_DEC_KN02XA_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn03.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn03.h
---- linux-2.4.20/include/asm-mips64/dec/kn03.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn03.h 2003-02-03 07:11:23.000000000 -0600
-@@ -0,0 +1,62 @@
-+/*
-+ * Hardware info about DECstation 5000/2x0 systems (otherwise known as
-+ * 3max+) and DECsystem 5900 systems (otherwise known as bigmax) which
-+ * differ mechanically but are otherwise identical (both are known as
-+ * KN03).
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 1995,1996 by Paul M. Antoine, some code and definitions
-+ * are by courtesy of Chris Fraser.
-+ * Copyright (C) 2000, 2002 Maciej W. Rozycki
-+ *
-+ * These are addresses which have to be known early in the boot process.
-+ * For other addresses refer to tc.h ioasic_addrs.h and friends.
-+ */
-+#ifndef __ASM_MIPS_DEC_KN03_H
-+#define __ASM_MIPS_DEC_KN03_H
-+
-+#include <asm/addrspace.h>
-+
-+/*
-+ * Some port addresses...
-+ */
-+#define KN03_IOASIC_BASE KSEG1ADDR(0x1f840000) /* I/O ASIC */
-+#define KN03_RTC_BASE KSEG1ADDR(0x1fa00000) /* RTC */
-+#define KN03_MCR_BASE KSEG1ADDR(0x1fac0000) /* MCR */
-+
-+#define KN03_MCR_BNK32M (1<<10) /* 32M stride */
-+#define KN03_MCR_ECCEN (1<<13) /* ECC enabled */
-+
-+/*
-+ * CPU interrupt bits.
-+ */
-+#define KN03_CPU_INR_HALT 6 /* HALT button */
-+#define KN03_CPU_INR_MEMORY 5 /* memory, I/O bus write errors */
-+#define KN03_CPU_INR_RES_4 4 /* unused */
-+#define KN03_CPU_INR_RTC 3 /* DS1287 RTC */
-+#define KN03_CPU_INR_CASCADE 2 /* I/O ASIC cascade */
-+
-+/*
-+ * I/O ASIC interrupt bits. Star marks denote non-IRQ status bits.
-+ */
-+#define KN03_IO_INR_3MAXP 15 /* (*) 3max+/bigmax ID */
-+#define KN03_IO_INR_NVRAM 14 /* (*) NVRAM clear jumper */
-+#define KN03_IO_INR_TC2 13 /* TURBOchannel slot #2 */
-+#define KN03_IO_INR_TC1 12 /* TURBOchannel slot #1 */
-+#define KN03_IO_INR_TC0 11 /* TURBOchannel slot #0 */
-+#define KN03_IO_INR_NRMOD 10 /* (*) NRMOD manufacturing jumper */
-+#define KN03_IO_INR_ASC 9 /* ASC (NCR53C94) SCSI */
-+#define KN03_IO_INR_LANCE 8 /* LANCE (Am7990) Ethernet */
-+#define KN03_IO_INR_SCC1 7 /* SCC (Z85C30) serial #1 */
-+#define KN03_IO_INR_SCC0 6 /* SCC (Z85C30) serial #0 */
-+#define KN03_IO_INR_RTC 5 /* DS1287 RTC (?) */
-+#define KN03_IO_INR_PSU 4 /* power supply unit warning */
-+#define KN03_IO_INR_RES_3 3 /* unused */
-+#define KN03_IO_INR_ASC_DATA 2 /* SCSI data ready (discouraged?) (?) */
-+#define KN03_IO_INR_PBNC 1 /* HALT button debouncer */
-+#define KN03_IO_INR_PBNO 0 /* ~HALT button debouncer */
-+
-+#endif /* __ASM_MIPS_DEC_KN03_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn05.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn05.h
---- linux-2.4.20/include/asm-mips64/dec/kn05.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn05.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,70 @@
-+/*
-+ * include/asm-mips/dec/kn05.h
-+ *
-+ * DECstation 5000/260 (4max+ or KN05) and DECsystem 5900-260
-+ * definitions.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ *
-+ * WARNING! All this information is pure guesswork based on the
-+ * ROM. It is provided here in hope it will give someone some
-+ * food for thought. No documentation for the KN05 module has
-+ * been located so far.
-+ */
-+#ifndef __ASM_MIPS_DEC_KN05_H
-+#define __ASM_MIPS_DEC_KN05_H
-+
-+#include <asm/dec/ioasic_addrs.h>
-+
-+/*
-+ * The oncard MB (Memory Buffer) ASIC provides an additional address
-+ * decoder. Certain address ranges within the "high" 16 slots are
-+ * passed to the I/O ASIC's decoder like with the KN03. Others are
-+ * handled locally. "Low" slots are always passed.
-+ */
-+#define KN05_MB_ROM (16*IOASIC_SLOT_SIZE) /* KN05 card ROM */
-+#define KN05_IOCTL (17*IOASIC_SLOT_SIZE) /* I/O ASIC */
-+#define KN05_ESAR (18*IOASIC_SLOT_SIZE) /* LANCE MAC address chip */
-+#define KN05_LANCE (19*IOASIC_SLOT_SIZE) /* LANCE Ethernet */
-+#define KN05_MB_INT (20*IOASIC_SLOT_SIZE) /* MB interrupt register? */
-+#define KN05_MB_UNKN_0 (21*IOASIC_SLOT_SIZE) /* MB unknown register */
-+#define KN05_MB_UNKN_1 (22*IOASIC_SLOT_SIZE) /* MB unknown register */
-+#define KN05_MB_CSR (23*IOASIC_SLOT_SIZE) /* MB control & status */
-+#define KN05_RESERVED_0 (24*IOASIC_SLOT_SIZE) /* unused? */
-+#define KN05_RESERVED_1 (25*IOASIC_SLOT_SIZE) /* unused? */
-+#define KN05_RESERVED_2 (26*IOASIC_SLOT_SIZE) /* unused? */
-+#define KN05_RESERVED_3 (27*IOASIC_SLOT_SIZE) /* unused? */
-+#define KN05_SCSI (28*IOASIC_SLOT_SIZE) /* ASC SCSI */
-+#define KN05_RESERVED_4 (29*IOASIC_SLOT_SIZE) /* unused? */
-+#define KN05_RESERVED_5 (30*IOASIC_SLOT_SIZE) /* unused? */
-+#define KN05_RESERVED_6 (31*IOASIC_SLOT_SIZE) /* unused? */
-+
-+/*
-+ * Bits for the MB interrupt (?) register.
-+ * The register appears read-only.
-+ */
-+#define KN05_MB_INT_TC (1<<0) /* TURBOchannel? */
-+#define KN05_MB_INT_RTC (1<<1) /* RTC? */
-+
-+/*
-+ * Bits for the MB control & status register.
-+ * Set to 0x00bf8001 on my system by the ROM.
-+ */
-+#define KN05_MB_CSR_PF (1<<0) /* ??? */
-+#define KN05_MB_CSR_F (1<<1) /* ??? */
-+#define KN05_MB_CSR_ECC (0xff<<2) /* ??? */
-+#define KN05_MB_CSR_OD (1<<10) /* ??? */
-+#define KN05_MB_CSR_CP (1<<11) /* ??? */
-+#define KN05_MB_CSR_UNC (1<<12) /* ??? */
-+#define KN05_MB_CSR_IM (1<<13) /* ??? */
-+#define KN05_MB_CSR_NC (1<<14) /* ??? */
-+#define KN05_MB_CSR_EE (1<<15) /* (bus) Exception Enable? */
-+#define KN05_MB_CSR_MSK (0x1f<<16) /* ??? */
-+#define KN05_MB_CSR_FW (1<<21) /* ??? */
-+
-+#endif /* __ASM_MIPS_DEC_KN05_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/kn230.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn230.h
---- linux-2.4.20/include/asm-mips64/dec/kn230.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/kn230.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,26 @@
-+/*
-+ * include/asm-mips/dec/kn230.h
-+ *
-+ * DECsystem 5100 (MIPSmate or KN230) definitions.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef __ASM_MIPS_DEC_KN230_H
-+#define __ASM_MIPS_DEC_KN230_H
-+
-+/*
-+ * CPU interrupt bits.
-+ */
-+#define KN230_CPU_INR_HALT 6 /* HALT button */
-+#define KN230_CPU_INR_MEMORY 5 /* memory, I/O bus write errors */
-+#define KN230_CPU_INR_RTC 4 /* DS1287 RTC */
-+#define KN230_CPU_INR_SII 3 /* SII (DC7061) SCSI */
-+#define KN230_CPU_INR_LANCE 3 /* LANCE (Am7990) Ethernet */
-+#define KN230_CPU_INR_DZ11 2 /* DZ11 (DC7085) serial */
-+
-+#endif /* __ASM_MIPS_DEC_KN230_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/machtype.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/machtype.h
---- linux-2.4.20/include/asm-mips64/dec/machtype.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/machtype.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,27 @@
-+/*
-+ * Various machine type macros
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (c) 1998, 2000 Harald Koerfgen
-+ */
-+
-+#ifndef __ASM_DEC_MACHTYPE_H
-+#define __ASM_DEC_MACHTYPE_H
-+
-+#include <asm/bootinfo.h>
-+
-+#define TURBOCHANNEL (mips_machtype == MACH_DS5000_200 || \
-+ mips_machtype == MACH_DS5000_1XX || \
-+ mips_machtype == MACH_DS5000_XX || \
-+ mips_machtype == MACH_DS5000_2X0 || \
-+ mips_machtype == MACH_DS5900)
-+
-+#define IOASIC (mips_machtype == MACH_DS5000_1XX || \
-+ mips_machtype == MACH_DS5000_XX || \
-+ mips_machtype == MACH_DS5000_2X0 || \
-+ mips_machtype == MACH_DS5900)
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/prom.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/prom.h
---- linux-2.4.20/include/asm-mips64/dec/prom.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/prom.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,169 @@
-+/*
-+ * include/asm-mips64/dec/prom.h
-+ *
-+ * DECstation PROM interface.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ *
-+ * Based on arch/mips/dec/prom/prom.h by the Anonymous.
-+ */
-+#ifndef __ASM_MIPS64_DEC_PROM_H
-+#define __ASM_MIPS64_DEC_PROM_H
-+
-+#include <linux/types.h>
-+
-+#include <asm/addrspace.h>
-+
-+/*
-+ * PMAX/3MAX PROM entry points for DS2100/3100's and DS5000/2xx's.
-+ * Many of these will work for MIPSen as well!
-+ */
-+#define VEC_RESET (u64 *)KSEG1ADDR(0x1fc00000)
-+ /* Prom base address */
-+
-+#define PMAX_PROM_ENTRY(x) (VEC_RESET + (x)) /* Prom jump table */
-+
-+#define PMAX_PROM_HALT PMAX_PROM_ENTRY(2) /* valid on MIPSen */
-+#define PMAX_PROM_AUTOBOOT PMAX_PROM_ENTRY(5) /* valid on MIPSen */
-+#define PMAX_PROM_OPEN PMAX_PROM_ENTRY(6)
-+#define PMAX_PROM_READ PMAX_PROM_ENTRY(7)
-+#define PMAX_PROM_CLOSE PMAX_PROM_ENTRY(10)
-+#define PMAX_PROM_LSEEK PMAX_PROM_ENTRY(11)
-+#define PMAX_PROM_GETCHAR PMAX_PROM_ENTRY(12)
-+#define PMAX_PROM_PUTCHAR PMAX_PROM_ENTRY(13) /* 12 on MIPSen */
-+#define PMAX_PROM_GETS PMAX_PROM_ENTRY(15)
-+#define PMAX_PROM_PRINTF PMAX_PROM_ENTRY(17)
-+#define PMAX_PROM_GETENV PMAX_PROM_ENTRY(33) /* valid on MIPSen */
-+
-+
-+/*
-+ * Magic number indicating REX PROM available on DECstation. Found in
-+ * register a2 on transfer of control to program from PROM.
-+ */
-+#define REX_PROM_MAGIC 0x30464354
-+
-+#ifdef CONFIG_MIPS64
-+
-+#define prom_is_rex(magic) 1 /* KN04 and KN05 are REX PROMs. */
-+
-+#else /* !CONFIG_MIPS64 */
-+
-+#define prom_is_rex(magic) ((magic) == REX_PROM_MAGIC)
-+
-+#endif /* !CONFIG_MIPS64 */
-+
-+
-+/*
-+ * 3MIN/MAXINE PROM entry points for DS5000/1xx's, DS5000/xx's and
-+ * DS5000/2x0.
-+ */
-+#define REX_PROM_GETBITMAP 0x84/4 /* get mem bitmap */
-+#define REX_PROM_GETCHAR 0x24/4 /* getch() */
-+#define REX_PROM_GETENV 0x64/4 /* get env. variable */
-+#define REX_PROM_GETSYSID 0x80/4 /* get system id */
-+#define REX_PROM_GETTCINFO 0xa4/4
-+#define REX_PROM_PRINTF 0x30/4 /* printf() */
-+#define REX_PROM_SLOTADDR 0x6c/4 /* slotaddr */
-+#define REX_PROM_BOOTINIT 0x54/4 /* open() */
-+#define REX_PROM_BOOTREAD 0x58/4 /* read() */
-+#define REX_PROM_CLEARCACHE 0x7c/4
-+
-+
-+/*
-+ * Used by rex_getbitmap().
-+ */
-+typedef struct {
-+ int pagesize;
-+ unsigned char bitmap[0];
-+} memmap;
-+
-+
-+/*
-+ * Function pointers as read from a PROM's callback vector.
-+ */
-+extern int (*__rex_bootinit)(void);
-+extern int (*__rex_bootread)(void);
-+extern int (*__rex_getbitmap)(memmap *);
-+extern unsigned long *(*__rex_slot_address)(int);
-+extern void *(*__rex_gettcinfo)(void);
-+extern int (*__rex_getsysid)(void);
-+extern void (*__rex_clear_cache)(void);
-+
-+extern int (*__prom_getchar)(void);
-+extern char *(*__prom_getenv)(char *);
-+extern int (*__prom_printf)(char *, ...);
-+
-+extern int (*__pmax_open)(char*, int);
-+extern int (*__pmax_lseek)(int, long, int);
-+extern int (*__pmax_read)(int, void *, int);
-+extern int (*__pmax_close)(int);
-+
-+
-+#ifdef CONFIG_MIPS64
-+
-+/*
-+ * On MIPS64 we have to call PROM functions via a helper
-+ * dispatcher to accomodate ABI incompatibilities.
-+ */
-+#define __DEC_PROM_O32 __attribute__((alias("call_o32")))
-+
-+int _rex_bootinit(int (*)(void)) __DEC_PROM_O32;
-+int _rex_bootread(int (*)(void)) __DEC_PROM_O32;
-+int _rex_getbitmap(int (*)(memmap *), memmap *) __DEC_PROM_O32;
-+unsigned long *_rex_slot_address(unsigned long *(*)(int), int) __DEC_PROM_O32;
-+void *_rex_gettcinfo(void *(*)(void)) __DEC_PROM_O32;
-+int _rex_getsysid(int (*)(void)) __DEC_PROM_O32;
-+void _rex_clear_cache(void (*)(void)) __DEC_PROM_O32;
-+
-+int _prom_getchar(int (*)(void)) __DEC_PROM_O32;
-+char *_prom_getenv(char *(*)(char *), char *) __DEC_PROM_O32;
-+int _prom_printf(int (*)(char *, ...), char *, ...) __DEC_PROM_O32;
-+
-+
-+#define rex_bootinit() _rex_bootinit(__rex_bootinit)
-+#define rex_bootread() _rex_bootread(__rex_bootread)
-+#define rex_getbitmap(x) _rex_getbitmap(__rex_getbitmap, x)
-+#define rex_slot_address(x) _rex_slot_address(__rex_slot_address, x)
-+#define rex_gettcinfo() _rex_gettcinfo(__rex_gettcinfo)
-+#define rex_getsysid() _rex_getsysid(__rex_getsysid)
-+#define rex_clear_cache() _rex_clear_cache(__rex_clear_cache)
-+
-+#define prom_getchar() _prom_getchar(__prom_getchar)
-+#define prom_getenv(x) _prom_getenv(__prom_getenv, x)
-+#define prom_printf(x...) _prom_printf(__prom_printf, x)
-+
-+#else /* !CONFIG_MIPS64 */
-+
-+/*
-+ * On plain MIPS we just call PROM functions directly.
-+ */
-+#define rex_bootinit __rex_bootinit
-+#define rex_bootread __rex_bootread
-+#define rex_getbitmap __rex_getbitmap
-+#define rex_slot_address __rex_slot_address
-+#define rex_gettcinfo __rex_gettcinfo
-+#define rex_getsysid __rex_getsysid
-+#define rex_clear_cache __rex_clear_cache
-+
-+#define prom_getchar __prom_getchar
-+#define prom_getenv __prom_getenv
-+#define prom_printf __prom_printf
-+
-+#define pmax_open __pmax_open
-+#define pmax_lseek __pmax_lseek
-+#define pmax_read __pmax_read
-+#define pmax_close __pmax_close
-+
-+#endif /* !CONFIG_MIPS64 */
-+
-+
-+extern void prom_meminit(u32);
-+extern void prom_identify_arch(u32);
-+extern void prom_init_cmdline(s32, s32 *, u32);
-+
-+#endif /* __ASM_MIPS64_DEC_PROM_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/rtc-dec.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/rtc-dec.h
---- linux-2.4.20/include/asm-mips64/dec/rtc-dec.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/rtc-dec.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,32 @@
-+/*
-+ * include/asm-mips/dec/rtc-dec.h
-+ *
-+ * RTC definitions for DECstation style attached Dallas DS1287 chip.
-+ *
-+ * Copyright (C) 2002 Maciej W. Rozycki
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version
-+ * 2 of the License, or (at your option) any later version.
-+ */
-+#ifndef __ASM_MIPS_DEC_RTC_DEC_H
-+#define __ASM_MIPS_DEC_RTC_DEC_H
-+
-+#include <linux/types.h>
-+
-+#include <asm/addrspace.h>
-+
-+extern volatile u8 *dec_rtc_base;
-+extern unsigned long dec_kn_slot_size;
-+
-+extern struct rtc_ops dec_rtc_ops;
-+
-+#define RTC_PORT(x) CPHYSADDR(dec_rtc_base)
-+#define RTC_IO_EXTENT dec_kn_slot_size
-+#define RTC_IOMAPPED 0
-+#define RTC_IRQ 0
-+
-+#define RTC_DEC_YEAR 0x3f /* Where we store the real year on DECs. */
-+
-+#endif /* __ASM_MIPS_DEC_RTC_DEC_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/tc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tc.h
---- linux-2.4.20/include/asm-mips64/dec/tc.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tc.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,43 @@
-+/*
-+ * Interface to the TURBOchannel related routines
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (c) 1998 Harald Koerfgen
-+ */
-+#ifndef ASM_TC_H
-+#define ASM_TC_H
-+
-+extern unsigned long system_base;
-+
-+/*
-+ * Search for a TURBOchannel Option Module
-+ * with a certain name. Returns slot number
-+ * of the first card not in use or -ENODEV
-+ * if none found.
-+ */
-+extern int search_tc_card(const char *);
-+/*
-+ * Marks the card in slot as used
-+ */
-+extern void claim_tc_card(int);
-+/*
-+ * Marks the card in slot as free
-+ */
-+extern void release_tc_card(int);
-+/*
-+ * Return base address of card in slot
-+ */
-+extern unsigned long get_tc_base_addr(int);
-+/*
-+ * Return interrupt number of slot
-+ */
-+extern unsigned long get_tc_irq_nr(int);
-+/*
-+ * Return TURBOchannel clock frequency in hz
-+ */
-+extern unsigned long get_tc_speed(void);
-+
-+#endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/tcinfo.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcinfo.h
---- linux-2.4.20/include/asm-mips64/dec/tcinfo.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcinfo.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,47 @@
-+/*
-+ * Various TURBOchannel related stuff
-+ *
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Information obtained through the get_tcinfo prom call
-+ * created from:
-+ *
-+ * TURBOchannel Firmware Specification
-+ *
-+ * EK-TCAAD-FS-004
-+ * from Digital Equipment Corporation
-+ *
-+ * Copyright (c) 1998 Harald Koerfgen
-+ */
-+
-+typedef struct {
-+ int revision;
-+ int clk_period;
-+ int slot_size;
-+ int io_timeout;
-+ int dma_range;
-+ int max_dma_burst;
-+ int parity;
-+ int reserved[4];
-+} tcinfo;
-+
-+#define MAX_SLOT 7
-+
-+typedef struct {
-+ unsigned long base_addr;
-+ unsigned char name[9];
-+ unsigned char vendor[9];
-+ unsigned char firmware[9];
-+ int interrupt;
-+ int flags;
-+} slot_info;
-+
-+/*
-+ * Values for flags
-+ */
-+#define FREE 1<<0
-+#define IN_USE 1<<1
-+
-+
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/dec/tcmodule.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcmodule.h
---- linux-2.4.20/include/asm-mips64/dec/tcmodule.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/dec/tcmodule.h 2003-01-20 14:21:43.000000000 -0600
-@@ -0,0 +1,39 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Offsets for the ROM header locations for
-+ * TURBOchannel cards
-+ *
-+ * created from:
-+ *
-+ * TURBOchannel Firmware Specification
-+ *
-+ * EK-TCAAD-FS-004
-+ * from Digital Equipment Corporation
-+ *
-+ * Jan.1998 Harald Koerfgen
-+ */
-+#ifndef __ASM_DEC_TCMODULE_H
-+#define __ASM_DEC_TCMODULE_H
-+
-+#define OLDCARD 0x3c0000
-+#define NEWCARD 0x000000
-+
-+#define TC_ROM_WIDTH 0x3e0
-+#define TC_ROM_STRIDE 0x3e4
-+#define TC_ROM_SIZE 0x3e8
-+#define TC_SLOT_SIZE 0x3ec
-+#define TC_PATTERN0 0x3f0
-+#define TC_PATTERN1 0x3f4
-+#define TC_PATTERN2 0x3f8
-+#define TC_PATTERN3 0x3fc
-+#define TC_FIRM_VER 0x400
-+#define TC_VENDOR 0x420
-+#define TC_MODULE 0x440
-+#define TC_FIRM_TYPE 0x460
-+#define TC_FLAGS 0x470
-+#define TC_ROM_OBJECTS 0x480
-+
-+#endif /* __ASM_DEC_TCMODULE_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/delay.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/delay.h
---- linux-2.4.20/include/asm-mips64/delay.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/delay.h 2003-01-27 18:08:27.000000000 -0600
-@@ -11,7 +11,7 @@
- #define _ASM_DELAY_H
-
- #include <linux/config.h>
--#include <asm/param.h>
-+#include <linux/param.h>
-
- extern unsigned long loops_per_jiffy;
-
-@@ -41,10 +41,16 @@
- {
- unsigned long lo;
-
--#if (HZ == 100)
-- usecs *= 0x00068db8bac710cbUL; /* 2**64 / (1000000 / HZ) */
--#elif (HZ == 128)
-- usecs *= 0x0008637bd05af6c6UL; /* 2**64 / (1000000 / HZ) */
-+ /*
-+ * The common rates of 1000 and 128 are rounded wrongly by the
-+ * catchall case. Excessive precission? Probably ...
-+ */
-+#if (HZ == 128)
-+ usecs *= 0x0008637bd05af6c7UL; /* 2**64 / (1000000 / HZ) */
-+#elif (HZ == 1000)
-+ usecs *= 0x004189374BC6A7f0UL; /* 2**64 / (1000000 / HZ) */
-+#else
-+ usecs *= (0x8000000000000000UL / (500000 / HZ));
- #endif
- __asm__("dmultu\t%2,%3"
- :"=h" (usecs), "=l" (lo)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/div64.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/div64.h
---- linux-2.4.20/include/asm-mips64/div64.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/div64.h 2003-01-27 08:27:20.000000000 -0600
-@@ -10,38 +10,20 @@
- * Don't use this one in new code
- */
- #define do_div64_32(res, high, low, base) ({ \
-- unsigned long __quot, __mod; \
-- unsigned long __cf, __tmp, __tmp2, __i; \
-+ unsigned int __quot, __mod; \
-+ unsigned long __div; \
-+ unsigned int __low, __high, __base; \
- \
-- __asm__(".set push\n\t" \
-- ".set noat\n\t" \
-- ".set noreorder\n\t" \
-- "move %2, $0\n\t" \
-- "move %3, $0\n\t" \
-- "b 1f\n\t" \
-- " li %4, 0x21\n" \
-- "0:\n\t" \
-- "sll $1, %0, 0x1\n\t" \
-- "srl %3, %0, 0x1f\n\t" \
-- "or %0, $1, %5\n\t" \
-- "sll %1, %1, 0x1\n\t" \
-- "sll %2, %2, 0x1\n" \
-- "1:\n\t" \
-- "bnez %3, 2f\n\t" \
-- "sltu %5, %0, %z6\n\t" \
-- "bnez %5, 3f\n\t" \
-- "2:\n\t" \
-- " addiu %4,%4,-1\n\t" \
-- "subu %0, %0, %z6\n\t" \
-- "addiu %2, %2, 1\n" \
-- "3:\n\t" \
-- "bnez %4, 0b\n\t" \
-- " srl %5, %1, 0x1f\n\t" \
-- ".set pop" \
-- : "=&r" (__mod), "=&r" (__tmp), "=&r" (__quot), "=&r" (__cf), \
-- "=&r" (__i), "=&r" (__tmp2) \
-- : "Jr" (base), "0" (high), "1" (low)); \
-+ __high = (high); \
-+ __low = (low); \
-+ __div = __high; \
-+ __div = __div << 32 | __low; \
-+ __base = (base); \
- \
-+ __mod = __div % __base; \
-+ __div = __div / __base; \
-+ \
-+ __quot = __div; \
- (res) = __quot; \
- __mod; })
-
-@@ -49,10 +31,19 @@
- * Hey, we're already 64-bit, no
- * need to play games..
- */
--#define do_div(n,base) ({ \
-- int __res; \
-- __res = ((unsigned long) n) % (unsigned) base; \
-- n = ((unsigned long) n) / (unsigned) base; \
-- __res; })
-+#define do_div(n, base) ({ \
-+ unsigned long __quot; \
-+ unsigned int __mod; \
-+ unsigned long __div; \
-+ unsigned int __base; \
-+ \
-+ __div = (n); \
-+ __base = (base); \
-+ \
-+ __mod = __div % __base; \
-+ __quot = __div / __base; \
-+ \
-+ (n) = __quot; \
-+ __mod; })
-
- #endif /* _ASM_DIV64_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/elf.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/elf.h
---- linux-2.4.20/include/asm-mips64/elf.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/elf.h 2003-02-20 13:46:34.000000000 -0600
-@@ -43,8 +43,7 @@
- \
- if (__h->e_machine != EM_MIPS) \
- __res = 0; \
-- if ((__h->e_ident[EI_CLASS] == ELFCLASS32) && \
-- ((__h->e_flags & EF_MIPS_ABI2) == 0)) \
-+ if (__h->e_ident[EI_CLASS] == ELFCLASS32) \
- __res = 0; \
- \
- __res; \
-@@ -110,10 +109,15 @@
-
- #ifdef __KERNEL__
- #define SET_PERSONALITY(ex, ibcs2) \
--do { if ((ex).e_ident[EI_CLASS] == ELFCLASS32) \
-- current->thread.mflags |= MF_32BIT; \
-- else \
-- current->thread.mflags &= ~MF_32BIT; \
-+do { current->thread.mflags &= ~MF_ABI_MASK; \
-+ if ((ex).e_ident[EI_CLASS] == ELFCLASS32) { \
-+ if ((((ex).e_flags & EF_MIPS_ABI2) != 0) && \
-+ ((ex).e_flags & EF_MIPS_ABI) == 0) \
-+ current->thread.mflags |= MF_N32; \
-+ else \
-+ current->thread.mflags |= MF_O32; \
-+ } else \
-+ current->thread.mflags |= MF_N64; \
- if (ibcs2) \
- set_personality(PER_SVR4); \
- else if (current->personality != PER_LINUX32) \
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/fpu.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/fpu.h
---- linux-2.4.20/include/asm-mips64/fpu.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/fpu.h 2002-12-01 18:24:54.000000000 -0600
-@@ -0,0 +1,135 @@
-+/*
-+ * Copyright (C) 2002 MontaVista Software Inc.
-+ * Author: Jun Sun, jsun@mvista.com or jsun@junsun.net
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ */
-+
-+#ifndef _ASM_FPU_H
-+#define _ASM_FPU_H
-+
-+#include <linux/config.h>
-+#include <linux/sched.h>
-+
-+#include <asm/mipsregs.h>
-+#include <asm/cpu.h>
-+#include <asm/processor.h>
-+#include <asm/current.h>
-+
-+struct sigcontext;
-+
-+extern asmlinkage int (*save_fp_context)(struct sigcontext *sc);
-+extern asmlinkage int (*restore_fp_context)(struct sigcontext *sc);
-+
-+extern void fpu_emulator_init_fpu(void);
-+extern void _init_fpu(void);
-+extern void _save_fp(struct task_struct *);
-+extern void _restore_fp(struct task_struct *);
-+
-+#if defined(CONFIG_CPU_SB1)
-+#define __enable_fpu_hazard() \
-+do { \
-+ asm(".set push \n\t" \
-+ ".set mips64 \n\t" \
-+ ".set noreorder \n\t" \
-+ "ssnop \n\t" \
-+ "bnezl $0, .+4 \n\t" \
-+ "ssnop \n\t" \
-+ ".set pop"); \
-+} while (0)
-+#else
-+#define __enable_fpu_hazard() \
-+do { \
-+ asm("nop;nop;nop;nop"); /* max. hazard */ \
-+} while (0)
-+#endif
-+
-+#define __enable_fpu() \
-+do { \
-+ set_c0_status(ST0_CU1); \
-+ __enable_fpu_hazard(); \
-+} while (0)
-+
-+#define __disable_fpu() \
-+do { \
-+ clear_c0_status(ST0_CU1); \
-+ /* We don't care about the c0 hazard here */ \
-+} while (0)
-+
-+#define enable_fpu() \
-+do { \
-+ if (mips_cpu.options & MIPS_CPU_FPU) \
-+ __enable_fpu(); \
-+} while (0)
-+
-+#define disable_fpu() \
-+do { \
-+ if (mips_cpu.options & MIPS_CPU_FPU) \
-+ __disable_fpu(); \
-+} while (0)
-+
-+
-+#define clear_fpu_owner() do {current->flags &= ~PF_USEDFPU; } while(0)
-+
-+static inline int is_fpu_owner(void)
-+{
-+ return (mips_cpu.options & MIPS_CPU_FPU) &&
-+ ((current->flags & PF_USEDFPU) != 0);
-+}
-+
-+static inline void own_fpu(void)
-+{
-+ if(mips_cpu.options & MIPS_CPU_FPU) {
-+ __enable_fpu();
-+ KSTK_STATUS(current) |= ST0_CU1;
-+ current->flags |= PF_USEDFPU;
-+ }
-+}
-+
-+static inline void loose_fpu(void)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU) {
-+ KSTK_STATUS(current) &= ~ST0_CU1;
-+ current->flags &= ~PF_USEDFPU;
-+ __disable_fpu();
-+ }
-+}
-+
-+static inline void init_fpu(void)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU) {
-+ _init_fpu();
-+ } else {
-+ fpu_emulator_init_fpu();
-+ }
-+}
-+
-+static inline void save_fp(struct task_struct *tsk)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU)
-+ _save_fp(tsk);
-+}
-+
-+static inline void restore_fp(struct task_struct *tsk)
-+{
-+ if (mips_cpu.options & MIPS_CPU_FPU)
-+ _restore_fp(tsk);
-+}
-+
-+static inline unsigned long *get_fpu_regs(struct task_struct *tsk)
-+{
-+ if(mips_cpu.options & MIPS_CPU_FPU) {
-+ if ((tsk == current) && is_fpu_owner())
-+ _save_fp(current);
-+ return (unsigned long *)&tsk->thread.fpu.hard.fp_regs[0];
-+ } else {
-+ return (unsigned long *)tsk->thread.fpu.soft.regs;
-+ }
-+}
-+
-+#endif /* _ASM_FPU_H */
-+
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Entries
---- linux-2.4.20/include/asm-mips64/gcc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Entries 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1,2 @@
-+/sgidefs.h/1.1/Fri Dec 1 18:15:41 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Repository
---- linux-2.4.20/include/asm-mips64/gcc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Repository 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/gcc
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Root
---- linux-2.4.20/include/asm-mips64/gcc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Root 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/gcc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Tag
---- linux-2.4.20/include/asm-mips64/gcc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/gcc/CVS/Tag 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/hw_irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/hw_irq.h
---- linux-2.4.20/include/asm-mips64/hw_irq.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/hw_irq.h 2002-12-03 13:46:59.000000000 -0600
-@@ -8,6 +8,8 @@
- #ifndef _ASM_HW_IRQ_H
- #define _ASM_HW_IRQ_H
-
-+#include <asm/atomic.h>
-+
- extern atomic_t irq_err_count;
-
- /* This may not be apropriate for all machines, we'll see ... */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/ide.h
---- linux-2.4.20/include/asm-mips64/ide.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ide.h 2002-11-28 17:04:11.000000000 -0600
-@@ -7,11 +7,6 @@
- *
- * Copyright (C) 1994-1996 Linus Torvalds & authors
- */
--
--/*
-- * This file contains the MIPS architecture specific IDE code.
-- */
--
- #ifndef __ASM_IDE_H
- #define __ASM_IDE_H
-
-@@ -41,7 +36,7 @@
- void (*ide_free_irq)(unsigned int irq, void *dev_id);
- int (*ide_check_region) (ide_ioreg_t from, unsigned int extent);
- void (*ide_request_region)(ide_ioreg_t from, unsigned int extent,
-- const char *name);
-+ const char *name);
- void (*ide_release_region)(ide_ioreg_t from, unsigned int extent);
- };
-
-@@ -58,7 +53,7 @@
- }
-
- static inline void ide_init_hwif_ports(hw_regs_t *hw, ide_ioreg_t data_port,
-- ide_ioreg_t ctrl_port, int *irq)
-+ ide_ioreg_t ctrl_port, int *irq)
- {
- ide_ops->ide_init_hwif_ports(hw, data_port, ctrl_port, irq);
- }
-@@ -81,11 +76,11 @@
- unsigned all : 8; /* all of the bits together */
- struct {
- #ifdef __MIPSEB__
-- unsigned bit7 : 1; /* always 1 */
-- unsigned lba : 1; /* using LBA instead of CHS */
-- unsigned bit5 : 1; /* always 1 */
-- unsigned unit : 1; /* drive select number, 0 or 1 */
-- unsigned head : 4; /* always zeros here */
-+ unsigned bit7 : 1; /* always 1 */
-+ unsigned lba : 1; /* using LBA instead of CHS */
-+ unsigned bit5 : 1; /* always 1 */
-+ unsigned unit : 1; /* drive select number, 0 or 1 */
-+ unsigned head : 4; /* always zeros here */
- #else
- unsigned head : 4; /* always zeros here */
- unsigned unit : 1; /* drive select number, 0 or 1 */
-@@ -133,20 +128,18 @@
- return ide_ops->ide_check_region(from, extent);
- }
-
--static __inline__ void ide_request_region(ide_ioreg_t from,
-- unsigned int extent, const char *name)
-+static __inline__ void ide_request_region(ide_ioreg_t from, unsigned int extent,
-+ const char *name)
- {
- ide_ops->ide_request_region(from, extent, name);
- }
-
--static __inline__ void ide_release_region(ide_ioreg_t from,
-- unsigned int extent)
-+static __inline__ void ide_release_region(ide_ioreg_t from, unsigned int extent)
- {
- ide_ops->ide_release_region(from, extent);
- }
-
--
--#if defined(CONFIG_SWAP_IO_SPACE) && defined(__MIPSEB__)
-+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
-
- /* get rid of defs from io.h - ide has its private and conflicting versions */
- #ifdef insw
-@@ -169,34 +162,34 @@
-
- static inline void ide_insw(unsigned long port, void *addr, unsigned int count)
- {
-- while (count--) {
-- *(u16 *)addr = *(volatile u16 *)(mips_io_port_base + port);
-- addr += 2;
-- }
-+ while (count--) {
-+ *(u16 *)addr = *(volatile u16 *)(mips_io_port_base + port);
-+ addr += 2;
-+ }
- }
-
- static inline void ide_outsw(unsigned long port, void *addr, unsigned int count)
- {
-- while (count--) {
-- *(volatile u16 *)(mips_io_port_base + (port)) = *(u16 *)addr;
-- addr += 2;
-- }
-+ while (count--) {
-+ *(volatile u16 *)(mips_io_port_base + (port)) = *(u16 *)addr;
-+ addr += 2;
-+ }
- }
-
- static inline void ide_insl(unsigned long port, void *addr, unsigned int count)
- {
-- while (count--) {
-- *(u32 *)addr = *(volatile u32 *)(mips_io_port_base + port);
-- addr += 4;
-- }
-+ while (count--) {
-+ *(u32 *)addr = *(volatile u32 *)(mips_io_port_base + port);
-+ addr += 4;
-+ }
- }
-
- static inline void ide_outsl(unsigned long port, void *addr, unsigned int count)
- {
-- while (count--) {
-- *(volatile u32 *)(mips_io_port_base + (port)) = *(u32 *)addr;
-- addr += 4;
-- }
-+ while (count--) {
-+ *(volatile u32 *)(mips_io_port_base + (port)) = *(u32 *)addr;
-+ addr += 4;
-+ }
- }
-
- #define T_CHAR (0x0000) /* char: don't touch */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/io.h
---- linux-2.4.20/include/asm-mips64/io.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/io.h 2003-01-20 14:21:43.000000000 -0600
-@@ -15,6 +15,10 @@
- #include <asm/page.h>
- #include <asm/byteorder.h>
-
-+#ifdef CONFIG_DECSTATION
-+#include <asm/dec/io.h>
-+#endif
-+
- #ifdef CONFIG_MIPS_ATLAS
- #include <asm/mips-boards/io.h>
- #endif
-@@ -23,6 +27,10 @@
- #include <asm/mips-boards/io.h>
- #endif
-
-+#ifdef CONFIG_MIPS_SEAD
-+#include <asm/mips-boards/io.h>
-+#endif
-+
- #ifdef CONFIG_SGI_IP22
- #include <asm/sgi/io.h>
- #endif
-@@ -42,11 +50,13 @@
- #ifdef CONFIG_SGI_IP27
- extern unsigned long bus_to_baddr[256];
-
--#define bus_to_baddr(hwdev, addr) (bus_to_baddr[(hwdev)->bus->number] + (addr))
--#define baddr_to_bus(hwdev, addr) ((addr) - bus_to_baddr[(hwdev)->bus->number])
-+#define bus_to_baddr(bus, addr) (bus_to_baddr[(bus)->number] + (addr))
-+#define baddr_to_bus(bus, addr) ((addr) - bus_to_baddr[(bus)->number])
-+#define __swizzle_addr_w(port) ((port) ^ 2)
- #else
--#define bus_to_baddr(hwdev, addr) (addr)
--#define baddr_to_bus(hwdev, addr) (addr)
-+#define bus_to_baddr(bus, addr) (addr)
-+#define baddr_to_bus(bus, addr) (addr)
-+#define __swizzle_addr_w(port) (port)
- #endif
-
- /*
-@@ -56,26 +66,24 @@
-
- /*
- * Sane hardware offers swapping of I/O space accesses in hardware; less
-- * sane hardware forces software to fiddle with this ...
-+ * sane hardware forces software to fiddle with this. Totally insane hardware
-+ * introduces special cases like:
-+ *
-+ * IP22 seems braindead enough to swap 16-bits values in hardware, but not
-+ * 32-bits. Go figure... Can't tell without documentation.
-+ *
-+ * We only do the swapping to keep the kernel config bits of bi-endian
-+ * machines a bit saner.
- */
--#if defined(CONFIG_SWAP_IO_SPACE) && defined(__MIPSEB__)
--
--#define __ioswab8(x) (x)
--#ifdef CONFIG_SGI_IP22
--/* IP22 seems braindead enough to swap 16bits values in hardware, but
-- not 32bits. Go figure... Can't tell without documentation. */
--#define __ioswab16(x) (x)
--#else
-+#if defined(CONFIG_SWAP_IO_SPACE_W) && defined(__MIPSEB__)
- #define __ioswab16(x) swab16(x)
-+#else
-+#define __ioswab16(x) (x)
- #endif
-+#if defined(CONFIG_SWAP_IO_SPACE_L) && defined(__MIPSEB__)
- #define __ioswab32(x) swab32(x)
--
- #else
--
--#define __ioswab8(x) (x)
--#define __ioswab16(x) (x)
- #define __ioswab32(x) (x)
--
- #endif
-
- /*
-@@ -127,6 +135,11 @@
- {
- }
-
-+/*
-+ * XXX We need system specific versions of these to handle EISA address bits
-+ * 24-31 on SNI.
-+ * XXX more SNI hacks.
-+ */
- #define readb(addr) (*(volatile unsigned char *)(addr))
- #define readw(addr) __ioswab16((*(volatile unsigned short *)(addr)))
- #define readl(addr) __ioswab32((*(volatile unsigned int *)(addr)))
-@@ -135,7 +148,7 @@
- #define __raw_readw(addr) (*(volatile unsigned short *)(addr))
- #define __raw_readl(addr) (*(volatile unsigned int *)(addr))
-
--#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (__ioswab8(b)))
-+#define writeb(b,addr) ((*(volatile unsigned char *)(addr)) = (b))
- #define writew(b,addr) ((*(volatile unsigned short *)(addr)) = (__ioswab16(b)))
- #define writel(b,addr) ((*(volatile unsigned int *)(addr)) = (__ioswab32(b)))
-
-@@ -147,89 +160,6 @@
- #define memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c))
- #define memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c))
-
--/* The ISA versions are supplied by system specific code */
--
--/*
-- * On MIPS I/O ports are memory mapped, so we access them using normal
-- * load/store instructions. mips_io_port_base is the virtual address to
-- * which all ports are being mapped. For sake of efficiency some code
-- * assumes that this is an address that can be loaded with a single lui
-- * instruction, so the lower 16 bits must be zero. Should be true on
-- * on any sane architecture; generic code does not use this assumption.
-- */
--extern const unsigned long mips_io_port_base;
--
--#define set_io_port_base(base) \
-- do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
--
--#define __SLOW_DOWN_IO \
-- __asm__ __volatile__( \
-- "sb\t$0,0x80(%0)" \
-- : : "r" (mips_io_port_base));
--
--#ifdef CONF_SLOWDOWN_IO
--#ifdef REALLY_SLOW_IO
--#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
--#else
--#define SLOW_DOWN_IO __SLOW_DOWN_IO
--#endif
--#else
--#define SLOW_DOWN_IO
--#endif
--
--/*
-- * virt_to_phys - map virtual addresses to physical
-- * @address: address to remap
-- *
-- * The returned physical address is the physical (CPU) mapping for
-- * the memory address given. It is only valid to use this function on
-- * addresses directly mapped or allocated via kmalloc.
-- *
-- * This function does not give bus mappings for DMA transfers. In
-- * almost all conceivable cases a device driver should not be using
-- * this function
-- */
--
--static inline unsigned long virt_to_phys(volatile void * address)
--{
-- return (unsigned long)address - PAGE_OFFSET;
--}
--
--/*
-- * phys_to_virt - map physical address to virtual
-- * @address: address to remap
-- *
-- * The returned virtual address is a current CPU mapping for
-- * the memory address given. It is only valid to use this function on
-- * addresses that have a kernel mapping
-- *
-- * This function does not handle bus mappings for DMA transfers. In
-- * almost all conceivable cases a device driver should not be using
-- * this function
-- */
--
--static inline void * phys_to_virt(unsigned long address)
--{
-- return (void *)(address + PAGE_OFFSET);
--}
--
--/*
-- * IO bus memory addresses are also 1:1 with the physical address
-- */
--static inline unsigned long virt_to_bus(volatile void * address)
--{
-- return (unsigned long)address - PAGE_OFFSET;
--}
--
--static inline void * bus_to_virt(unsigned long address)
--{
-- return (void *)(address + PAGE_OFFSET);
--}
--
--
--/* This is too simpleminded for more sophisticated than dumb hardware ... */
--#define page_to_bus page_to_phys
--
- /*
- * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped
- * for the processor. This implies the assumption that there is only
-@@ -262,6 +192,7 @@
- * just copy it. The net code will then do the checksum later.
- */
- #define eth_io_copy_and_sum(skb,src,len,unused) memcpy_fromio((skb)->data,(src),(len))
-+#define isa_eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(b),(c),(d))
-
- /*
- * check_signature - find BIOS signatures
-@@ -273,9 +204,8 @@
- * address should have been obtained by ioremap.
- * Returns 1 on a match.
- */
--static inline int
--check_signature(unsigned long io_addr, const unsigned char *signature,
-- int length)
-+static inline int check_signature(unsigned long io_addr,
-+ const unsigned char *signature, int length)
- {
- int retval = 0;
- do {
-@@ -319,14 +249,95 @@
- return retval;
- }
-
-+/*
-+ * virt_to_phys - map virtual addresses to physical
-+ * @address: address to remap
-+ *
-+ * The returned physical address is the physical (CPU) mapping for
-+ * the memory address given. It is only valid to use this function on
-+ * addresses directly mapped or allocated via kmalloc.
-+ *
-+ * This function does not give bus mappings for DMA transfers. In
-+ * almost all conceivable cases a device driver should not be using
-+ * this function
-+ */
-+
-+static inline unsigned long virt_to_phys(volatile void * address)
-+{
-+ return (unsigned long)address - PAGE_OFFSET;
-+}
-+
-+/*
-+ * phys_to_virt - map physical address to virtual
-+ * @address: address to remap
-+ *
-+ * The returned virtual address is a current CPU mapping for
-+ * the memory address given. It is only valid to use this function on
-+ * addresses that have a kernel mapping
-+ *
-+ * This function does not handle bus mappings for DMA transfers. In
-+ * almost all conceivable cases a device driver should not be using
-+ * this function
-+ */
-+
-+static inline void * phys_to_virt(unsigned long address)
-+{
-+ return (void *)(address + PAGE_OFFSET);
-+}
-+
-+/*
-+ * IO bus memory addresses are also 1:1 with the physical address
-+ */
-+static inline unsigned long virt_to_bus(volatile void * address)
-+{
-+ return (unsigned long)address - PAGE_OFFSET;
-+}
-+
-+static inline void * bus_to_virt(unsigned long address)
-+{
-+ return (void *)(address + PAGE_OFFSET);
-+}
-+
-+/* This is too simpleminded for more sophisticated than dumb hardware ... */
-+#define page_to_bus page_to_phys
-+
-+/*
-+ * On MIPS I/O ports are memory mapped, so we access them using normal
-+ * load/store instructions. mips_io_port_base is the virtual address to
-+ * which all ports are being mapped. For sake of efficiency some code
-+ * assumes that this is an address that can be loaded with a single lui
-+ * instruction, so the lower 16 bits must be zero. Should be true on
-+ * on any sane architecture; generic code does not use this assumption.
-+ */
-+extern const unsigned long mips_io_port_base;
-+
-+#define set_io_port_base(base) \
-+ do { * (unsigned long *) &mips_io_port_base = (base); } while (0)
-+
-+#define __SLOW_DOWN_IO \
-+ __asm__ __volatile__( \
-+ "sb\t$0,0x80(%0)" \
-+ : : "r" (mips_io_port_base));
-+
-+#ifdef CONF_SLOWDOWN_IO
-+#ifdef REALLY_SLOW_IO
-+#define SLOW_DOWN_IO { __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; __SLOW_DOWN_IO; }
-+#else
-+#define SLOW_DOWN_IO __SLOW_DOWN_IO
-+#endif
-+#else
-+#define SLOW_DOWN_IO
-+#endif
-+
- #define outb(val,port) \
- do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); \
-+ *(volatile u8 *)(mips_io_port_base + (port)) = (val); \
- } while(0)
-
- #define outw(val,port) \
- do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\
-+ *(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) = \
-+ __ioswab16(val); \
- } while(0)
-
- #define outl(val,port) \
-@@ -336,13 +347,14 @@
-
- #define outb_p(val,port) \
- do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = __ioswab8(val); \
-+ *(volatile u8 *)(mips_io_port_base + (port)) = (val); \
- SLOW_DOWN_IO; \
- } while(0)
-
- #define outw_p(val,port) \
- do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = __ioswab16(val);\
-+ *(volatile u16 *)(mips_io_port_base + __swizzle_addr_w(port)) = \
-+ __ioswab16(val); \
- SLOW_DOWN_IO; \
- } while(0)
-
-@@ -354,11 +366,13 @@
-
- static inline unsigned char inb(unsigned long port)
- {
-- return __ioswab8(*(volatile u8 *)(mips_io_port_base + port));
-+ return *(volatile u8 *)(mips_io_port_base + port);
- }
-
- static inline unsigned short inw(unsigned long port)
- {
-+ port = __swizzle_addr_w(port);
-+
- return __ioswab16(*(volatile u16 *)(mips_io_port_base + port));
- }
-
-@@ -374,13 +388,14 @@
- __val = *(volatile u8 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
-- return __ioswab8(__val);
-+ return __val;
- }
-
- static inline unsigned short inw_p(unsigned long port)
- {
- u16 __val;
-
-+ port = __swizzle_addr_w(port);
- __val = *(volatile u16 *)(mips_io_port_base + port);
- SLOW_DOWN_IO;
-
-@@ -396,7 +411,7 @@
- return __ioswab32(__val);
- }
-
--static inline void outsb(unsigned long port, void *addr, unsigned int count)
-+static inline void __outsb(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
- outb(*(u8 *)addr, port);
-@@ -404,7 +419,7 @@
- }
- }
-
--static inline void insb(unsigned long port, void *addr, unsigned int count)
-+static inline void __insb(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
- *(u8 *)addr = inb(port);
-@@ -412,7 +427,7 @@
- }
- }
-
--static inline void outsw(unsigned long port, void *addr, unsigned int count)
-+static inline void __outsw(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
- outw(*(u16 *)addr, port);
-@@ -420,7 +435,7 @@
- }
- }
-
--static inline void insw(unsigned long port, void *addr, unsigned int count)
-+static inline void __insw(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
- *(u16 *)addr = inw(port);
-@@ -428,7 +443,7 @@
- }
- }
-
--static inline void outsl(unsigned long port, void *addr, unsigned int count)
-+static inline void __outsl(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
- outl(*(u32 *)addr, port);
-@@ -436,7 +451,7 @@
- }
- }
-
--static inline void insl(unsigned long port, void *addr, unsigned int count)
-+static inline void __insl(unsigned long port, void *addr, unsigned int count)
- {
- while (count--) {
- *(u32 *)addr = inl(port);
-@@ -444,6 +459,13 @@
- }
- }
-
-+#define outsb(port, addr, count) __outsb(port, addr, count)
-+#define insb(port, addr, count) __insb(port, addr, count)
-+#define outsw(port, addr, count) __outsw(port, addr, count)
-+#define insw(port, addr, count) __insw(port, addr, count)
-+#define outsl(port, addr, count) __outsl(port, addr, count)
-+#define insl(port, addr, count) __insl(port, addr, count)
-+
- /*
- * The caches on some architectures aren't dma-coherent and have need to
- * handle this in software. There are three types of operations that
-@@ -474,9 +496,12 @@
-
- #else /* Sane hardware */
-
--#define dma_cache_wback_inv(start,size) do { (start); (size); } while (0)
--#define dma_cache_wback(start,size) do { (start); (size); } while (0)
--#define dma_cache_inv(start,size) do { (start); (size); } while (0)
-+#define dma_cache_wback_inv(start,size) \
-+ do { (void) (start); (void) (size); } while (0)
-+#define dma_cache_wback(start,size) \
-+ do { (void) (start); (void) (size); } while (0)
-+#define dma_cache_inv(start,size) \
-+ do { (void) (start); (void) (size); } while (0)
-
- #endif /* CONFIG_NONCOHERENT_IO */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Entries
---- linux-2.4.20/include/asm-mips64/ip32/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Entries 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1,6 @@
-+/crime.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
-+/io.h/1.2/Wed Nov 28 07:39:28 2001/-ko/Tlinux_2_4_20
-+/ip32_ints.h/1.1/Tue Sep 4 22:20:05 2001/-ko/Tlinux_2_4_20
-+/mace.h/1.3.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/machine.h/1.1.2.1/Wed May 29 03:03:18 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Repository
---- linux-2.4.20/include/asm-mips64/ip32/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Repository 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/ip32
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Root
---- linux-2.4.20/include/asm-mips64/ip32/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Root 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/ip32/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Tag
---- linux-2.4.20/include/asm-mips64/ip32/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ip32/CVS/Tag 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/irq.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/irq.h
---- linux-2.4.20/include/asm-mips64/irq.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/irq.h 2002-10-06 07:28:03.000000000 -0500
-@@ -44,14 +44,9 @@
-
- struct irqaction;
- extern int i8259_setup_irq(int irq, struct irqaction * new);
--extern void disable_irq(unsigned int);
-
--#ifdef CONFIG_NEW_IRQ
-+extern void disable_irq(unsigned int);
- extern void disable_irq_nosync(unsigned int);
--#else
--#define disable_irq_nosync disable_irq
--#endif
--
- extern void enable_irq(unsigned int);
-
- /* Machine specific interrupt initialization */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/m48t35.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/m48t35.h
---- linux-2.4.20/include/asm-mips64/m48t35.h 2000-02-25 00:53:35.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/m48t35.h 2002-11-26 05:03:17.000000000 -0600
-@@ -1,32 +1,30 @@
- /*
- * Registers for the SGS-Thomson M48T35 Timekeeper RAM chip
- */
--
- #ifndef _ASM_M48T35_H
- #define _ASM_M48T35_H
-
-+#include <linux/spinlock.h>
-+
-+extern spinlock_t rtc_lock;
-+
- struct m48t35_rtc {
-- volatile u8 pad[0x7ff8]; /* starts at 0x7ff8 */
-- volatile u8 control;
-- volatile u8 sec;
-- volatile u8 min;
-- volatile u8 hour;
-- volatile u8 day;
-- volatile u8 date;
-- volatile u8 month;
-- volatile u8 year;
-+ volatile u8 pad[0x7ff8]; /* starts at 0x7ff8 */
-+ volatile u8 control;
-+ volatile u8 sec;
-+ volatile u8 min;
-+ volatile u8 hour;
-+ volatile u8 day;
-+ volatile u8 date;
-+ volatile u8 month;
-+ volatile u8 year;
- };
-
--#define M48T35_RTC_SET 0x80
--#define M48T35_RTC_STOPPED 0x80
--#define M48T35_RTC_READ 0x40
--
--#ifndef BCD_TO_BIN
--#define BCD_TO_BIN(x) ((x)=((x)&15) + ((x)>>4)*10)
--#endif
-+#define M48T35_RTC_SET 0x80
-+#define M48T35_RTC_STOPPED 0x80
-+#define M48T35_RTC_READ 0x40
-
--#ifndef BIN_TO_BCD
--#define BIN_TO_BCD(x) ((x)=(((x)/10)<<4) + (x)%10)
--#endif
-+#define BCD_TO_BIN(x) ((x)=((x)&15) + ((x)>>4)*10)
-+#define BIN_TO_BCD(x) ((x)=(((x)/10)<<4) + (x)%10)
-
--#endif
-+#endif /* _ASM_M48T35_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mc146818rtc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mc146818rtc.h
---- linux-2.4.20/include/asm-mips64/mc146818rtc.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mc146818rtc.h 2003-01-20 14:21:43.000000000 -0600
-@@ -6,10 +6,13 @@
- * Machine dependent access functions for RTC registers.
- *
- * Copyright (C) 1996, 1997, 1998 Ralf Baechle
-+ * Copyright (C) 2002 Maciej W. Rozycki
- */
- #ifndef _ASM_MC146818RTC_H
- #define _ASM_MC146818RTC_H
-
-+#include <linux/config.h>
-+
- #include <asm/io.h>
-
-
-@@ -27,8 +30,11 @@
- extern struct rtc_ops *rtc_ops;
-
- /*
-- * The yet supported machines all access the RTC index register via
-- * an ISA port access but the way to access the date register differs ...
-+ * Most supported machines access the RTC index register via an ISA
-+ * port access but the way to access the date register differs ...
-+ * The DECstation directly maps the RTC memory in the CPU's address
-+ * space with the chipset generating necessary index write/data access
-+ * cycles automagically.
- */
- #define CMOS_READ(addr) ({ \
- rtc_ops->rtc_read_data(addr); \
-@@ -40,7 +46,15 @@
- rtc_ops->rtc_bcd_mode()
-
-
-+#ifdef CONFIG_DECSTATION
-+
-+#include <asm/dec/rtc-dec.h>
-+
-+#else
-+
- #define RTC_PORT(x) (0x70 + (x))
- #define RTC_IRQ 8
-
-+#endif
-+
- #endif /* _ASM_MC146818RTC_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Entries
---- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Entries 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1,15 @@
-+/atlas.h/1.1.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/atlasint.h/1.1.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/bonito64.h/1.1.2.4/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/generic.h/1.1.2.1/Wed May 8 03:05:01 2002/-ko/Tlinux_2_4_20
-+/gt64120.h/1.1.2.1/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/io.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
-+/malta.h/1.1.2.3/Wed Dec 11 14:25:15 2002/-ko/Tlinux_2_4_20
-+/maltaint.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
-+/msc01_pci.h/1.1.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/piix4.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
-+/prom.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
-+/saa9730_uart.h/1.1/Fri Apr 27 13:19:19 2001/-ko/Tlinux_2_4_20
-+/sead.h/1.1.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+/seadint.h/1.1.2.1/Wed Jul 24 13:51:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Repository
---- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Repository 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/mips-boards
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Root
---- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Root 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Tag
---- linux-2.4.20/include/asm-mips64/mips-boards/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/CVS/Tag 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mips-boards/malta.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/malta.h
---- linux-2.4.20/include/asm-mips64/mips-boards/malta.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mips-boards/malta.h 2002-12-11 08:25:15.000000000 -0600
-@@ -32,9 +32,23 @@
- * Malta I/O ports base address for the Galileo GT64120 and Algorithmics
- * Bonito system controllers.
- */
--#define MALTA_GT_PORT_BASE (KSEG1ADDR(0x18000000))
-+#define MALTA_GT_PORT_BASE get_gt_port_base(GT_PCI0IOLD_OFS)
- #define MALTA_BONITO_PORT_BASE (KSEG1ADDR(0x1fd00000))
--#define MALTA_MSC_PORT_BASE (KSEG1ADDR(0x18000000))
-+#define MALTA_MSC_PORT_BASE get_msc_port_base(MSC01_PCI_SC2PIOBASL)
-+
-+static inline unsigned long get_gt_port_base(unsigned long reg)
-+{
-+ unsigned long addr;
-+ GT_READ(reg, addr);
-+ return KSEG1ADDR((addr & 0xffff) << 21);
-+}
-+
-+static inline unsigned long get_msc_port_base(unsigned long reg)
-+{
-+ unsigned long addr;
-+ MSC_READ(reg, addr);
-+ return KSEG1ADDR(addr);
-+}
-
- /*
- * Malta RTC-device indirect register access.
-@@ -59,4 +73,6 @@
-
- #define SMSC_WRITE(x,a) outb(x,a)
-
-+#define MALTA_JMPRS_REG (KSEG1ADDR(0x1f000210))
-+
- #endif /* !(_MIPS_MALTA_H) */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mipsregs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mipsregs.h
---- linux-2.4.20/include/asm-mips64/mipsregs.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mipsregs.h 2003-01-28 08:31:33.000000000 -0600
-@@ -8,6 +8,7 @@
- * Modified for further R[236]000 support by Paul M. Antoine, 1996.
- * Kevin D. Kissell, kevink@mips.com and Carsten Langgaard, carstenl@mips.com
- * Copyright (C) 2000 MIPS Technologies, Inc. All rights reserved.
-+ * Copyright (C) 2003 Maciej W. Rozycki
- */
- #ifndef _ASM_MIPSREGS_H
- #define _ASM_MIPSREGS_H
-@@ -27,6 +28,15 @@
- #endif
-
- /*
-+ * Configure language
-+ */
-+#ifdef __ASSEMBLY__
-+#define _ULCAST_
-+#else
-+#define _ULCAST_ (unsigned long)
-+#endif
-+
-+/*
- * Coprocessor 0 register names
- */
- #define CP0_INDEX $0
-@@ -190,26 +200,26 @@
- /*
- * R4x00 interrupt enable / cause bits
- */
--#define IE_SW0 (1<< 8)
--#define IE_SW1 (1<< 9)
--#define IE_IRQ0 (1<<10)
--#define IE_IRQ1 (1<<11)
--#define IE_IRQ2 (1<<12)
--#define IE_IRQ3 (1<<13)
--#define IE_IRQ4 (1<<14)
--#define IE_IRQ5 (1<<15)
-+#define IE_SW0 (_ULCAST_(1) << 8)
-+#define IE_SW1 (_ULCAST_(1) << 9)
-+#define IE_IRQ0 (_ULCAST_(1) << 10)
-+#define IE_IRQ1 (_ULCAST_(1) << 11)
-+#define IE_IRQ2 (_ULCAST_(1) << 12)
-+#define IE_IRQ3 (_ULCAST_(1) << 13)
-+#define IE_IRQ4 (_ULCAST_(1) << 14)
-+#define IE_IRQ5 (_ULCAST_(1) << 15)
-
- /*
- * R4x00 interrupt cause bits
- */
--#define C_SW0 (1<< 8)
--#define C_SW1 (1<< 9)
--#define C_IRQ0 (1<<10)
--#define C_IRQ1 (1<<11)
--#define C_IRQ2 (1<<12)
--#define C_IRQ3 (1<<13)
--#define C_IRQ4 (1<<14)
--#define C_IRQ5 (1<<15)
-+#define C_SW0 (_ULCAST_(1) << 8)
-+#define C_SW1 (_ULCAST_(1) << 9)
-+#define C_IRQ0 (_ULCAST_(1) << 10)
-+#define C_IRQ1 (_ULCAST_(1) << 11)
-+#define C_IRQ2 (_ULCAST_(1) << 12)
-+#define C_IRQ3 (_ULCAST_(1) << 13)
-+#define C_IRQ4 (_ULCAST_(1) << 14)
-+#define C_IRQ5 (_ULCAST_(1) << 15)
-
- /*
- * Bitfields in the R4xx0 cp0 status register
-@@ -244,9 +254,9 @@
- /*
- * Bits specific to the R4640/R4650
- */
--#define ST0_UM (1 << 4)
--#define ST0_IL (1 << 23)
--#define ST0_DL (1 << 24)
-+#define ST0_UM (_ULCAST_(1) << 4)
-+#define ST0_IL (_ULCAST_(1) << 23)
-+#define ST0_DL (_ULCAST_(1) << 24)
-
- /*
- * Bitfields in the TX39 family CP0 Configuration Register 3
-@@ -286,37 +296,37 @@
- */
- #define ST0_IM 0x0000ff00
- #define STATUSB_IP0 8
--#define STATUSF_IP0 (1 << 8)
-+#define STATUSF_IP0 (_ULCAST_(1) << 8)
- #define STATUSB_IP1 9
--#define STATUSF_IP1 (1 << 9)
-+#define STATUSF_IP1 (_ULCAST_(1) << 9)
- #define STATUSB_IP2 10
--#define STATUSF_IP2 (1 << 10)
-+#define STATUSF_IP2 (_ULCAST_(1) << 10)
- #define STATUSB_IP3 11
--#define STATUSF_IP3 (1 << 11)
-+#define STATUSF_IP3 (_ULCAST_(1) << 11)
- #define STATUSB_IP4 12
--#define STATUSF_IP4 (1 << 12)
-+#define STATUSF_IP4 (_ULCAST_(1) << 12)
- #define STATUSB_IP5 13
--#define STATUSF_IP5 (1 << 13)
-+#define STATUSF_IP5 (_ULCAST_(1) << 13)
- #define STATUSB_IP6 14
--#define STATUSF_IP6 (1 << 14)
-+#define STATUSF_IP6 (_ULCAST_(1) << 14)
- #define STATUSB_IP7 15
--#define STATUSF_IP7 (1 << 15)
-+#define STATUSF_IP7 (_ULCAST_(1) << 15)
- #define STATUSB_IP8 0
--#define STATUSF_IP8 (1 << 0)
-+#define STATUSF_IP8 (_ULCAST_(1) << 0)
- #define STATUSB_IP9 1
--#define STATUSF_IP9 (1 << 1)
-+#define STATUSF_IP9 (_ULCAST_(1) << 1)
- #define STATUSB_IP10 2
--#define STATUSF_IP10 (1 << 2)
-+#define STATUSF_IP10 (_ULCAST_(1) << 2)
- #define STATUSB_IP11 3
--#define STATUSF_IP11 (1 << 3)
-+#define STATUSF_IP11 (_ULCAST_(1) << 3)
- #define STATUSB_IP12 4
--#define STATUSF_IP12 (1 << 4)
-+#define STATUSF_IP12 (_ULCAST_(1) << 4)
- #define STATUSB_IP13 5
--#define STATUSF_IP13 (1 << 5)
-+#define STATUSF_IP13 (_ULCAST_(1) << 5)
- #define STATUSB_IP14 6
--#define STATUSF_IP14 (1 << 6)
-+#define STATUSF_IP14 (_ULCAST_(1) << 6)
- #define STATUSB_IP15 7
--#define STATUSF_IP15 (1 << 7)
-+#define STATUSF_IP15 (_ULCAST_(1) << 7)
- #define ST0_CH 0x00040000
- #define ST0_SR 0x00100000
- #define ST0_TS 0x00200000
-@@ -336,31 +346,31 @@
- * Refer to your MIPS R4xx0 manual, chapter 5 for explanation.
- */
- #define CAUSEB_EXCCODE 2
--#define CAUSEF_EXCCODE (31 << 2)
-+#define CAUSEF_EXCCODE (_ULCAST_(31) << 2)
- #define CAUSEB_IP 8
--#define CAUSEF_IP (255 << 8)
-+#define CAUSEF_IP (_ULCAST_(255) << 8)
- #define CAUSEB_IP0 8
--#define CAUSEF_IP0 (1 << 8)
-+#define CAUSEF_IP0 (_ULCAST_(1) << 8)
- #define CAUSEB_IP1 9
--#define CAUSEF_IP1 (1 << 9)
-+#define CAUSEF_IP1 (_ULCAST_(1) << 9)
- #define CAUSEB_IP2 10
--#define CAUSEF_IP2 (1 << 10)
-+#define CAUSEF_IP2 (_ULCAST_(1) << 10)
- #define CAUSEB_IP3 11
--#define CAUSEF_IP3 (1 << 11)
-+#define CAUSEF_IP3 (_ULCAST_(1) << 11)
- #define CAUSEB_IP4 12
--#define CAUSEF_IP4 (1 << 12)
-+#define CAUSEF_IP4 (_ULCAST_(1) << 12)
- #define CAUSEB_IP5 13
--#define CAUSEF_IP5 (1 << 13)
-+#define CAUSEF_IP5 (_ULCAST_(1) << 13)
- #define CAUSEB_IP6 14
--#define CAUSEF_IP6 (1 << 14)
-+#define CAUSEF_IP6 (_ULCAST_(1) << 14)
- #define CAUSEB_IP7 15
--#define CAUSEF_IP7 (1 << 15)
-+#define CAUSEF_IP7 (_ULCAST_(1) << 15)
- #define CAUSEB_IV 23
--#define CAUSEF_IV (1 << 23)
-+#define CAUSEF_IV (_ULCAST_(1) << 23)
- #define CAUSEB_CE 28
--#define CAUSEF_CE (3 << 28)
-+#define CAUSEF_CE (_ULCAST_(3) << 28)
- #define CAUSEB_BD 31
--#define CAUSEF_BD (1 << 31)
-+#define CAUSEF_BD (_ULCAST_(1) << 31)
-
- /*
- * Bits in the coprozessor 0 config register.
-@@ -374,21 +384,21 @@
- #define CONF_CM_CACHABLE_CUW 6
- #define CONF_CM_CACHABLE_ACCELERATED 7
- #define CONF_CM_CMASK 7
--#define CONF_CU (1 << 3)
--#define CONF_DB (1 << 4)
--#define CONF_IB (1 << 5)
--#define CONF_SE (1 << 12)
--#define CONF_SC (1 << 17)
--#define CONF_AC (1 << 23)
--#define CONF_HALT (1 << 25)
-+#define CONF_CU (_ULCAST_(1) << 3)
-+#define CONF_DB (_ULCAST_(1) << 4)
-+#define CONF_IB (_ULCAST_(1) << 5)
-+#define CONF_SE (_ULCAST_(1) << 12)
-+#define CONF_SC (_ULCAST_(1) << 17)
-+#define CONF_AC (_ULCAST_(1) << 23)
-+#define CONF_HALT (_ULCAST_(1) << 25)
-
- /*
- * Bits in the TX49 coprozessor 0 config register.
- */
--#define TX49_CONF_DC (1 << 16)
--#define TX49_CONF_IC (1 << 17) /* conflict with CONF_SC */
--#define TX49_CONF_HALT (1 << 18)
--#define TX49_CONF_CWFON (1 << 27)
-+#define TX49_CONF_DC (_ULCAST_(1) << 16)
-+#define TX49_CONF_IC (_ULCAST_(1) << 17) /* conflict with CONF_SC */
-+#define TX49_CONF_HALT (_ULCAST_(1) << 18)
-+#define TX49_CONF_CWFON (_ULCAST_(1) << 27)
-
- /*
- * R10000 performance counter definitions.
-@@ -478,447 +488,362 @@
- /*
- * Macros to access the system control coprocessor
- */
--#define read_32bit_cp0_register(source) \
--({ int __res; \
-- __asm__ __volatile__( \
-- "mfc0\t%0,"STR(source) \
-- : "=r" (__res)); \
-- __res;})
-
--#define read_64bit_cp0_register(source) \
--({ unsigned long __res; \
-- __asm__ __volatile__( \
-- ".set\tmips3\n\t" \
-- "dmfc0\t%0,"STR(source)"\n\t" \
-- ".set\tmips0" \
-- : "=r" (__res)); \
-- __res;})
--
--#define write_32bit_cp0_register(register,value) \
-- __asm__ __volatile__( \
-- "mtc0\t%0,"STR(register) \
-- : : "r" (value));
-+#define __read_32bit_c0_register(source, sel) \
-+({ int __res; \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ "mfc0\t%0, " #source "\n\t" \
-+ : "=r" (__res)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips32\n\t" \
-+ "mfc0\t%0, " #source ", " #sel "\n\t" \
-+ ".set\tmips0\n\t" \
-+ : "=r" (__res)); \
-+ __res; \
-+})
-
--#define write_64bit_cp0_register(register,value) \
-- __asm__ __volatile__( \
-- ".set\tmips3\n\t" \
-- "dmtc0\t%0,"STR(register)"\n\t" \
-- ".set\tmips0" \
-- : : "r" (value))
-+#define __read_64bit_c0_register(source, sel) \
-+({ unsigned long __res; \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips3\n\t" \
-+ "dmfc0\t%0, " #source "\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (__res)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmfc0\t%0, " #source ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (__res)); \
-+ __res; \
-+})
-
--/*
-- * This should be changed when we get a compiler that support the MIPS32 ISA.
-- */
--#define read_mips32_cp0_config1() \
--({ int __res; \
-- __asm__ __volatile__( \
-- ".set\tnoreorder\n\t" \
-- ".set\tnoat\n\t" \
-- "#.set\tmips64\n\t" \
-- "#mfc0\t$1, $16, 1\n\t" \
-- "#.set\tmips0\n\t" \
-- ".word\t0x40018001\n\t" \
-- "move\t%0,$1\n\t" \
-- ".set\tat\n\t" \
-- ".set\treorder" \
-- :"=r" (__res)); \
-- __res;})
-+#define __write_32bit_c0_register(register, sel, value) \
-+do { \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ "mtc0\t%z0, " #register "\n\t" \
-+ : : "Jr" (value)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips32\n\t" \
-+ "mtc0\t%z0, " #register ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : : "Jr" (value)); \
-+} while (0)
-
--/*
-- * Macros to access the floating point coprocessor control registers
-- */
--#define read_32bit_cp1_register(source) \
--({ int __res; \
-- __asm__ __volatile__( \
-- ".set\tpush\n\t" \
-- ".set\treorder\n\t" \
-- "cfc1\t%0,"STR(source)"\n\t" \
-- ".set\tpop" \
-- : "=r" (__res)); \
-- __res;})
-+#define __write_64bit_c0_register(register, sel, value) \
-+do { \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips3\n\t" \
-+ "dmtc0\t%z0, " #register "\n\t" \
-+ ".set\tmips0" \
-+ : : "Jr" (value)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmtc0\t%z0, " #register ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : : "Jr" (value)); \
-+} while (0)
-
--/* TLB operations. */
--static inline void tlb_probe(void)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "tlbp\n\t"
-- ".set reorder");
--}
-+#define __read_ulong_c0_register(reg, sel) \
-+ ((sizeof(unsigned long) == 4) ? \
-+ __read_32bit_c0_register(reg, sel) : \
-+ __read_64bit_c0_register(reg, sel))
-
--static inline void tlb_read(void)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "tlbr\n\t"
-- ".set reorder");
--}
-+#define __write_ulong_c0_register(reg, sel, val) \
-+do { \
-+ if (sizeof(unsigned long) == 4) \
-+ __write_32bit_c0_register(reg, sel, val); \
-+ else \
-+ __write_64bit_c0_register(reg, sel, val); \
-+} while (0)
-
--static inline void tlb_write_indexed(void)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "tlbwi\n\t"
-- ".set reorder");
--}
-+/*
-+ * These versions are only needed for systems with more than 38 bits of
-+ * physical address space running the 32-bit kernel. That's none atm :-)
-+ */
-+#define __read_64bit_c0_split(source, sel) \
-+({ \
-+ unsigned long long val; \
-+ unsigned long flags; \
-+ \
-+ local_irq_save(flags); \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmfc0\t%M0, " #source "\n\t" \
-+ "dsll\t%L0, %M0, 32\n\t" \
-+ "dsrl\t%M0, %M0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (val)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dmfc0\t%M0, " #source ", " #sel "\n\t" \
-+ "dsll\t%L0, %M0, 32\n\t" \
-+ "dsrl\t%M0, %M0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ ".set\tmips0" \
-+ : "=r" (val)); \
-+ local_irq_restore(flags); \
-+ \
-+ val; \
-+})
-
--static inline void tlb_write_random(void)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "tlbwr\n\t"
-- ".set reorder");
--}
-+#define __write_64bit_c0_split(source, sel, val) \
-+do { \
-+ unsigned long flags; \
-+ \
-+ local_irq_save(flags); \
-+ if (sel == 0) \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dsll\t%L0, %L0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ "dsll\t%M0, %M0, 32\n\t" \
-+ "or\t%L0, %L0, %M0\n\t" \
-+ "dmtc0\t%L0, " #source "\n\t" \
-+ ".set\tmips0" \
-+ : : "r" (val)); \
-+ else \
-+ __asm__ __volatile__( \
-+ ".set\tmips64\n\t" \
-+ "dsll\t%L0, %L0, 32\n\t" \
-+ "dsrl\t%L0, %L0, 32\n\t" \
-+ "dsll\t%M0, %M0, 32\n\t" \
-+ "or\t%L0, %L0, %M0\n\t" \
-+ "dmtc0\t%L0, " #source ", " #sel "\n\t" \
-+ ".set\tmips0" \
-+ : : "r" (val)); \
-+ local_irq_restore(flags); \
-+} while (0)
-
--/* Dealing with various CP0 mmu/cache related registers. */
-+#define read_c0_index() __read_32bit_c0_register($0, 0)
-+#define write_c0_index(val) __write_32bit_c0_register($0, 0, val)
-
--/* CP0_PAGEMASK register */
--static inline unsigned long get_pagemask(void)
--{
-- unsigned long val;
-+#define read_c0_entrylo0() __read_ulong_c0_register($2, 0)
-+#define write_c0_entrylo0(val) __write_ulong_c0_register($2, 0, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $5\n\t"
-- ".set reorder"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_entrylo1() __read_ulong_c0_register($3, 0)
-+#define write_c0_entrylo1(val) __write_ulong_c0_register($3, 0, val)
-
--static inline void set_pagemask(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mtc0 %z0, $5\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_conf() __read_32bit_c0_register($3, 0)
-+#define write_c0_conf(val) __write_32bit_c0_register($3, 0, val)
-
--/* CP0_ENTRYLO0 and CP0_ENTRYLO1 registers */
--static inline unsigned long get_entrylo0(void)
--{
-- unsigned long val;
-+#define read_c0_context() __read_ulong_c0_register($4, 0)
-+#define write_c0_context(val) __write_ulong_c0_register($4, 0, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "dmfc0 %0, $2\n\t"
-- ".set reorder"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_pagemask() __read_32bit_c0_register($5, 0)
-+#define write_c0_pagemask(val) __write_32bit_c0_register($5, 0, val)
-
--static inline void set_entrylo0(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "dmtc0 %z0, $2\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_wired() __read_32bit_c0_register($6, 0)
-+#define write_c0_wired(val) __write_32bit_c0_register($6, 0, val)
-
--static inline unsigned long get_entrylo1(void)
--{
-- unsigned long val;
-+#define read_c0_info() __read_32bit_c0_register($7, 0)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "dmfc0 %0, $3\n\t"
-- ".set reorder" : "=r" (val));
-+#define read_c0_cache() __read_32bit_c0_register($7, 0) /* TX39xx */
-+#define write_c0_cache(val) __write_32bit_c0_register($7, 0, val)
-
-- return val;
--}
-+#define read_c0_count() __read_32bit_c0_register($9, 0)
-+#define write_c0_count(val) __write_32bit_c0_register($9, 0, val)
-
--static inline void set_entrylo1(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "dmtc0 %z0, $3\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_entryhi() __read_ulong_c0_register($10, 0)
-+#define write_c0_entryhi(val) __write_ulong_c0_register($10, 0, val)
-
--/* CP0_ENTRYHI register */
--static inline unsigned long get_entryhi(void)
--{
-- unsigned long val;
-+#define read_c0_compare() __read_32bit_c0_register($11, 0)
-+#define write_c0_compare(val) __write_32bit_c0_register($11, 0, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "dmfc0 %0, $10\n\t"
-- ".set reorder"
-- : "=r" (val));
-+#define read_c0_status() __read_32bit_c0_register($12, 0)
-+#define write_c0_status(val) __write_32bit_c0_register($12, 0, val)
-
-- return val;
--}
-+#define read_c0_cause() __read_32bit_c0_register($13, 0)
-+#define write_c0_cause(val) __write_32bit_c0_register($13, 0, val)
-
--static inline void set_entryhi(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "dmtc0 %z0, $10\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_prid() __read_32bit_c0_register($15, 0)
-
--/* CP0_INDEX register */
--static inline unsigned int get_index(void)
--{
-- unsigned long val;
-+#define read_c0_config() __read_32bit_c0_register($16, 0)
-+#define read_c0_config1() __read_32bit_c0_register($16, 1)
-+#define read_c0_config2() __read_32bit_c0_register($16, 2)
-+#define read_c0_config3() __read_32bit_c0_register($16, 3)
-+#define write_c0_config(val) __write_32bit_c0_register($16, 0, val)
-+#define write_c0_config1(val) __write_32bit_c0_register($16, 1, val)
-+#define write_c0_config2(val) __write_32bit_c0_register($16, 2, val)
-+#define write_c0_config3(val) __write_32bit_c0_register($16, 3, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $0\n\t"
-- ".set reorder"
-- : "=r" (val));
-- return val;
--}
-+/*
-+ * The WatchLo register. There may be upto 8 of them.
-+ */
-+#define read_c0_watchlo0() __read_ulong_c0_register($18, 0)
-+#define read_c0_watchlo1() __read_ulong_c0_register($18, 1)
-+#define read_c0_watchlo2() __read_ulong_c0_register($18, 2)
-+#define read_c0_watchlo3() __read_ulong_c0_register($18, 3)
-+#define read_c0_watchlo4() __read_ulong_c0_register($18, 4)
-+#define read_c0_watchlo5() __read_ulong_c0_register($18, 5)
-+#define read_c0_watchlo6() __read_ulong_c0_register($18, 6)
-+#define read_c0_watchlo7() __read_ulong_c0_register($18, 7)
-+#define write_c0_watchlo0(val) __write_ulong_c0_register($18, 0, val)
-+#define write_c0_watchlo1(val) __write_ulong_c0_register($18, 1, val)
-+#define write_c0_watchlo2(val) __write_ulong_c0_register($18, 2, val)
-+#define write_c0_watchlo3(val) __write_ulong_c0_register($18, 3, val)
-+#define write_c0_watchlo4(val) __write_ulong_c0_register($18, 4, val)
-+#define write_c0_watchlo5(val) __write_ulong_c0_register($18, 5, val)
-+#define write_c0_watchlo6(val) __write_ulong_c0_register($18, 6, val)
-+#define write_c0_watchlo7(val) __write_ulong_c0_register($18, 7, val)
-
--static inline void set_index(unsigned int val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mtc0 %z0, $0\n\t"
-- ".set reorder\n\t"
-- : : "Jr" (val));
--}
-+/*
-+ * The WatchHi register. There may be upto 8 of them.
-+ */
-+#define read_c0_watchhi0() __read_32bit_c0_register($19, 0)
-+#define read_c0_watchhi1() __read_32bit_c0_register($19, 1)
-+#define read_c0_watchhi2() __read_32bit_c0_register($19, 2)
-+#define read_c0_watchhi3() __read_32bit_c0_register($19, 3)
-+#define read_c0_watchhi4() __read_32bit_c0_register($19, 4)
-+#define read_c0_watchhi5() __read_32bit_c0_register($19, 5)
-+#define read_c0_watchhi6() __read_32bit_c0_register($19, 6)
-+#define read_c0_watchhi7() __read_32bit_c0_register($19, 7)
-
--/* CP0_WIRED register */
--static inline unsigned long get_wired(void)
--{
-- unsigned long val;
-+#define write_c0_watchhi0(val) __write_32bit_c0_register($19, 0, val)
-+#define write_c0_watchhi1(val) __write_32bit_c0_register($19, 1, val)
-+#define write_c0_watchhi2(val) __write_32bit_c0_register($19, 2, val)
-+#define write_c0_watchhi3(val) __write_32bit_c0_register($19, 3, val)
-+#define write_c0_watchhi4(val) __write_32bit_c0_register($19, 4, val)
-+#define write_c0_watchhi5(val) __write_32bit_c0_register($19, 5, val)
-+#define write_c0_watchhi6(val) __write_32bit_c0_register($19, 6, val)
-+#define write_c0_watchhi7(val) __write_32bit_c0_register($19, 7, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $6\n\t"
-- ".set reorder\n\t"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_xcontext() __read_ulong_c0_register($20, 0)
-+#define write_c0_xcontext(val) __write_ulong_c0_register($20, 0, val)
-
--static inline void set_wired(unsigned long val)
--{
-- __asm__ __volatile__(
-- "\n\t.set noreorder\n\t"
-- "mtc0 %z0, $6\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_intcontrol() __read_32bit_c0_register($20, 1)
-+#define write_c0_intcontrol(val) __write_32bit_c0_register($20, 1, val)
-
--static inline unsigned long get_info(void)
--{
-- unsigned long val;
-+#define read_c0_framemask() __read_32bit_c0_register($21, 0)
-+#define write_c0_framemask(val) __write_32bit_c0_register($21, 0, val)
-
-- __asm__(".set push\n\t"
-- ".set reorder\n\t"
-- "mfc0 %0, $7\n\t"
-- ".set pop"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_debug() __read_32bit_c0_register($23, 0)
-+#define write_c0_debug(val) __write_32bit_c0_register($23, 0, val)
-
--/* CP0_STATUS registers */
--static inline unsigned long get_status(void)
--{
-- unsigned long val;
-+#define read_c0_depc() __read_ulong_c0_register($24, 0)
-+#define write_c0_depc(val) __write_ulong_c0_register($24, 0, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $12\n\t"
-- ".set reorder"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_ecc() __read_32bit_c0_register($26, 0)
-+#define write_c0_ecc(val) __write_32bit_c0_register($26, 0, val)
-
--static inline void set_status(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mtc0 %z0, $12\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_derraddr0() __read_ulong_c0_register($26, 1)
-+#define write_c0_derraddr0(val) __write_ulong_c0_register($26, 1, val)
-
--/* CP0_TAGLO and CP0_TAGHI registers */
--static inline unsigned long get_taglo(void)
--{
-- unsigned long val;
-+#define read_c0_cacheerr() __read_32bit_c0_register($27, 0)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $28\n\t"
-- ".set reorder"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_derraddr1() __read_ulong_c0_register($27, 1)
-+#define write_c0_derraddr1(val) __write_ulong_c0_register($27, 1, val)
-
--static inline void set_taglo(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mtc0 %z0, $28\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+#define read_c0_taglo() __read_32bit_c0_register($28, 0)
-+#define write_c0_taglo(val) __write_32bit_c0_register($28, 0, val)
-
--static inline unsigned long get_taghi(void)
--{
-- unsigned long val;
-+#define read_c0_taghi() __read_32bit_c0_register($29, 0)
-+#define write_c0_taghi(val) __write_32bit_c0_register($29, 0, val)
-
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $29\n\t"
-- ".set reorder"
-- : "=r" (val));
-- return val;
--}
-+#define read_c0_errorepc() __read_ulong_c0_register($30, 0)
-+#define write_c0_errorepc(val) __write_ulong_c0_register($30, 0, val)
-
--static inline void set_taghi(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mtc0 %z0, $29\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
-+/*
-+ * Macros to access the floating point coprocessor control registers
-+ */
-+#define read_32bit_cp1_register(source) \
-+({ int __res; \
-+ __asm__ __volatile__( \
-+ ".set\tpush\n\t" \
-+ ".set\treorder\n\t" \
-+ "cfc1\t%0,"STR(source)"\n\t" \
-+ ".set\tpop" \
-+ : "=r" (__res)); \
-+ __res;})
-
--static inline unsigned long get_context(void)
-+/* TLB operations. */
-+static inline void tlb_probe(void)
- {
-- unsigned long val;
--
- __asm__ __volatile__(
- ".set noreorder\n\t"
-- "dmfc0 %0, $4\n\t"
-- ".set reorder"
-- : "=r" (val));
--
-- return val;
-+ "tlbp\n\t"
-+ ".set reorder");
- }
-
--static inline void set_context(unsigned long val)
-+static inline void tlb_read(void)
- {
- __asm__ __volatile__(
- ".set noreorder\n\t"
-- "dmtc0 %z0, $4\n\t"
-- ".set reorder"
-- : : "Jr" (val));
-+ "tlbr\n\t"
-+ ".set reorder");
- }
-
--static inline unsigned long get_xcontext(void)
-+static inline void tlb_write_indexed(void)
- {
-- unsigned long val;
--
- __asm__ __volatile__(
- ".set noreorder\n\t"
-- "dmfc0 %0, $20\n\t"
-- ".set reorder"
-- : "=r" (val));
--
-- return val;
-+ "tlbwi\n\t"
-+ ".set reorder");
- }
-
--static inline void set_xcontext(unsigned long val)
-+static inline void tlb_write_random(void)
- {
- __asm__ __volatile__(
- ".set noreorder\n\t"
-- "dmtc0 %z0, $20\n\t"
-- ".set reorder"
-- : : "Jr" (val));
--}
--
--static inline unsigned long get_errorepc(void)
--{
-- unsigned long val;
--
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "dmfc0 %0, $30\n\t"
-- ".set pop"
-- : "=r" (val));
--
-- return val;
--}
--
--static inline void set_errorepc(unsigned long val)
--{
-- __asm__ __volatile__(
-- ".set push\n\t"
-- ".set reorder\n\t"
-- "dmtc0 %z0, $30\n\t"
-- ".set pop"
-- : : "Jr" (val));
-+ "tlbwr\n\t"
-+ ".set reorder");
- }
-
- /*
-- * Manipulate the status register.
-- * Mostly used to access the interrupt bits.
-+ * Manipulate bits in a c0 register.
- */
--#define __BUILD_SET_CP0(name,register) \
-+#define __BUILD_SET_C0(name,register) \
- static inline unsigned int \
--set_cp0_##name(unsigned int set) \
-+set_c0_##name(unsigned int set) \
- { \
- unsigned int res; \
- \
-- res = read_32bit_cp0_register(register); \
-+ res = read_c0_##name(); \
- res |= set; \
-- write_32bit_cp0_register(register, res); \
-+ write_c0_##name(res); \
- \
- return res; \
- } \
- \
- static inline unsigned int \
--clear_cp0_##name(unsigned int clear) \
-+clear_c0_##name(unsigned int clear) \
- { \
- unsigned int res; \
- \
-- res = read_32bit_cp0_register(register); \
-+ res = read_c0_##name(); \
- res &= ~clear; \
-- write_32bit_cp0_register(register, res); \
-+ write_c0_##name(res); \
- \
- return res; \
- } \
- \
- static inline unsigned int \
--change_cp0_##name(unsigned int change, unsigned int new) \
-+change_c0_##name(unsigned int change, unsigned int new) \
- { \
- unsigned int res; \
- \
-- res = read_32bit_cp0_register(register); \
-+ res = read_c0_##name(); \
- res &= ~change; \
- res |= (new & change); \
-- if (change) \
-- write_32bit_cp0_register(register, res); \
-+ write_c0_##name(res); \
- \
- return res; \
- }
-
--__BUILD_SET_CP0(status,CP0_STATUS)
--__BUILD_SET_CP0(cause,CP0_CAUSE)
--__BUILD_SET_CP0(config,CP0_CONFIG)
--
--#define __enable_fpu() \
--do { \
-- set_cp0_status(ST0_CU1); \
-- asm("nop;nop;nop;nop"); /* max. hazard */ \
--} while (0)
--
--#define __disable_fpu() \
--do { \
-- clear_cp0_status(ST0_CU1); \
-- /* We don't care about the cp0 hazard here */ \
--} while (0)
--
--#define enable_fpu() \
--do { \
-- if (mips_cpu.options & MIPS_CPU_FPU) \
-- __enable_fpu(); \
--} while (0)
-+__BUILD_SET_C0(status,CP0_STATUS)
-+__BUILD_SET_C0(cause,CP0_CAUSE)
-+__BUILD_SET_C0(config,CP0_CONFIG)
-
--#define disable_fpu() \
--do { \
-- if (mips_cpu.options & MIPS_CPU_FPU) \
-- __disable_fpu(); \
--} while (0)
- #endif /* !__ASSEMBLY__ */
-
- #endif /* _ASM_MIPSREGS_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mmu_context.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu_context.h
---- linux-2.4.20/include/asm-mips64/mmu_context.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu_context.h 2003-02-14 05:04:04.000000000 -0600
-@@ -27,16 +27,13 @@
- #define TLBMISS_HANDLER_SETUP_PGD(pgd) \
- pgd_current[smp_processor_id()] = (unsigned long)(pgd)
- #define TLBMISS_HANDLER_SETUP() \
-- set_context(((long)(&pgd_current[smp_processor_id()])) << 23); \
-+ write_c0_context(((long)(&pgd_current[smp_processor_id()])) << 23); \
- TLBMISS_HANDLER_SETUP_PGD(swapper_pg_dir)
- extern unsigned long pgd_current[];
-
--#ifndef CONFIG_SMP
--#define CPU_CONTEXT(cpu, mm) (mm)->context
--#else
--#define CPU_CONTEXT(cpu, mm) (*((unsigned long *)((mm)->context) + cpu))
--#endif
--#define ASID_CACHE(cpu) cpu_data[cpu].asid_cache
-+#define cpu_context(cpu, mm) ((mm)->context[cpu])
-+#define cpu_asid(cpu, mm) (cpu_context((cpu), (mm)) & ASID_MASK)
-+#define asid_cache(cpu) (cpu_data[cpu].asid_cache)
-
- #define ASID_INC 0x1
- #define ASID_MASK 0xff
-@@ -55,7 +52,7 @@
- static inline void
- get_new_mmu_context(struct mm_struct *mm, unsigned long cpu)
- {
-- unsigned long asid = ASID_CACHE(cpu);
-+ unsigned long asid = asid_cache(cpu);
-
- if (! ((asid += ASID_INC) & ASID_MASK) ) {
- flush_icache_all();
-@@ -63,7 +60,7 @@
- if (!asid) /* fix version if needed */
- asid = ASID_FIRST_VERSION;
- }
-- CPU_CONTEXT(cpu, mm) = ASID_CACHE(cpu) = asid;
-+ cpu_context(cpu, mm) = asid_cache(cpu) = asid;
- }
-
- /*
-@@ -73,31 +70,35 @@
- static inline int
- init_new_context(struct task_struct *tsk, struct mm_struct *mm)
- {
--#ifndef CONFIG_SMP
-- mm->context = 0;
--#else
-- mm->context = (unsigned long)kmalloc(smp_num_cpus *
-- sizeof(unsigned long), GFP_KERNEL);
-- /*
-- * Init the "context" values so that a tlbpid allocation
-- * happens on the first switch.
-- */
-- if (mm->context == 0)
-- return -ENOMEM;
-- memset((void *)mm->context, 0, smp_num_cpus * sizeof(unsigned long));
--#endif
-+ int i;
-+
-+ for (i = 0; i < smp_num_cpus; i++)
-+ cpu_context(i, mm) = 0;
- return 0;
- }
-
- static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
- struct task_struct *tsk, unsigned cpu)
- {
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
- /* Check if our ASID is of an older version and thus invalid */
-- if ((CPU_CONTEXT(cpu, next) ^ ASID_CACHE(cpu)) & ASID_VERSION_MASK)
-+ if ((cpu_context(cpu, next) ^ asid_cache(cpu)) & ASID_VERSION_MASK)
- get_new_mmu_context(next, cpu);
-
-- set_entryhi(CPU_CONTEXT(cpu, next));
-+ write_c0_entryhi(cpu_context(cpu, next));
- TLBMISS_HANDLER_SETUP_PGD(next->pgd);
-+
-+ /*
-+ * Mark current->active_mm as not "active" anymore.
-+ * We don't want to mislead possible IPI tlb flush routines.
-+ */
-+ clear_bit(cpu, &prev->cpu_vm_mask);
-+ set_bit(cpu, &next->cpu_vm_mask);
-+
-+ local_irq_restore(flags);
- }
-
- /*
-@@ -106,10 +107,6 @@
- */
- static inline void destroy_context(struct mm_struct *mm)
- {
--#ifdef CONFIG_SMP
-- if (mm->context)
-- kfree((void *)mm->context);
--#endif
- }
-
- /*
-@@ -119,11 +116,39 @@
- static inline void
- activate_mm(struct mm_struct *prev, struct mm_struct *next)
- {
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
- /* Unconditionally get a new ASID. */
- get_new_mmu_context(next, smp_processor_id());
-
-- set_entryhi(CPU_CONTEXT(smp_processor_id(), next));
-+ write_c0_entryhi(cpu_context(smp_processor_id(), next));
- TLBMISS_HANDLER_SETUP_PGD(next->pgd);
-+
-+ local_irq_restore(flags);
-+}
-+
-+/*
-+ * If mm is currently active_mm, we can't really drop it. Instead,
-+ * we will get a new one for it.
-+ */
-+static inline void
-+drop_mmu_context(struct mm_struct *mm, unsigned cpu)
-+{
-+ unsigned long flags;
-+
-+ local_irq_save(flags);
-+
-+ if (test_bit(cpu, &mm->cpu_vm_mask)) {
-+ get_new_mmu_context(mm, cpu);
-+ write_c0_entryhi(cpu_asid(cpu, mm));
-+ } else {
-+ /* will get a new context next time */
-+ cpu_context(cpu, mm) = 0;
-+ }
-+
-+ local_irq_restore(flags);
- }
-
- #endif /* _ASM_MMU_CONTEXT_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/mmu.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu.h
---- linux-2.4.20/include/asm-mips64/mmu.h 2000-12-29 16:07:23.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/mmu.h 2003-01-16 22:23:41.000000000 -0600
-@@ -1,7 +1,6 @@
--#ifndef __MMU_H
--#define __MMU_H
-+#ifndef __ASM_MMU_H
-+#define __ASM_MMU_H
-
--/* Default "unsigned long" context */
--typedef unsigned long mm_context_t;
-+typedef unsigned long mm_context_t[NR_CPUS];
-
--#endif
-+#endif /* __ASM_MMU_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/module.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/module.h
---- linux-2.4.20/include/asm-mips64/module.h 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/module.h 2002-11-06 19:47:46.000000000 -0600
-@@ -56,8 +56,8 @@
- extern const struct exception_table_entry __start___dbe_table[];
- extern const struct exception_table_entry __stop___dbe_table[];
- static struct archdata archdata = {
-- dbe_table_start: __start___dbe_table,
-- dbe_table_end: __stop___dbe_table,
-+ .dbe_table_start = __start___dbe_table,
-+ .dbe_table_end = __stop___dbe_table,
- };
-
- mod->archdata_start = (char *)&archdata;
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/page.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/page.h
---- linux-2.4.20/include/asm-mips64/page.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/page.h 2003-01-20 14:21:43.000000000 -0600
-@@ -32,10 +32,28 @@
-
- extern void (*_clear_page)(void * page);
- extern void (*_copy_page)(void * to, void * from);
-+
- extern void mips64_clear_page_dc(unsigned long page);
- extern void mips64_clear_page_sc(unsigned long page);
-+void r4k_clear_page_d16(void * page);
-+void r4k_clear_page_d32(void * page);
-+void r4k_clear_page_r4600_v1(void * page);
-+void r4k_clear_page_r4600_v2(void * page);
-+void r4k_clear_page_s16(void * page);
-+void r4k_clear_page_s32(void * page);
-+void r4k_clear_page_s64(void * page);
-+void r4k_clear_page_s128(void * page);
-+
- extern void mips64_copy_page_dc(unsigned long to, unsigned long from);
- extern void mips64_copy_page_sc(unsigned long to, unsigned long from);
-+void r4k_copy_page_d16(void * to, void * from);
-+void r4k_copy_page_d32(void * to, void * from);
-+void r4k_copy_page_r4600_v1(void * to, void * from);
-+void r4k_copy_page_r4600_v2(void * to, void * from);
-+void r4k_copy_page_s16(void * to, void * from);
-+void r4k_copy_page_s32(void * to, void * from);
-+void r4k_copy_page_s64(void * to, void * from);
-+void r4k_copy_page_s128(void * to, void * from);
-
- #define clear_page(page) _clear_page(page)
- #define copy_page(to, from) _copy_page(to, from)
-@@ -87,7 +105,8 @@
- * at XKPHYS with a suitable caching mode for kernels with more than that.
- */
- #if defined(CONFIG_SGI_IP22) || defined(CONFIG_MIPS_ATLAS) || \
-- defined(CONFIG_MIPS_MALTA)
-+ defined(CONFIG_MIPS_MALTA) || defined(CONFIG_MIPS_SEAD) || \
-+ defined(CONFIG_DECSTATION)
- #define PAGE_OFFSET 0xffffffff80000000UL
- #define UNCAC_BASE 0xffffffffa0000000UL
- #endif
-@@ -97,7 +116,7 @@
- #endif
- #if defined(CONFIG_SGI_IP27)
- #define PAGE_OFFSET 0xa800000000000000UL
--#define UNCAC_BASE 0x9000000000000000UL
-+#define UNCAC_BASE 0x9600000000000000UL
- #endif
- #if defined(CONFIG_SIBYTE_SB1250)
- #define PAGE_OFFSET 0xa800000000000000UL
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/param.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/param.h
---- linux-2.4.20/include/asm-mips64/param.h 2000-11-28 23:42:04.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/param.h 2003-01-20 14:21:43.000000000 -0600
-@@ -10,13 +10,56 @@
- #define _ASM_PARAM_H
-
- #ifndef HZ
--#define HZ 100
--# define HZ 100
-+
- #ifdef __KERNEL__
--# define hz_to_std(a) (a)
--#endif
-+
-+/* Safeguard against user stupidity */
-+#ifdef _SYS_PARAM_H
-+#error Do not include <asm/param.h> with __KERNEL__ defined!
- #endif
-
-+#include <linux/config.h>
-+
-+#ifdef CONFIG_DECSTATION
-+ /*
-+ * log2(HZ), change this here if you want another HZ value. This is also
-+ * used in dec_time_init. Minimum is 1, Maximum is 15.
-+ */
-+# define LOG_2_HZ 7
-+# define HZ (1 << LOG_2_HZ)
-+ /*
-+ * Ye olde division-by-multiplication trick.
-+ * This works only if 100 / HZ <= 1
-+ */
-+# define QUOTIENT ((1UL << (64 - LOG_2_HZ)) * 100)
-+# define hz_to_std(a) \
-+ ({ unsigned long __res; \
-+ unsigned long __lo; \
-+ __asm__("dmultu\t%2,%3\n\t" \
-+ :"=h" (__res), "=l" (__lo) \
-+ :"r" (a), "r" (QUOTIENT)); \
-+ (__typeof__(a)) __res;})
-+
-+#else /* Not a DECstation */
-+
-+/* This is the internal value of HZ, that is the rate at which the jiffies
-+ counter is increasing. This value is independent from the external value
-+ and can be changed in order to suit the hardware and application
-+ requirements. */
-+# define HZ 100
-+# define hz_to_std(a) (a)
-+
-+#endif /* Not a DECstation */
-+
-+#else /* defined(__KERNEL__) */
-+
-+/* This is the external value of HZ as seen by user programs. Don't change
-+ unless you know what you're doing - changing breaks binary compatibility. */
-+#define HZ 100
-+
-+#endif /* defined(__KERNEL__) */
-+#endif /* defined(HZ) */
-+
- #define EXEC_PAGESIZE 4096
-
- #ifndef NGROUPS
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Entries
---- linux-2.4.20/include/asm-mips64/pci/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Entries 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1,2 @@
-+/bridge.h/1.5.2.2/Mon Aug 5 23:53:39 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Repository
---- linux-2.4.20/include/asm-mips64/pci/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Repository 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/pci
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Root
---- linux-2.4.20/include/asm-mips64/pci/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Root 2005-01-06 23:06:53.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Tag
---- linux-2.4.20/include/asm-mips64/pci/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci/CVS/Tag 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/pci.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci.h
---- linux-2.4.20/include/asm-mips64/pci.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/pci.h 2002-10-01 06:14:37.000000000 -0500
-@@ -100,7 +100,7 @@
-
- dma_cache_wback_inv(addr, size);
-
-- return bus_to_baddr(hwdev->bus->number, __pa(ptr));
-+ return bus_to_baddr(hwdev->bus, __pa(ptr));
- }
-
- /*
-@@ -120,7 +120,7 @@
- if (direction != PCI_DMA_TODEVICE) {
- unsigned long addr;
-
-- addr = baddr_to_bus(hwdev, dma_addr) + PAGE_OFFSET;
-+ addr = baddr_to_bus(hwdev->bus, dma_addr) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, size);
- }
- }
-@@ -141,7 +141,7 @@
- addr = (unsigned long) page_address(page) + offset;
- dma_cache_wback_inv(addr, size);
-
-- return bus_to_baddr(hwdev, page_to_phys(page) + offset);
-+ return bus_to_baddr(hwdev->bus, page_to_phys(page) + offset);
- }
-
- static inline void pci_unmap_page(struct pci_dev *hwdev, dma_addr_t dma_address,
-@@ -153,7 +153,7 @@
- if (direction != PCI_DMA_TODEVICE) {
- unsigned long addr;
-
-- addr = baddr_to_bus(hwdev, dma_address) + PAGE_OFFSET;
-+ addr = baddr_to_bus(hwdev->bus, dma_address) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, size);
- }
- }
-@@ -199,10 +199,15 @@
- if (sg->address) {
- dma_cache_wback_inv((unsigned long)sg->address,
- sg->length);
-- sg->dma_address = bus_to_baddr(hwdev, __pa(sg->address));
-- } else
-+ sg->dma_address = bus_to_baddr(hwdev->bus,
-+ __pa(sg->address));
-+ } else {
- sg->dma_address = page_to_bus(sg->page) +
- sg->offset;
-+ dma_cache_wback_inv((unsigned long)
-+ (page_address(sg->page) + sg->offset),
-+ sg->length);
-+ }
- }
-
- return nents;
-@@ -255,7 +260,7 @@
- if (direction == PCI_DMA_NONE)
- out_of_line_bug();
-
-- addr = baddr_to_bus(hwdev, dma_handle) + PAGE_OFFSET;
-+ addr = baddr_to_bus(hwdev->bus, dma_handle) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, size);
- }
-
-@@ -313,13 +318,13 @@
- {
- dma64_addr_t addr = page_to_phys(page) + offset;
-
-- return (dma64_addr_t) bus_to_baddr(hwdev->bus->number, addr);
-+ return (dma64_addr_t) bus_to_baddr(pdev->bus, addr);
- }
-
- static inline struct page *pci_dac_dma_to_page(struct pci_dev *pdev,
- dma64_addr_t dma_addr)
- {
-- unsigned long poff = baddr_to_bus(hwdev, dma_addr) >> PAGE_SHIFT;
-+ unsigned long poff = baddr_to_bus(pdev->bus, dma_addr) >> PAGE_SHIFT;
-
- return mem_map + poff;
- }
-@@ -338,7 +343,7 @@
- if (direction == PCI_DMA_NONE)
- BUG();
-
-- addr = baddr_to_bus(hwdev->bus->number, dma_addr) + PAGE_OFFSET;
-+ addr = baddr_to_bus(pdev->bus, dma_addr) + PAGE_OFFSET;
- dma_cache_wback_inv(addr, len);
- }
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/processor.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/processor.h
---- linux-2.4.20/include/asm-mips64/processor.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/processor.h 2003-02-20 13:46:34.000000000 -0600
-@@ -71,10 +71,6 @@
- * XXX: Should go into mips_cpuinfo.
- */
- extern void (*cpu_wait)(void);
--extern void r3081_wait(void);
--extern void r39xx_wait(void);
--extern void r4k_wait(void);
--extern void au1k_wait(void);
-
- extern unsigned int vced_count, vcei_count;
- extern struct cpuinfo_mips cpu_data[];
-@@ -103,17 +99,6 @@
- #define wp_works_ok 1
- #define wp_works_ok__is_a_macro /* for versions in ksyms.c */
-
--/* Lazy FPU handling on uni-processor */
--extern struct task_struct *last_task_used_math;
--
--#ifndef CONFIG_SMP
--#define IS_FPU_OWNER() (last_task_used_math == current)
--#define CLEAR_FPU_OWNER() last_task_used_math = NULL;
--#else
--#define IS_FPU_OWNER() (current->flags & PF_USEDFPU)
--#define CLEAR_FPU_OWNER() current->flags &= ~PF_USEDFPU;
--#endif
--
- /*
- * User space process size: 1TB. This is hardcoded into a few places,
- * so don't change it unless you know what you are doing. TASK_SIZE
-@@ -126,7 +111,7 @@
- /* This decides where the kernel will search for a free chunk of vm
- * space during mmap's.
- */
--#define TASK_UNMAPPED_BASE ((current->thread.mflags & MF_32BIT) ? \
-+#define TASK_UNMAPPED_BASE ((current->thread.mflags & MF_32BIT_ADDR) ? \
- (TASK_SIZE32 / 3) : (TASK_SIZE / 3))
-
- /*
-@@ -187,15 +172,21 @@
- unsigned long cp0_baduaddr; /* Last kernel fault accessing USEG */
- unsigned long error_code;
- unsigned long trap_no;
--#define MF_FIXADE 1 /* Fix address errors in software */
--#define MF_LOGADE 2 /* Log address errors to syslog */
--#define MF_32BIT 4 /* Process is in 32-bit compat mode */
-+#define MF_FIXADE 1 /* Fix address errors in software */
-+#define MF_LOGADE 2 /* Log address errors to syslog */
-+#define MF_32BIT_REGS 4 /* also implies 16/32 fprs */
-+#define MF_32BIT_ADDR 8 /* 32-bit address space (o32/n32) */
- unsigned long mflags;
- mm_segment_t current_ds;
- unsigned long irix_trampoline; /* Wheee... */
- unsigned long irix_oldctx;
- };
-
-+#define MF_ABI_MASK (MF_32BIT_REGS | MF_32BIT_ADDR)
-+#define MF_O32 (MF_32BIT_REGS | MF_32BIT_ADDR)
-+#define MF_N32 MF_32BIT_ADDR
-+#define MF_N64 0
-+
- #endif /* !__ASSEMBLY__ */
-
- #define INIT_THREAD { \
-@@ -219,7 +210,7 @@
- /* \
- * For now the default is to fix address errors \
- */ \
-- MF_FIXADE, { 0 }, 0, 0 \
-+ MF_FIXADE, KERNEL_DS, 0, 0 \
- }
-
- #ifdef __KERNEL__
-@@ -256,26 +247,16 @@
- /*
- * Do necessary setup to start up a newly executed thread.
- */
--#define start_thread(regs, pc, sp) \
--do { \
-- unsigned long __status; \
-- \
-- /* New thread looses kernel privileges. */ \
-- __status = regs->cp0_status & ~(ST0_CU0|ST0_FR|ST0_KSU); \
-- __status |= KSU_USER; \
-- __status |= (current->thread.mflags & MF_32BIT) ? 0 : ST0_FR; \
-- regs->cp0_status = __status; \
-- regs->cp0_epc = pc; \
-- regs->regs[29] = sp; \
-- current->thread.current_ds = USER_DS; \
--} while(0)
-+extern void start_thread(struct pt_regs * regs, unsigned long pc, unsigned long sp);
-
-+struct task_struct;
- unsigned long get_wchan(struct task_struct *p);
-
- #define __PT_REG(reg) ((long)&((struct pt_regs *)0)->reg - sizeof(struct pt_regs))
- #define __KSTK_TOS(tsk) ((unsigned long)(tsk) + KERNEL_STACK_SIZE - 32)
- #define KSTK_EIP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_epc)))
- #define KSTK_ESP(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(regs[29])))
-+#define KSTK_STATUS(tsk) (*(unsigned long *)(__KSTK_TOS(tsk) + __PT_REG(cp0_status)))
-
- /* Allocation and freeing of basic task resources. */
- /*
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/ptrace.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/ptrace.h
---- linux-2.4.20/include/asm-mips64/ptrace.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/ptrace.h 2002-12-19 21:26:02.000000000 -0600
-@@ -76,6 +76,7 @@
- #ifndef __ASSEMBLY__
- #define instruction_pointer(regs) ((regs)->cp0_epc)
-
-+extern void show_regs(struct pt_regs *);
- #endif /* !__ASSEMBLY__ */
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/r10kcache.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/r10kcache.h
---- linux-2.4.20/include/asm-mips64/r10kcache.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/r10kcache.h 2002-12-01 18:24:54.000000000 -0600
-@@ -28,14 +28,14 @@
- /* These are configuration dependant. */
- #define scache_size() ({ \
- unsigned long __res; \
-- __res = (read_32bit_cp0_register(CP0_CONFIG) >> 16) & 3; \
-+ __res = (read_c0_config() >> 16) & 3; \
- __res = 1 << (__res + 19); \
- __res; \
- })
-
- #define sc_lsize() ({ \
- unsigned long __res; \
-- __res = (read_32bit_cp0_register(CP0_CONFIG) >> 13) & 1; \
-+ __res = (read_c0_config() >> 13) & 1; \
- __res = 1 << (__res + 6); \
- __res; \
- })
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/r4kcache.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcache.h
---- linux-2.4.20/include/asm-mips64/r4kcache.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcache.h 2002-10-03 21:39:52.000000000 -0500
-@@ -6,93 +6,62 @@
- * Inline assembly cache operations.
- *
- * Copyright (C) 1996 David S. Miller (dm@engr.sgi.com)
-- *
-- * FIXME: Handle split L2 caches.
-+ * Copyright (C) 1997 - 2002 Ralf Baechle (ralf@gnu.org)
- */
--#ifndef _ASM_R4KCACHE_H
--#define _ASM_R4KCACHE_H
-+#ifndef __ASM_R4KCACHE_H
-+#define __ASM_R4KCACHE_H
-
- #include <asm/asm.h>
--#include <asm/r4kcacheops.h>
-+#include <asm/cacheops.h>
-+
-+#define cache_op(op,addr) \
-+ __asm__ __volatile__( \
-+ " .set noreorder \n" \
-+ " .set mips3\n\t \n" \
-+ " cache %0, %1 \n" \
-+ " .set mips0 \n" \
-+ " .set reorder" \
-+ : \
-+ : "i" (op), "m" (*(unsigned char *)(addr)))
-
- static inline void flush_icache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Index_Invalidate_I));
-+ cache_op(Index_Invalidate_I, addr);
- }
-
- static inline void flush_dcache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Index_Writeback_Inv_D));
-+ cache_op(Index_Writeback_Inv_D, addr);
- }
-
- static inline void flush_scache_line_indexed(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Index_Writeback_Inv_SD));
-+ cache_op(Index_Writeback_Inv_SD, addr);
- }
-
- static inline void flush_icache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Hit_Invalidate_I));
-+ cache_op(Hit_Invalidate_I, addr);
- }
-
- static inline void flush_dcache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Hit_Writeback_Inv_D));
-+ cache_op(Hit_Writeback_Inv_D, addr);
- }
-
- static inline void invalidate_dcache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Hit_Invalidate_D));
-+ cache_op(Hit_Invalidate_D, addr);
- }
-
- static inline void invalidate_scache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Hit_Invalidate_SD));
-+ cache_op(Hit_Invalidate_SD, addr);
- }
-
- static inline void flush_scache_line(unsigned long addr)
- {
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "cache %1, (%0)\n\t"
-- ".set reorder"
-- :
-- : "r" (addr), "i" (Hit_Writeback_Inv_SD));
-+ cache_op(Hit_Writeback_Inv_SD, addr);
- }
-
- /*
-@@ -102,31 +71,36 @@
- {
- __asm__ __volatile__(
- ".set noreorder\n\t"
-- "1:\tcache %1,(%0)\n"
-- "2:\t.set reorder\n\t"
-+ ".set mips3\n"
-+ "1:\tcache %0,(%1)\n"
-+ "2:\t.set mips0\n\t"
-+ ".set reorder\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- ".dword\t1b,2b\n\t"
-+ STR(PTR)"\t1b,2b\n\t"
- ".previous"
- :
-- : "r" (addr), "i" (Hit_Invalidate_I));
-+ : "i" (Hit_Invalidate_I), "r" (addr));
- }
-
- static inline void protected_writeback_dcache_line(unsigned long addr)
- {
- __asm__ __volatile__(
- ".set noreorder\n\t"
-- "1:\tcache %1,(%0)\n"
-- "2:\t.set reorder\n\t"
-+ ".set mips3\n"
-+ "1:\tcache %0,(%1)\n"
-+ "2:\t.set mips0\n\t"
-+ ".set reorder\n\t"
- ".section\t__ex_table,\"a\"\n\t"
-- ".dword\t1b,2b\n\t"
-+ STR(PTR)"\t1b,2b\n\t"
- ".previous"
- :
-- : "r" (addr), "i" (Hit_Writeback_D));
-+ : "i" (Hit_Writeback_D), "r" (addr));
- }
-
- #define cache16_unroll32(base,op) \
- __asm__ __volatile__(" \
- .set noreorder; \
-+ .set mips3; \
- cache %1, 0x000(%0); cache %1, 0x010(%0); \
- cache %1, 0x020(%0); cache %1, 0x030(%0); \
- cache %1, 0x040(%0); cache %1, 0x050(%0); \
-@@ -143,6 +117,7 @@
- cache %1, 0x1a0(%0); cache %1, 0x1b0(%0); \
- cache %1, 0x1c0(%0); cache %1, 0x1d0(%0); \
- cache %1, 0x1e0(%0); cache %1, 0x1f0(%0); \
-+ .set mips0; \
- .set reorder" \
- : \
- : "r" (base), \
-@@ -153,18 +128,32 @@
- unsigned long start = KSEG0;
- unsigned long end = (start + dcache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_D);
- start += 0x200;
- }
- }
-
-+static inline void blast_dcache16_wayLSB(void)
-+{
-+ unsigned long start = KSEG0;
-+ unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
-+ int way;
-+
-+ while (start < end) {
-+ /* LSB of VA select the way */
-+ for (way = 0; way < mips_cpu.dcache.ways; way++)
-+ cache16_unroll32(start|way,Index_Writeback_Inv_D);
-+ start += 0x200;
-+ }
-+}
-+
- static inline void blast_dcache16_page(unsigned long page)
- {
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Hit_Writeback_Inv_D);
- start += 0x200;
- }
-@@ -175,29 +164,57 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_D);
- start += 0x200;
- }
- }
-
-+static inline void blast_dcache16_page_indexed_wayLSB(unsigned long page)
-+{
-+ unsigned long start = page;
-+ unsigned long end = (start + PAGE_SIZE);
-+ int way;
-+
-+ while (start < end) {
-+ /* LSB of VA select the way */
-+ for (way = 0; way < mips_cpu.dcache.ways; way++)
-+ cache16_unroll32(start|way,Index_Writeback_Inv_D);
-+ start += 0x200;
-+ }
-+}
-+
- static inline void blast_icache16(void)
- {
- unsigned long start = KSEG0;
- unsigned long end = (start + icache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Invalidate_I);
- start += 0x200;
- }
- }
-
-+static inline void blast_icache16_wayLSB(void)
-+{
-+ unsigned long start = KSEG0;
-+ unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
-+ int way;
-+
-+ while (start < end) {
-+ /* LSB of VA select the way */
-+ for (way = 0; way < mips_cpu.icache.ways; way++)
-+ cache16_unroll32(start|way,Index_Invalidate_I);
-+ start += 0x200;
-+ }
-+}
-+
- static inline void blast_icache16_page(unsigned long page)
- {
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Hit_Invalidate_I);
- start += 0x200;
- }
-@@ -208,7 +225,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Invalidate_I);
- start += 0x200;
- }
-@@ -219,7 +236,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x200;
- }
-@@ -230,7 +247,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Hit_Writeback_Inv_SD);
- start += 0x200;
- }
-@@ -241,7 +258,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache16_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x200;
- }
-@@ -250,6 +267,7 @@
- #define cache32_unroll32(base,op) \
- __asm__ __volatile__(" \
- .set noreorder; \
-+ .set mips3; \
- cache %1, 0x000(%0); cache %1, 0x020(%0); \
- cache %1, 0x040(%0); cache %1, 0x060(%0); \
- cache %1, 0x080(%0); cache %1, 0x0a0(%0); \
-@@ -266,6 +284,7 @@
- cache %1, 0x340(%0); cache %1, 0x360(%0); \
- cache %1, 0x380(%0); cache %1, 0x3a0(%0); \
- cache %1, 0x3c0(%0); cache %1, 0x3e0(%0); \
-+ .set mips0; \
- .set reorder" \
- : \
- : "r" (base), \
-@@ -276,12 +295,26 @@
- unsigned long start = KSEG0;
- unsigned long end = (start + dcache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_D);
- start += 0x400;
- }
- }
-
-+static inline void blast_dcache32_wayLSB(void)
-+{
-+ unsigned long start = KSEG0;
-+ unsigned long end = (start + mips_cpu.dcache.sets * mips_cpu.dcache.linesz);
-+ int way;
-+
-+ while (start < end) {
-+ /* LSB of VA select the way */
-+ for (way = 0; way < mips_cpu.dcache.ways; way++)
-+ cache32_unroll32(start|way,Index_Writeback_Inv_D);
-+ start += 0x400;
-+ }
-+}
-+
- /*
- * Call this function only with interrupts disabled or R4600 V2.0 may blow
- * up on you.
-@@ -305,7 +338,7 @@
- *(volatile unsigned long *)KSEG1;
-
- __asm__ __volatile__("nop;nop;nop;nop");
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Hit_Writeback_Inv_D);
- start += 0x400;
- }
-@@ -316,29 +349,57 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_D);
- start += 0x400;
- }
- }
-
-+static inline void blast_dcache32_page_indexed_wayLSB(unsigned long page)
-+{
-+ unsigned long start = page;
-+ unsigned long end = (start + PAGE_SIZE);
-+ int way;
-+
-+ while (start < end) {
-+ /* LSB of VA select the way */
-+ for (way = 0; way < mips_cpu.dcache.ways; way++)
-+ cache32_unroll32(start|way,Index_Writeback_Inv_D);
-+ start += 0x400;
-+ }
-+}
-+
- static inline void blast_icache32(void)
- {
- unsigned long start = KSEG0;
- unsigned long end = (start + icache_size);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Invalidate_I);
- start += 0x400;
- }
- }
-
-+static inline void blast_icache32_wayLSB(void)
-+{
-+ unsigned long start = KSEG0;
-+ unsigned long end = (start + mips_cpu.icache.sets * mips_cpu.icache.linesz);
-+ int way;
-+
-+ while (start < end) {
-+ /* LSB of VA select the way */
-+ for (way = 0; way < mips_cpu.icache.ways; way++)
-+ cache32_unroll32(start|way,Index_Invalidate_I);
-+ start += 0x400;
-+ }
-+}
-+
- static inline void blast_icache32_page(unsigned long page)
- {
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Hit_Invalidate_I);
- start += 0x400;
- }
-@@ -349,7 +410,7 @@
- unsigned long start = page;
- unsigned long end = (start + PAGE_SIZE);
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Invalidate_I);
- start += 0x400;
- }
-@@ -360,7 +421,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x400;
- }
-@@ -371,7 +432,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Hit_Writeback_Inv_SD);
- start += 0x400;
- }
-@@ -382,7 +443,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache32_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x400;
- }
-@@ -391,6 +452,7 @@
- #define cache64_unroll32(base,op) \
- __asm__ __volatile__(" \
- .set noreorder; \
-+ .set mips3; \
- cache %1, 0x000(%0); cache %1, 0x040(%0); \
- cache %1, 0x080(%0); cache %1, 0x0c0(%0); \
- cache %1, 0x100(%0); cache %1, 0x140(%0); \
-@@ -407,6 +469,7 @@
- cache %1, 0x680(%0); cache %1, 0x6c0(%0); \
- cache %1, 0x700(%0); cache %1, 0x740(%0); \
- cache %1, 0x780(%0); cache %1, 0x7c0(%0); \
-+ .set mips0; \
- .set reorder" \
- : \
- : "r" (base), \
-@@ -417,7 +480,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache64_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x800;
- }
-@@ -428,7 +491,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache64_unroll32(start,Hit_Writeback_Inv_SD);
- start += 0x800;
- }
-@@ -439,7 +502,7 @@
- unsigned long start = page;
- unsigned long end = page + PAGE_SIZE;
-
-- while(start < end) {
-+ while (start < end) {
- cache64_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x800;
- }
-@@ -448,6 +511,7 @@
- #define cache128_unroll32(base,op) \
- __asm__ __volatile__(" \
- .set noreorder; \
-+ .set mips3; \
- cache %1, 0x000(%0); cache %1, 0x080(%0); \
- cache %1, 0x100(%0); cache %1, 0x180(%0); \
- cache %1, 0x200(%0); cache %1, 0x280(%0); \
-@@ -464,6 +528,7 @@
- cache %1, 0xd00(%0); cache %1, 0xd80(%0); \
- cache %1, 0xe00(%0); cache %1, 0xe80(%0); \
- cache %1, 0xf00(%0); cache %1, 0xf80(%0); \
-+ .set mips0; \
- .set reorder" \
- : \
- : "r" (base), \
-@@ -474,7 +539,7 @@
- unsigned long start = KSEG0;
- unsigned long end = KSEG0 + scache_size;
-
-- while(start < end) {
-+ while (start < end) {
- cache128_unroll32(start,Index_Writeback_Inv_SD);
- start += 0x1000;
- }
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/r4kcacheops.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcacheops.h
---- linux-2.4.20/include/asm-mips64/r4kcacheops.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/r4kcacheops.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,48 +0,0 @@
--/*
-- * This file is subject to the terms and conditions of the GNU General Public
-- * License. See the file "COPYING" in the main directory of this archive
-- * for more details.
-- *
-- * Cache operations for the cache instruction.
-- *
-- * (C) Copyright 1996, 1997, 1999 by Ralf Baechle
-- */
--#ifndef _ASM_R4kCACHEOPS_H
--#define _ASM_R4kCACHEOPS_H
--
--/*
-- * Cache Operations
-- */
--#define Index_Invalidate_I 0x00
--#define Index_Writeback_Inv_D 0x01
--#define Index_Invalidate_SI 0x02
--#define Index_Writeback_Inv_SD 0x03
--#define Index_Load_Tag_I 0x04
--#define Index_Load_Tag_D 0x05
--#define Index_Load_Tag_SI 0x06
--#define Index_Load_Tag_SD 0x07
--#define Index_Store_Tag_I 0x08
--#define Index_Store_Tag_D 0x09
--#define Index_Store_Tag_SI 0x0A
--#define Index_Store_Tag_SD 0x0B
--#define Create_Dirty_Excl_D 0x0d
--#define Create_Dirty_Excl_SD 0x0f
--#define Hit_Invalidate_I 0x10
--#define Hit_Invalidate_D 0x11
--#define Hit_Invalidate_SI 0x12
--#define Hit_Invalidate_SD 0x13
--#define Fill 0x14
--#define Hit_Writeback_Inv_D 0x15
-- /* 0x16 is unused */
--#define Hit_Writeback_Inv_SD 0x17
--#define R5K_Page_Invalidate_S 0x17
--#define Hit_Writeback_I 0x18
--#define Hit_Writeback_D 0x19
-- /* 0x1a is unused */
--#define Hit_Writeback_SD 0x1b
-- /* 0x1c is unused */
-- /* 0x1e is unused */
--#define Hit_Set_Virtual_SI 0x1e
--#define Hit_Set_Virtual_SD 0x1f
--
--#endif /* _ASM_R4kCACHEOPS_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/reg.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/reg.h
---- linux-2.4.20/include/asm-mips64/reg.h 2000-02-25 00:53:35.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/reg.h 2002-09-17 21:48:05.000000000 -0500
-@@ -17,51 +17,51 @@
- * if the order here is changed, it needs to be updated in
- * include/asm-mips/stackframe.h
- */
--#define EF_REG0 8
--#define EF_REG1 9
--#define EF_REG2 10
--#define EF_REG3 11
--#define EF_REG4 12
--#define EF_REG5 13
--#define EF_REG6 14
--#define EF_REG7 15
--#define EF_REG8 16
--#define EF_REG9 17
--#define EF_REG10 18
--#define EF_REG11 19
--#define EF_REG12 20
--#define EF_REG13 21
--#define EF_REG14 22
--#define EF_REG15 23
--#define EF_REG16 24
--#define EF_REG17 25
--#define EF_REG18 26
--#define EF_REG19 27
--#define EF_REG20 28
--#define EF_REG21 29
--#define EF_REG22 30
--#define EF_REG23 31
--#define EF_REG24 32
--#define EF_REG25 33
-+#define EF_REG0 0
-+#define EF_REG1 1
-+#define EF_REG2 2
-+#define EF_REG3 3
-+#define EF_REG4 4
-+#define EF_REG5 5
-+#define EF_REG6 6
-+#define EF_REG7 7
-+#define EF_REG8 8
-+#define EF_REG9 9
-+#define EF_REG10 10
-+#define EF_REG11 11
-+#define EF_REG12 12
-+#define EF_REG13 13
-+#define EF_REG14 14
-+#define EF_REG15 15
-+#define EF_REG16 16
-+#define EF_REG17 17
-+#define EF_REG18 18
-+#define EF_REG19 19
-+#define EF_REG20 20
-+#define EF_REG21 21
-+#define EF_REG22 22
-+#define EF_REG23 23
-+#define EF_REG24 24
-+#define EF_REG25 25
- /*
- * k0/k1 unsaved
- */
--#define EF_REG28 36
--#define EF_REG29 37
--#define EF_REG30 38
--#define EF_REG31 39
-+#define EF_REG28 28
-+#define EF_REG29 29
-+#define EF_REG30 30
-+#define EF_REG31 31
-
- /*
- * Saved special registers
- */
--#define EF_LO 40
--#define EF_HI 41
-+#define EF_LO 32
-+#define EF_HI 33
-
--#define EF_CP0_EPC 42
--#define EF_CP0_BADVADDR 43
--#define EF_CP0_STATUS 44
--#define EF_CP0_CAUSE 45
-+#define EF_CP0_EPC 34
-+#define EF_CP0_BADVADDR 35
-+#define EF_CP0_STATUS 36
-+#define EF_CP0_CAUSE 37
-
--#define EF_SIZE 368 /* size in bytes */
-+#define EF_SIZE 304 /* size in bytes */
-
- #endif /* _ASM_REG_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/scatterlist.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/scatterlist.h
---- linux-2.4.20/include/asm-mips64/scatterlist.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/scatterlist.h 2002-09-28 13:51:41.000000000 -0500
-@@ -10,13 +10,6 @@
- unsigned long length;
- };
-
--struct mmu_sglist {
-- char *addr;
-- char *__dont_touch;
-- unsigned long len;
-- dma_addr_t dvma_addr;
--};
--
- #define ISA_DMA_THRESHOLD (0x00ffffff)
-
- #endif /* __ASM_SCATTERLIST_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/semaphore-helper.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/semaphore-helper.h
---- linux-2.4.20/include/asm-mips64/semaphore-helper.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/semaphore-helper.h 2002-11-14 22:20:34.000000000 -0600
-@@ -3,12 +3,14 @@
- *
- * (C) Copyright 1996 Linus Torvalds
- * (C) Copyright 1999 Andrea Arcangeli
-- * (C) Copyright 1999, 2001 Ralf Baechle
-+ * (C) Copyright 1999, 2001, 2002 Ralf Baechle
- * (C) Copyright 1999, 2001 Silicon Graphics, Inc.
- */
- #ifndef _ASM_SEMAPHORE_HELPER_H
- #define _ASM_SEMAPHORE_HELPER_H
-
-+#include <linux/errno.h>
-+
- /*
- * These two _must_ execute atomically wrt each other.
- */
-@@ -64,8 +66,6 @@
- {
- long ret, tmp;
-
--#ifdef __MIPSEB__
--
- __asm__ __volatile__(
- ".set\tpush\t\t\t# waking_non_zero_interruptible\n\t"
- ".set\tnoat\n\t"
-@@ -86,38 +86,6 @@
- : "=&r" (ret), "=&r" (tmp), "=m" (*sem)
- : "r" (signal_pending(tsk)), "i" (-EINTR));
-
--#elif defined(__MIPSEL__)
--
-- __asm__ __volatile__(
-- ".set\tpush\t\t\t# waking_non_zero_interruptible\n\t"
-- ".set\t noat\n"
-- "0:\tlld\t%1, %2\n\t"
-- "li\t%0, 0\n\t"
-- "blez\t%1, 1f\n\t"
-- "dli\t$1, 0x0000000100000000\n\t"
-- "dsubu\t%1, %1, $1\n\t"
-- "li\t%0, 1\n\t"
-- "b\t2f\n"
-- "1:\tbeqz\t%3, 2f\n\t"
-- "li\t%0, %4\n\t"
-- /*
-- * It would be nice to assume that sem->count
-- * is != -1, but we will guard against that case
-- */
-- "daddiu\t$1, %1, 1\n\t"
-- "dsll32\t$1, $1, 0\n\t"
-- "dsrl32\t$1, $1, 0\n\t"
-- "dsrl32\t%1, %1, 0\n\t"
-- "dsll32\t%1, %1, 0\n\t"
-- "or\t%1, %1, $1\n"
-- "2:\tscd\t%1, %2\n\t"
-- "beqz\t %1, 0b\n\t"
-- ".set\tpop"
-- : "=&r" (ret), "=&r" (tmp), "=m" (*sem)
-- : "r" (signal_pending(tsk)), "i" (-EINTR));
--
--#endif
--
- return ret;
- }
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/serial.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/serial.h
---- linux-2.4.20/include/asm-mips64/serial.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/serial.h 2002-11-06 19:47:46.000000000 -0600
-@@ -109,18 +109,18 @@
- #endif
-
- #define IP32_SERIAL_PORT_DEFNS \
-- { baud_base: BASE_BAUD, \
-- irq: MACEISA_SERIAL1_IRQ, \
-- flags: STD_COM_FLAGS, \
-- iomem_base: (u8*)MACE_BASE+MACEISA_SER1_BASE, \
-- iomem_reg_shift: 8, \
-- io_type: SERIAL_IO_MEM}, \
-- { baud_base: BASE_BAUD, \
-- irq: MACEISA_SERIAL2_IRQ, \
-- flags: STD_COM_FLAGS, \
-- iomem_base: (u8*)MACE_BASE+MACEISA_SER2_BASE, \
-- iomem_reg_shift: 8, \
-- io_type: SERIAL_IO_MEM},
-+ { .baud_base = BASE_BAUD, \
-+ .irq = MACEISA_SERIAL1_IRQ, \
-+ .flags = STD_COM_FLAGS, \
-+ .iomem_base = (u8*)MACE_BASE+MACEISA_SER1_BASE, \
-+ .iomem_reg_shift = 8, \
-+ .io_type = SERIAL_IO_MEM}, \
-+ { .baud_base = BASE_BAUD, \
-+ .irq = MACEISA_SERIAL2_IRQ, \
-+ .flags = STD_COM_FLAGS, \
-+ .iomem_base = (u8*)MACE_BASE+MACEISA_SER2_BASE, \
-+ .iomem_reg_shift = 8, \
-+ .io_type = SERIAL_IO_MEM},
- #else
- #define IP32_SERIAL_PORT_DEFNS
- #endif /* CONFIG_SGI_IP31 */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Entries
---- linux-2.4.20/include/asm-mips64/sgi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Entries 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1,7 @@
-+/io.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/sgi.h/1.3/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/sgigio.h/1.1.2.3/Thu Jan 9 13:25:37 2003/-ko/Tlinux_2_4_20
-+/sgihpc.h/1.4.2.3/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/sgimc.h/1.3.2.1/Tue Jan 28 05:36:27 2003/-ko/Tlinux_2_4_20
-+/sgint23.h/1.6.2.3/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Repository
---- linux-2.4.20/include/asm-mips64/sgi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Repository 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/sgi
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Root
---- linux-2.4.20/include/asm-mips64/sgi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Root 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Tag
---- linux-2.4.20/include/asm-mips64/sgi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/CVS/Tag 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/sgigio.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgigio.h
---- linux-2.4.20/include/asm-mips64/sgi/sgigio.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgigio.h 2003-01-09 07:25:37.000000000 -0600
-@@ -12,6 +12,11 @@
- #define _ASM_SGI_SGIGIO_H
-
- /*
-+ * GIO bus addresses
-+ *
-+ * The Indigo and Indy have two GIO bus connectors. Indigo2 (all models) have
-+ * three physical connectors, but only two slots, GFX and EXP0.
-+ *
- * There is 10MB of GIO address space for GIO64 slot devices
- * slot# slot type address range size
- * ----- --------- ----------------------- -----
-@@ -26,44 +31,56 @@
- * Following space is reserved and unused
- * - RESERVED 0x18000000 - 0x1effffff 112MB
- *
-- * The GIO specification tends to use slot numbers while the MC specification
-- * tends to use slot types.
-+ * GIO bus IDs
-+ *
-+ * Each GIO bus device identifies itself to the system by answering a
-+ * read with an "ID" value. IDs are either 8 or 32 bits long. IDs less
-+ * than 128 are 8 bits long, with the most significant 24 bits read from
-+ * the slot undefined.
-+ *
-+ * 32-bit IDs are divided into
-+ * bits 0:6 the product ID; ranges from 0x00 to 0x7F.
-+ * bit 7 0=GIO Product ID is 8 bits wide
-+ * 1=GIO Product ID is 32 bits wide.
-+ * bits 8:15 manufacturer version for the product.
-+ * bit 16 0=GIO32 and GIO32-bis, 1=GIO64.
-+ * bit 17 0=no ROM present
-+ * 1=ROM present on this board AND next three words
-+ * space define the ROM.
-+ * bits 18:31 up to manufacturer.
-+ *
-+ * IDs above 0x50/0xd0 are of 3rd party boards.
-+ *
-+ * 8-bit IDs
-+ * 0x01 XPI low cost FDDI
-+ * 0x02 GTR TokenRing
-+ * 0x04 Synchronous ISDN
-+ * 0x05 ATM board [*]
-+ * 0x06 Canon Interface
-+ * 0x07 16 bit SCSI Card [*]
-+ * 0x08 JPEG (Double Wide)
-+ * 0x09 JPEG (Single Wide)
-+ * 0x0a XPI mez. FDDI device 0
-+ * 0x0b XPI mez. FDDI device 1
-+ * 0x0c SMPTE 259M Video [*]
-+ * 0x0d Babblefish Compression [*]
-+ * 0x0e E-Plex 8-port Ethernet
-+ * 0x30 Lyon Lamb IVAS
-+ * 0xb8 GIO 100BaseTX Fast Ethernet (gfe)
-+ *
-+ * [*] Device provide 32-bit ID.
- *
-- * slot0 - the "graphics" (GFX) slot but there is no requirement that
-- * a graphics dev may only use this slot
-- * slot1 - this is the "expansion"-slot 0 (EXP0), do not confuse with
-- * slot 0 (GFX).
-- * slot2 - this is the "expansion"-slot 1 (EXP1), do not confuse with
-- * slot 1 (EXP0).
- */
-
--#define GIO_SLOT_GFX 0
--#define GIO_SLOT_GIO1 1
--#define GIO_SLOT_GIO2 2
--#define GIO_NUM_SLOTS 3
--
--#define GIO_ANY_ID 0xff
--
--#define GIO_VALID_ID_ONLY 0x01
--#define GIO_IFACE_64 0x02
--#define GIO_HAS_ROM 0x04
--
--struct gio_dev {
-- unsigned char device;
-- unsigned char revision;
-- unsigned short vendor;
-- unsigned char flags;
--
-- unsigned char slot_number;
-- unsigned long base_addr;
-- unsigned int map_size;
--
-- char *name;
-- char slot_name[5];
--};
--
--extern struct gio_dev* gio_find_device(unsigned char device, const struct gio_dev *from);
-+#define GIO_ID(x) (x & 0x7f)
-+#define GIO_32BIT_ID 0x80
-+#define GIO_REV(x) ((x >> 8) & 0xff)
-+#define GIO_64BIT_IFACE 0x10000
-+#define GIO_ROM_PRESENT 0x20000
-+#define GIO_VENDOR_CODE(x) ((x >> 18) & 0x3fff)
-
--extern void sgigio_init(void);
-+#define GIO_SLOT_GFX_BASE 0x1f000000
-+#define GIO_SLOT_EXP0_BASE 0x1f400000
-+#define GIO_SLOT_EXP1_BASE 0x1f600000
-
- #endif /* _ASM_SGI_SGIGIO_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sgi/sgimc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgimc.h
---- linux-2.4.20/include/asm-mips64/sgi/sgimc.h 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sgi/sgimc.h 2003-01-27 23:36:27.000000000 -0600
-@@ -125,13 +125,30 @@
-
- /* Error address/status regs from GIO and CPU perspectives. */
- u32 _unused21;
-- volatile u32 cerr; /* Error address reg for CPU */
-+ volatile u32 cerr; /* Error address reg for CPU */
- u32 _unused22;
-- volatile u32 cstat; /* Status reg for CPU */
-+ volatile u32 cstat; /* Status reg for CPU */
-+#define SGIMC_CSTAT_RD 0x00000100 /* read parity error */
-+#define SGIMC_CSTAT_PAR 0x00000200 /* CPU parity error */
-+#define SGIMC_CSTAT_ADDR 0x00000400 /* memory bus error bad addr */
-+#define SGIMC_CSTAT_SYSAD_PAR 0x00000800 /* sysad parity error */
-+#define SGIMC_CSTAT_SYSCMD_PAR 0x00001000 /* syscmd parity error */
-+#define SGIMC_CSTAT_BAD_DATA 0x00002000 /* bad data identifier */
-+#define SGIMC_CSTAT_PAR_MASK 0x00001f00 /* parity error mask */
-+#define SGIMC_CSTAT_RD_PAR (SGIMC_CSTAT_RD | SGIMC_CSTAT_PAR)
-+
- u32 _unused23;
-- volatile u32 gerr; /* Error address reg for GIO */
-+ volatile u32 gerr; /* Error address reg for GIO */
- u32 _unused24;
-- volatile u32 gstat; /* Status reg for GIO */
-+ volatile u32 gstat; /* Status reg for GIO */
-+#define SGIMC_GSTAT_RD 0x00000100 /* read parity error */
-+#define SGIMC_GSTAT_WR 0x00000200 /* write parity error */
-+#define SGIMC_GSTAT_TIME 0x00000400 /* GIO bus timed out */
-+#define SGIMC_GSTAT_PROM 0x00000800 /* write to PROM when PROM_EN not set */
-+#define SGIMC_GSTAT_ADDR 0x00001000 /* parity error on addr cycle */
-+#define SGIMC_GSTAT_BC 0x00002000 /* parity error on byte count cycle */
-+#define SGIMC_GSTAT_PIO_RD 0x00004000 /* read data parity on pio */
-+#define SGIMC_GSTAT_PIO_WR 0x00008000 /* write data parity on pio */
-
- /* Special hard bus locking registers. */
- u32 _unused25;
-@@ -199,7 +216,7 @@
- u32 _unused7;
- volatile u32 dmamode; /* DMA mode config bit settings */
- u32 _unused8;
-- volatile u32 dmacount; /* Zoom and byte count for DMA */
-+ volatile u32 dmaccount; /* Zoom and byte count for DMA */
- u32 _unused9;
- volatile u32 dmastart; /* Pedal to the metal. */
- u32 _unused10;
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/64bit.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/64bit.h
---- linux-2.4.20/include/asm-mips64/sibyte/64bit.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/64bit.h 2003-02-19 15:06:52.000000000 -0600
-@@ -32,47 +32,57 @@
- * without having access to 64-bit registers... which doesn't work by default
- * in o32 format...grrr...
- */
-+static inline void __out64(u64 val, unsigned long addr)
-+{
-+ u64 tmp;
-+
-+ __asm__ __volatile__ (
-+ " .set mips3 \n"
-+ " dsll32 %L0, %L0, 0 # __out64 \n"
-+ " dsrl32 %L0, %L0, 0 \n"
-+ " dsll32 %M0, %M0, 0 \n"
-+ " or %L0, %L0, %M0 \n"
-+ " sd %L0, (%2) \n"
-+ " .set mips0 \n"
-+ : "=r" (tmp)
-+ : "0" (val), "r" (addr));
-+}
-+
- static inline void out64(u64 val, unsigned long addr)
- {
-- u32 low, high;
- unsigned long flags;
-- high = val >> 32;
-- low = val & 0xffffffff;
-- // save_flags(flags);
-- __save_and_cli(flags);
-+
-+ local_irq_save(flags);
-+ __out64(val, addr);
-+ local_irq_restore(flags);
-+}
-+
-+static inline u64 __in64(unsigned long addr)
-+{
-+ u64 res;
-+
- __asm__ __volatile__ (
-- ".set push\n"
-- ".set noreorder\n"
-- ".set noat\n"
-- ".set mips4\n"
-- " dsll32 $2, %1, 0 \n"
-- " dsll32 $1, %0, 0 \n"
-- " dsrl32 $2, $2, 0 \n"
-- " or $1, $1, $2 \n"
-- " sd $1, (%2)\n"
-- ".set pop\n"
-- ::"r" (high), "r" (low), "r" (addr)
-- :"$1", "$2");
-- __restore_flags(flags);
-+ " .set mips3 # __in64 \n"
-+ " ld %L0, (%1) \n"
-+ " dsra32 %M0, %L0, 0 \n"
-+ " sll %L0, %L0, 0 \n"
-+ " .set mips0 \n"
-+ : "=r" (res)
-+ : "r" (addr));
-+
-+ return res;
- }
-
- static inline u64 in64(unsigned long addr)
- {
-- u32 low, high;
- unsigned long flags;
-- __save_and_cli(flags);
-- __asm__ __volatile__ (
-- ".set push\n"
-- ".set noreorder\n"
-- ".set noat \n"
-- ".set mips4 \n"
-- " ld %1, (%2)\n"
-- " dsra32 %0, %1, 0\n"
-- " sll %1, %1, 0\n"
-- ".set pop\n"
-- :"=r" (high), "=r" (low): "r" (addr));
-- __restore_flags(flags);
-- return (((u64)high) << 32) | low;
-+ u64 res;
-+
-+ local_irq_save(flags);
-+ res = __in64(addr);
-+ local_irq_restore(flags);
-+
-+ return res;
- }
-
- #endif /* CONFIG_MIPS32 */
-@@ -93,6 +103,9 @@
- return *(volatile unsigned long *)addr;
- }
-
-+#define __in64(a) in64(a)
-+#define __out64(v,a) out64(v,a)
-+
- #endif /* CONFIG_MIPS64 */
-
- /*
-@@ -106,7 +119,7 @@
- #define __CSR_32_ADJUST 0
- #endif
-
--#define csr_out32(v,a) (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
--#define csr_in32(a) (*(u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-+#define csr_out32(v,a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST) = (v))
-+#define csr_in32(a) (*(volatile u32 *)((unsigned long)(a) + __CSR_32_ADJUST))
-
- #endif /* __ASM_SIBYTE_64BIT_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/board.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/board.h
---- linux-2.4.20/include/asm-mips64/sibyte/board.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/board.h 2003-01-21 23:11:39.000000000 -0600
-@@ -19,10 +19,50 @@
- #ifndef _SIBYTE_BOARD_H
- #define _SIBYTE_BOARD_H
-
--#if defined(CONFIG_SIBYTE_PTSWARM) || defined(CONFIG_SIBYTE_SWARM)
-+#ifdef CONFIG_SIBYTE_BOARD
-+
-+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM) || \
-+ defined(CONFIG_SIBYTE_CRHONE) || defined(CONFIG_SIBYTE_CRHINE)
- #include <asm/sibyte/swarm.h>
- #endif
-
-+#if defined(CONFIG_SIBYTE_SENTOSA) || defined(CONFIG_SIBYTE_RHONE)
-+#include <asm/sibyte/sentosa.h>
-+#endif
-+
-+#ifdef CONFIG_SIBYTE_CARMEL
-+#include <asm/sibyte/carmel.h>
- #endif
-
-+#ifdef __ASSEMBLY__
-+
-+#ifdef LEDS_PHYS
-+#define setleds(t0,t1,c0,c1,c2,c3) \
-+ li t0, (LEDS_PHYS|0xa0000000); \
-+ li t1, c0; \
-+ sb t1, 0x18(t0); \
-+ li t1, c1; \
-+ sb t1, 0x10(t0); \
-+ li t1, c2; \
-+ sb t1, 0x08(t0); \
-+ li t1, c3; \
-+ sb t1, 0x00(t0)
-+#else
-+#define setleds(t0,t1,c0,c1,c2,c3)
-+#endif /* LEDS_PHYS */
-+
-+#else
-
-+void swarm_setup(void);
-+
-+#ifdef LEDS_PHYS
-+extern void setleds(char *str);
-+#else
-+#define setleds(s) do { } while (0)
-+#endif /* LEDS_PHYS */
-+
-+#endif /* __ASSEMBLY__ */
-+
-+#endif /* CONFIG_SIBYTE_BOARD */
-+
-+#endif /* _SIBYTE_BOARD_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/carmel.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/carmel.h
---- linux-2.4.20/include/asm-mips64/sibyte/carmel.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/carmel.h 2003-01-21 23:11:39.000000000 -0600
-@@ -0,0 +1,58 @@
-+/*
-+ * Copyright (C) 2002 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#ifndef __ASM_SIBYTE_CARMEL_H
-+#define __ASM_SIBYTE_CARMEL_H
-+
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_int.h>
-+
-+#define SIBYTE_BOARD_NAME "Carmel"
-+
-+#define GPIO_PHY_INTERRUPT 2
-+#define GPIO_NONMASKABLE_INT 3
-+#define GPIO_CF_INSERTED 6
-+#define GPIO_MONTEREY_RESET 7
-+#define GPIO_QUADUART_INT 8
-+#define GPIO_CF_INT 9
-+#define GPIO_FPGA_CCLK 10
-+#define GPIO_FPGA_DOUT 11
-+#define GPIO_FPGA_DIN 12
-+#define GPIO_FPGA_PGM 13
-+#define GPIO_FPGA_DONE 14
-+#define GPIO_FPGA_INIT 15
-+
-+#define LEDS_CS 2
-+#define LEDS_PHYS 0x100C0000
-+#define MLEDS_CS 3
-+#define MLEDS_PHYS 0x100A0000
-+#define UART_CS 4
-+#define UART_PHYS 0x100D0000
-+#define ARAVALI_CS 5
-+#define ARAVALI_PHYS 0x11000000
-+#define IDE_CS 6
-+#define IDE_PHYS 0x100B0000
-+#define ARAVALI2_CS 7
-+#define ARAVALI2_PHYS 0x100E0000
-+
-+#if defined(CONFIG_SIBYTE_CARMEL)
-+#define K_GPIO_GB_IDE 9
-+#define K_INT_GB_IDE (K_INT_GPIO_0 + K_GPIO_GB_IDE)
-+#endif
-+
-+
-+#endif /* __ASM_SIBYTE_CARMEL_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Entries
---- linux-2.4.20/include/asm-mips64/sibyte/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Entries 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1,22 @@
-+/64bit.h/1.1.2.6/Wed Feb 19 21:06:52 2003/-ko/Tlinux_2_4_20
-+/board.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/carmel.h/1.1.2.1/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/io.h/1.1.2.2/Thu Oct 3 00:00:55 2002/-ko/Tlinux_2_4_20
-+/sb1250.h/1.1.2.7/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_defs.h/1.1.2.5/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_dma.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_genbus.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_int.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_l2c.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_ldt.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_mac.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_mc.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_regs.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_scd.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_smbus.h/1.1.2.3/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_syncser.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sb1250_uart.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/sentosa.h/1.1.2.1/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/swarm.h/1.1.2.4/Wed Jan 22 05:11:39 2003/-ko/Tlinux_2_4_20
-+/trace_prof.h/1.1.2.1/Fri Feb 7 22:00:22 2003//Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Repository
---- linux-2.4.20/include/asm-mips64/sibyte/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Repository 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/sibyte
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Root
---- linux-2.4.20/include/asm-mips64/sibyte/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Root 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Tag
---- linux-2.4.20/include/asm-mips64/sibyte/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/CVS/Tag 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/io.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/io.h
---- linux-2.4.20/include/asm-mips64/sibyte/io.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/io.h 2002-10-02 19:00:55.000000000 -0500
-@@ -6,8 +6,8 @@
- * Copyright (C) 2000 Ralf Baechle
- * Copyright (C) 2000 Silicon Graphics, Inc.
- */
--#ifndef _ASM_SGI_IO_H
--#define _ASM_SGI_IO_H
-+#ifndef _ASM_SIBYTE_IO_H
-+#define _ASM_SIBYTE_IO_H
-
- #include <asm/addrspace.h>
-
-@@ -18,4 +18,4 @@
-
- /* XXX ISA specific functions go here here. */
-
--#endif /* _ASM_SGI_IO_H */
-+#endif /* _ASM_SIBYTE_IO_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_defs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_defs.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_defs.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_defs.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-- * Global constants and macros File: sb1250_defs.h
-- *
-+ *
-+ * Global constants and macros File: sb1250_defs.h
-+ *
- * This file contains macros and definitions used by the other
- * include files.
- *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,38 +27,154 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-+#ifndef _SB1250_DEFS_H
-+#define _SB1250_DEFS_H
-+
-+/*
-+ * These headers require ANSI C89 string concatenation, and GCC or other
-+ * 'long long' (64-bit integer) support.
-+ */
-+#if !defined(__STDC__) && !defined(_MSC_VER)
-+#error SiByte headers require ANSI C89 support
-+#endif
-+
-
- /* *********************************************************************
-- * Naming schemes for constants in these files:
-+ * Macros for feature tests, used to enable include file features
-+ * for chip features only present in certain chip revisions.
- *
-- * M_xxx MASK constant (identifies bits in a register).
-+ * SIBYTE_HDR_FEATURES may be defined to be the mask value chip/revision
-+ * which is to be exposed by the headers. If undefined, it defaults to
-+ * "all features."
-+ *
-+ * Use like:
-+ *
-+ * #define SIBYTE_HDR_FEATURES SIBYTE_HDR_FMASK_112x_PASS1
-+ *
-+ * Generate defines only for that revision of chip.
-+ *
-+ * #if SIBYTE_HDR_FEATURE(chip,pass)
-+ *
-+ * True if header features for that revision or later of
-+ * that particular chip type are enabled in SIBYTE_HDR_FEATURES.
-+ * (Use this to bracket #defines for features present in a given
-+ * revision and later.)
-+ *
-+ * Note that there is no implied ordering between chip types.
-+ *
-+ * Note also that 'chip' and 'pass' must textually exactly
-+ * match the defines below. So, for example,
-+ * SIBYTE_HDR_FEATURE(112x, PASS1) is OK, but
-+ * SIBYTE_HDR_FEATURE(1120, pass1) is not (for two reasons).
-+ *
-+ * #if SIBYTE_HDR_FEATURE_UP_TO(chip,pass)
-+ *
-+ * Same as SIBYTE_HDR_FEATURE, but true for the named revision
-+ * and earlier revisions of the named chip type.
-+ *
-+ * #if SIBYTE_HDR_FEATURE_EXACT(chip,pass)
-+ *
-+ * Same as SIBYTE_HDR_FEATURE, but only true for the named
-+ * revision of the named chip type. (Note that this CANNOT
-+ * be used to verify that you're compiling only for that
-+ * particular chip/revision. It will be true any time this
-+ * chip/revision is included in SIBYTE_HDR_FEATURES.)
-+ *
-+ * #if SIBYTE_HDR_FEATURE_CHIP(chip)
-+ *
-+ * True if header features for (any revision of) that chip type
-+ * are enabled in SIBYTE_HDR_FEATURES. (Use this to bracket
-+ * #defines for features specific to a given chip type.)
-+ *
-+ * Mask values currently include room for additional revisions of each
-+ * chip type, but can be renumbered at will. Note that they MUST fit
-+ * into 31 bits and may not include C type constructs, for safe use in
-+ * CPP conditionals. Bit positions within chip types DO indicate
-+ * ordering, so be careful when adding support for new minor revs.
-+ ********************************************************************* */
-+
-+#define SIBYTE_HDR_FMASK_1250_ALL 0x00000ff
-+#define SIBYTE_HDR_FMASK_1250_PASS1 0x0000001
-+#define SIBYTE_HDR_FMASK_1250_PASS2 0x0000002
-+
-+#define SIBYTE_HDR_FMASK_112x_ALL 0x0000f00
-+#define SIBYTE_HDR_FMASK_112x_PASS1 0x0000100
-+#define SIBYTE_HDR_FMASK_112x_PASS3 0x0000200
-+
-+/* Bit mask for chip/revision. (use _ALL for all revisions of a chip). */
-+#define SIBYTE_HDR_FMASK(chip, pass) \
-+ (SIBYTE_HDR_FMASK_ ## chip ## _ ## pass)
-+#define SIBYTE_HDR_FMASK_ALLREVS(chip) \
-+ (SIBYTE_HDR_FMASK_ ## chip ## _ALL)
-+
-+#define SIBYTE_HDR_FMASK_ALL \
-+ (SIBYTE_HDR_FMASK_1250_ALL | SIBYTE_HDR_FMASK_112x_ALL)
-+
-+#ifndef SIBYTE_HDR_FEATURES
-+#define SIBYTE_HDR_FEATURES SIBYTE_HDR_FMASK_ALL
-+#endif
-+
-+
-+/* Bit mask for revisions of chip exclusively before the named revision. */
-+#define SIBYTE_HDR_FMASK_BEFORE(chip, pass) \
-+ ((SIBYTE_HDR_FMASK(chip, pass) - 1) & SIBYTE_HDR_FMASK_ALLREVS(chip))
-+
-+/* Bit mask for revisions of chip exclusively after the named revision. */
-+#define SIBYTE_HDR_FMASK_AFTER(chip, pass) \
-+ (~(SIBYTE_HDR_FMASK(chip, pass) \
-+ | (SIBYTE_HDR_FMASK(chip, pass) - 1)) & SIBYTE_HDR_FMASK_ALLREVS(chip))
-+
-+
-+/* True if header features enabled for (any revision of) that chip type. */
-+#define SIBYTE_HDR_FEATURE_CHIP(chip) \
-+ (!! (SIBYTE_HDR_FMASK_ALLREVS(chip) & SIBYTE_HDR_FEATURES))
-+
-+/* True if header features enabled for that rev or later, inclusive. */
-+#define SIBYTE_HDR_FEATURE(chip, pass) \
-+ (!! ((SIBYTE_HDR_FMASK(chip, pass) \
-+ | SIBYTE_HDR_FMASK_AFTER(chip, pass)) & SIBYTE_HDR_FEATURES))
-+
-+/* True if header features enabled for exactly that rev. */
-+#define SIBYTE_HDR_FEATURE_EXACT(chip, pass) \
-+ (!! (SIBYTE_HDR_FMASK(chip, pass) & SIBYTE_HDR_FEATURES))
-+
-+/* True if header features enabled for that rev or before, inclusive. */
-+#define SIBYTE_HDR_FEATURE_UP_TO(chip, pass) \
-+ (!! ((SIBYTE_HDR_FMASK(chip, pass) \
-+ | SIBYTE_HDR_FMASK_BEFORE(chip, pass)) & SIBYTE_HDR_FEATURES))
-+
-+
-+/* *********************************************************************
-+ * Naming schemes for constants in these files:
-+ *
-+ * M_xxx MASK constant (identifies bits in a register).
- * For multi-bit fields, all bits in the field will
- * be set.
- *
- * K_xxx "Code" constant (value for data in a multi-bit
- * field). The value is right justified.
- *
-- * V_xxx "Value" constant. This is the same as the
-+ * V_xxx "Value" constant. This is the same as the
- * corresponding "K_xxx" constant, except it is
- * shifted to the correct position in the register.
- *
- * S_xxx SHIFT constant. This is the number of bits that
-- * a field value (code) needs to be shifted
-+ * a field value (code) needs to be shifted
- * (towards the left) to put the value in the right
- * position for the register.
- *
-- * A_xxx ADDRESS constant. This will be a physical
-+ * A_xxx ADDRESS constant. This will be a physical
- * address. Use the PHYS_TO_K1 macro to generate
- * a K1SEG address.
- *
- * R_xxx RELATIVE offset constant. This is an offset from
- * an A_xxx constant (usually the first register in
- * a group).
-- *
-+ *
- * G_xxx(X) GET value. This macro obtains a multi-bit field
- * from a register, masks it, and shifts it to
- * the bottom of the register (retrieving a K_xxx
-@@ -72,17 +188,14 @@
-
-
-
--#ifndef _SB1250_DEFS_H
--#define _SB1250_DEFS_H
--
- /*
-- * Cast to 64-bit number. Presumably the syntax is different in
-+ * Cast to 64-bit number. Presumably the syntax is different in
- * assembly language.
- *
- * Note: you'll need to define uint32_t and uint64_t in your headers.
- */
-
--#if !defined(__ASSEMBLY__)
-+#if !defined(__ASSEMBLER__)
- #define _SB_MAKE64(x) ((uint64_t)(x))
- #define _SB_MAKE32(x) ((uint32_t)(x))
- #else
-@@ -121,9 +234,9 @@
- */
-
-
--#if !defined(__ASSEMBLY__)
-+#if !defined(__ASSEMBLER__)
- #define SBWRITECSR(csr,val) *((volatile uint64_t *) PHYS_TO_K1(csr)) = (val)
- #define SBREADCSR(csr) (*((volatile uint64_t *) PHYS_TO_K1(csr)))
--#endif /* __ASSEMBLY__ */
-+#endif /* __ASSEMBLER__ */
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_dma.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_dma.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_dma.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_dma.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,24 +1,24 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * DMA definitions File: sb1250_dma.h
-- *
-+ *
- * This module contains constants and macros useful for
- * programming the SB1250's DMA controllers, both the data mover
- * and the Ethernet DMA.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -28,7 +28,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -43,9 +43,9 @@
- * DMA Registers
- ********************************************************************* */
-
--/*
-+/*
- * Ethernet and Serial DMA Configuration Register 0 (Table 7-4)
-- * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
-+ * Registers: DMA_CONFIG0_MAC_x_RX_CH_0
- * Registers: DMA_CONFIG0_MAC_x_TX_CH_0
- * Registers: DMA_CONFIG0_SER_x_RX
- * Registers: DMA_CONFIG0_SER_x_TX
-@@ -53,8 +53,23 @@
-
-
- #define M_DMA_DROP _SB_MAKEMASK1(0)
-+
- #define M_DMA_CHAIN_SEL _SB_MAKEMASK1(1)
- #define M_DMA_RESERVED1 _SB_MAKEMASK1(2)
-+
-+#define S_DMA_DESC_TYPE _SB_MAKE64(1)
-+#define M_DMA_DESC_TYPE _SB_MAKE64(2,S_DMA_DESC_TYPE)
-+#define V_DMA_DESC_TYPE(x) _SB_MAKEVALUE(x,S_DMA_DESC_TYPE)
-+#define G_DMA_DESC_TYPE(x) _SB_GETVALUE(x,S_DMA_DESC_TYPE,M_DMA_DESC_TYPE)
-+
-+#define K_DMA_DESC_TYPE_RING_AL 0
-+#define K_DMA_DESC_TYPE_CHAIN_AL 1
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define K_DMA_DESC_TYPE_RING_UAL_WI 2
-+#define K_DMA_DESC_TYPE_RING_UAL_RMW 3
-+#endif
-+
- #define M_DMA_EOP_INT_EN _SB_MAKEMASK1(3)
- #define M_DMA_HWM_INT_EN _SB_MAKEMASK1(4)
- #define M_DMA_LWM_INT_EN _SB_MAKEMASK1(5)
-@@ -82,8 +97,8 @@
- #define G_DMA_LOW_WATERMARK(x) _SB_GETVALUE(x,S_DMA_LOW_WATERMARK,M_DMA_LOW_WATERMARK)
-
- /*
-- * Ethernet and Serial DMA Configuration Register 2 (Table 7-5)
-- * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
-+ * Ethernet and Serial DMA Configuration Register 1 (Table 7-5)
-+ * Registers: DMA_CONFIG1_MAC_x_RX_CH_0
- * Registers: DMA_CONFIG1_DMA_x_TX_CH_0
- * Registers: DMA_CONFIG1_SER_x_RX
- * Registers: DMA_CONFIG1_SER_x_TX
-@@ -96,6 +111,12 @@
- #define M_DMA_NO_DSCR_UPDT _SB_MAKEMASK1(4)
- #define M_DMA_L2CA _SB_MAKEMASK1(5)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define M_DMA_RX_XTRA_STATUS _SB_MAKEMASK1(6)
-+#define M_DMA_TX_CPU_PAUSE _SB_MAKEMASK1(6)
-+#define M_DMA_TX_FC_PAUSE_EN _SB_MAKEMASK1(7)
-+#endif
-+
- #define M_DMA_MBZ1 _SB_MAKEMASK(6,15)
-
- #define S_DMA_HDR_SIZE _SB_MAKE64(21)
-@@ -131,19 +152,36 @@
- /*
- * DMA Descriptor Count Registers (Table 7-8)
- */
--
-+
- /* No bitfields */
-
-
--/*
-+/*
- * Current Descriptor Address Register (Table 7-11)
- */
-
- #define S_DMA_CURDSCR_ADDR _SB_MAKE64(0)
- #define M_DMA_CURDSCR_ADDR _SB_MAKEMASK(40,S_DMA_CURDSCR_ADDR)
--#define S_DMA_CURDSCR_COUNT _SB_MAKE64(48)
-+#define S_DMA_CURDSCR_COUNT _SB_MAKE64(40)
- #define M_DMA_CURDSCR_COUNT _SB_MAKEMASK(16,S_DMA_CURDSCR_COUNT)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define M_DMA_TX_CH_PAUSE_ON _SB_MAKEMASK1(56)
-+#endif
-+
-+/*
-+ * Receive Packet Drop Registers
-+ */
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_OODLOST_RX _SB_MAKE64(0)
-+#define M_DMA_OODLOST_RX _SB_MAKEMASK(16,S_DMA_OODLOST_RX)
-+#define G_DMA_OODLOST_RX(x) _SB_GETVALUE(x,S_DMA_OODLOST_RX,M_DMA_OODLOST_RX)
-+
-+#define S_DMA_EOP_COUNT_RX _SB_MAKE64(16)
-+#define M_DMA_EOP_COUNT_RX _SB_MAKEMASK(8,S_DMA_EOP_COUNT_RX)
-+#define G_DMA_EOP_COUNT_RX(x) _SB_GETVALUE(x,S_DMA_EOP_COUNT_RX,M_DMA_EOP_COUNT_RX)
-+#endif
-+
- /* *********************************************************************
- * DMA Descriptors
- ********************************************************************* */
-@@ -154,6 +192,8 @@
-
- #define S_DMA_DSCRA_OFFSET _SB_MAKE64(0)
- #define M_DMA_DSCRA_OFFSET _SB_MAKEMASK(5,S_DMA_DSCRA_OFFSET)
-+#define V_DMA_DSCRA_OFFSET(x) _SB_MAKEVALUE(x,S_DMA_DSCRA_OFFSET)
-+#define G_DMA_DSCRA_OFFSET(x) _SB_GETVALUE(x,S_DMA_DSCRA_OFFSET,M_DMA_DSCRA_OFFSET)
-
- /* Note: Don't shift the address over, just mask it with the mask below */
- #define S_DMA_DSCRA_A_ADDR _SB_MAKE64(5)
-@@ -161,11 +201,22 @@
-
- #define M_DMA_DSCRA_A_ADDR_OFFSET (M_DMA_DSCRA_OFFSET | M_DMA_DSCRA_A_ADDR)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRA_A_ADDR_UA _SB_MAKE64(0)
-+#define M_DMA_DSCRA_A_ADDR_UA _SB_MAKEMASK(40,S_DMA_DSCRA_A_ADDR_UA)
-+#endif
-+
- #define S_DMA_DSCRA_A_SIZE _SB_MAKE64(40)
- #define M_DMA_DSCRA_A_SIZE _SB_MAKEMASK(9,S_DMA_DSCRA_A_SIZE)
- #define V_DMA_DSCRA_A_SIZE(x) _SB_MAKEVALUE(x,S_DMA_DSCRA_A_SIZE)
- #define G_DMA_DSCRA_A_SIZE(x) _SB_GETVALUE(x,S_DMA_DSCRA_A_SIZE,M_DMA_DSCRA_A_SIZE)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRA_DSCR_CNT _SB_MAKE64(40)
-+#define M_DMA_DSCRA_DSCR_CNT _SB_MAKEMASK(8,S_DMA_DSCRA_DSCR_CNT)
-+#define G_DMA_DSCRA_DSCR_CNT(x) _SB_GETVALUE(x,S_DMA_DSCRA_DSCR_CNT,M_DMA_DSCRA_DSCR_CNT)
-+#endif
-+
- #define M_DMA_DSCRA_INTERRUPT _SB_MAKEMASK1(49)
- #define M_DMA_DSCRA_OFFSETB _SB_MAKEMASK1(50)
-
-@@ -184,6 +235,13 @@
- #define V_DMA_DSCRB_OPTIONS(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_OPTIONS)
- #define G_DMA_DSCRB_OPTIONS(x) _SB_GETVALUE(x,S_DMA_DSCRB_OPTIONS,M_DMA_DSCRB_OPTIONS)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRB_A_SIZE _SB_MAKE64(8)
-+#define M_DMA_DSCRB_A_SIZE _SB_MAKEMASK(14,S_DMA_DSCRB_A_SIZE)
-+#define V_DMA_DSCRB_A_SIZE(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_A_SIZE)
-+#define G_DMA_DSCRB_A_SIZE(x) _SB_GETVALUE(x,S_DMA_DSCRB_A_SIZE,M_DMA_DSCRB_A_SIZE)
-+#endif
-+
- #define R_DMA_DSCRB_ADDR _SB_MAKE64(0x10)
-
- /* Note: Don't shift the address over, just mask it with the mask below */
-@@ -197,20 +255,42 @@
-
- #define M_DMA_DSCRB_B_VALID _SB_MAKEMASK1(49)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define S_DMA_DSCRB_PKT_SIZE_MSB _SB_MAKE64(48)
-+#define M_DMA_DSCRB_PKT_SIZE_MSB _SB_MAKEMASK(2,S_DMA_DSCRB_PKT_SIZE_MSB)
-+#define V_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB)
-+#define G_DMA_DSCRB_PKT_SIZE_MSB(x) _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE_MSB,M_DMA_DSCRB_PKT_SIZE_MSB)
-+#endif
-+
- #define S_DMA_DSCRB_PKT_SIZE _SB_MAKE64(50)
- #define M_DMA_DSCRB_PKT_SIZE _SB_MAKEMASK(14,S_DMA_DSCRB_PKT_SIZE)
- #define V_DMA_DSCRB_PKT_SIZE(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_PKT_SIZE)
- #define G_DMA_DSCRB_PKT_SIZE(x) _SB_GETVALUE(x,S_DMA_DSCRB_PKT_SIZE,M_DMA_DSCRB_PKT_SIZE)
-
- /*
-+ * from pass2 some bits in dscr_b are also used for rx status
-+ */
-+#define S_DMA_DSCRB_STATUS _SB_MAKE64(0)
-+#define M_DMA_DSCRB_STATUS _SB_MAKEMASK(1,S_DMA_DSCRB_STATUS)
-+#define V_DMA_DSCRB_STATUS(x) _SB_MAKEVALUE(x,S_DMA_DSCRB_STATUS)
-+#define G_DMA_DSCRB_STATUS(x) _SB_GETVALUE(x,S_DMA_DSCRB_STATUS,M_DMA_DSCRB_STATUS)
-+
-+/*
- * Ethernet Descriptor Status Bits (Table 7-15)
- */
-
- #define M_DMA_ETHRX_BADIP4CS _SB_MAKEMASK1(51)
- #define M_DMA_ETHRX_DSCRERR _SB_MAKEMASK1(52)
-
--/* Note: BADTCPCS is actually in DSCR_A */
--#define M_DMA_ETHRX_BADTCPCS _SB_MAKEMASK1(0) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+/* Note: BADTCPCS is actually in DSCR_B options field */
-+#define M_DMA_ETHRX_BADTCPCS _SB_MAKEMASK1(0)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS3)
-+#define M_DMA_ETH_VLAN_FLAG _SB_MAKEMASK1(1)
-+#define M_DMA_ETH_CRC_FLAG _SB_MAKEMASK1(2)
-+#endif
-
- #define S_DMA_ETHRX_RXCH 53
- #define M_DMA_ETHRX_RXCH _SB_MAKEMASK(2,S_DMA_ETHRX_RXCH)
-@@ -231,8 +311,8 @@
- #define K_DMA_ETHRX_PKTTYPE_USER2 6
- #define K_DMA_ETHRX_PKTTYPE_USER3 7
-
--#define M_DMA_ETHRX_MATCH_EXACT _SB_MAKEMASK1(58)
--#define M_DMA_ETHRX_MATCH_HASH _SB_MAKEMASK1(59)
-+#define M_DMA_ETHRX_MATCH_HASH _SB_MAKEMASK1(58)
-+#define M_DMA_ETHRX_MATCH_EXACT _SB_MAKEMASK1(59)
- #define M_DMA_ETHRX_BCAST _SB_MAKEMASK1(60)
- #define M_DMA_ETHRX_MCAST _SB_MAKEMASK1(61)
- #define M_DMA_ETHRX_BAD _SB_MAKEMASK1(62)
-@@ -244,7 +324,7 @@
-
- #define M_DMA_ETHTX_SOP _SB_MAKEMASK1(63)
-
--/*
-+/*
- * Ethernet Transmit Options (Table 7-17)
- */
-
-@@ -297,7 +377,7 @@
- * Data Mover Registers
- ********************************************************************* */
-
--/*
-+/*
- * Data Mover Descriptor Base Address Register (Table 7-22)
- * Register: DM_DSCR_BASE_0
- * Register: DM_DSCR_BASE_1
-@@ -334,7 +414,7 @@
- #define M_DM_DSCR_BASE_ABORT _SB_MAKEMASK1(62)
- #define M_DM_DSCR_BASE_ENABL _SB_MAKEMASK1(63)
-
--/*
-+/*
- * Data Mover Descriptor Count Register (Table 7-25)
- */
-
-@@ -357,6 +437,83 @@
- #define G_DM_CUR_DSCR_DSCR_COUNT(r) _SB_GETVALUE(r,S_DM_CUR_DSCR_DSCR_COUNT,\
- M_DM_CUR_DSCR_DSCR_COUNT)
-
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Data Mover Channel Partial Result Registers
-+ * Register: DM_PARTIAL_0
-+ * Register: DM_PARTIAL_1
-+ * Register: DM_PARTIAL_2
-+ * Register: DM_PARTIAL_3
-+ */
-+#define S_DM_PARTIAL_CRC_PARTIAL _SB_MAKE64(0)
-+#define M_DM_PARTIAL_CRC_PARTIAL _SB_MAKEMASK(32,S_DM_PARTIAL_CRC_PARTIAL)
-+#define V_DM_PARTIAL_CRC_PARTIAL(r) _SB_MAKEVALUE(r,S_DM_PARTIAL_CRC_PARTIAL)
-+#define G_DM_PARTIAL_CRC_PARTIAL(r) _SB_GETVALUE(r,S_DM_PARTIAL_CRC_PARTIAL,\
-+ M_DM_PARTIAL_CRC_PARTIAL)
-+
-+#define S_DM_PARTIAL_TCPCS_PARTIAL _SB_MAKE64(32)
-+#define M_DM_PARTIAL_TCPCS_PARTIAL _SB_MAKEMASK(16,S_DM_PARTIAL_TCPCS_PARTIAL)
-+#define V_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_MAKEVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL)
-+#define G_DM_PARTIAL_TCPCS_PARTIAL(r) _SB_GETVALUE(r,S_DM_PARTIAL_TCPCS_PARTIAL,\
-+ M_DM_PARTIAL_TCPCS_PARTIAL)
-+
-+#define M_DM_PARTIAL_ODD_BYTE _SB_MAKEMASK1(48)
-+#endif /* 112x PASS1 */
-+
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Data Mover CRC Definition Registers
-+ * Register: CRC_DEF_0
-+ * Register: CRC_DEF_1
-+ */
-+#define S_CRC_DEF_CRC_INIT _SB_MAKE64(0)
-+#define M_CRC_DEF_CRC_INIT _SB_MAKEMASK(32,S_CRC_DEF_CRC_INIT)
-+#define V_CRC_DEF_CRC_INIT(r) _SB_MAKEVALUE(r,S_CRC_DEF_CRC_INIT)
-+#define G_CRC_DEF_CRC_INIT(r) _SB_GETVALUE(r,S_CRC_DEF_CRC_INIT,\
-+ M_CRC_DEF_CRC_INIT)
-+
-+#define S_CRC_DEF_CRC_POLY _SB_MAKE64(32)
-+#define M_CRC_DEF_CRC_POLY _SB_MAKEMASK(32,S_CRC_DEF_CRC_POLY)
-+#define V_CRC_DEF_CRC_POLY(r) _SB_MAKEVALUE(r,S_CRC_DEF_CRC_POLY)
-+#define G_CRC_DEF_CRC_POLY(r) _SB_GETVALUE(r,S_CRC_DEF_CRC_POLY,\
-+ M_CRC_DEF_CRC_POLY)
-+#endif /* 112x PASS1 */
-+
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Data Mover CRC/Checksum Definition Registers
-+ * Register: CTCP_DEF_0
-+ * Register: CTCP_DEF_1
-+ */
-+#define S_CTCP_DEF_CRC_TXOR _SB_MAKE64(0)
-+#define M_CTCP_DEF_CRC_TXOR _SB_MAKEMASK(32,S_CTCP_DEF_CRC_TXOR)
-+#define V_CTCP_DEF_CRC_TXOR(r) _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_TXOR)
-+#define G_CTCP_DEF_CRC_TXOR(r) _SB_GETVALUE(r,S_CTCP_DEF_CRC_TXOR,\
-+ M_CTCP_DEF_CRC_TXOR)
-+
-+#define S_CTCP_DEF_TCPCS_INIT _SB_MAKE64(32)
-+#define M_CTCP_DEF_TCPCS_INIT _SB_MAKEMASK(16,S_CTCP_DEF_TCPCS_INIT)
-+#define V_CTCP_DEF_TCPCS_INIT(r) _SB_MAKEVALUE(r,S_CTCP_DEF_TCPCS_INIT)
-+#define G_CTCP_DEF_TCPCS_INIT(r) _SB_GETVALUE(r,S_CTCP_DEF_TCPCS_INIT,\
-+ M_CTCP_DEF_TCPCS_INIT)
-+
-+#define S_CTCP_DEF_CRC_WIDTH _SB_MAKE64(48)
-+#define M_CTCP_DEF_CRC_WIDTH _SB_MAKEMASK(2,S_CTCP_DEF_CRC_WIDTH)
-+#define V_CTCP_DEF_CRC_WIDTH(r) _SB_MAKEVALUE(r,S_CTCP_DEF_CRC_WIDTH)
-+#define G_CTCP_DEF_CRC_WIDTH(r) _SB_GETVALUE(r,S_CTCP_DEF_CRC_WIDTH,\
-+ M_CTCP_DEF_CRC_WIDTH)
-+
-+#define K_CTCP_DEF_CRC_WIDTH_4 0
-+#define K_CTCP_DEF_CRC_WIDTH_2 1
-+#define K_CTCP_DEF_CRC_WIDTH_1 2
-+
-+#define M_CTCP_DEF_CRC_BIT_ORDER _SB_MAKEMASK1(50)
-+#endif /* 112x PASS1 */
-+
-+
- /*
- * Data Mover Descriptor Doubleword "A" (Table 7-26)
- */
-@@ -367,10 +524,9 @@
- #define M_DM_DSCRA_UN_DEST _SB_MAKEMASK1(40)
- #define M_DM_DSCRA_UN_SRC _SB_MAKEMASK1(41)
- #define M_DM_DSCRA_INTERRUPT _SB_MAKEMASK1(42)
--/*#define M_DM_DSCRA_THROTTLE _SB_MAKEMASK1(43) */ /* REMOVED PASS2 */
--
--#define M_DM_DSCRA_RD_BKOFF _SB_MAKEMASK1(52) /* PASS2 */
--#define M_DM_DSCRA_WR_BKOFF _SB_MAKEMASK1(53) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+#define M_DM_DSCRA_THROTTLE _SB_MAKEMASK1(43)
-+#endif /* up to 1250 PASS1 */
-
- #define S_DM_DSCRA_DIR_DEST _SB_MAKE64(44)
- #define M_DM_DSCRA_DIR_DEST _SB_MAKEMASK(2,S_DM_DSCRA_DIR_DEST)
-@@ -404,7 +560,23 @@
- #define M_DM_DSCRA_L2C_DEST _SB_MAKEMASK1(50)
- #define M_DM_DSCRA_L2C_SRC _SB_MAKEMASK1(51)
-
--#define M_DM_DSCRA_RESERVED2 _SB_MAKEMASK(10,54)
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_DM_DSCRA_RD_BKOFF _SB_MAKEMASK1(52)
-+#define M_DM_DSCRA_WR_BKOFF _SB_MAKEMASK1(53)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_DM_DSCRA_TCPCS_EN _SB_MAKEMASK1(54)
-+#define M_DM_DSCRA_TCPCS_RES _SB_MAKEMASK1(55)
-+#define M_DM_DSCRA_TCPCS_AP _SB_MAKEMASK1(56)
-+#define M_DM_DSCRA_CRC_EN _SB_MAKEMASK1(57)
-+#define M_DM_DSCRA_CRC_RES _SB_MAKEMASK1(58)
-+#define M_DM_DSCRA_CRC_AP _SB_MAKEMASK1(59)
-+#define M_DM_DSCRA_CRC_DFN _SB_MAKEMASK1(60)
-+#define M_DM_DSCRA_CRC_XBIT _SB_MAKEMASK1(61)
-+#endif /* 112x PASS1 */
-+
-+#define M_DM_DSCRA_RESERVED2 _SB_MAKEMASK(3,61)
-
- /*
- * Data Mover Descriptor Doubleword "B" (Table 7-25)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_genbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_genbus.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_genbus.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_genbus.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * Generic Bus Constants File: sb1250_genbus.h
-- *
-- * This module contains constants and macros useful for
-+ *
-+ * This module contains constants and macros useful for
- * manipulating the SB1250's Generic Bus interface
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -41,22 +41,33 @@
- * Generic Bus Region Configuration Registers (Table 11-4)
- */
-
--#define M_IO_RDY_ACTIVE _SB_MAKEMASK1(0)
--#define M_IO_ENA_RDY _SB_MAKEMASK1(1)
-+#define S_IO_RDY_ACTIVE 0
-+#define M_IO_RDY_ACTIVE _SB_MAKEMASK1(S_IO_RDY_ACTIVE)
-+
-+#define S_IO_ENA_RDY 1
-+#define M_IO_ENA_RDY _SB_MAKEMASK1(S_IO_ENA_RDY)
-
- #define S_IO_WIDTH_SEL 2
- #define M_IO_WIDTH_SEL _SB_MAKEMASK(2,S_IO_WIDTH_SEL)
- #define K_IO_WIDTH_SEL_1 0
- #define K_IO_WIDTH_SEL_2 1
--#define K_IO_WIDTH_SEL_1L 2 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define K_IO_WIDTH_SEL_1L 2
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define K_IO_WIDTH_SEL_4 3
- #define V_IO_WIDTH_SEL(x) _SB_MAKEVALUE(x,S_IO_WIDTH_SEL)
- #define G_IO_WIDTH_SEL(x) _SB_GETVALUE(x,S_IO_WIDTH_SEL,M_IO_WIDTH_SEL)
-
--#define M_IO_PARITY_ENA _SB_MAKEMASK1(4)
--#define M_IO_BURST_EN _SB_MAKEMASK1(5) /* PASS2 */
--#define M_IO_PARITY_ODD _SB_MAKEMASK1(6)
--#define M_IO_NONMUX _SB_MAKEMASK1(7)
-+#define S_IO_PARITY_ENA 4
-+#define M_IO_PARITY_ENA _SB_MAKEMASK1(S_IO_PARITY_ENA)
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_IO_BURST_EN 5
-+#define M_IO_BURST_EN _SB_MAKEMASK1(S_IO_BURST_EN)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+#define S_IO_PARITY_ODD 6
-+#define M_IO_PARITY_ODD _SB_MAKEMASK1(S_IO_PARITY_ODD)
-+#define S_IO_NONMUX 7
-+#define M_IO_NONMUX _SB_MAKEMASK1(S_IO_NONMUX)
-
- #define S_IO_TIMEOUT 8
- #define M_IO_TIMEOUT _SB_MAKEMASK(8,S_IO_TIMEOUT)
-@@ -94,17 +105,21 @@
- #define V_IO_ALE_WIDTH(x) _SB_MAKEVALUE(x,S_IO_ALE_WIDTH)
- #define G_IO_ALE_WIDTH(x) _SB_GETVALUE(x,S_IO_ALE_WIDTH,M_IO_ALE_WIDTH)
-
--#define M_IO_EARLY_CS _SB_MAKEMASK1(3) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_IO_EARLY_CS _SB_MAKEMASK1(3)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_IO_ALE_TO_CS 4
- #define M_IO_ALE_TO_CS _SB_MAKEMASK(2,S_IO_ALE_TO_CS)
- #define V_IO_ALE_TO_CS(x) _SB_MAKEVALUE(x,S_IO_ALE_TO_CS)
- #define G_IO_ALE_TO_CS(x) _SB_GETVALUE(x,S_IO_ALE_TO_CS,M_IO_ALE_TO_CS)
-
--#define S_IO_BURST_WIDTH _SB_MAKE64(6) /* PASS2 */
--#define M_IO_BURST_WIDTH _SB_MAKEMASK(2,S_IO_BURST_WIDTH) /* PASS2 */
--#define V_IO_BURST_WIDTH(x) _SB_MAKEVALUE(x,S_IO_BURST_WIDTH) /* PASS2 */
--#define G_IO_BURST_WIDTH(x) _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_IO_BURST_WIDTH _SB_MAKE64(6)
-+#define M_IO_BURST_WIDTH _SB_MAKEMASK(2,S_IO_BURST_WIDTH)
-+#define V_IO_BURST_WIDTH(x) _SB_MAKEVALUE(x,S_IO_BURST_WIDTH)
-+#define G_IO_BURST_WIDTH(x) _SB_GETVALUE(x,S_IO_BURST_WIDTH,M_IO_BURST_WIDTH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_IO_CS_WIDTH 8
- #define M_IO_CS_WIDTH _SB_MAKEMASK(5,S_IO_CS_WIDTH)
-@@ -126,7 +141,9 @@
- #define V_IO_ALE_TO_WRITE(x) _SB_MAKEVALUE(x,S_IO_ALE_TO_WRITE)
- #define G_IO_ALE_TO_WRITE(x) _SB_GETVALUE(x,S_IO_ALE_TO_WRITE,M_IO_ALE_TO_WRITE)
-
--#define M_IO_RDY_SYNC _SB_MAKEMASK1(3) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_IO_RDY_SYNC _SB_MAKEMASK1(3)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_IO_WRITE_WIDTH 4
- #define M_IO_WRITE_WIDTH _SB_MAKEMASK(4,S_IO_WRITE_WIDTH)
-@@ -166,7 +183,9 @@
- #define M_IO_TIMEOUT_INT _SB_MAKEMASK1(10)
- #define M_IO_ILL_ADDR_INT _SB_MAKEMASK1(11)
- #define M_IO_MULT_CS_INT _SB_MAKEMASK1(12)
--#define M_IO_COH_ERR _SB_MAKEMASK1(14) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_IO_COH_ERR _SB_MAKEMASK1(14)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * PCMCIA configuration register (Table 12-6)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250.h 2003-01-21 23:11:39.000000000 -0600
-@@ -19,21 +19,32 @@
- #ifndef _ASM_SIBYTE_SB1250_H
- #define _ASM_SIBYTE_SB1250_H
-
-+#define SB1250_NR_IRQS 64
-+
- #ifndef __ASSEMBLY__
-
- #include <asm/addrspace.h>
-
- /* For revision/pass information */
- #include <asm/sibyte/sb1250_scd.h>
--extern unsigned int sb1250_pass;
-+extern unsigned int sb1_pass;
-+extern unsigned int soc_pass;
-+extern unsigned int soc_type;
-
- extern void sb1250_time_init(void);
- extern unsigned long sb1250_gettimeoffset(void);
- extern void sb1250_mask_irq(int cpu, int irq);
- extern void sb1250_unmask_irq(int cpu, int irq);
- extern void sb1250_smp_finish(void);
--#endif
-
--#define IO_SPACE_BASE KSEG1
-+#define AT_spin \
-+ __asm__ __volatile__ ( \
-+ ".set noat\n" \
-+ "li $at, 0\n" \
-+ "1: beqz $at, 1b\n" \
-+ ".set at\n" \
-+ )
-+
-+#endif
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_int.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_int.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_int.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_int.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * Interrupt Mapper definitions File: sb1250_int.h
-- *
-+ *
- * This module contains constants for manipulating the SB1250's
- * interrupt mapper and definitions for the interrupt sources.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -43,7 +43,7 @@
-
- /*
- * Interrupt sources (Table 4-8, UM 0.2)
-- *
-+ *
- * First, the interrupt numbers.
- */
-
-@@ -77,8 +77,10 @@
- #define K_INT_MBOX_1 27
- #define K_INT_MBOX_2 28
- #define K_INT_MBOX_3 29
--#define K_INT_CYCLE_CP0_INT 30 /* PASS2 */
--#define K_INT_CYCLE_CP1_INT 31 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define K_INT_CYCLE_CP0_INT 30
-+#define K_INT_CYCLE_CP1_INT 31
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define K_INT_GPIO_0 32
- #define K_INT_GPIO_1 33
- #define K_INT_GPIO_2 34
-@@ -108,9 +110,11 @@
- #define K_INT_PCI_INTC 58
- #define K_INT_PCI_INTD 59
- #define K_INT_SPARE_2 60
--#define K_INT_MAC_0_CH1 61 /* PASS2 */
--#define K_INT_MAC_1_CH1 62 /* PASS2 */
--#define K_INT_MAC_2_CH1 63 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define K_INT_MAC_0_CH1 61
-+#define K_INT_MAC_1_CH1 62
-+#define K_INT_MAC_2_CH1 63
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * Mask values for each interrupt
-@@ -146,8 +150,10 @@
- #define M_INT_MBOX_1 _SB_MAKEMASK1(K_INT_MBOX_1)
- #define M_INT_MBOX_2 _SB_MAKEMASK1(K_INT_MBOX_2)
- #define M_INT_MBOX_3 _SB_MAKEMASK1(K_INT_MBOX_3)
--#define M_INT_CYCLE_CP0_INT _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT) /* PASS2 */
--#define M_INT_CYCLE_CP1_INT _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_INT_CYCLE_CP0_INT _SB_MAKEMASK1(K_INT_CYCLE_CP0_INT)
-+#define M_INT_CYCLE_CP1_INT _SB_MAKEMASK1(K_INT_CYCLE_CP1_INT)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define M_INT_GPIO_0 _SB_MAKEMASK1(K_INT_GPIO_0)
- #define M_INT_GPIO_1 _SB_MAKEMASK1(K_INT_GPIO_1)
- #define M_INT_GPIO_2 _SB_MAKEMASK1(K_INT_GPIO_2)
-@@ -177,9 +183,11 @@
- #define M_INT_PCI_INTC _SB_MAKEMASK1(K_INT_PCI_INTC)
- #define M_INT_PCI_INTD _SB_MAKEMASK1(K_INT_PCI_INTD)
- #define M_INT_SPARE_2 _SB_MAKEMASK1(K_INT_SPARE_2)
--#define M_INT_MAC_0_CH1 _SB_MAKEMASK1(K_INT_MAC_0_CH1) /* PASS2 */
--#define M_INT_MAC_1_CH1 _SB_MAKEMASK1(K_INT_MAC_1_CH1) /* PASS2 */
--#define M_INT_MAC_2_CH1 _SB_MAKEMASK1(K_INT_MAC_2_CH1) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_INT_MAC_0_CH1 _SB_MAKEMASK1(K_INT_MAC_0_CH1)
-+#define M_INT_MAC_1_CH1 _SB_MAKEMASK1(K_INT_MAC_1_CH1)
-+#define M_INT_MAC_2_CH1 _SB_MAKEMASK1(K_INT_MAC_2_CH1)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * Interrupt mappings
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_l2c.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_l2c.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_l2c.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_l2c.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * L2 Cache constants and macros File: sb1250_l2c.h
-- *
-+ *
- * This module contains constants useful for manipulating the
- * level 2 cache.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -102,4 +102,27 @@
- #define L2C_ENTRIES_PER_WAY 4096
- #define L2C_NUM_WAYS 4
-
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * L2 Read Misc. register (A_L2_READ_MISC)
-+ */
-+#define S_L2C_MISC_NO_WAY 10
-+#define M_L2C_MISC_NO_WAY _SB_MAKEMASK(4,S_L2C_MISC_NO_WAY)
-+#define V_L2C_MISC_NO_WAY(x) _SB_MAKEVALUE(x,S_L2C_MISC_NO_WAY)
-+#define G_L2C_MISC_NO_WAY(x) _SB_GETVALUE(x,S_L2C_MISC_NO_WAY,M_L2C_MISC_NO_WAY)
-+
-+#define M_L2C_MISC_ECC_CLEANUP_DIS _SB_MAKEMASK1(9)
-+#define M_L2C_MISC_MC_PRIO_LOW _SB_MAKEMASK1(8)
-+#define M_L2C_MISC_SOFT_DISABLE_T _SB_MAKEMASK1(7)
-+#define M_L2C_MISC_SOFT_DISABLE_B _SB_MAKEMASK1(6)
-+#define M_L2C_MISC_SOFT_DISABLE_R _SB_MAKEMASK1(5)
-+#define M_L2C_MISC_SOFT_DISABLE_L _SB_MAKEMASK1(4)
-+#define M_L2C_MISC_SCACHE_DISABLE_T _SB_MAKEMASK1(3)
-+#define M_L2C_MISC_SCACHE_DISABLE_B _SB_MAKEMASK1(2)
-+#define M_L2C_MISC_SCACHE_DISABLE_R _SB_MAKEMASK1(1)
-+#define M_L2C_MISC_SCACHE_DISABLE_L _SB_MAKEMASK1(0)
-+#endif /* 112x PASS1 */
-+
-+
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_ldt.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_ldt.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_ldt.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_ldt.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * LDT constants File: sb1250_ldt.h
-- *
-- * This module contains constants and macros to describe
-- * the LDT interface on the SB1250.
-- *
-+ *
-+ * This module contains constants and macros to describe
-+ * the LDT interface on the SB1250.
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -70,7 +70,9 @@
- #define R_LDT_TYPE1_SRIRXNUM 0x0058
- #define R_LDT_TYPE1_ERRSTATUS 0x0068
- #define R_LDT_TYPE1_SRICTRL 0x006C
--#define R_LDT_TYPE1_ADDSTATUS 0x0070 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_LDT_TYPE1_ADDSTATUS 0x0070
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define R_LDT_TYPE1_TXBUFCNT 0x00C8
- #define R_LDT_TYPE1_EXPCRC 0x00DC
- #define R_LDT_TYPE1_RXCRC 0x00F0
-@@ -153,14 +155,16 @@
-
- /*
- * LDT Status Register (Table 8-14). Note that these constants
-- * assume you've read the command and status register
-+ * assume you've read the command and status register
- * together (32-bit read at offset 0x04)
- *
- * These bits also apply to the secondary status
- * register (Table 8-15), offset 0x1C
- */
-
--#define M_LDT_STATUS_VGAEN _SB_MAKEMASK1_32(3) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_LDT_STATUS_VGAEN _SB_MAKEMASK1_32(3)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define M_LDT_STATUS_CAPLIST _SB_MAKEMASK1_32(20)
- #define M_LDT_STATUS_66MHZCAP _SB_MAKEMASK1_32(21)
- #define M_LDT_STATUS_RESERVED2 _SB_MAKEMASK1_32(22)
-@@ -179,8 +183,8 @@
- #define M_LDT_STATUS_DETPARERR _SB_MAKEMASK1_32(31)
-
- /*
-- * Bridge Control Register (Table 8-16). Note that these
-- * constants assume you've read the register as a 32-bit
-+ * Bridge Control Register (Table 8-16). Note that these
-+ * constants assume you've read the register as a 32-bit
- * read (offset 0x3C)
- */
-
-@@ -281,9 +285,13 @@
- #define M_LDT_SRICMD_SIPREADY _SB_MAKEMASK1_32(16)
- #define M_LDT_SRICMD_SYNCPTRCTL _SB_MAKEMASK1_32(17)
- #define M_LDT_SRICMD_REDUCESYNCZERO _SB_MAKEMASK1_32(18)
--/*#define M_LDT_SRICMD_DISSTARVATIONCNT _SB_MAKEMASK1_32(19) */ /* PASS1 */
--#define M_LDT_SRICMD_DISMULTTXVLD _SB_MAKEMASK1_32(19) /* PASS2 */
--#define M_LDT_SRICMD_EXPENDIAN _SB_MAKEMASK1_32(26) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+#define M_LDT_SRICMD_DISSTARVATIONCNT _SB_MAKEMASK1_32(19) /* PASS1 */
-+#endif /* up to 1250 PASS1 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_LDT_SRICMD_DISMULTTXVLD _SB_MAKEMASK1_32(19)
-+#define M_LDT_SRICMD_EXPENDIAN _SB_MAKEMASK1_32(26)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- #define S_LDT_SRICMD_RXMARGIN 20
-@@ -402,14 +410,16 @@
- #define V_LDT_TXBUFCNT_RDATA(x) _SB_MAKEVALUE_32(x,S_LDT_TXBUFCNT_RDATA)
- #define G_LDT_TXBUFCNT_RDATA(x) _SB_GETVALUE_32(x,S_LDT_TXBUFCNT_RDATA,M_LDT_TXBUFCNT_RDATA)
-
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
- /*
-- * Additional Status Register (PASS2)
-+ * Additional Status Register
- */
-
- #define S_LDT_ADDSTATUS_TGTDONE 0
- #define M_LDT_ADDSTATUS_TGTDONE _SB_MAKEMASK_32(8,S_LDT_ADDSTATUS_TGTDONE)
- #define V_LDT_ADDSTATUS_TGTDONE(x) _SB_MAKEVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE)
- #define G_LDT_ADDSTATUS_TGTDONE(x) _SB_GETVALUE_32(x,S_LDT_ADDSTATUS_TGTDONE,M_LDT_ADDSTATUS_TGTDONE)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #endif
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_mac.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mac.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_mac.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mac.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * MAC constants and macros File: sb1250_mac.h
-- *
-+ *
- * This module contains constants and macros for the SB1250's
- * ethernet controllers.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -128,7 +128,13 @@
- #define M_MAC_BYPASS_16 _SB_MAKEMASK1(42)
- #define M_MAC_BYPASS_FCS_CHK _SB_MAKEMASK1(43)
-
--#define M_MAC_RX_CH_SEL_MSB _SB_MAKEMASK1(44) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_RX_CH_SEL_MSB _SB_MAKEMASK1(44)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_SPLIT_CH_SEL _SB_MAKEMASK1(45)
-+#endif /* 112x PASS1 */
-
- #define S_MAC_BYPASS_IFG _SB_MAKE64(46)
- #define M_MAC_BYPASS_IFG _SB_MAKEMASK(8,S_MAC_BYPASS_IFG)
-@@ -200,14 +206,24 @@
- */
-
- #define S_MAC_TX_WR_THRSH _SB_MAKE64(0)
--/* #define M_MAC_TX_WR_THRSH _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */ /* PASS1 */
--#define M_MAC_TX_WR_THRSH _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+/* XXX: Can't enable, as it has the same name as a pass2+ define below. */
-+/* #define M_MAC_TX_WR_THRSH _SB_MAKEMASK(6,S_MAC_TX_WR_THRSH) */
-+#endif /* up to 1250 PASS1 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_TX_WR_THRSH _SB_MAKEMASK(7,S_MAC_TX_WR_THRSH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define V_MAC_TX_WR_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_WR_THRSH)
- #define G_MAC_TX_WR_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_WR_THRSH,M_MAC_TX_WR_THRSH)
-
- #define S_MAC_TX_RD_THRSH _SB_MAKE64(8)
--/* #define M_MAC_TX_RD_THRSH _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */ /* PASS1 */
--#define M_MAC_TX_RD_THRSH _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE_UP_TO(1250, PASS1)
-+/* XXX: Can't enable, as it has the same name as a pass2+ define below. */
-+/* #define M_MAC_TX_RD_THRSH _SB_MAKEMASK(6,S_MAC_TX_RD_THRSH) */
-+#endif /* up to 1250 PASS1 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_TX_RD_THRSH _SB_MAKEMASK(7,S_MAC_TX_RD_THRSH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define V_MAC_TX_RD_THRSH(x) _SB_MAKEVALUE(x,S_MAC_TX_RD_THRSH)
- #define G_MAC_TX_RD_THRSH(x) _SB_GETVALUE(x,S_MAC_TX_RD_THRSH,M_MAC_TX_RD_THRSH)
-
-@@ -231,10 +247,12 @@
- #define V_MAC_RX_RL_THRSH(x) _SB_MAKEVALUE(x,S_MAC_RX_RL_THRSH)
- #define G_MAC_RX_RL_THRSH(x) _SB_GETVALUE(x,S_MAC_RX_RL_THRSH,M_MAC_RX_RL_THRSH)
-
--#define S_MAC_ENC_FC_THRSH _SB_MAKE64(56) /* PASS2 */
--#define M_MAC_ENC_FC_THRSH _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH) /* PASS2 */
--#define V_MAC_ENC_FC_THRSH(x) _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH) /* PASS2 */
--#define G_MAC_ENC_FC_THRSH(x) _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_ENC_FC_THRSH _SB_MAKE64(56)
-+#define M_MAC_ENC_FC_THRSH _SB_MAKEMASK(6,S_MAC_ENC_FC_THRSH)
-+#define V_MAC_ENC_FC_THRSH(x) _SB_MAKEVALUE(x,S_MAC_ENC_FC_THRSH)
-+#define G_MAC_ENC_FC_THRSH(x) _SB_GETVALUE(x,S_MAC_ENC_FC_THRSH,M_MAC_ENC_FC_THRSH)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- /*
- * MAC Frame Configuration Registers (Table 9-15)
-@@ -243,11 +261,19 @@
- * Register: MAC_FRAME_CFG_2
- */
-
-+/* XXXCGD: ??? Unused in pass2? */
- #define S_MAC_IFG_RX _SB_MAKE64(0)
- #define M_MAC_IFG_RX _SB_MAKEMASK(6,S_MAC_IFG_RX)
- #define V_MAC_IFG_RX(x) _SB_MAKEVALUE(x,S_MAC_IFG_RX)
- #define G_MAC_IFG_RX(x) _SB_GETVALUE(x,S_MAC_IFG_RX,M_MAC_IFG_RX)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_PRE_LEN _SB_MAKE64(0)
-+#define M_MAC_PRE_LEN _SB_MAKEMASK(6,S_MAC_PRE_LEN)
-+#define V_MAC_PRE_LEN(x) _SB_MAKEVALUE(x,S_MAC_PRE_LEN)
-+#define G_MAC_PRE_LEN(x) _SB_GETVALUE(x,S_MAC_PRE_LEN,M_MAC_PRE_LEN)
-+#endif /* 112x PASS1 */
-+
- #define S_MAC_IFG_TX _SB_MAKE64(6)
- #define M_MAC_IFG_TX _SB_MAKEMASK(6,S_MAC_IFG_TX)
- #define V_MAC_IFG_TX(x) _SB_MAKEVALUE(x,S_MAC_IFG_TX)
-@@ -285,7 +311,7 @@
-
- /*
- * These constants are used to configure the fields within the Frame
-- * Configuration Register.
-+ * Configuration Register.
- */
-
- #define K_MAC_IFG_RX_10 _SB_MAKE64(0) /* See table 176, not used */
-@@ -320,10 +346,12 @@
- #define V_MAC_SLOT_SIZE_100 V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_100)
- #define V_MAC_SLOT_SIZE_1000 V_MAC_SLOT_SIZE(K_MAC_SLOT_SIZE_1000)
-
-+#define K_MAC_MIN_FRAMESZ_FIFO _SB_MAKE64(9)
- #define K_MAC_MIN_FRAMESZ_DEFAULT _SB_MAKE64(64)
- #define K_MAC_MAX_FRAMESZ_DEFAULT _SB_MAKE64(1518)
- #define K_MAC_MAX_FRAMESZ_JUMBO _SB_MAKE64(9216)
-
-+#define V_MAC_MIN_FRAMESZ_FIFO V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_FIFO)
- #define V_MAC_MIN_FRAMESZ_DEFAULT V_MAC_MIN_FRAMESZ(K_MAC_MIN_FRAMESZ_DEFAULT)
- #define V_MAC_MAX_FRAMESZ_DEFAULT V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_DEFAULT)
- #define V_MAC_MAX_FRAMESZ_JUMBO V_MAC_MAX_FRAMESZ(K_MAC_MAX_FRAMESZ_JUMBO)
-@@ -335,7 +363,24 @@
- * Register: MAC_VLANTAG_2
- */
-
--/* No bit fields: lower 32 bits of register are the tags */
-+#define S_MAC_VLAN_TAG _SB_MAKE64(0)
-+#define M_MAC_VLAN_TAG _SB_MAKEMASK(32,S_MAC_VLAN_TAG)
-+#define V_MAC_VLAN_TAG(x) _SB_MAKEVALUE(x,S_MAC_VLAN_TAG)
-+#define G_MAC_VLAN_TAG(x) _SB_GETVALUE(x,S_MAC_VLAN_TAG,M_MAC_VLAN_TAG)
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_TX_PKT_OFFSET _SB_MAKE64(32)
-+#define M_MAC_TX_PKT_OFFSET _SB_MAKEMASK(8,S_MAC_TX_PKT_OFFSET)
-+#define V_MAC_TX_PKT_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_TX_PKT_OFFSET)
-+#define G_MAC_TX_PKT_OFFSET(x) _SB_GETVALUE(x,S_MAC_TX_PKT_OFFSET,M_MAC_TX_PKT_OFFSET)
-+
-+#define S_MAC_TX_CRC_OFFSET _SB_MAKE64(40)
-+#define M_MAC_TX_CRC_OFFSET _SB_MAKEMASK(8,S_MAC_TX_CRC_OFFSET)
-+#define V_MAC_TX_CRC_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_TX_CRC_OFFSET)
-+#define G_MAC_TX_CRC_OFFSET(x) _SB_GETVALUE(x,S_MAC_TX_CRC_OFFSET,M_MAC_TX_CRC_OFFSET)
-+
-+#define M_MAC_CH_BASE_FC_EN _SB_MAKEMASK1(48)
-+#endif /* 112x PASS1 */
-
- /*
- * MAC Status Registers (Table 9-17)
-@@ -348,7 +393,7 @@
- * Register: MAC_INT_MASK_2
- */
-
--/*
-+/*
- * Use these constants to shift the appropriate channel
- * into the CH0 position so the same tests can be used
- * on each channel.
-@@ -376,6 +421,25 @@
- #define M_MAC_INT_DSCR _SB_MAKEMASK1(5)
- #define M_MAC_INT_ERR _SB_MAKEMASK1(6)
- #define M_MAC_INT_DZERO _SB_MAKEMASK1(7) /* only for TX channels */
-+#define M_MAC_INT_DROP _SB_MAKEMASK1(7) /* only for RX channels */
-+
-+/*
-+ * In the following definitions we use ch (0/1) and txrx (TX=1, RX=0, see
-+ * also DMA_TX/DMA_RX in sb_regs.h).
-+ */
-+#define S_MAC_STATUS_CH_OFFSET(ch,txrx) _SB_MAKE64(((ch) + 2 * (txrx)) * S_MAC_CHANWIDTH)
-+
-+#define M_MAC_STATUS_CHANNEL(ch,txrx) _SB_MAKEVALUE(_SB_MAKEMASK(8,0),S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_EOP_COUNT(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_COUNT,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_EOP_TIMER(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_TIMER,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_EOP_SEEN(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_EOP_SEEN,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_HWM(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_HWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_LWM(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_LWM,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_DSCR(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_DSCR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_ERR(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_ERR,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_DZERO(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_DZERO,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_DROP(ch,txrx) _SB_MAKEVALUE(M_MAC_INT_DROP,S_MAC_STATUS_CH_OFFSET(ch,txrx))
-+#define M_MAC_STATUS_OTHER_ERR _SB_MAKEVALUE(_SB_MAKEMASK(7,0),40)
-
-
- #define M_MAC_RX_UNDRFL _SB_MAKEMASK1(40)
-@@ -385,13 +449,19 @@
- #define M_MAC_LTCOL_ERR _SB_MAKEMASK1(44)
- #define M_MAC_EXCOL_ERR _SB_MAKEMASK1(45)
- #define M_MAC_CNTR_OVRFL_ERR _SB_MAKEMASK1(46)
--#define M_MAC_SPLIT_EN _SB_MAKEMASK1(47) /* interrupt mask only */ /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_SPLIT_EN _SB_MAKEMASK1(47) /* interrupt mask only */
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_MAC_COUNTER_ADDR _SB_MAKE64(47)
- #define M_MAC_COUNTER_ADDR _SB_MAKEMASK(5,S_MAC_COUNTER_ADDR)
- #define V_MAC_COUNTER_ADDR(x) _SB_MAKEVALUE(x,S_MAC_COUNTER_ADDR)
- #define G_MAC_COUNTER_ADDR(x) _SB_GETVALUE(x,S_MAC_COUNTER_ADDR,M_MAC_COUNTER_ADDR)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_TX_PAUSE_ON _SB_MAKEMASK1(52)
-+#endif /* 112x PASS1 */
-+
- /*
- * MAC Fifo Pointer Registers (Table 9-19) [Debug register]
- * Register: MAC_FIFO_PTRS_0
-@@ -446,6 +516,15 @@
- /* No bitfields */
-
- /*
-+ * MAC Receive Address Filter Mask Registers
-+ * Registers: MAC_ADDRMASK0_0 and MAC_ADDRMASK0_1
-+ * Registers: MAC_ADDRMASK1_0 and MAC_ADDRMASK1_1
-+ * Registers: MAC_ADDRMASK2_0 and MAC_ADDRMASK2_1
-+ */
-+
-+/* No bitfields */
-+
-+/*
- * MAC Recieve Address Filter Hash Match Registers (Table 9-22)
- * Registers: MAC_HASH0_0 through MAC_HASH7_0
- * Registers: MAC_HASH0_1 through MAC_HASH7_1
-@@ -506,13 +585,35 @@
- #define M_MAC_MCAST_INV _SB_MAKEMASK1(4)
- #define M_MAC_BCAST_EN _SB_MAKEMASK1(5)
- #define M_MAC_DIRECT_INV _SB_MAKEMASK1(6)
--#define M_MAC_ALLMCAST_EN _SB_MAKEMASK1(7) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MAC_ALLMCAST_EN _SB_MAKEMASK1(7)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_MAC_IPHDR_OFFSET _SB_MAKE64(8)
- #define M_MAC_IPHDR_OFFSET _SB_MAKEMASK(8,S_MAC_IPHDR_OFFSET)
- #define V_MAC_IPHDR_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_IPHDR_OFFSET)
- #define G_MAC_IPHDR_OFFSET(x) _SB_GETVALUE(x,S_MAC_IPHDR_OFFSET,M_MAC_IPHDR_OFFSET)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define S_MAC_RX_CRC_OFFSET _SB_MAKE64(16)
-+#define M_MAC_RX_CRC_OFFSET _SB_MAKEMASK(8,S_MAC_RX_CRC_OFFSET)
-+#define V_MAC_RX_CRC_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_RX_CRC_OFFSET)
-+#define G_MAC_RX_CRC_OFFSET(x) _SB_GETVALUE(x,S_MAC_RX_CRC_OFFSET,M_MAC_RX_CRC_OFFSET)
-+
-+#define S_MAC_RX_PKT_OFFSET _SB_MAKE64(24)
-+#define M_MAC_RX_PKT_OFFSET _SB_MAKEMASK(8,S_MAC_RX_PKT_OFFSET)
-+#define V_MAC_RX_PKT_OFFSET(x) _SB_MAKEVALUE(x,S_MAC_RX_PKT_OFFSET)
-+#define G_MAC_RX_PKT_OFFSET(x) _SB_GETVALUE(x,S_MAC_RX_PKT_OFFSET,M_MAC_RX_PKT_OFFSET)
-+
-+#define M_MAC_FWDPAUSE_EN _SB_MAKEMASK1(32)
-+#define M_MAC_VLAN_DET_EN _SB_MAKEMASK1(33)
-+
-+#define S_MAC_RX_CH_MSN_SEL _SB_MAKE64(34)
-+#define M_MAC_RX_CH_MSN_SEL _SB_MAKEMASK(8,S_MAC_RX_CH_MSN_SEL)
-+#define V_MAC_RX_CH_MSN_SEL(x) _SB_MAKEVALUE(x,S_MAC_RX_CH_MSN_SEL)
-+#define G_MAC_RX_CH_MSN_SEL(x) _SB_GETVALUE(x,S_MAC_RX_CH_MSN_SEL,M_MAC_RX_CH_MSN_SEL)
-+#endif /* 112x PASS1 */
-+
- /*
- * MAC Receive Channel Select Registers (Table 9-25)
- */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_mc.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mc.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_mc.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_mc.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-- * Memory Controller constants File: sb1250_mc.h
-- *
-+ *
-+ * Memory Controller constants File: sb1250_mc.h
-+ *
- * This module contains constants and macros useful for
- * programming the memory controller.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -166,7 +166,7 @@
-
- #define K_MC_REF_RATE_100MHz 0x62
- #define K_MC_REF_RATE_133MHz 0x81
--#define K_MC_REF_RATE_200MHz 0xC4
-+#define K_MC_REF_RATE_200MHz 0xC4
-
- #define V_MC_REF_RATE_100MHz V_MC_REF_RATE(K_MC_REF_RATE_100MHz)
- #define V_MC_REF_RATE_133MHz V_MC_REF_RATE(K_MC_REF_RATE_133MHz)
-@@ -191,6 +191,10 @@
- #define G_MC_ADDR_DRIVE(x) _SB_GETVALUE(x,S_MC_ADDR_DRIVE,M_MC_ADDR_DRIVE)
- #define V_MC_ADDR_DRIVE_DEFAULT V_MC_ADDR_DRIVE(0x0)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MC_REF_DISABLE _SB_MAKEMASK1(30)
-+#endif /* 112x PASS1 */
-+
- #define M_MC_DLL_BYPASS _SB_MAKEMASK1(31)
-
- #define S_MC_DQI_SKEW 32
-@@ -224,7 +228,7 @@
- V_MC_ADDR_DRIVE_DEFAULT | \
- V_MC_DATA_DRIVE_DEFAULT | \
- V_MC_CLOCK_DRIVE_DEFAULT | \
-- V_MC_REF_RATE_DEFAULT
-+ V_MC_REF_RATE_DEFAULT
-
-
-
-@@ -291,6 +295,10 @@
-
- #define M_MC_EXTERNALDECODE _SB_MAKEMASK1(35)
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_MC_PRE_ON_A8 _SB_MAKEMASK1(36)
-+#define M_MC_RAM_WITH_A13 _SB_MAKEMASK1(38)
-+#endif /* 112x PASS1 */
-
-
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_prof.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_prof.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_prof.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,133 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--/*
-- *
-- * Definitions for the sb1250_prof pseudo device.
-- *
-- */
--//#include <sys/param.h>
--//#include <sys/device.h>
--
--#ifndef SB1250_PROF_H
--#define SB1250_PROF_H 1
--
--#define MAXCPUS 1
--#define NEWPIDSIZE 160
--/* The two definitions below must match those in pgather.c */
--#define MAX_COUNTERS 4
--#define MAX_SLOTS 8
--
--#define STATS
--
--typedef struct {
-- u_int8_t event;
-- u_int8_t hwcode; /* pcarch-specific bits identifying desired event */
-- u_int64_t period; /* 40-bit sampling period during slot */
--} sbprof_mux_counter_t;
--
--typedef struct {
-- sbprof_mux_counter_t
-- counter[MAX_COUNTERS]; /* data for setting up counter */
-- u_int8_t n; /* number of counters to use in slot */
--} sbprof_mux_slot_t;
--
--typedef struct {
-- sbprof_mux_slot_t slots[MAX_SLOTS];
--} sbprof_mux_slots;
--
--typedef struct {
-- u_int64_t total; /* total number of interrupts */
-- u_int64_t dropped; /* total interrupts when buffers were full */
-- u_int64_t value; /* initial counter value when slot next entered */
-- u_int32_t start_period_low; /* counter val for starting a period */
-- u_int8_t start_period_high;
-- u_int8_t event; /* pcarch-specific event_t */
-- u_int8_t hwcode; /* pcarch-specific code for event */
-- u_int8_t inuse; /* Is counter X slot actually used? */
--} event_counter_state_t;
--
--typedef struct {
-- u_int32_t total; /* total for current run of slot */
-- u_int32_t dropped; /* dropped for current run of slot */
-- u_int64_t start_period;/* counter value to start a full period */
--} active_counter_state_t;
--
--struct _cpudata1 {
-- /******* page-aligned boundary *********************************************/
-- u_int32_t last_pid; /* Pid for last sample in buffer (-1 initially) */
-- u_int8_t curbuf; /* 2 -> both buffers full at end of last interrupt
-- 1 -> use buffer[1]
-- 0 -> use buffer[0] */
-- u_int8_t nextbuf; /* the index of the next buffer to be filled */
-- u_int8_t nnewpid[2]; /* number of entries set in new_pid[i] */
-- u_int32_t next; /* index of next free entry in curbuf */
-- int32_t last_event; /* index of byte just past last event DP_D_EVENTS
-- message in curbuf that needs the number of events
-- filled in. -1 means there is no such message and
-- that such a message must be entered before
-- adding event samples.
-- */
-- /* 16-byte boundary */
-- volatile u_int32_t full[2];
-- /* full[i] > 0 means buffer[i] needs emptying.
-- 0 to nonzero done by sbprofintr().
-- nonzero to zero by sbprofioctl().
-- When nonzero, full[i] is the number of bytes
-- set in buffer[i].
-- */
-- u_int32_t threshold; /* when does the current multiplexing slot expire? */
-- u_int8_t slotid; /* index into slots[] of current multiplexing slot */
-- u_int8_t nslots; /* number of slots */
-- u_int8_t needs_scan;
-- u_int8_t pad[1];
-- /******* 32-byte boundary *********************************************/
-- active_counter_state_t cur_slot[MAX_COUNTERS];
-- /******* 32-byte boundary *********************************************/
-- event_counter_state_t event_counter_state[MAX_SLOTS][MAX_COUNTERS];
-- /******* 32-byte boundary *********************************************/
-- u_int32_t overshot[MAX_SLOTS];
--
-- u_int32_t newpid[2][NEWPIDSIZE]; /* new_pid[i][] contains indices of
-- buffer[i][] where a new_pid message
-- is encoded and needs to have the
-- image_id, base addr, and num_inst
-- fields set by the user-level daemon */
--#ifdef STATS
-- u_int64_t newpidlimit;
-- u_int64_t buflimit;
--#endif
--};
--
--#define SBPROF_BUFSIZE (32*1024 - (sizeof(struct _cpudata1)+1)/2)
--
--typedef struct _cpudata {
-- struct _cpudata1 x;
-- u_int8_t buffer[2][SBPROF_BUFSIZE];
--} cpudata_t;
--
--#define SBPROF_START _IOW('S', 0x1, sbprof_mux_slots)
--#define SBPROF_STOP _IO('S', 0x2)
--#define SBPROF_BUFFULL _IOWR('S', 0x3, int)
--#define SBPROF_BUFEMPTY _IOW('S', 0x4, int)
--
--#if NEWPIDSIZE > 254
--#error "newpidsize too big"
--#endif
--
--#endif /* SB1250_PROF_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_regs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_regs.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_regs.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_regs.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * Register Definitions File: sb1250_regs.h
-- *
-+ *
- * This module contains the addresses of the on-chip peripherals
- * on the SB1250.
-- *
-+ *
- * SB1250 specification level: 01/02/2002
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -40,23 +40,27 @@
-
- /* *********************************************************************
- * Some general notes:
-- *
-+ *
- * For the most part, when there is more than one peripheral
- * of the same type on the SOC, the constants below will be
- * offsets from the base of each peripheral. For example,
- * the MAC registers are described as offsets from the first
- * MAC register, and there will be a MAC_REGISTER() macro
-- * to calculate the base address of a given MAC.
-- *
-+ * to calculate the base address of a given MAC.
-+ *
- * The information in this file is based on the SB1250 SOC
- * manual version 0.2, July 2000.
- ********************************************************************* */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * Memory Controller Registers
- ********************************************************************* */
-
-+/*
-+ * XXX: can't remove MC base 0 if 112x, since it's used by other macros,
-+ * since there is one reg there (but it could get its addr/offset constant).
-+ */
- #define A_MC_BASE_0 0x0010051000
- #define A_MC_BASE_1 0x0010052000
- #define MC_REGISTER_SPACING 0x1000
-@@ -97,22 +101,32 @@
- #define R_MC_TEST_ECC 0x0000000420
- #define R_MC_MCLK_CFG 0x0000000500
-
--/* *********************************************************************
-+/* *********************************************************************
- * L2 Cache Control Registers
- ********************************************************************* */
-
--#define A_L2_READ_ADDRESS 0x0010040018
--#define A_L2_EEC_ADDRESS 0x0010040038
-+#define A_L2_READ_TAG 0x0010040018
-+#define A_L2_ECC_TAG 0x0010040038
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_L2_READ_MISC 0x0010040058
-+#endif /* 112x PASS1 */
- #define A_L2_WAY_DISABLE 0x0010041000
- #define A_L2_MAKEDISABLE(x) (A_L2_WAY_DISABLE | (((~(x))&0x0F) << 8))
- #define A_L2_MGMT_TAG_BASE 0x00D0000000
-
--#define A_L2_CACHE_DISABLE 0x0010042000 /* PASS2 */
--#define A_L2_MAKECACHEDISABLE(x) (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8)) /* PASS2 */
--#define A_L2_MISC_CONFIG 0x0010043000 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_L2_CACHE_DISABLE 0x0010042000
-+#define A_L2_MAKECACHEDISABLE(x) (A_L2_CACHE_DISABLE | (((x)&0x0F) << 8))
-+#define A_L2_MISC_CONFIG 0x0010043000
-+#endif /* 1250 PASS2 || 112x PASS1 */
-+
-+/* Backward-compatibility definitions. */
-+/* XXX: discourage people from using these constants. */
-+#define A_L2_READ_ADDRESS A_L2_READ_TAG
-+#define A_L2_EEC_ADDRESS A_L2_ECC_TAG
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * PCI Interface Registers
- ********************************************************************* */
-
-@@ -120,13 +134,15 @@
- #define A_PCI_TYPE01_HEADER 0x00DE000800
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * Ethernet DMA and MACs
- ********************************************************************* */
-
- #define A_MAC_BASE_0 0x0010064000
- #define A_MAC_BASE_1 0x0010065000
-+#if SIBYTE_HDR_FEATURE_CHIP(1250)
- #define A_MAC_BASE_2 0x0010066000
-+#endif /* 1250 */
-
- #define MAC_SPACING 0x1000
- #define MAC_DMA_TXRX_SPACING 0x0400
-@@ -135,6 +151,7 @@
- #define DMA_TX 1
- #define MAC_NUM_DMACHAN 2 /* channels per direction */
-
-+/* XXX: not correct; depends on SOC type. */
- #define MAC_NUM_PORTS 3
-
- #define A_MAC_CHANNEL_BASE(macnum) \
-@@ -167,7 +184,7 @@
- (R_MAC_DMA_CHANNEL_BASE(txrx,chan) + \
- (reg))
-
--/*
-+/*
- * DMA channel registers, relative to A_MAC_DMA_CHANNEL_BASE
- */
-
-@@ -178,6 +195,9 @@
- #define R_MAC_DMA_CUR_DSCRA 0x00000020
- #define R_MAC_DMA_CUR_DSCRB 0x00000028
- #define R_MAC_DMA_CUR_DSCRADDR 0x00000030
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_MAC_DMA_OODPKTLOST_RX 0x00000038 /* rx only */
-+#endif /* 112x PASS1 */
-
- /*
- * RMON Counters
-@@ -216,6 +236,10 @@
- #define R_MAC_ADFILTER_CFG 0x00000200
- #define R_MAC_ETHERNET_ADDR 0x00000208
- #define R_MAC_PKT_TYPE 0x00000210
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_MAC_ADMASK0 0x00000218
-+#define R_MAC_ADMASK1 0x00000220
-+#endif /* 112x PASS1 */
- #define R_MAC_HASH_BASE 0x00000240
- #define R_MAC_ADDR_BASE 0x00000280
- #define R_MAC_CHLO0_BASE 0x00000300
-@@ -225,7 +249,9 @@
- #define R_MAC_INT_MASK 0x00000410
- #define R_MAC_TXD_CTL 0x00000420
- #define R_MAC_MDIO 0x00000428
--#define R_MAC_STATUS1 0x00000430 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_MAC_STATUS1 0x00000430
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define R_MAC_DEBUG_STATUS 0x00000448
-
- #define MAC_HASH_COUNT 8
-@@ -233,7 +259,7 @@
- #define MAC_CHMAP_COUNT 4
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * DUART Registers
- ********************************************************************* */
-
-@@ -256,9 +282,11 @@
- #define R_DUART_RX_HOLD 0x160
- #define R_DUART_TX_HOLD 0x170
-
--#define R_DUART_FULL_CTL 0x140 /* PASS2 */
--#define R_DUART_OPCR_X 0x180 /* PASS2 */
--#define R_DUART_AUXCTL_X 0x190 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define R_DUART_FULL_CTL 0x140
-+#define R_DUART_OPCR_X 0x180
-+#define R_DUART_AUXCTL_X 0x190
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- /*
-@@ -285,6 +313,9 @@
- #define A_DUART_IMRREG(chan) (A_DUART + R_DUART_IMRREG(chan))
- #define A_DUART_ISRREG(chan) (A_DUART + R_DUART_ISRREG(chan))
-
-+
-+
-+
- /*
- * These constants are the absolute addresses.
- */
-@@ -321,16 +352,18 @@
- #define A_DUART_INPORT_CHNG_A 0x00100603D0
- #define A_DUART_INPORT_CHNG_B 0x00100603E0
-
--#define A_DUART_FULL_CTL_A 0x0010060140 /* PASS2 */
--#define A_DUART_FULL_CTL_B 0x0010060240 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_DUART_FULL_CTL_A 0x0010060140
-+#define A_DUART_FULL_CTL_B 0x0010060240
-
--#define A_DUART_OPCR_A 0x0010060180 /* PASS2 */
--#define A_DUART_OPCR_B 0x0010060280 /* PASS2 */
-+#define A_DUART_OPCR_A 0x0010060180
-+#define A_DUART_OPCR_B 0x0010060280
-
--#define A_DUART_INPORT_CHNG_DEBUG 0x00100603F0 /* PASS2 */
-+#define A_DUART_INPORT_CHNG_DEBUG 0x00100603F0
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * Synchronous Serial Registers
- ********************************************************************* */
-
-@@ -364,7 +397,7 @@
- (reg))
-
-
--/*
-+/*
- * DMA channel registers, relative to A_SER_DMA_CHANNEL_BASE
- */
-
-@@ -424,7 +457,7 @@
- #define R_SER_RMON_RX_ERRORS 0x000001F0
- #define R_SER_RMON_RX_BADADDR 0x000001F8
-
--/* *********************************************************************
-+/* *********************************************************************
- * Generic Bus Registers
- ********************************************************************* */
-
-@@ -464,6 +497,10 @@
- #define A_IO_DRIVE_1 0x0010061308
- #define A_IO_DRIVE_2 0x0010061310
- #define A_IO_DRIVE_3 0x0010061318
-+#define A_IO_DRIVE_BASE A_IO_DRIVE_0
-+#define IO_DRIVE_REGISTER_SPACING 8
-+#define R_IO_DRIVE(x) ((x)*IO_DRIVE_REGISTER_SPACING)
-+#define A_IO_DRIVE(x) (A_IO_DRIVE_BASE + R_IO_DRIVE(x))
-
- #define R_IO_INTERRUPT_STATUS 0x0A00
- #define R_IO_INTERRUPT_DATA0 0x0A10
-@@ -476,7 +513,7 @@
- #define R_IO_PCMCIA_CFG 0x0A60
- #define R_IO_PCMCIA_STATUS 0x0A70
-
--/* *********************************************************************
-+/* *********************************************************************
- * GPIO Registers
- ********************************************************************* */
-
-@@ -500,7 +537,7 @@
- #define R_GPIO_PIN_CLR 0x30
- #define R_GPIO_PIN_SET 0x38
-
--/* *********************************************************************
-+/* *********************************************************************
- * SMBus Registers
- ********************************************************************* */
-
-@@ -536,7 +573,7 @@
- #define R_SMB_CONTROL 0x0000000060
- #define R_SMB_PEC 0x0000000070
-
--/* *********************************************************************
-+/* *********************************************************************
- * Timer Registers
- ********************************************************************* */
-
-@@ -595,21 +632,23 @@
- #define A_SCD_TIMER_CNT_3 0x0010020188
- #define A_SCD_TIMER_CFG_3 0x0010020198
-
--#define A_SCD_SCRATCH 0x0010020C10 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_SCD_SCRATCH 0x0010020C10
-
--#define A_SCD_ZBBUS_CYCLE_COUNT 0x0010030000 /* PASS2 */
--#define A_SCD_ZBBUS_CYCLE_CP0 0x0010020C00 /* PASS2 */
--#define A_SCD_ZBBUS_CYCLE_CP1 0x0010020C08 /* PASS2 */
-+#define A_SCD_ZBBUS_CYCLE_COUNT 0x0010030000
-+#define A_SCD_ZBBUS_CYCLE_CP0 0x0010020C00
-+#define A_SCD_ZBBUS_CYCLE_CP1 0x0010020C08
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Control Registers
- ********************************************************************* */
-
- #define A_SCD_SYSTEM_REVISION 0x0010020000
- #define A_SCD_SYSTEM_CFG 0x0010020008
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Address Trap Registers
- ********************************************************************* */
-
-@@ -627,16 +666,19 @@
- #define A_ADDR_TRAP_CFG_1 0x0010020448
- #define A_ADDR_TRAP_CFG_2 0x0010020450
- #define A_ADDR_TRAP_CFG_3 0x0010020458
--#define A_ADDR_TRAP_REG_DEBUG 0x0010020460 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_ADDR_TRAP_REG_DEBUG 0x0010020460
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Interrupt Mapper Registers
- ********************************************************************* */
-
- #define A_IMR_CPU0_BASE 0x0010020000
- #define A_IMR_CPU1_BASE 0x0010022000
- #define IMR_REGISTER_SPACING 0x2000
-+#define IMR_REGISTER_SPACING_SHIFT 13
-
- #define A_IMR_MAPPER(cpu) (A_IMR_CPU0_BASE+(cpu)*IMR_REGISTER_SPACING)
- #define A_IMR_REGISTER(cpu,reg) (A_IMR_MAPPER(cpu)+(reg))
-@@ -658,7 +700,7 @@
- #define R_IMR_INTERRUPT_MAP_BASE 0x0200
- #define R_IMR_INTERRUPT_MAP_COUNT 64
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Performance Counter Registers
- ********************************************************************* */
-
-@@ -668,12 +710,14 @@
- #define A_SCD_PERF_CNT_2 0x00100204E0
- #define A_SCD_PERF_CNT_3 0x00100204E8
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Bus Watcher Registers
- ********************************************************************* */
-
- #define A_SCD_BUS_ERR_STATUS 0x0010020880
--#define A_SCD_BUS_ERR_STATUS_DEBUG 0x00100208D0 /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_SCD_BUS_ERR_STATUS_DEBUG 0x00100208D0
-+#endif /* 1250 PASS2 || 112x PASS1 */
- #define A_BUS_ERR_DATA_0 0x00100208A0
- #define A_BUS_ERR_DATA_1 0x00100208A8
- #define A_BUS_ERR_DATA_2 0x00100208B0
-@@ -681,13 +725,13 @@
- #define A_BUS_L2_ERRORS 0x00100208C0
- #define A_BUS_MEM_IO_ERRORS 0x00100208C8
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Debug Controller Registers
- ********************************************************************* */
-
- #define A_SCD_JTAG_BASE 0x0010000000
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Trace Buffer Registers
- ********************************************************************* */
-
-@@ -710,7 +754,7 @@
- #define A_SCD_TRACE_SEQUENCE_6 0x0010020A90
- #define A_SCD_TRACE_SEQUENCE_7 0x0010020A98
-
--/* *********************************************************************
-+/* *********************************************************************
- * System Generic DMA Registers
- ********************************************************************* */
-
-@@ -728,6 +772,26 @@
- #define R_DM_CUR_DSCR_ADDR 0x0000000010
- #define R_DM_DSCR_BASE_DEBUG 0x0000000018
-
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_DM_PARTIAL_0 0x0010020ba0
-+#define A_DM_PARTIAL_1 0x0010020ba8
-+#define A_DM_PARTIAL_2 0x0010020bb0
-+#define A_DM_PARTIAL_3 0x0010020bb8
-+#define DM_PARTIAL_REGISTER_SPACING 0x8
-+#define A_DM_PARTIAL(idx) (A_DM_PARTIAL_0 + ((idx) * DM_PARTIAL_REGISTER_SPACING))
-+#endif /* 112x PASS1 */
-+
-+#if SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define A_DM_CRC_0 0x0010020b80
-+#define A_DM_CRC_1 0x0010020b90
-+#define DM_CRC_REGISTER_SPACING 0x10
-+#define DM_CRC_NUM_CHANNELS 2
-+#define A_DM_CRC_BASE(idx) (A_DM_CRC_0 + ((idx) * DM_CRC_REGISTER_SPACING))
-+#define A_DM_CRC_REGISTER(idx,reg) (A_DM_CRC_BASE(idx) + (reg))
-+
-+#define R_CRC_DEF_0 0x00
-+#define R_CTCP_DEF_0 0x08
-+#endif /* 112x PASS1 */
-
- /* *********************************************************************
- * Physical Address Map
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_scd.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_scd.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_scd.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_scd.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * SCD Constants and Macros File: sb1250_scd.h
-- *
-+ *
- * This module contains constants and macros useful for
- * manipulating the System Control and Debug module on the 1250.
-- *
-+ *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -51,18 +51,73 @@
- #define V_SYS_REVISION(x) _SB_MAKEVALUE(x,S_SYS_REVISION)
- #define G_SYS_REVISION(x) _SB_GETVALUE(x,S_SYS_REVISION,M_SYS_REVISION)
-
--#define K_SYS_REVISION_PASS1 1
--#define K_SYS_REVISION_PASS2 3
--#define K_SYS_REVISION_PASS2_2 16
--#define K_SYS_REVISION_PASS3 32
-+#if SIBYTE_HDR_FEATURE_CHIP(1250)
-+#define K_SYS_REVISION_BCM1250_PASS1 1
-+#define K_SYS_REVISION_BCM1250_PASS2 3
-+#define K_SYS_REVISION_BCM1250_PASS2_2 16
-+#define K_SYS_REVISION_BCM1250_PASS3 32
-+
-+/* XXX: discourage people from using these constants. */
-+#define K_SYS_REVISION_PASS1 K_SYS_REVISION_BCM1250_PASS1
-+#define K_SYS_REVISION_PASS2 K_SYS_REVISION_BCM1250_PASS2
-+#define K_SYS_REVISION_PASS2_2 K_SYS_REVISION_BCM1250_PASS2_2
-+#define K_SYS_REVISION_PASS3 K_SYS_REVISION_BCM1250_PASS3
-+#endif /* 1250 */
-+
-+#if SIBYTE_HDR_FEATURE_CHIP(112x)
-+#define K_SYS_REVISION_BCM112x_A1 32
-+#define K_SYS_REVISION_BCM112x_A2 33
-+#endif /* 112x */
-
-+/* XXX: discourage people from using these constants. */
- #define S_SYS_PART _SB_MAKE64(16)
- #define M_SYS_PART _SB_MAKEMASK(16,S_SYS_PART)
- #define V_SYS_PART(x) _SB_MAKEVALUE(x,S_SYS_PART)
- #define G_SYS_PART(x) _SB_GETVALUE(x,S_SYS_PART,M_SYS_PART)
-
-+/* XXX: discourage people from using these constants. */
- #define K_SYS_PART_SB1250 0x1250
--#define K_SYS_PART_SB1125 0x1125
-+#define K_SYS_PART_BCM1120 0x1121
-+#define K_SYS_PART_BCM1125 0x1123
-+#define K_SYS_PART_BCM1125H 0x1124
-+
-+/* The "peripheral set" (SOC type) is the low 4 bits of the "part" field. */
-+#define S_SYS_SOC_TYPE _SB_MAKE64(16)
-+#define M_SYS_SOC_TYPE _SB_MAKEMASK(4,S_SYS_SOC_TYPE)
-+#define V_SYS_SOC_TYPE(x) _SB_MAKEVALUE(x,S_SYS_SOC_TYPE)
-+#define G_SYS_SOC_TYPE(x) _SB_GETVALUE(x,S_SYS_SOC_TYPE,M_SYS_SOC_TYPE)
-+
-+#define K_SYS_SOC_TYPE_BCM1250 0x0
-+#define K_SYS_SOC_TYPE_BCM1120 0x1
-+#define K_SYS_SOC_TYPE_BCM1250_ALT 0x2 /* 1250pass2 w/ 1/4 L2. */
-+#define K_SYS_SOC_TYPE_BCM1125 0x3
-+#define K_SYS_SOC_TYPE_BCM1125H 0x4
-+#define K_SYS_SOC_TYPE_BCM1250_ALT2 0x5 /* 1250pass2 w/ 1/2 L2. */
-+
-+/*
-+ * Calculate correct SOC type given a copy of system revision register.
-+ *
-+ * (For the assembler version, sysrev and dest may be the same register.
-+ * Also, it clobbers AT.)
-+ */
-+#ifdef __ASSEMBLER__
-+#define SYS_SOC_TYPE(dest, sysrev) \
-+ .set push ; \
-+ .set reorder ; \
-+ dsrl dest, sysrev, S_SYS_SOC_TYPE ; \
-+ andi dest, dest, (M_SYS_SOC_TYPE >> S_SYS_SOC_TYPE); \
-+ beq dest, K_SYS_SOC_TYPE_BCM1250_ALT, 991f ; \
-+ beq dest, K_SYS_SOC_TYPE_BCM1250_ALT2, 991f ; \
-+ b 992f ; \
-+991: li dest, K_SYS_SOC_TYPE_BCM1250 ; \
-+992: \
-+ .set pop
-+#else
-+#define SYS_SOC_TYPE(sysrev) \
-+ ((G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT \
-+ || G_SYS_SOC_TYPE(sysrev) == K_SYS_SOC_TYPE_BCM1250_ALT2) \
-+ ? K_SYS_SOC_TYPE_BCM1250 : G_SYS_SOC_TYPE(sysrev))
-+#endif
-
- #define S_SYS_WID _SB_MAKE64(32)
- #define M_SYS_WID _SB_MAKEMASK(32,S_SYS_WID)
-@@ -154,7 +209,9 @@
- #define M_SYS_MISR_MODE _SB_MAKEMASK1(61)
- #define M_SYS_MISR_RESET _SB_MAKEMASK1(62)
-
--#define M_SYS_SW_FLAG _SB_MAKEMASK1(63) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_SYS_SW_FLAG _SB_MAKEMASK1(63)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- /*
-@@ -179,10 +236,10 @@
- #define V_SCD_WDOG_FREQ 1000000
-
- #define S_SCD_WDOG_INIT 0
--#define M_SCD_WDOG_INIT _SB_MAKEMASK(13,S_SCD_WDOG_INIT)
-+#define M_SCD_WDOG_INIT _SB_MAKEMASK(23,S_SCD_WDOG_INIT)
-
- #define S_SCD_WDOG_CNT 0
--#define M_SCD_WDOG_CNT _SB_MAKEMASK(13,S_SCD_WDOG_CNT)
-+#define M_SCD_WDOG_CNT _SB_MAKEMASK(23,S_SCD_WDOG_CNT)
-
- #define M_SCD_WDOG_ENABLE _SB_MAKEMASK1(0)
-
-@@ -248,48 +305,48 @@
- #define V_SCD_BERR_RID(x) _SB_MAKEVALUE(x,S_SCD_BERR_RID)
- #define G_SCD_BERR_RID(x) _SB_GETVALUE(x,S_SCD_BERR_RID,M_SCD_BERR_RID)
-
--#define S_SCD_BERR_DCODE 22
--#define M_SCD_BERR_DCODE _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
--#define V_SCD_BERR_DCODE(x) _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
--#define G_SCD_BERR_DCODE(x) _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
-+#define S_SCD_BERR_DCODE 22
-+#define M_SCD_BERR_DCODE _SB_MAKEMASK(3,S_SCD_BERR_DCODE)
-+#define V_SCD_BERR_DCODE(x) _SB_MAKEVALUE(x,S_SCD_BERR_DCODE)
-+#define G_SCD_BERR_DCODE(x) _SB_GETVALUE(x,S_SCD_BERR_DCODE,M_SCD_BERR_DCODE)
-
--#define M_SCD_BERR_MULTERRS _SB_MAKEMASK1(30)
-+#define M_SCD_BERR_MULTERRS _SB_MAKEMASK1(30)
-
-
--#define S_SCD_L2ECC_CORR_D 0
--#define M_SCD_L2ECC_CORR_D _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
--#define V_SCD_L2ECC_CORR_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
--#define G_SCD_L2ECC_CORR_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
-+#define S_SCD_L2ECC_CORR_D 0
-+#define M_SCD_L2ECC_CORR_D _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_D)
-+#define V_SCD_L2ECC_CORR_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_D)
-+#define G_SCD_L2ECC_CORR_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_D,M_SCD_L2ECC_CORR_D)
-
--#define S_SCD_L2ECC_BAD_D 8
--#define M_SCD_L2ECC_BAD_D _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
--#define V_SCD_L2ECC_BAD_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
--#define G_SCD_L2ECC_BAD_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
-+#define S_SCD_L2ECC_BAD_D 8
-+#define M_SCD_L2ECC_BAD_D _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_D)
-+#define V_SCD_L2ECC_BAD_D(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_D)
-+#define G_SCD_L2ECC_BAD_D(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_D,M_SCD_L2ECC_BAD_D)
-
--#define S_SCD_L2ECC_CORR_T 16
--#define M_SCD_L2ECC_CORR_T _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
--#define V_SCD_L2ECC_CORR_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
--#define G_SCD_L2ECC_CORR_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
-+#define S_SCD_L2ECC_CORR_T 16
-+#define M_SCD_L2ECC_CORR_T _SB_MAKEMASK(8,S_SCD_L2ECC_CORR_T)
-+#define V_SCD_L2ECC_CORR_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_CORR_T)
-+#define G_SCD_L2ECC_CORR_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_CORR_T,M_SCD_L2ECC_CORR_T)
-
--#define S_SCD_L2ECC_BAD_T 24
--#define M_SCD_L2ECC_BAD_T _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
--#define V_SCD_L2ECC_BAD_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
--#define G_SCD_L2ECC_BAD_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
-+#define S_SCD_L2ECC_BAD_T 24
-+#define M_SCD_L2ECC_BAD_T _SB_MAKEMASK(8,S_SCD_L2ECC_BAD_T)
-+#define V_SCD_L2ECC_BAD_T(x) _SB_MAKEVALUE(x,S_SCD_L2ECC_BAD_T)
-+#define G_SCD_L2ECC_BAD_T(x) _SB_GETVALUE(x,S_SCD_L2ECC_BAD_T,M_SCD_L2ECC_BAD_T)
-
--#define S_SCD_MEM_ECC_CORR 0
--#define M_SCD_MEM_ECC_CORR _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
--#define V_SCD_MEM_ECC_CORR(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
--#define G_SCD_MEM_ECC_CORR(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
-+#define S_SCD_MEM_ECC_CORR 0
-+#define M_SCD_MEM_ECC_CORR _SB_MAKEMASK(8,S_SCD_MEM_ECC_CORR)
-+#define V_SCD_MEM_ECC_CORR(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_CORR)
-+#define G_SCD_MEM_ECC_CORR(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_CORR,M_SCD_MEM_ECC_CORR)
-
--#define S_SCD_MEM_ECC_BAD 16
--#define M_SCD_MEM_ECC_BAD _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
--#define V_SCD_MEM_ECC_BAD(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
--#define G_SCD_MEM_ECC_BAD(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
-+#define S_SCD_MEM_ECC_BAD 8
-+#define M_SCD_MEM_ECC_BAD _SB_MAKEMASK(8,S_SCD_MEM_ECC_BAD)
-+#define V_SCD_MEM_ECC_BAD(x) _SB_MAKEVALUE(x,S_SCD_MEM_ECC_BAD)
-+#define G_SCD_MEM_ECC_BAD(x) _SB_GETVALUE(x,S_SCD_MEM_ECC_BAD,M_SCD_MEM_ECC_BAD)
-
--#define S_SCD_MEM_BUSERR 24
--#define M_SCD_MEM_BUSERR _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
--#define V_SCD_MEM_BUSERR(x) _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
--#define G_SCD_MEM_BUSERR(x) _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
-+#define S_SCD_MEM_BUSERR 16
-+#define M_SCD_MEM_BUSERR _SB_MAKEMASK(8,S_SCD_MEM_BUSERR)
-+#define V_SCD_MEM_BUSERR(x) _SB_MAKEVALUE(x,S_SCD_MEM_BUSERR)
-+#define G_SCD_MEM_BUSERR(x) _SB_GETVALUE(x,S_SCD_MEM_BUSERR,M_SCD_MEM_BUSERR)
-
-
- /*
-@@ -350,7 +407,9 @@
- #define M_SCD_TRACE_CFG_FREEZE_FULL _SB_MAKEMASK1(5)
- #define M_SCD_TRACE_CFG_DEBUG_FULL _SB_MAKEMASK1(6)
- #define M_SCD_TRACE_CFG_FULL _SB_MAKEMASK1(7)
--#define M_SCD_TRACE_CFG_FORCECNT _SB_MAKEMASK1(8) /* PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+#define M_SCD_TRACE_CFG_FORCECNT _SB_MAKEMASK1(8)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #define S_SCD_TRACE_CFG_CUR_ADDR 10
- #define M_SCD_TRACE_CFG_CUR_ADDR _SB_MAKEMASK(8,S_SCD_TRACE_CFG_CUR_ADDR)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_smbus.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_smbus.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_smbus.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_smbus.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * SMBUS Constants File: sb1250_smbus.h
-- *
-- * This module contains constants and macros useful for
-+ *
-+ * This module contains constants and macros useful for
- * manipulating the SB1250's SMbus devices.
-- *
-+ *
- * SB1250 specification level: 01/02/2002
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -132,11 +132,7 @@
- #define V_SPEC_MB(x) _SB_MAKEVALUE(x,S_SPEC_PEC)
-
-
--/* *********************************************************************
-- * PASS2 Extensions to SMBus
-- ********************************************************************* */
--
--/* BEGIN PASS2 */
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-
- #define S_SMB_CMDH 8
- #define M_SMB_CMDH _SB_MAKEMASK(8,S_SMBH_CMD)
-@@ -169,6 +165,6 @@
- #define V_SMB_DFMT_CMD5BYTE V_SMB_DFMT(K_SMB_DFMT_CMD5BYTE)
- #define V_SMB_DFMT_RESERVED V_SMB_DFMT(K_SMB_DFMT_RESERVED)
-
--/* END PASS2 */
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
- #endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_syncser.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_syncser.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_syncser.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_syncser.h 2003-01-21 23:11:39.000000000 -0600
-@@ -7,17 +7,17 @@
- * manipulating the SB1250's Synchronous Serial
- *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
- *
- *********************************************************************
- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sb1250_uart.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_uart.h
---- linux-2.4.20/include/asm-mips64/sibyte/sb1250_uart.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sb1250_uart.h 2003-01-21 23:11:39.000000000 -0600
-@@ -1,23 +1,23 @@
- /* *********************************************************************
- * SB1250 Board Support Package
-- *
-+ *
- * UART Constants File: sb1250_uart.h
-- *
-- * This module contains constants and macros useful for
-+ *
-+ * This module contains constants and macros useful for
- * manipulating the SB1250's UARTs
- *
- * SB1250 specification level: User's manual 1/02/02
-- *
-+ *
- * Author: Mitch Lichtenberg (mpl@broadcom.com)
-+ *
-+ *********************************************************************
- *
-- *********************************************************************
-- *
-- * Copyright 2000,2001
-+ * Copyright 2000,2001,2002,2003
- * Broadcom Corporation. All rights reserved.
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License as
-- * published by the Free Software Foundation; either version 2 of
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
-@@ -27,7 +27,7 @@
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- ********************************************************************* */
-
-@@ -37,7 +37,7 @@
-
- #include "sb1250_defs.h"
-
--/* **********************************************************************
-+/* **********************************************************************
- * DUART Registers
- ********************************************************************** */
-
-@@ -97,6 +97,7 @@
-
- #define M_DUART_TX_CTS_ENA _SB_MAKEMASK1(4)
-
-+
- #define M_DUART_MODE_RESERVED2 _SB_MAKEMASK1(5) /* must be zero */
-
- #define S_DUART_CHAN_MODE 6
-@@ -144,7 +145,7 @@
- #define V_DUART_MISC_CMD_START_BREAK V_DUART_MISC_CMD(K_DUART_MISC_CMD_START_BREAK)
- #define V_DUART_MISC_CMD_STOP_BREAK V_DUART_MISC_CMD(K_DUART_MISC_CMD_STOP_BREAK)
-
--#define M_DUART_CMD_RESERVED _SB_MAKEMASK1(7)
-+#define M_DUART_CMD_RESERVED _SB_MAKEMASK1(7)
-
- /*
- * DUART Status Register (Table 10-6)
-@@ -164,7 +165,7 @@
-
- /*
- * DUART Baud Rate Register (Table 10-7)
-- * Register: DUART_CLK_SEL_A
-+ * Register: DUART_CLK_SEL_A
- * Register: DUART_CLK_SEL_B
- */
-
-@@ -207,6 +208,7 @@
- #define S_DUART_IN_PIN_CHNG 4
- #define M_DUART_IN_PIN_CHNG _SB_MAKEMASK(4,S_DUART_IN_PIN_CHNG)
-
-+
- /*
- * DUART Output port control register (Table 10-14)
- * Register: DUART_OPCR
-@@ -329,8 +331,9 @@
- #define M_DUART_OUT_PIN_CLR(chan) \
- (chan == 0 ? M_DUART_OUT_PIN_CLR0 : M_DUART_OUT_PIN_CLR1)
-
--/*
-- * Full Interrupt Control Register (PASS2)
-+#if SIBYTE_HDR_FEATURE(1250, PASS2) || SIBYTE_HDR_FEATURE(112x, PASS1)
-+/*
-+ * Full Interrupt Control Register
- */
-
- #define S_DUART_SIG_FULL _SB_MAKE64(0)
-@@ -342,6 +345,7 @@
- #define M_DUART_INT_TIME _SB_MAKEMASK(4,S_DUART_INT_TIME)
- #define V_DUART_INT_TIME(x) _SB_MAKEVALUE(x,S_DUART_INT_TIME)
- #define G_DUART_INT_TIME(x) _SB_GETVALUE(x,S_DUART_INT_TIME,M_DUART_INT_TIME)
-+#endif /* 1250 PASS2 || 112x PASS1 */
-
-
- /* ********************************************************************** */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/sentosa.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sentosa.h
---- linux-2.4.20/include/asm-mips64/sibyte/sentosa.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/sentosa.h 2003-01-21 23:11:39.000000000 -0600
-@@ -0,0 +1,40 @@
-+/*
-+ * Copyright (C) 2000, 2001 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+#ifndef __ASM_SIBYTE_SENTOSA_H
-+#define __ASM_SIBYTE_SENTOSA_H
-+
-+#include <asm/sibyte/sb1250.h>
-+#include <asm/sibyte/sb1250_int.h>
-+
-+#ifdef CONFIG_SIBYTE_SENTOSA
-+#define SIBYTE_BOARD_NAME "BCM91250E (Sentosa)"
-+#endif
-+#ifdef CONFIG_SIBYTE_RHONE
-+#define SIBYTE_BOARD_NAME "BCM91125E (Rhone)"
-+#endif
-+
-+/* Generic bus chip selects */
-+#ifdef CONFIG_SIBYTE_RHONE
-+#define LEDS_CS 6
-+#define LEDS_PHYS 0x1d0a0000
-+#endif
-+
-+/* GPIOs */
-+#define K_GPIO_DBG_LED 0
-+
-+#endif /* __ASM_SIBYTE_SENTOSA_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/swarm.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm.h
---- linux-2.4.20/include/asm-mips64/sibyte/swarm.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm.h 2003-01-21 23:11:39.000000000 -0600
-@@ -21,46 +21,35 @@
- #include <asm/sibyte/sb1250.h>
- #include <asm/sibyte/sb1250_int.h>
-
--#define KERNEL_RESERVED_MEM 0x100000
--
--#define LEDS_CS 3
--
- #ifdef CONFIG_SIBYTE_SWARM
-+#define SIBYTE_BOARD_NAME "BCM91250A (SWARM)"
-+#endif
-+#ifdef CONFIG_SIBYTE_PTSWARM
-+#define SIBYTE_BOARD_NAME "PTSWARM"
-+#endif
-+#ifdef CONFIG_SIBYTE_CRHONE
-+#define SIBYTE_BOARD_NAME "BCM91125C (CRhone)"
-+#endif
-+#ifdef CONFIG_SIBYTE_CRHINE
-+#define SIBYTE_BOARD_NAME "BCM91120C (CRhine)"
-+#endif
-
- /* Generic bus chip selects */
-+#define LEDS_CS 3
-+#define LEDS_PHYS 0x100a0000
-+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
- #define IDE_CS 4
-+#define IDE_PHYS 0x100b0000
- #define PCMCIA_CS 6
-+#define PCMCIA_PHYS 0x11000000
-+#endif
-
- /* GPIOs */
-+#if defined(CONFIG_SIBYTE_SWARM) || defined(CONFIG_SIBYTE_PTSWARM)
- #define K_GPIO_GB_IDE 4
- #define K_INT_GB_IDE (K_INT_GPIO_0 + K_GPIO_GB_IDE)
- #define K_GPIO_PC_READY 9
- #define K_INT_PC_READY (K_INT_GPIO_0 + K_GPIO_PC_READY)
--
--#endif
--
--#ifdef __ASSEMBLY__
--#define setleds(t0,t1,c0,c1,c2,c3) \
-- li t0, (LED_BASE_ADDR|0xa0000000); \
-- li t1, c0; \
-- sb t1, 0x18(t0); \
-- li t1, c1; \
-- sb t1, 0x10(t0); \
-- li t1, c2; \
-- sb t1, 0x08(t0); \
-- li t1, c3; \
-- sb t1, 0x00(t0)
--#else
--void swarm_setup(void);
--void setleds(char *str);
--
--#define AT_spin \
-- __asm__ __volatile__ ( \
-- ".set noat\n" \
-- "li $at, 0\n" \
-- "1: beqz $at, 1b\n" \
-- ".set at\n" \
-- )
- #endif
-
- #endif /* __ASM_SIBYTE_SWARM_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/swarm_ide.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm_ide.h
---- linux-2.4.20/include/asm-mips64/sibyte/swarm_ide.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/swarm_ide.h 1969-12-31 18:00:00.000000000 -0600
-@@ -1,109 +0,0 @@
--/*
-- * Copyright (C) 2001 Broadcom Corporation
-- *
-- * This program is free software; you can redistribute it and/or
-- * modify it under the terms of the GNU General Public License
-- * as published by the Free Software Foundation; either version 2
-- * of the License, or (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-- */
--
--#ifndef _SWARM_IDE_H
--#define _SWARM_IDE_H
--
--#include <asm/sibyte/sb1250_int.h>
--
--#define SWARM_IDE_BASE (0xb00b0000-mips_io_port_base)
--#define SWARM_IDE_REG(pcaddr) (SWARM_IDE_BASE + ((pcaddr)<<5))
--#define SWARM_IDE_INT (K_INT_GPIO_4)
--
--extern ide_ideproc_t swarm_ideproc;
--
--#define swarm_outb(val,port) \
--do { \
-- *(volatile u8 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--#define swarm_outw(val,port) \
--do { \
-- *(volatile u16 *)(mips_io_port_base + (port)) = val; \
--} while(0)
--
--#define swarm_outl(val,port) \
--do { \
-- *(volatile u32 *)(mips_io_port_base + (port)) = val;\
--} while(0)
--
--static inline unsigned char swarm_inb(unsigned long port)
--{
-- return (*(volatile u8 *)(mips_io_port_base + port));
--}
--
--static inline unsigned short swarm_inw(unsigned long port)
--{
-- return (*(volatile u16 *)(mips_io_port_base + port));
--}
--
--static inline unsigned int swarm_inl(unsigned long port)
--{
-- return (*(volatile u32 *)(mips_io_port_base + port));
--}
--
--
--static inline void swarm_outsb(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- swarm_outb(*(u8 *)addr, port);
-- addr++;
-- }
--}
--
--static inline void swarm_insb(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u8 *)addr = swarm_inb(port);
-- addr++;
-- }
--}
--
--static inline void swarm_outsw(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- swarm_outw(*(u16 *)addr, port);
-- addr += 2;
-- }
--}
--
--static inline void swarm_insw(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u16 *)addr = swarm_inw(port);
-- addr += 2;
-- }
--}
--
--static inline void swarm_outsl(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- swarm_outl(*(u32 *)addr, port);
-- addr += 4;
-- }
--}
--
--static inline void swarm_insl(unsigned long port, void *addr, unsigned int count)
--{
-- while (count--) {
-- *(u32 *)addr = swarm_inl(port);
-- addr += 4;
-- }
--}
--
--#endif
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sibyte/trace_prof.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/trace_prof.h
---- linux-2.4.20/include/asm-mips64/sibyte/trace_prof.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sibyte/trace_prof.h 2003-02-07 16:00:22.000000000 -0600
-@@ -0,0 +1,109 @@
-+/*
-+ * Copyright (C) 2001 Broadcom Corporation
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-+ */
-+
-+#ifndef __ASM_SIBYTE_TRACE_PROF_H
-+#define __ASM_SIBYTE_TRACE_PROF_H
-+
-+#if SBPROF_TB_DEBUG
-+#define DBG(a) a
-+#else
-+#define DBG(a)
-+#endif
-+
-+#define SBPROF_TB_MAJOR 240
-+#define DEVNAME "bcm1250_tbprof"
-+
-+typedef u_int64_t tb_sample_t[6*256];
-+
-+struct sbprof_tb {
-+ int open;
-+ tb_sample_t *sbprof_tbbuf;
-+ int next_tb_sample;
-+
-+ volatile int tb_enable;
-+ volatile int tb_armed;
-+
-+ wait_queue_head_t tb_sync;
-+ wait_queue_head_t tb_read;
-+};
-+
-+#define MAX_SAMPLE_BYTES (24*1024*1024)
-+#define MAX_TBSAMPLE_BYTES (12*1024*1024)
-+
-+#define MAX_SAMPLES (MAX_SAMPLE_BYTES/sizeof(u_int32_t))
-+#define TB_SAMPLE_SIZE (sizeof(tb_sample_t))
-+#define MAX_TB_SAMPLES (MAX_TBSAMPLE_BYTES/TB_SAMPLE_SIZE)
-+
-+/* IOCTLs */
-+#define SBPROF_ZBSTART _IOW('s', 0, int)
-+#define SBPROF_ZBSTOP _IOW('s', 1, int)
-+#define SBPROF_ZBWAITFULL _IOW('s', 2, int)
-+
-+/***************************************************************************
-+ * Routines for gathering ZBbus profiles using trace buffer
-+ ***************************************************************************/
-+
-+/* Requires: Already called zclk_timer_init with a value that won't
-+ saturate 40 bits. No subsequent use of SCD performance counters
-+ or trace buffer.
-+ Effect: Starts gathering random ZBbus profiles using trace buffer. */
-+static int sbprof_zbprof_start(struct file *filp);
-+
-+/* Effect: Stops collection of ZBbus profiles */
-+static int sbprof_zbprof_stop(void);
-+
-+
-+/***************************************************************************
-+ * Routines for using 40-bit SCD cycle counter
-+ *
-+ * Client responsible for either handling interrupts or making sure
-+ * the cycles counter never saturates, e.g., by doing
-+ * zclk_timer_init(0) at least every 2^40 - 1 ZCLKs.
-+ ***************************************************************************/
-+
-+/* Configures SCD counter 0 to count ZCLKs starting from val;
-+ Configures SCD counters1,2,3 to count nothing.
-+ Must not be called while gathering ZBbus profiles.
-+
-+unsigned long long val; */
-+#define zclk_timer_init(val) \
-+ __asm__ __volatile__ (".set push;" \
-+ ".set mips64;" \
-+ "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-+ "sd %0, 0x10($8);" /* write val to counter0 */ \
-+ "sd %1, 0($8);" /* config counter0 for zclks*/ \
-+ ".set pop" \
-+ : /* no outputs */ \
-+ /* enable, counter0 */ \
-+ : /* inputs */ "r"(val), "r" ((1ULL << 33) | 1ULL) \
-+ : /* modifies */ "$8" )
-+
-+
-+/* Reads SCD counter 0 and puts result in value
-+ unsigned long long val; */
-+#define zclk_get(val) \
-+ __asm__ __volatile__ (".set push;" \
-+ ".set mips64;" \
-+ "la $8, 0xb00204c0;" /* SCD perf_cnt_cfg */ \
-+ "ld %0, 0x10($8);" /* write val to counter0 */ \
-+ ".set pop" \
-+ : /* outputs */ "=r"(val) \
-+ : /* inputs */ \
-+ : /* modifies */ "$8" )
-+
-+#endif /* __ASM_SIBYTE_TRACE_PROF_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sigcontext.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sigcontext.h
---- linux-2.4.20/include/asm-mips64/sigcontext.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sigcontext.h 2002-11-04 13:39:56.000000000 -0600
-@@ -20,7 +20,6 @@
- unsigned long long sc_mdlo;
- unsigned long long sc_pc;
- unsigned int sc_status;
-- unsigned int sc_ownedfp;
- unsigned int sc_fpc_csr;
- unsigned int sc_fpc_eir;
- unsigned int sc_used_math;
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/signal.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/signal.h
---- linux-2.4.20/include/asm-mips64/signal.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/signal.h 2003-01-27 13:19:13.000000000 -0600
-@@ -16,9 +16,17 @@
- #define _NSIG_WORDS (_NSIG / _NSIG_BPW)
-
- typedef struct {
-- long sig[_NSIG_WORDS];
-+ unsigned long sig[_NSIG_WORDS];
- } sigset_t;
-
-+#define _NSIG32 128
-+#define _NSIG_BPW32 32
-+#define _NSIG_WORDS32 (_NSIG32 / _NSIG_BPW32)
-+
-+typedef struct {
-+ unsigned int sig[_NSIG_WORDS32];
-+} sigset_t32;
-+
- typedef unsigned long old_sigset_t; /* at least 32 bits */
- typedef unsigned int old_sigset_t32;
-
-@@ -87,7 +95,7 @@
- #define SA_ONESHOT SA_RESETHAND
- #define SA_INTERRUPT 0x20000000 /* dummy -- ignored */
-
--#define SA_RESTORER 0x04000000
-+#define SA_RESTORER 0x04000000 /* Only for o32 compat code */
-
- /*
- * sigaltstack controls
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/smp.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/smp.h
---- linux-2.4.20/include/asm-mips64/smp.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/smp.h 2002-11-28 18:11:36.000000000 -0600
-@@ -1,20 +1,33 @@
- /*
-- * This file is subject to the terms and conditions of the GNU General
-- * Public License. See the file "COPYING" in the main directory of this
-- * archive for more details.
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License
-+ * as published by the Free Software Foundation; either version 2
-+ * of the License, or (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Copyright (C) 2000 - 2001 by Kanoj Sarcar (kanoj@sgi.com)
-+ * Copyright (C) 2000, 2001, 2002 by Ralf Baechle
- * Copyright (C) 2000 - 2001 by Silicon Graphics, Inc.
-+ * Copyright (C) 2000, 2001 Broadcom Corporation
- */
--#ifndef __ASM_SMP_H
--#define __ASM_SMP_H
-+#ifndef _ASM_SMP_H
-+#define _ASM_SMP_H
-
- #include <linux/config.h>
-
- #ifdef CONFIG_SMP
-
- #include <linux/threads.h>
--#include <linux/irq.h>
-+#include <asm/atomic.h>
-+#include <asm/current.h>
-
- #define smp_processor_id() (current->processor)
-
-@@ -29,8 +42,6 @@
- extern int __cpu_logical_map[NR_CPUS];
- #define cpu_logical_map(cpu) __cpu_logical_map[cpu]
-
--#endif
--
- #define NO_PROC_ID (-1)
-
- #define SMP_RESCHEDULE_YOURSELF 0x1 /* XXX braindead */
-@@ -40,7 +51,7 @@
-
- typedef unsigned long cpumask_t;
-
--#define CPUMASK_CLRALL(p) (p) = 0
-+#define CPUMASK_CLRALL(p) do { (p) = 0; } while(0)
- #define CPUMASK_SETB(p, bit) (p) |= 1UL << (bit)
- #define CPUMASK_CLRB(p, bit) (p) &= ~(1UL << (bit))
- #define CPUMASK_TSTB(p, bit) ((p) & (1UL << (bit)))
-@@ -82,4 +93,5 @@
-
- extern cpumask_t cpu_online_map;
-
--#endif /* __ASM_SMP_H */
-+#endif /* CONFIG_SMP */
-+#endif /* _ASM_SMP_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/addrs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/addrs.h
---- linux-2.4.20/include/asm-mips64/sn/addrs.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/addrs.h 2002-11-28 17:13:48.000000000 -0600
-@@ -254,14 +254,6 @@
- * for _x.
- */
-
--#ifdef _STANDALONE
--
--/* DO NOT USE THESE DIRECTLY IN THE KERNEL. SEE BELOW. */
--#define LOCAL_HUB(_x) (HUBREG_CAST (IALIAS_BASE + (_x)))
--#define REMOTE_HUB(_n, _x) (HUBREG_CAST (NODE_SWIN_BASE(_n, 1) + \
-- 0x800000 + (_x)))
--#endif /* _STANDALONE */
--
- /*
- * WARNING:
- * When certain Hub chip workaround are defined, it's not sufficient
-@@ -328,20 +320,6 @@
- PHYS_TO_K0(NODE_OFFSET(nasid) | ARCS_SPB_OFFSET)
- #define ARCS_SPB_SIZE 0x0400
-
--#ifdef _STANDALONE
--
--#define ARCS_TVECTOR_OFFSET 0x2800
--#define ARCS_PVECTOR_OFFSET 0x2c00
--
--/*
-- * These addresses are used by the master CPU to install the transfer
-- * and private vectors. All others use the SPB to find them.
-- */
--#define TVADDR (NODE_CAC_BASE(get_nasid()) + ARCS_TVECTOR_OFFSET)
--#define PVADDR (NODE_CAC_BASE(get_nasid()) + ARCS_PVECTOR_OFFSET)
--
--#endif /* _STANDALONE */
--
- #define KLDIR_OFFSET 0x2000
- #define KLDIR_ADDR(nasid) \
- TO_NODE_UNCAC((nasid), KLDIR_OFFSET)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Entries
---- linux-2.4.20/include/asm-mips64/sn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,17 @@
-+/addrs.h/1.6.4.2/Thu Nov 28 23:13:48 2002/-ko/Tlinux_2_4_20
-+/agent.h/1.4/Wed Jul 12 00:23:43 2000/-ko/Tlinux_2_4_20
-+/arch.h/1.8.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
-+/gda.h/1.3.2.2/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/intr.h/1.3.4.2/Mon Aug 5 23:53:40 2002//Tlinux_2_4_20
-+/intr_public.h/1.2.4.2/Mon Aug 5 23:53:40 2002//Tlinux_2_4_20
-+/io.h/1.4.4.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/ioc3.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/klconfig.h/1.8.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/kldir.h/1.3.4.2/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/klkernvars.h/1.2.4.1/Thu Jun 27 14:21:24 2002//Tlinux_2_4_20
-+/launch.h/1.4.2.2/Tue Nov 26 12:33:06 2002//Tlinux_2_4_20
-+/mapped_kernel.h/1.6.4.1/Mon Aug 5 23:53:40 2002//Tlinux_2_4_20
-+/nmi.h/1.2.4.2/Mon Aug 5 23:53:40 2002//Tlinux_2_4_20
-+/sn_private.h/1.6/Tue Jun 13 01:13:50 2000//Tlinux_2_4_20
-+/types.h/1.6/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+D/sn0////
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Repository
---- linux-2.4.20/include/asm-mips64/sn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Repository 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/sn
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Root
---- linux-2.4.20/include/asm-mips64/sn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Root 2005-01-06 23:06:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Tag
---- linux-2.4.20/include/asm-mips64/sn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/CVS/Tag 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/launch.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/launch.h
---- linux-2.4.20/include/asm-mips64/sn/launch.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/launch.h 2002-11-26 06:33:06.000000000 -0600
-@@ -102,21 +102,6 @@
- #define LAUNCH_FLASH (*(void (*)(void)) \
- IP27PROM_FLASHLEDS)
-
--#ifdef _STANDALONE
--
--launch_t *launch_get(int nasid, int cpu);
--launch_t *launch_get_current(void);
--void launch_loop(void);
--void launch_slave(int nasid, int cpu,
-- launch_proc_t call_addr,
-- __int64_t call_parm,
-- void *stack_addr,
-- void *gp_addr);
--int launch_wait(int nasid, int cpu, int timeout_msec);
--launch_state_t launch_poll(int nasid, int cpu);
--
--#endif /* _STANDALONE */
--
- #endif /* !__ASSEMBLY__ */
-
- #endif /* _ASM_SN_LAUNCH_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/addrs.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/addrs.h
---- linux-2.4.20/include/asm-mips64/sn/sn0/addrs.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/addrs.h 2002-11-28 17:13:01.000000000 -0600
-@@ -45,11 +45,11 @@
- #define HSPEC_BASE 0x9000000000000000
- #define IO_BASE 0x9200000000000000
- #define MSPEC_BASE 0x9400000000000000
--#define UNCAC_BASE 0x9600000000000000
-+#define __UNCAC_BASE 0x9600000000000000
-
- #define TO_PHYS(x) ( ((x) & TO_PHYS_MASK))
- #define TO_CAC(x) (CAC_BASE | ((x) & TO_PHYS_MASK))
--#define TO_UNCAC(x) (UNCAC_BASE | ((x) & TO_PHYS_MASK))
-+#define TO_UNCAC(x) (__UNCAC_BASE | ((x) & TO_PHYS_MASK))
- #define TO_MSPEC(x) (MSPEC_BASE | ((x) & TO_PHYS_MASK))
- #define TO_HSPEC(x) (HSPEC_BASE | ((x) & TO_PHYS_MASK))
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Entries
---- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Entries 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1,10 @@
-+/addrs.h/1.2.2.2/Thu Nov 28 23:13:01 2002/-ko/Tlinux_2_4_20
-+/arch.h/1.2.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/hub.h/1.2/Mon Jul 9 00:25:38 2001/-ko/Tlinux_2_4_20
-+/hubio.h/1.2.2.3/Mon Sep 2 14:44:00 2002/-ko/Tlinux_2_4_20
-+/hubmd.h/1.3.2.3/Tue Nov 26 12:28:46 2002/-ko/Tlinux_2_4_20
-+/hubni.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
-+/hubpi.h/1.2.2.2/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+/ip27.h/1.9.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
-+/sn0_fru.h/1.2.2.1/Mon Aug 5 23:53:40 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Repository
---- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Repository 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/sn/sn0
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Root
---- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Root 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Tag
---- linux-2.4.20/include/asm-mips64/sn/sn0/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/CVS/Tag 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/sn/sn0/hubmd.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/hubmd.h
---- linux-2.4.20/include/asm-mips64/sn/sn0/hubmd.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/sn/sn0/hubmd.h 2002-11-26 06:28:46.000000000 -0600
-@@ -425,7 +425,6 @@
- */
-
- #ifndef __ASSEMBLY__
--#ifndef _STANDALONE
-
- /*
- * LED register macros
-@@ -538,8 +537,6 @@
- #define MD_SPROT_MIGMD_GET(value) ( \
- ((value) & MD_SPROT_MIGMD_MASK) >> MD_SPROT_MIGMD_SHFT)
-
--#endif /* _STANDALONE */
--
- /*
- * Format of dir_error, mem_error, protocol_error and misc_error registers
- */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/stackframe.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/stackframe.h
---- linux-2.4.20/include/asm-mips64/stackframe.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/stackframe.h 2003-01-28 08:31:33.000000000 -0600
-@@ -135,11 +135,11 @@
- sd k0, PT_R29(sp)
- sd $3, PT_R3(sp)
- sd $0, PT_R0(sp)
-- dmfc0 v1, CP0_STATUS
-+ mfc0 v1, CP0_STATUS
- sd $2, PT_R2(sp)
- sd v1, PT_STATUS(sp)
- sd $4, PT_R4(sp)
-- dmfc0 v1, CP0_CAUSE
-+ mfc0 v1, CP0_CAUSE
- sd $5, PT_R5(sp)
- sd v1, PT_CAUSE(sp)
- sd $6, PT_R6(sp)
-@@ -214,7 +214,7 @@
- nor v1, $0, v1
- and v0, v1
- or v0, t0
-- dmtc0 v0, CP0_STATUS
-+ mtc0 v0, CP0_STATUS
- ld v1, PT_EPC(sp)
- dmtc0 v1, CP0_EPC
- ld $31, PT_R31(sp)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/stat.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/stat.h
---- linux-2.4.20/include/asm-mips64/stat.h 2000-11-28 23:42:04.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/stat.h 2002-11-21 06:38:57.000000000 -0600
-@@ -11,23 +11,6 @@
-
- #include <linux/types.h>
-
--struct __old_kernel_stat {
-- unsigned int st_dev;
-- unsigned int st_ino;
-- unsigned int st_mode;
-- unsigned int st_nlink;
-- unsigned int st_uid;
-- unsigned int st_gid;
-- unsigned int st_rdev;
-- long st_size;
-- unsigned int st_atime, st_res1;
-- unsigned int st_mtime, st_res2;
-- unsigned int st_ctime, st_res3;
-- unsigned int st_blksize;
-- int st_blocks;
-- unsigned int st_unused[2];
--};
--
- struct stat32 {
- __kernel_dev_t32 st_dev;
- int st_pad1[3];
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/system.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/system.h
---- linux-2.4.20/include/asm-mips64/system.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/system.h 2002-11-04 13:39:56.000000000 -0600
-@@ -222,25 +222,8 @@
-
- struct task_struct;
-
--extern asmlinkage void lazy_fpu_switch(void *, void *);
--extern asmlinkage void init_fpu(void);
--extern asmlinkage void save_fp(struct task_struct *);
--extern asmlinkage void restore_fp(struct task_struct *);
--
--#ifdef CONFIG_SMP
--#define SWITCH_DO_LAZY_FPU \
-- if (prev->flags & PF_USEDFPU) { \
-- lazy_fpu_switch(prev, 0); \
-- clear_cp0_status(ST0_CU1); \
-- prev->flags &= ~PF_USEDFPU; \
-- }
--#else /* CONFIG_SMP */
--#define SWITCH_DO_LAZY_FPU do { } while(0)
--#endif /* CONFIG_SMP */
--
- #define switch_to(prev,next,last) \
- do { \
-- SWITCH_DO_LAZY_FPU; \
- (last) = resume(prev, next); \
- } while(0)
-
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/timex.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/timex.h
---- linux-2.4.20/include/asm-mips64/timex.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/timex.h 2002-12-01 18:24:54.000000000 -0600
-@@ -10,6 +10,8 @@
- #ifndef _ASM_TIMEX_H
- #define _ASM_TIMEX_H
-
-+#include <asm/mipsregs.h>
-+
- #define CLOCK_TICK_RATE 1193180 /* Underlying HZ */
- #define CLOCK_TICK_FACTOR 20 /* Factor of both 1000000 and CLOCK_TICK_RATE */
- #define FINETUNE ((((((long)LATCH * HZ - CLOCK_TICK_RATE) << SHIFT_HZ) * \
-@@ -32,15 +34,7 @@
-
- static inline cycles_t get_cycles (void)
- {
-- cycles_t val;
--
-- __asm__ __volatile__(
-- ".set noreorder\n\t"
-- "mfc0 %0, $9\n\t"
-- ".set reorder"
-- : "=r" (val));
--
-- return val;
-+ return read_c0_count();
- }
-
- #define vxtime_lock() do {} while (0)
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/tlbdebug.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/tlbdebug.h
---- linux-2.4.20/include/asm-mips64/tlbdebug.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/tlbdebug.h 2002-09-15 18:32:24.000000000 -0500
-@@ -0,0 +1,20 @@
-+/*
-+ * This file is subject to the terms and conditions of the GNU General Public
-+ * License. See the file "COPYING" in the main directory of this archive
-+ * for more details.
-+ *
-+ * Copyright (C) 2002 by Ralf Baechle
-+ */
-+#ifndef __ASM_TLBDEBUG_H
-+#define __ASM_TLBDEBUG_H
-+
-+/*
-+ * TLB debugging functions:
-+ */
-+extern void dump_tlb(int first, int last);
-+extern void dump_tlb_all(void);
-+extern void dump_tlb_wired(void);
-+extern void dump_tlb_addr(unsigned long addr);
-+extern void dump_tlb_nonwired(void);
-+
-+#endif /* __ASM_TLBDEBUG_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/uaccess.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/uaccess.h
---- linux-2.4.20/include/asm-mips64/uaccess.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/uaccess.h 2002-12-09 15:24:13.000000000 -0600
-@@ -22,8 +22,8 @@
- *
- * For historical reasons, these macros are grossly misnamed.
- */
--#define KERNEL_DS ((mm_segment_t) { (unsigned long) 0L })
--#define USER_DS ((mm_segment_t) { (unsigned long) -1L })
-+#define KERNEL_DS ((mm_segment_t) { 0UL })
-+#define USER_DS ((mm_segment_t) { -TASK_SIZE })
-
- #define VERIFY_READ 0
- #define VERIFY_WRITE 1
-@@ -46,19 +46,19 @@
- * - OR we are in kernel mode.
- */
- #define __ua_size(size) \
-- (__builtin_constant_p(size) && (signed long) (size) > 0 ? 0 : (size))
-+ ((__builtin_constant_p(size) && (size)) > 0 ? 0 : (size))
-
--#define __access_ok(addr,size,mask) \
-- (((signed long)((mask)&(addr | (addr + size) | __ua_size(size)))) >= 0)
-+#define __access_ok(addr, size, mask) \
-+ (((mask) & ((addr) | ((addr) + (size)) | __ua_size(size))) == 0)
-
--#define __access_mask ((long)(get_fs().seg))
-+#define __access_mask get_fs().seg
-
--#define access_ok(type,addr,size) \
-- __access_ok(((unsigned long)(addr)),(size),__access_mask)
-+#define access_ok(type, addr, size) \
-+ __access_ok((unsigned long)(addr), (size), __access_mask)
-
- static inline int verify_area(int type, const void * addr, unsigned long size)
- {
-- return access_ok(type,addr,size) ? 0 : -EFAULT;
-+ return access_ok(type, addr, size) ? 0 : -EFAULT;
- }
-
- /*
-@@ -340,8 +340,8 @@
- ({ \
- void * __cl_addr = (addr); \
- unsigned long __cl_size = (n); \
-- if (__cl_size && __access_ok(VERIFY_WRITE, \
-- ((unsigned long)(__cl_addr)), __cl_size)) \
-+ if (__cl_size && access_ok(VERIFY_WRITE, \
-+ ((unsigned long)(__cl_addr)), __cl_size)) \
- __cl_size = __clear_user(__cl_addr, __cl_size); \
- __cl_size; \
- })
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/unaligned.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/unaligned.h
---- linux-2.4.20/include/asm-mips64/unaligned.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/unaligned.h 2002-10-02 08:23:43.000000000 -0500
-@@ -55,7 +55,7 @@
- }
-
- /*
-- * Store quad ununaligned.
-+ * Store quad unaligned.
- */
- static inline void __stq_u(unsigned long __val, unsigned long * __addr)
- {
-@@ -65,7 +65,7 @@
- }
-
- /*
-- * Store long ununaligned.
-+ * Store long unaligned.
- */
- static inline void __stl_u(unsigned long __val, unsigned int * __addr)
- {
-@@ -75,7 +75,7 @@
- }
-
- /*
-- * Store word ununaligned.
-+ * Store word unaligned.
- */
- static inline void __stw_u(unsigned long __val, unsigned short * __addr)
- {
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/unistd.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/unistd.h
---- linux-2.4.20/include/asm-mips64/unistd.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/unistd.h 2002-11-06 15:00:09.000000000 -0600
-@@ -15,497 +15,674 @@
- /*
- * Linux o32 style syscalls are in the range from 4000 to 4999.
- */
--#define __NR_Linux32 4000
--#define __NR_Linux32_syscall (__NR_Linux32 + 0)
--#define __NR_Linux32_exit (__NR_Linux32 + 1)
--#define __NR_Linux32_fork (__NR_Linux32 + 2)
--#define __NR_Linux32_read (__NR_Linux32 + 3)
--#define __NR_Linux32_write (__NR_Linux32 + 4)
--#define __NR_Linux32_open (__NR_Linux32 + 5)
--#define __NR_Linux32_close (__NR_Linux32 + 6)
--#define __NR_Linux32_waitpid (__NR_Linux32 + 7)
--#define __NR_Linux32_creat (__NR_Linux32 + 8)
--#define __NR_Linux32_link (__NR_Linux32 + 9)
--#define __NR_Linux32_unlink (__NR_Linux32 + 10)
--#define __NR_Linux32_execve (__NR_Linux32 + 11)
--#define __NR_Linux32_chdir (__NR_Linux32 + 12)
--#define __NR_Linux32_time (__NR_Linux32 + 13)
--#define __NR_Linux32_mknod (__NR_Linux32 + 14)
--#define __NR_Linux32_chmod (__NR_Linux32 + 15)
--#define __NR_Linux32_lchown (__NR_Linux32 + 16)
--#define __NR_Linux32_break (__NR_Linux32 + 17)
--#define __NR_Linux32_oldstat (__NR_Linux32 + 18)
--#define __NR_Linux32_lseek (__NR_Linux32 + 19)
--#define __NR_Linux32_getpid (__NR_Linux32 + 20)
--#define __NR_Linux32_mount (__NR_Linux32 + 21)
--#define __NR_Linux32_umount (__NR_Linux32 + 22)
--#define __NR_Linux32_setuid (__NR_Linux32 + 23)
--#define __NR_Linux32_getuid (__NR_Linux32 + 24)
--#define __NR_Linux32_stime (__NR_Linux32 + 25)
--#define __NR_Linux32_ptrace (__NR_Linux32 + 26)
--#define __NR_Linux32_alarm (__NR_Linux32 + 27)
--#define __NR_Linux32_oldfstat (__NR_Linux32 + 28)
--#define __NR_Linux32_pause (__NR_Linux32 + 29)
--#define __NR_Linux32_utime (__NR_Linux32 + 30)
--#define __NR_Linux32_stty (__NR_Linux32 + 31)
--#define __NR_Linux32_gtty (__NR_Linux32 + 32)
--#define __NR_Linux32_access (__NR_Linux32 + 33)
--#define __NR_Linux32_nice (__NR_Linux32 + 34)
--#define __NR_Linux32_ftime (__NR_Linux32 + 35)
--#define __NR_Linux32_sync (__NR_Linux32 + 36)
--#define __NR_Linux32_kill (__NR_Linux32 + 37)
--#define __NR_Linux32_rename (__NR_Linux32 + 38)
--#define __NR_Linux32_mkdir (__NR_Linux32 + 39)
--#define __NR_Linux32_rmdir (__NR_Linux32 + 40)
--#define __NR_Linux32_dup (__NR_Linux32 + 41)
--#define __NR_Linux32_pipe (__NR_Linux32 + 42)
--#define __NR_Linux32_times (__NR_Linux32 + 43)
--#define __NR_Linux32_prof (__NR_Linux32 + 44)
--#define __NR_Linux32_brk (__NR_Linux32 + 45)
--#define __NR_Linux32_setgid (__NR_Linux32 + 46)
--#define __NR_Linux32_getgid (__NR_Linux32 + 47)
--#define __NR_Linux32_signal (__NR_Linux32 + 48)
--#define __NR_Linux32_geteuid (__NR_Linux32 + 49)
--#define __NR_Linux32_getegid (__NR_Linux32 + 50)
--#define __NR_Linux32_acct (__NR_Linux32 + 51)
--#define __NR_Linux32_umount2 (__NR_Linux32 + 52)
--#define __NR_Linux32_lock (__NR_Linux32 + 53)
--#define __NR_Linux32_ioctl (__NR_Linux32 + 54)
--#define __NR_Linux32_fcntl (__NR_Linux32 + 55)
--#define __NR_Linux32_mpx (__NR_Linux32 + 56)
--#define __NR_Linux32_setpgid (__NR_Linux32 + 57)
--#define __NR_Linux32_ulimit (__NR_Linux32 + 58)
--#define __NR_Linux32_unused59 (__NR_Linux32 + 59)
--#define __NR_Linux32_umask (__NR_Linux32 + 60)
--#define __NR_Linux32_chroot (__NR_Linux32 + 61)
--#define __NR_Linux32_ustat (__NR_Linux32 + 62)
--#define __NR_Linux32_dup2 (__NR_Linux32 + 63)
--#define __NR_Linux32_getppid (__NR_Linux32 + 64)
--#define __NR_Linux32_getpgrp (__NR_Linux32 + 65)
--#define __NR_Linux32_setsid (__NR_Linux32 + 66)
--#define __NR_Linux32_sigaction (__NR_Linux32 + 67)
--#define __NR_Linux32_sgetmask (__NR_Linux32 + 68)
--#define __NR_Linux32_ssetmask (__NR_Linux32 + 69)
--#define __NR_Linux32_setreuid (__NR_Linux32 + 70)
--#define __NR_Linux32_setregid (__NR_Linux32 + 71)
--#define __NR_Linux32_sigsuspend (__NR_Linux32 + 72)
--#define __NR_Linux32_sigpending (__NR_Linux32 + 73)
--#define __NR_Linux32_sethostname (__NR_Linux32 + 74)
--#define __NR_Linux32_setrlimit (__NR_Linux32 + 75)
--#define __NR_Linux32_getrlimit (__NR_Linux32 + 76)
--#define __NR_Linux32_getrusage (__NR_Linux32 + 77)
--#define __NR_Linux32_gettimeofday (__NR_Linux32 + 78)
--#define __NR_Linux32_settimeofday (__NR_Linux32 + 79)
--#define __NR_Linux32_getgroups (__NR_Linux32 + 80)
--#define __NR_Linux32_setgroups (__NR_Linux32 + 81)
--#define __NR_Linux32_reserved82 (__NR_Linux32 + 82)
--#define __NR_Linux32_symlink (__NR_Linux32 + 83)
--#define __NR_Linux32_oldlstat (__NR_Linux32 + 84)
--#define __NR_Linux32_readlink (__NR_Linux32 + 85)
--#define __NR_Linux32_uselib (__NR_Linux32 + 86)
--#define __NR_Linux32_swapon (__NR_Linux32 + 87)
--#define __NR_Linux32_reboot (__NR_Linux32 + 88)
--#define __NR_Linux32_readdir (__NR_Linux32 + 89)
--#define __NR_Linux32_mmap (__NR_Linux32 + 90)
--#define __NR_Linux32_munmap (__NR_Linux32 + 91)
--#define __NR_Linux32_truncate (__NR_Linux32 + 92)
--#define __NR_Linux32_ftruncate (__NR_Linux32 + 93)
--#define __NR_Linux32_fchmod (__NR_Linux32 + 94)
--#define __NR_Linux32_fchown (__NR_Linux32 + 95)
--#define __NR_Linux32_getpriority (__NR_Linux32 + 96)
--#define __NR_Linux32_setpriority (__NR_Linux32 + 97)
--#define __NR_Linux32_profil (__NR_Linux32 + 98)
--#define __NR_Linux32_statfs (__NR_Linux32 + 99)
--#define __NR_Linux32_fstatfs (__NR_Linux32 + 100)
--#define __NR_Linux32_ioperm (__NR_Linux32 + 101)
--#define __NR_Linux32_socketcall (__NR_Linux32 + 102)
--#define __NR_Linux32_syslog (__NR_Linux32 + 103)
--#define __NR_Linux32_setitimer (__NR_Linux32 + 104)
--#define __NR_Linux32_getitimer (__NR_Linux32 + 105)
--#define __NR_Linux32_stat (__NR_Linux32 + 106)
--#define __NR_Linux32_lstat (__NR_Linux32 + 107)
--#define __NR_Linux32_fstat (__NR_Linux32 + 108)
--#define __NR_Linux32_unused109 (__NR_Linux32 + 109)
--#define __NR_Linux32_iopl (__NR_Linux32 + 110)
--#define __NR_Linux32_vhangup (__NR_Linux32 + 111)
--#define __NR_Linux32_idle (__NR_Linux32 + 112)
--#define __NR_Linux32_vm86 (__NR_Linux32 + 113)
--#define __NR_Linux32_wait4 (__NR_Linux32 + 114)
--#define __NR_Linux32_swapoff (__NR_Linux32 + 115)
--#define __NR_Linux32_sysinfo (__NR_Linux32 + 116)
--#define __NR_Linux32_ipc (__NR_Linux32 + 117)
--#define __NR_Linux32_fsync (__NR_Linux32 + 118)
--#define __NR_Linux32_sigreturn (__NR_Linux32 + 119)
--#define __NR_Linux32_clone (__NR_Linux32 + 120)
--#define __NR_Linux32_setdomainname (__NR_Linux32 + 121)
--#define __NR_Linux32_uname (__NR_Linux32 + 122)
--#define __NR_Linux32_modify_ldt (__NR_Linux32 + 123)
--#define __NR_Linux32_adjtimex (__NR_Linux32 + 124)
--#define __NR_Linux32_mprotect (__NR_Linux32 + 125)
--#define __NR_Linux32_sigprocmask (__NR_Linux32 + 126)
--#define __NR_Linux32_create_module (__NR_Linux32 + 127)
--#define __NR_Linux32_init_module (__NR_Linux32 + 128)
--#define __NR_Linux32_delete_module (__NR_Linux32 + 129)
--#define __NR_Linux32_get_kernel_syms (__NR_Linux32 + 130)
--#define __NR_Linux32_quotactl (__NR_Linux32 + 131)
--#define __NR_Linux32_getpgid (__NR_Linux32 + 132)
--#define __NR_Linux32_fchdir (__NR_Linux32 + 133)
--#define __NR_Linux32_bdflush (__NR_Linux32 + 134)
--#define __NR_Linux32_sysfs (__NR_Linux32 + 135)
--#define __NR_Linux32_personality (__NR_Linux32 + 136)
--#define __NR_Linux32_afs_syscall (__NR_Linux32 + 137) /* Syscall for Andrew File System */
--#define __NR_Linux32_setfsuid (__NR_Linux32 + 138)
--#define __NR_Linux32_setfsgid (__NR_Linux32 + 139)
--#define __NR_Linux32__llseek (__NR_Linux32 + 140)
--#define __NR_Linux32_getdents (__NR_Linux32 + 141)
--#define __NR_Linux32__newselect (__NR_Linux32 + 142)
--#define __NR_Linux32_flock (__NR_Linux32 + 143)
--#define __NR_Linux32_msync (__NR_Linux32 + 144)
--#define __NR_Linux32_readv (__NR_Linux32 + 145)
--#define __NR_Linux32_writev (__NR_Linux32 + 146)
--#define __NR_Linux32_cacheflush (__NR_Linux32 + 147)
--#define __NR_Linux32_cachectl (__NR_Linux32 + 148)
--#define __NR_Linux32_sysmips (__NR_Linux32 + 149)
--#define __NR_Linux32_unused150 (__NR_Linux32 + 150)
--#define __NR_Linux32_getsid (__NR_Linux32 + 151)
--#define __NR_Linux32_fdatasync (__NR_Linux32 + 152)
--#define __NR_Linux32__sysctl (__NR_Linux32 + 153)
--#define __NR_Linux32_mlock (__NR_Linux32 + 154)
--#define __NR_Linux32_munlock (__NR_Linux32 + 155)
--#define __NR_Linux32_mlockall (__NR_Linux32 + 156)
--#define __NR_Linux32_munlockall (__NR_Linux32 + 157)
--#define __NR_Linux32_sched_setparam (__NR_Linux32 + 158)
--#define __NR_Linux32_sched_getparam (__NR_Linux32 + 159)
--#define __NR_Linux32_sched_setscheduler (__NR_Linux32 + 160)
--#define __NR_Linux32_sched_getscheduler (__NR_Linux32 + 161)
--#define __NR_Linux32_sched_yield (__NR_Linux32 + 162)
--#define __NR_Linux32_sched_get_priority_max (__NR_Linux32 + 163)
--#define __NR_Linux32_sched_get_priority_min (__NR_Linux32 + 164)
--#define __NR_Linux32_sched_rr_get_interval (__NR_Linux32 + 165)
--#define __NR_Linux32_nanosleep (__NR_Linux32 + 166)
--#define __NR_Linux32_mremap (__NR_Linux32 + 167)
--#define __NR_Linux32_accept (__NR_Linux32 + 168)
--#define __NR_Linux32_bind (__NR_Linux32 + 169)
--#define __NR_Linux32_connect (__NR_Linux32 + 170)
--#define __NR_Linux32_getpeername (__NR_Linux32 + 171)
--#define __NR_Linux32_getsockname (__NR_Linux32 + 172)
--#define __NR_Linux32_getsockopt (__NR_Linux32 + 173)
--#define __NR_Linux32_listen (__NR_Linux32 + 174)
--#define __NR_Linux32_recv (__NR_Linux32 + 175)
--#define __NR_Linux32_recvfrom (__NR_Linux32 + 176)
--#define __NR_Linux32_recvmsg (__NR_Linux32 + 177)
--#define __NR_Linux32_send (__NR_Linux32 + 178)
--#define __NR_Linux32_sendmsg (__NR_Linux32 + 179)
--#define __NR_Linux32_sendto (__NR_Linux32 + 180)
--#define __NR_Linux32_setsockopt (__NR_Linux32 + 181)
--#define __NR_Linux32_shutdown (__NR_Linux32 + 182)
--#define __NR_Linux32_socket (__NR_Linux32 + 183)
--#define __NR_Linux32_socketpair (__NR_Linux32 + 184)
--#define __NR_Linux32_setresuid (__NR_Linux32 + 185)
--#define __NR_Linux32_getresuid (__NR_Linux32 + 186)
--#define __NR_Linux32_query_module (__NR_Linux32 + 187)
--#define __NR_Linux32_poll (__NR_Linux32 + 188)
--#define __NR_Linux32_nfsservctl (__NR_Linux32 + 189)
--#define __NR_Linux32_setresgid (__NR_Linux32 + 190)
--#define __NR_Linux32_getresgid (__NR_Linux32 + 191)
--#define __NR_Linux32_prctl (__NR_Linux32 + 192)
--#define __NR_Linux32_rt_sigreturn (__NR_Linux32 + 193)
--#define __NR_Linux32_rt_sigaction (__NR_Linux32 + 194)
--#define __NR_Linux32_rt_sigprocmask (__NR_Linux32 + 195)
--#define __NR_Linux32_rt_sigpending (__NR_Linux32 + 196)
--#define __NR_Linux32_rt_sigtimedwait (__NR_Linux32 + 197)
--#define __NR_Linux32_rt_sigqueueinfo (__NR_Linux32 + 198)
--#define __NR_Linux32_rt_sigsuspend (__NR_Linux32 + 199)
--#define __NR_Linux32_pread (__NR_Linux32 + 200)
--#define __NR_Linux32_pwrite (__NR_Linux32 + 201)
--#define __NR_Linux32_chown (__NR_Linux32 + 202)
--#define __NR_Linux32_getcwd (__NR_Linux32 + 203)
--#define __NR_Linux32_capget (__NR_Linux32 + 204)
--#define __NR_Linux32_capset (__NR_Linux32 + 205)
--#define __NR_Linux32_sigaltstack (__NR_Linux32 + 206)
--#define __NR_Linux32_sendfile (__NR_Linux32 + 207)
--#define __NR_Linux32_getpmsg (__NR_Linux32 + 208)
--#define __NR_Linux32_putpmsg (__NR_Linux32 + 209)
--#define __NR_Linux32_mmap2 (__NR_Linux32 + 210)
--#define __NR_Linux32_truncate64 (__NR_Linux32 + 211)
--#define __NR_Linux32_ftruncate64 (__NR_Linux32 + 212)
--#define __NR_Linux32_stat64 (__NR_Linux32 + 213)
--#define __NR_Linux32_lstat64 (__NR_Linux32 + 214)
--#define __NR_Linux32_fstat64 (__NR_Linux32 + 215)
--#define __NR_Linux32_root_pivot (__NR_Linux32 + 216)
--#define __NR_Linux32_mincore (__NR_Linux32 + 217)
--#define __NR_Linux32_madvise (__NR_Linux32 + 218)
--#define __NR_Linux32_getdents64 (__NR_Linux32 + 219)
--#define __NR_Linux32_fcntl64 (__NR_Linux32 + 220)
--#define __NR_Linux32_security (__NR_Linux32 + 221)
--#define __NR_Linux32_gettid (__NR_Linux32 + 222)
--#define __NR_Linux32_readahead (__NR_Linux32 + 223)
--#define __NR_Linux32_setxattr (__NR_Linux32 + 224)
--#define __NR_Linux32_lsetxattr (__NR_Linux32 + 225)
--#define __NR_Linux32_fsetxattr (__NR_Linux32 + 226)
--#define __NR_Linux32_getxattr (__NR_Linux32 + 227)
--#define __NR_Linux32_lgetxattr (__NR_Linux32 + 228)
--#define __NR_Linux32_fgetxattr (__NR_Linux32 + 229)
--#define __NR_Linux32_listxattr (__NR_Linux32 + 230)
--#define __NR_Linux32_llistxattr (__NR_Linux32 + 231)
--#define __NR_Linux32_flistxattr (__NR_Linux32 + 232)
--#define __NR_Linux32_removexattr (__NR_Linux32 + 233)
--#define __NR_Linux32_lremovexattr (__NR_Linux32 + 234)
--#define __NR_Linux32_fremovexattr (__NR_Linux32 + 235)
--#define __NR_Linux32_tkill (__NR_Linux32 + 236)
--#define __NR_Linux32_sendfile64 (__NR_Linux32 + 237)
--#define __NR_Linux32_futex (__NR_Linux32 + 238)
--#define __NR_Linux32_sched_setaffinity (__NR_Linux32 + 239)
--#define __NR_Linux32_sched_getaffinity (__NR_Linux32 + 240)
-+#define __NR_O32_Linux 4000
-+#define __NR_O32_syscall (__NR_O32_Linux + 0)
-+#define __NR_O32_exit (__NR_O32_Linux + 1)
-+#define __NR_O32_fork (__NR_O32_Linux + 2)
-+#define __NR_O32_read (__NR_O32_Linux + 3)
-+#define __NR_O32_write (__NR_O32_Linux + 4)
-+#define __NR_O32_open (__NR_O32_Linux + 5)
-+#define __NR_O32_close (__NR_O32_Linux + 6)
-+#define __NR_O32_waitpid (__NR_O32_Linux + 7)
-+#define __NR_O32_creat (__NR_O32_Linux + 8)
-+#define __NR_O32_link (__NR_O32_Linux + 9)
-+#define __NR_O32_unlink (__NR_O32_Linux + 10)
-+#define __NR_O32_execve (__NR_O32_Linux + 11)
-+#define __NR_O32_chdir (__NR_O32_Linux + 12)
-+#define __NR_O32_time (__NR_O32_Linux + 13)
-+#define __NR_O32_mknod (__NR_O32_Linux + 14)
-+#define __NR_O32_chmod (__NR_O32_Linux + 15)
-+#define __NR_O32_lchown (__NR_O32_Linux + 16)
-+#define __NR_O32_break (__NR_O32_Linux + 17)
-+#define __NR_O32_unused18 (__NR_O32_Linux + 18)
-+#define __NR_O32_lseek (__NR_O32_Linux + 19)
-+#define __NR_O32_getpid (__NR_O32_Linux + 20)
-+#define __NR_O32_mount (__NR_O32_Linux + 21)
-+#define __NR_O32_umount (__NR_O32_Linux + 22)
-+#define __NR_O32_setuid (__NR_O32_Linux + 23)
-+#define __NR_O32_getuid (__NR_O32_Linux + 24)
-+#define __NR_O32_stime (__NR_O32_Linux + 25)
-+#define __NR_O32_ptrace (__NR_O32_Linux + 26)
-+#define __NR_O32_alarm (__NR_O32_Linux + 27)
-+#define __NR_O32_unused28 (__NR_O32_Linux + 28)
-+#define __NR_O32_pause (__NR_O32_Linux + 29)
-+#define __NR_O32_utime (__NR_O32_Linux + 30)
-+#define __NR_O32_stty (__NR_O32_Linux + 31)
-+#define __NR_O32_gtty (__NR_O32_Linux + 32)
-+#define __NR_O32_access (__NR_O32_Linux + 33)
-+#define __NR_O32_nice (__NR_O32_Linux + 34)
-+#define __NR_O32_ftime (__NR_O32_Linux + 35)
-+#define __NR_O32_sync (__NR_O32_Linux + 36)
-+#define __NR_O32_kill (__NR_O32_Linux + 37)
-+#define __NR_O32_rename (__NR_O32_Linux + 38)
-+#define __NR_O32_mkdir (__NR_O32_Linux + 39)
-+#define __NR_O32_rmdir (__NR_O32_Linux + 40)
-+#define __NR_O32_dup (__NR_O32_Linux + 41)
-+#define __NR_O32_pipe (__NR_O32_Linux + 42)
-+#define __NR_O32_times (__NR_O32_Linux + 43)
-+#define __NR_O32_prof (__NR_O32_Linux + 44)
-+#define __NR_O32_brk (__NR_O32_Linux + 45)
-+#define __NR_O32_setgid (__NR_O32_Linux + 46)
-+#define __NR_O32_getgid (__NR_O32_Linux + 47)
-+#define __NR_O32_signal (__NR_O32_Linux + 48)
-+#define __NR_O32_geteuid (__NR_O32_Linux + 49)
-+#define __NR_O32_getegid (__NR_O32_Linux + 50)
-+#define __NR_O32_acct (__NR_O32_Linux + 51)
-+#define __NR_O32_umount2 (__NR_O32_Linux + 52)
-+#define __NR_O32_lock (__NR_O32_Linux + 53)
-+#define __NR_O32_ioctl (__NR_O32_Linux + 54)
-+#define __NR_O32_fcntl (__NR_O32_Linux + 55)
-+#define __NR_O32_mpx (__NR_O32_Linux + 56)
-+#define __NR_O32_setpgid (__NR_O32_Linux + 57)
-+#define __NR_O32_ulimit (__NR_O32_Linux + 58)
-+#define __NR_O32_unused59 (__NR_O32_Linux + 59)
-+#define __NR_O32_umask (__NR_O32_Linux + 60)
-+#define __NR_O32_chroot (__NR_O32_Linux + 61)
-+#define __NR_O32_ustat (__NR_O32_Linux + 62)
-+#define __NR_O32_dup2 (__NR_O32_Linux + 63)
-+#define __NR_O32_getppid (__NR_O32_Linux + 64)
-+#define __NR_O32_getpgrp (__NR_O32_Linux + 65)
-+#define __NR_O32_setsid (__NR_O32_Linux + 66)
-+#define __NR_O32_sigaction (__NR_O32_Linux + 67)
-+#define __NR_O32_sgetmask (__NR_O32_Linux + 68)
-+#define __NR_O32_ssetmask (__NR_O32_Linux + 69)
-+#define __NR_O32_setreuid (__NR_O32_Linux + 70)
-+#define __NR_O32_setregid (__NR_O32_Linux + 71)
-+#define __NR_O32_sigsuspend (__NR_O32_Linux + 72)
-+#define __NR_O32_sigpending (__NR_O32_Linux + 73)
-+#define __NR_O32_sethostname (__NR_O32_Linux + 74)
-+#define __NR_O32_setrlimit (__NR_O32_Linux + 75)
-+#define __NR_O32_getrlimit (__NR_O32_Linux + 76)
-+#define __NR_O32_getrusage (__NR_O32_Linux + 77)
-+#define __NR_O32_gettimeofday (__NR_O32_Linux + 78)
-+#define __NR_O32_settimeofday (__NR_O32_Linux + 79)
-+#define __NR_O32_getgroups (__NR_O32_Linux + 80)
-+#define __NR_O32_setgroups (__NR_O32_Linux + 81)
-+#define __NR_O32_reserved82 (__NR_O32_Linux + 82)
-+#define __NR_O32_symlink (__NR_O32_Linux + 83)
-+#define __NR_O32_unused84 (__NR_O32_Linux + 84)
-+#define __NR_O32_readlink (__NR_O32_Linux + 85)
-+#define __NR_O32_uselib (__NR_O32_Linux + 86)
-+#define __NR_O32_swapon (__NR_O32_Linux + 87)
-+#define __NR_O32_reboot (__NR_O32_Linux + 88)
-+#define __NR_O32_readdir (__NR_O32_Linux + 89)
-+#define __NR_O32_mmap (__NR_O32_Linux + 90)
-+#define __NR_O32_munmap (__NR_O32_Linux + 91)
-+#define __NR_O32_truncate (__NR_O32_Linux + 92)
-+#define __NR_O32_ftruncate (__NR_O32_Linux + 93)
-+#define __NR_O32_fchmod (__NR_O32_Linux + 94)
-+#define __NR_O32_fchown (__NR_O32_Linux + 95)
-+#define __NR_O32_getpriority (__NR_O32_Linux + 96)
-+#define __NR_O32_setpriority (__NR_O32_Linux + 97)
-+#define __NR_O32_profil (__NR_O32_Linux + 98)
-+#define __NR_O32_statfs (__NR_O32_Linux + 99)
-+#define __NR_O32_fstatfs (__NR_O32_Linux + 100)
-+#define __NR_O32_ioperm (__NR_O32_Linux + 101)
-+#define __NR_O32_socketcall (__NR_O32_Linux + 102)
-+#define __NR_O32_syslog (__NR_O32_Linux + 103)
-+#define __NR_O32_setitimer (__NR_O32_Linux + 104)
-+#define __NR_O32_getitimer (__NR_O32_Linux + 105)
-+#define __NR_O32_stat (__NR_O32_Linux + 106)
-+#define __NR_O32_lstat (__NR_O32_Linux + 107)
-+#define __NR_O32_fstat (__NR_O32_Linux + 108)
-+#define __NR_O32_unused109 (__NR_O32_Linux + 109)
-+#define __NR_O32_iopl (__NR_O32_Linux + 110)
-+#define __NR_O32_vhangup (__NR_O32_Linux + 111)
-+#define __NR_O32_idle (__NR_O32_Linux + 112)
-+#define __NR_O32_vm86 (__NR_O32_Linux + 113)
-+#define __NR_O32_wait4 (__NR_O32_Linux + 114)
-+#define __NR_O32_swapoff (__NR_O32_Linux + 115)
-+#define __NR_O32_sysinfo (__NR_O32_Linux + 116)
-+#define __NR_O32_ipc (__NR_O32_Linux + 117)
-+#define __NR_O32_fsync (__NR_O32_Linux + 118)
-+#define __NR_O32_sigreturn (__NR_O32_Linux + 119)
-+#define __NR_O32_clone (__NR_O32_Linux + 120)
-+#define __NR_O32_setdomainname (__NR_O32_Linux + 121)
-+#define __NR_O32_uname (__NR_O32_Linux + 122)
-+#define __NR_O32_modify_ldt (__NR_O32_Linux + 123)
-+#define __NR_O32_adjtimex (__NR_O32_Linux + 124)
-+#define __NR_O32_mprotect (__NR_O32_Linux + 125)
-+#define __NR_O32_sigprocmask (__NR_O32_Linux + 126)
-+#define __NR_O32_create_module (__NR_O32_Linux + 127)
-+#define __NR_O32_init_module (__NR_O32_Linux + 128)
-+#define __NR_O32_delete_module (__NR_O32_Linux + 129)
-+#define __NR_O32_get_kernel_syms (__NR_O32_Linux + 130)
-+#define __NR_O32_quotactl (__NR_O32_Linux + 131)
-+#define __NR_O32_getpgid (__NR_O32_Linux + 132)
-+#define __NR_O32_fchdir (__NR_O32_Linux + 133)
-+#define __NR_O32_bdflush (__NR_O32_Linux + 134)
-+#define __NR_O32_sysfs (__NR_O32_Linux + 135)
-+#define __NR_O32_personality (__NR_O32_Linux + 136)
-+#define __NR_O32_afs_syscall (__NR_O32_Linux + 137) /* Syscall for Andrew File System */
-+#define __NR_O32_setfsuid (__NR_O32_Linux + 138)
-+#define __NR_O32_setfsgid (__NR_O32_Linux + 139)
-+#define __NR_O32__llseek (__NR_O32_Linux + 140)
-+#define __NR_O32_getdents (__NR_O32_Linux + 141)
-+#define __NR_O32__newselect (__NR_O32_Linux + 142)
-+#define __NR_O32_flock (__NR_O32_Linux + 143)
-+#define __NR_O32_msync (__NR_O32_Linux + 144)
-+#define __NR_O32_readv (__NR_O32_Linux + 145)
-+#define __NR_O32_writev (__NR_O32_Linux + 146)
-+#define __NR_O32_cacheflush (__NR_O32_Linux + 147)
-+#define __NR_O32_cachectl (__NR_O32_Linux + 148)
-+#define __NR_O32_sysmips (__NR_O32_Linux + 149)
-+#define __NR_O32_unused150 (__NR_O32_Linux + 150)
-+#define __NR_O32_getsid (__NR_O32_Linux + 151)
-+#define __NR_O32_fdatasync (__NR_O32_Linux + 152)
-+#define __NR_O32__sysctl (__NR_O32_Linux + 153)
-+#define __NR_O32_mlock (__NR_O32_Linux + 154)
-+#define __NR_O32_munlock (__NR_O32_Linux + 155)
-+#define __NR_O32_mlockall (__NR_O32_Linux + 156)
-+#define __NR_O32_munlockall (__NR_O32_Linux + 157)
-+#define __NR_O32_sched_setparam (__NR_O32_Linux + 158)
-+#define __NR_O32_sched_getparam (__NR_O32_Linux + 159)
-+#define __NR_O32_sched_setscheduler (__NR_O32_Linux + 160)
-+#define __NR_O32_sched_getscheduler (__NR_O32_Linux + 161)
-+#define __NR_O32_sched_yield (__NR_O32_Linux + 162)
-+#define __NR_O32_sched_get_priority_max (__NR_O32_Linux + 163)
-+#define __NR_O32_sched_get_priority_min (__NR_O32_Linux + 164)
-+#define __NR_O32_sched_rr_get_interval (__NR_O32_Linux + 165)
-+#define __NR_O32_nanosleep (__NR_O32_Linux + 166)
-+#define __NR_O32_mremap (__NR_O32_Linux + 167)
-+#define __NR_O32_accept (__NR_O32_Linux + 168)
-+#define __NR_O32_bind (__NR_O32_Linux + 169)
-+#define __NR_O32_connect (__NR_O32_Linux + 170)
-+#define __NR_O32_getpeername (__NR_O32_Linux + 171)
-+#define __NR_O32_getsockname (__NR_O32_Linux + 172)
-+#define __NR_O32_getsockopt (__NR_O32_Linux + 173)
-+#define __NR_O32_listen (__NR_O32_Linux + 174)
-+#define __NR_O32_recv (__NR_O32_Linux + 175)
-+#define __NR_O32_recvfrom (__NR_O32_Linux + 176)
-+#define __NR_O32_recvmsg (__NR_O32_Linux + 177)
-+#define __NR_O32_send (__NR_O32_Linux + 178)
-+#define __NR_O32_sendmsg (__NR_O32_Linux + 179)
-+#define __NR_O32_sendto (__NR_O32_Linux + 180)
-+#define __NR_O32_setsockopt (__NR_O32_Linux + 181)
-+#define __NR_O32_shutdown (__NR_O32_Linux + 182)
-+#define __NR_O32_socket (__NR_O32_Linux + 183)
-+#define __NR_O32_socketpair (__NR_O32_Linux + 184)
-+#define __NR_O32_setresuid (__NR_O32_Linux + 185)
-+#define __NR_O32_getresuid (__NR_O32_Linux + 186)
-+#define __NR_O32_query_module (__NR_O32_Linux + 187)
-+#define __NR_O32_poll (__NR_O32_Linux + 188)
-+#define __NR_O32_nfsservctl (__NR_O32_Linux + 189)
-+#define __NR_O32_setresgid (__NR_O32_Linux + 190)
-+#define __NR_O32_getresgid (__NR_O32_Linux + 191)
-+#define __NR_O32_prctl (__NR_O32_Linux + 192)
-+#define __NR_O32_rt_sigreturn (__NR_O32_Linux + 193)
-+#define __NR_O32_rt_sigaction (__NR_O32_Linux + 194)
-+#define __NR_O32_rt_sigprocmask (__NR_O32_Linux + 195)
-+#define __NR_O32_rt_sigpending (__NR_O32_Linux + 196)
-+#define __NR_O32_rt_sigtimedwait (__NR_O32_Linux + 197)
-+#define __NR_O32_rt_sigqueueinfo (__NR_O32_Linux + 198)
-+#define __NR_O32_rt_sigsuspend (__NR_O32_Linux + 199)
-+#define __NR_O32_pread (__NR_O32_Linux + 200)
-+#define __NR_O32_pwrite (__NR_O32_Linux + 201)
-+#define __NR_O32_chown (__NR_O32_Linux + 202)
-+#define __NR_O32_getcwd (__NR_O32_Linux + 203)
-+#define __NR_O32_capget (__NR_O32_Linux + 204)
-+#define __NR_O32_capset (__NR_O32_Linux + 205)
-+#define __NR_O32_sigaltstack (__NR_O32_Linux + 206)
-+#define __NR_O32_sendfile (__NR_O32_Linux + 207)
-+#define __NR_O32_getpmsg (__NR_O32_Linux + 208)
-+#define __NR_O32_putpmsg (__NR_O32_Linux + 209)
-+#define __NR_O32_mmap2 (__NR_O32_Linux + 210)
-+#define __NR_O32_truncate64 (__NR_O32_Linux + 211)
-+#define __NR_O32_ftruncate64 (__NR_O32_Linux + 212)
-+#define __NR_O32_stat64 (__NR_O32_Linux + 213)
-+#define __NR_O32_lstat64 (__NR_O32_Linux + 214)
-+#define __NR_O32_fstat64 (__NR_O32_Linux + 215)
-+#define __NR_O32_root_pivot (__NR_O32_Linux + 216)
-+#define __NR_O32_mincore (__NR_O32_Linux + 217)
-+#define __NR_O32_madvise (__NR_O32_Linux + 218)
-+#define __NR_O32_getdents64 (__NR_O32_Linux + 219)
-+#define __NR_O32_fcntl64 (__NR_O32_Linux + 220)
-+#define __NR_O32_security (__NR_O32_Linux + 221)
-+#define __NR_O32_gettid (__NR_O32_Linux + 222)
-+#define __NR_O32_readahead (__NR_O32_Linux + 223)
-+#define __NR_O32_setxattr (__NR_O32_Linux + 224)
-+#define __NR_O32_lsetxattr (__NR_O32_Linux + 225)
-+#define __NR_O32_fsetxattr (__NR_O32_Linux + 226)
-+#define __NR_O32_getxattr (__NR_O32_Linux + 227)
-+#define __NR_O32_lgetxattr (__NR_O32_Linux + 228)
-+#define __NR_O32_fgetxattr (__NR_O32_Linux + 229)
-+#define __NR_O32_listxattr (__NR_O32_Linux + 230)
-+#define __NR_O32_llistxattr (__NR_O32_Linux + 231)
-+#define __NR_O32_flistxattr (__NR_O32_Linux + 232)
-+#define __NR_O32_removexattr (__NR_O32_Linux + 233)
-+#define __NR_O32_lremovexattr (__NR_O32_Linux + 234)
-+#define __NR_O32_fremovexattr (__NR_O32_Linux + 235)
-+#define __NR_O32_tkill (__NR_O32_Linux + 236)
-+#define __NR_O32_sendfile64 (__NR_O32_Linux + 237)
-+#define __NR_O32_futex (__NR_O32_Linux + 238)
-+#define __NR_O32_sched_setaffinity (__NR_O32_Linux + 239)
-+#define __NR_O32_sched_getaffinity (__NR_O32_Linux + 240)
-
- /*
- * Offset of the last Linux o32 flavoured syscall
- */
--#define __NR_Linux32_syscalls 240
-+#define __NR_O32_Linux_syscalls 240
-+
-
- /*
- * Linux 64-bit syscalls are in the range from 5000 to 5999.
- */
- #define __NR_Linux 5000
--#define __NR_syscall (__NR_Linux + 0)
--#define __NR_exit (__NR_Linux + 1)
--#define __NR_fork (__NR_Linux + 2)
--#define __NR_read (__NR_Linux + 3)
--#define __NR_write (__NR_Linux + 4)
--#define __NR_open (__NR_Linux + 5)
--#define __NR_close (__NR_Linux + 6)
--#define __NR_waitpid (__NR_Linux + 7)
--#define __NR_creat (__NR_Linux + 8)
--#define __NR_link (__NR_Linux + 9)
--#define __NR_unlink (__NR_Linux + 10)
--#define __NR_execve (__NR_Linux + 11)
--#define __NR_chdir (__NR_Linux + 12)
--#define __NR_time (__NR_Linux + 13)
--#define __NR_mknod (__NR_Linux + 14)
--#define __NR_chmod (__NR_Linux + 15)
--#define __NR_lchown (__NR_Linux + 16)
--#define __NR_break (__NR_Linux + 17)
--#define __NR_oldstat (__NR_Linux + 18)
--#define __NR_lseek (__NR_Linux + 19)
--#define __NR_getpid (__NR_Linux + 20)
--#define __NR_mount (__NR_Linux + 21)
--#define __NR_umount (__NR_Linux + 22)
--#define __NR_setuid (__NR_Linux + 23)
--#define __NR_getuid (__NR_Linux + 24)
--#define __NR_stime (__NR_Linux + 25)
--#define __NR_ptrace (__NR_Linux + 26)
--#define __NR_alarm (__NR_Linux + 27)
--#define __NR_oldfstat (__NR_Linux + 28)
--#define __NR_pause (__NR_Linux + 29)
--#define __NR_utime (__NR_Linux + 30)
--#define __NR_stty (__NR_Linux + 31)
--#define __NR_gtty (__NR_Linux + 32)
--#define __NR_access (__NR_Linux + 33)
--#define __NR_nice (__NR_Linux + 34)
--#define __NR_ftime (__NR_Linux + 35)
--#define __NR_sync (__NR_Linux + 36)
--#define __NR_kill (__NR_Linux + 37)
--#define __NR_rename (__NR_Linux + 38)
--#define __NR_mkdir (__NR_Linux + 39)
--#define __NR_rmdir (__NR_Linux + 40)
--#define __NR_dup (__NR_Linux + 41)
--#define __NR_pipe (__NR_Linux + 42)
--#define __NR_times (__NR_Linux + 43)
--#define __NR_prof (__NR_Linux + 44)
--#define __NR_brk (__NR_Linux + 45)
--#define __NR_setgid (__NR_Linux + 46)
--#define __NR_getgid (__NR_Linux + 47)
--#define __NR_signal (__NR_Linux + 48)
--#define __NR_geteuid (__NR_Linux + 49)
--#define __NR_getegid (__NR_Linux + 50)
--#define __NR_acct (__NR_Linux + 51)
--#define __NR_umount2 (__NR_Linux + 52)
--#define __NR_lock (__NR_Linux + 53)
--#define __NR_ioctl (__NR_Linux + 54)
--#define __NR_fcntl (__NR_Linux + 55)
--#define __NR_mpx (__NR_Linux + 56)
--#define __NR_setpgid (__NR_Linux + 57)
--#define __NR_ulimit (__NR_Linux + 58)
--#define __NR_unused59 (__NR_Linux + 59)
--#define __NR_umask (__NR_Linux + 60)
--#define __NR_chroot (__NR_Linux + 61)
--#define __NR_ustat (__NR_Linux + 62)
--#define __NR_dup2 (__NR_Linux + 63)
--#define __NR_getppid (__NR_Linux + 64)
--#define __NR_getpgrp (__NR_Linux + 65)
--#define __NR_setsid (__NR_Linux + 66)
--#define __NR_sigaction (__NR_Linux + 67)
--#define __NR_sgetmask (__NR_Linux + 68)
--#define __NR_ssetmask (__NR_Linux + 69)
--#define __NR_setreuid (__NR_Linux + 70)
--#define __NR_setregid (__NR_Linux + 71)
--#define __NR_sigsuspend (__NR_Linux + 72)
--#define __NR_sigpending (__NR_Linux + 73)
--#define __NR_sethostname (__NR_Linux + 74)
--#define __NR_setrlimit (__NR_Linux + 75)
--#define __NR_getrlimit (__NR_Linux + 76)
--#define __NR_getrusage (__NR_Linux + 77)
--#define __NR_gettimeofday (__NR_Linux + 78)
--#define __NR_settimeofday (__NR_Linux + 79)
--#define __NR_getgroups (__NR_Linux + 80)
--#define __NR_setgroups (__NR_Linux + 81)
--#define __NR_reserved82 (__NR_Linux + 82)
--#define __NR_symlink (__NR_Linux + 83)
--#define __NR_oldlstat (__NR_Linux + 84)
--#define __NR_readlink (__NR_Linux + 85)
--#define __NR_uselib (__NR_Linux + 86)
--#define __NR_swapon (__NR_Linux + 87)
--#define __NR_reboot (__NR_Linux + 88)
--#define __NR_readdir (__NR_Linux + 89)
--#define __NR_mmap (__NR_Linux + 90)
--#define __NR_munmap (__NR_Linux + 91)
--#define __NR_truncate (__NR_Linux + 92)
--#define __NR_ftruncate (__NR_Linux + 93)
--#define __NR_fchmod (__NR_Linux + 94)
--#define __NR_fchown (__NR_Linux + 95)
--#define __NR_getpriority (__NR_Linux + 96)
--#define __NR_setpriority (__NR_Linux + 97)
--#define __NR_profil (__NR_Linux + 98)
--#define __NR_statfs (__NR_Linux + 99)
--#define __NR_fstatfs (__NR_Linux + 100)
--#define __NR_ioperm (__NR_Linux + 101)
--#define __NR_socketcall (__NR_Linux + 102)
--#define __NR_syslog (__NR_Linux + 103)
--#define __NR_setitimer (__NR_Linux + 104)
--#define __NR_getitimer (__NR_Linux + 105)
--#define __NR_stat (__NR_Linux + 106)
--#define __NR_lstat (__NR_Linux + 107)
--#define __NR_fstat (__NR_Linux + 108)
--#define __NR_unused109 (__NR_Linux + 109)
--#define __NR_iopl (__NR_Linux + 110)
--#define __NR_vhangup (__NR_Linux + 111)
--#define __NR_idle (__NR_Linux + 112)
--#define __NR_vm86 (__NR_Linux + 113)
--#define __NR_wait4 (__NR_Linux + 114)
--#define __NR_swapoff (__NR_Linux + 115)
--#define __NR_sysinfo (__NR_Linux + 116)
--#define __NR_ipc (__NR_Linux + 117)
--#define __NR_fsync (__NR_Linux + 118)
--#define __NR_sigreturn (__NR_Linux + 119)
--#define __NR_clone (__NR_Linux + 120)
--#define __NR_setdomainname (__NR_Linux + 121)
--#define __NR_uname (__NR_Linux + 122)
--#define __NR_modify_ldt (__NR_Linux + 123)
--#define __NR_adjtimex (__NR_Linux + 124)
--#define __NR_mprotect (__NR_Linux + 125)
--#define __NR_sigprocmask (__NR_Linux + 126)
--#define __NR_create_module (__NR_Linux + 127)
--#define __NR_init_module (__NR_Linux + 128)
--#define __NR_delete_module (__NR_Linux + 129)
--#define __NR_get_kernel_syms (__NR_Linux + 130)
--#define __NR_quotactl (__NR_Linux + 131)
--#define __NR_getpgid (__NR_Linux + 132)
--#define __NR_fchdir (__NR_Linux + 133)
--#define __NR_bdflush (__NR_Linux + 134)
--#define __NR_sysfs (__NR_Linux + 135)
--#define __NR_personality (__NR_Linux + 136)
--#define __NR_afs_syscall (__NR_Linux + 137) /* Syscall for Andrew File System */
--#define __NR_setfsuid (__NR_Linux + 138)
--#define __NR_setfsgid (__NR_Linux + 139)
--#define __NR__llseek (__NR_Linux + 140)
--#define __NR_getdents (__NR_Linux + 141)
--#define __NR__newselect (__NR_Linux + 142)
--#define __NR_flock (__NR_Linux + 143)
--#define __NR_msync (__NR_Linux + 144)
--#define __NR_readv (__NR_Linux + 145)
--#define __NR_writev (__NR_Linux + 146)
--#define __NR_cacheflush (__NR_Linux + 147)
--#define __NR_cachectl (__NR_Linux + 148)
--#define __NR_sysmips (__NR_Linux + 149)
--#define __NR_unused150 (__NR_Linux + 150)
--#define __NR_getsid (__NR_Linux + 151)
--#define __NR_fdatasync (__NR_Linux + 152)
--#define __NR__sysctl (__NR_Linux + 153)
--#define __NR_mlock (__NR_Linux + 154)
--#define __NR_munlock (__NR_Linux + 155)
--#define __NR_mlockall (__NR_Linux + 156)
--#define __NR_munlockall (__NR_Linux + 157)
--#define __NR_sched_setparam (__NR_Linux + 158)
--#define __NR_sched_getparam (__NR_Linux + 159)
--#define __NR_sched_setscheduler (__NR_Linux + 160)
--#define __NR_sched_getscheduler (__NR_Linux + 161)
--#define __NR_sched_yield (__NR_Linux + 162)
--#define __NR_sched_get_priority_max (__NR_Linux + 163)
--#define __NR_sched_get_priority_min (__NR_Linux + 164)
--#define __NR_sched_rr_get_interval (__NR_Linux + 165)
--#define __NR_nanosleep (__NR_Linux + 166)
--#define __NR_mremap (__NR_Linux + 167)
--#define __NR_accept (__NR_Linux + 168)
--#define __NR_bind (__NR_Linux + 169)
--#define __NR_connect (__NR_Linux + 170)
--#define __NR_getpeername (__NR_Linux + 171)
--#define __NR_getsockname (__NR_Linux + 172)
--#define __NR_getsockopt (__NR_Linux + 173)
--#define __NR_listen (__NR_Linux + 174)
--#define __NR_recv (__NR_Linux + 175)
--#define __NR_recvfrom (__NR_Linux + 176)
--#define __NR_recvmsg (__NR_Linux + 177)
--#define __NR_send (__NR_Linux + 178)
--#define __NR_sendmsg (__NR_Linux + 179)
--#define __NR_sendto (__NR_Linux + 180)
--#define __NR_setsockopt (__NR_Linux + 181)
--#define __NR_shutdown (__NR_Linux + 182)
--#define __NR_socket (__NR_Linux + 183)
--#define __NR_socketpair (__NR_Linux + 184)
--#define __NR_setresuid (__NR_Linux + 185)
--#define __NR_getresuid (__NR_Linux + 186)
--#define __NR_query_module (__NR_Linux + 187)
--#define __NR_poll (__NR_Linux + 188)
--#define __NR_nfsservctl (__NR_Linux + 189)
--#define __NR_setresgid (__NR_Linux + 190)
--#define __NR_getresgid (__NR_Linux + 191)
--#define __NR_prctl (__NR_Linux + 192)
--#define __NR_rt_sigreturn (__NR_Linux + 193)
--#define __NR_rt_sigaction (__NR_Linux + 194)
--#define __NR_rt_sigprocmask (__NR_Linux + 195)
--#define __NR_rt_sigpending (__NR_Linux + 196)
--#define __NR_rt_sigtimedwait (__NR_Linux + 197)
--#define __NR_rt_sigqueueinfo (__NR_Linux + 198)
--#define __NR_rt_sigsuspend (__NR_Linux + 199)
--#define __NR_pread (__NR_Linux + 200)
--#define __NR_pwrite (__NR_Linux + 201)
--#define __NR_chown (__NR_Linux + 202)
--#define __NR_getcwd (__NR_Linux + 203)
--#define __NR_capget (__NR_Linux + 204)
--#define __NR_capset (__NR_Linux + 205)
--#define __NR_sigaltstack (__NR_Linux + 206)
--#define __NR_sendfile (__NR_Linux + 207)
--#define __NR_getpmsg (__NR_Linux + 208)
--#define __NR_putpmsg (__NR_Linux + 209)
--#define __NR_root_pivot (__NR_Linux + 210)
--#define __NR_mincore (__NR_Linux + 211)
--#define __NR_madvise (__NR_Linux + 212)
--#define __NR_getdents64 (__NR_Linux + 213)
--#define __NR__security (__NR_Linux + 214)
--#define __NR__gettid (__NR_Linux + 215)
--#define __NR__readahead (__NR_Linux + 216)
--#define __NR_setxattr (__NR_Linux + 217)
--#define __NR_lsetxattr (__NR_Linux + 218)
--#define __NR_fsetxattr (__NR_Linux + 219)
--#define __NR_getxattr (__NR_Linux + 220)
--#define __NR_lgetxattr (__NR_Linux + 221)
--#define __NR_fgetxattr (__NR_Linux + 222)
--#define __NR_listxattr (__NR_Linux + 223)
--#define __NR_llistxattr (__NR_Linux + 224)
--#define __NR_flistxattr (__NR_Linux + 225)
--#define __NR_removexattr (__NR_Linux + 226)
--#define __NR_lremovexattr (__NR_Linux + 227)
--#define __NR_fremovexattr (__NR_Linux + 228)
--#define __NR_tkill (__NR_Linux + 229)
--#define __NR_sendfile64 (__NR_Linux + 230)
--#define __NR_futex (__NR_Linux + 231)
--#define __NR_sched_setaffinity (__NR_Linux + 232)
--#define __NR_sched_getaffinity (__NR_Linux + 233)
-+#define __NR_read (__NR_Linux + 0)
-+#define __NR_write (__NR_Linux + 1)
-+#define __NR_open (__NR_Linux + 2)
-+#define __NR_close (__NR_Linux + 3)
-+#define __NR_stat (__NR_Linux + 4)
-+#define __NR_fstat (__NR_Linux + 5)
-+#define __NR_lstat (__NR_Linux + 6)
-+#define __NR_poll (__NR_Linux + 7)
-+#define __NR_lseek (__NR_Linux + 8)
-+#define __NR_mmap (__NR_Linux + 9)
-+#define __NR_mprotect (__NR_Linux + 10)
-+#define __NR_munmap (__NR_Linux + 11)
-+#define __NR_brk (__NR_Linux + 12)
-+#define __NR_rt_sigaction (__NR_Linux + 13)
-+#define __NR_rt_sigprocmask (__NR_Linux + 14)
-+#define __NR_ioctl (__NR_Linux + 15)
-+#define __NR_pread (__NR_Linux + 16)
-+#define __NR_pwrite (__NR_Linux + 17)
-+#define __NR_readv (__NR_Linux + 18)
-+#define __NR_writev (__NR_Linux + 19)
-+#define __NR_access (__NR_Linux + 20)
-+#define __NR_pipe (__NR_Linux + 21)
-+#define __NR__newselect (__NR_Linux + 22)
-+#define __NR_sched_yield (__NR_Linux + 23)
-+#define __NR_mremap (__NR_Linux + 24)
-+#define __NR_msync (__NR_Linux + 25)
-+#define __NR_mincore (__NR_Linux + 26)
-+#define __NR_madvise (__NR_Linux + 27)
-+#define __NR_shmget (__NR_Linux + 28)
-+#define __NR_shmat (__NR_Linux + 29)
-+#define __NR_shmctl (__NR_Linux + 30)
-+#define __NR_dup (__NR_Linux + 31)
-+#define __NR_dup2 (__NR_Linux + 32)
-+#define __NR_pause (__NR_Linux + 33)
-+#define __NR_nanosleep (__NR_Linux + 34)
-+#define __NR_getitimer (__NR_Linux + 35)
-+#define __NR_setitimer (__NR_Linux + 36)
-+#define __NR_alarm (__NR_Linux + 37)
-+#define __NR_getpid (__NR_Linux + 38)
-+#define __NR_sendfile (__NR_Linux + 39)
-+#define __NR_socket (__NR_Linux + 40)
-+#define __NR_connect (__NR_Linux + 41)
-+#define __NR_accept (__NR_Linux + 42)
-+#define __NR_sendto (__NR_Linux + 43)
-+#define __NR_recvfrom (__NR_Linux + 44)
-+#define __NR_sendmsg (__NR_Linux + 45)
-+#define __NR_recvmsg (__NR_Linux + 46)
-+#define __NR_shutdown (__NR_Linux + 47)
-+#define __NR_bind (__NR_Linux + 48)
-+#define __NR_listen (__NR_Linux + 49)
-+#define __NR_getsockname (__NR_Linux + 50)
-+#define __NR_getpeername (__NR_Linux + 51)
-+#define __NR_socketpair (__NR_Linux + 52)
-+#define __NR_setsockopt (__NR_Linux + 53)
-+#define __NR_getsockopt (__NR_Linux + 54)
-+#define __NR_clone (__NR_Linux + 55)
-+#define __NR_fork (__NR_Linux + 56)
-+#define __NR_execve (__NR_Linux + 57)
-+#define __NR_exit (__NR_Linux + 58)
-+#define __NR_wait4 (__NR_Linux + 59)
-+#define __NR_kill (__NR_Linux + 60)
-+#define __NR_uname (__NR_Linux + 61)
-+#define __NR_semget (__NR_Linux + 62)
-+#define __NR_semop (__NR_Linux + 63)
-+#define __NR_semctl (__NR_Linux + 64)
-+#define __NR_shmdt (__NR_Linux + 65)
-+#define __NR_msgget (__NR_Linux + 66)
-+#define __NR_msgsnd (__NR_Linux + 67)
-+#define __NR_msgrcv (__NR_Linux + 68)
-+#define __NR_msgctl (__NR_Linux + 69)
-+#define __NR_fcntl (__NR_Linux + 70)
-+#define __NR_flock (__NR_Linux + 71)
-+#define __NR_fsync (__NR_Linux + 72)
-+#define __NR_fdatasync (__NR_Linux + 73)
-+#define __NR_truncate (__NR_Linux + 74)
-+#define __NR_ftruncate (__NR_Linux + 75)
-+#define __NR_getdents (__NR_Linux + 76)
-+#define __NR_getcwd (__NR_Linux + 77)
-+#define __NR_chdir (__NR_Linux + 78)
-+#define __NR_fchdir (__NR_Linux + 79)
-+#define __NR_rename (__NR_Linux + 80)
-+#define __NR_mkdir (__NR_Linux + 81)
-+#define __NR_rmdir (__NR_Linux + 82)
-+#define __NR_creat (__NR_Linux + 83)
-+#define __NR_link (__NR_Linux + 84)
-+#define __NR_unlink (__NR_Linux + 85)
-+#define __NR_symlink (__NR_Linux + 86)
-+#define __NR_readlink (__NR_Linux + 87)
-+#define __NR_chmod (__NR_Linux + 88)
-+#define __NR_fchmod (__NR_Linux + 89)
-+#define __NR_chown (__NR_Linux + 90)
-+#define __NR_fchown (__NR_Linux + 91)
-+#define __NR_lchown (__NR_Linux + 92)
-+#define __NR_umask (__NR_Linux + 93)
-+#define __NR_gettimeofday (__NR_Linux + 94)
-+#define __NR_getrlimit (__NR_Linux + 95)
-+#define __NR_getrusage (__NR_Linux + 96)
-+#define __NR_sysinfo (__NR_Linux + 97)
-+#define __NR_times (__NR_Linux + 98)
-+#define __NR_ptrace (__NR_Linux + 99)
-+#define __NR_getuid (__NR_Linux + 100)
-+#define __NR_syslog (__NR_Linux + 101)
-+#define __NR_getgid (__NR_Linux + 102)
-+#define __NR_setuid (__NR_Linux + 103)
-+#define __NR_setgid (__NR_Linux + 104)
-+#define __NR_geteuid (__NR_Linux + 105)
-+#define __NR_getegid (__NR_Linux + 106)
-+#define __NR_setpgid (__NR_Linux + 107)
-+#define __NR_getppid (__NR_Linux + 108)
-+#define __NR_getpgrp (__NR_Linux + 109)
-+#define __NR_setsid (__NR_Linux + 110)
-+#define __NR_setreuid (__NR_Linux + 111)
-+#define __NR_setregid (__NR_Linux + 112)
-+#define __NR_getgroups (__NR_Linux + 113)
-+#define __NR_setgroups (__NR_Linux + 114)
-+#define __NR_setresuid (__NR_Linux + 115)
-+#define __NR_getresuid (__NR_Linux + 116)
-+#define __NR_setresgid (__NR_Linux + 117)
-+#define __NR_getresgid (__NR_Linux + 118)
-+#define __NR_getpgid (__NR_Linux + 119)
-+#define __NR_setfsuid (__NR_Linux + 120)
-+#define __NR_setfsgid (__NR_Linux + 121)
-+#define __NR_getsid (__NR_Linux + 122)
-+#define __NR_capget (__NR_Linux + 123)
-+#define __NR_capset (__NR_Linux + 124)
-+#define __NR_rt_sigpending (__NR_Linux + 125)
-+#define __NR_rt_sigtimedwait (__NR_Linux + 126)
-+#define __NR_rt_sigqueueinfo (__NR_Linux + 127)
-+#define __NR_rt_sigsuspend (__NR_Linux + 128)
-+#define __NR_sigaltstack (__NR_Linux + 129)
-+#define __NR_utime (__NR_Linux + 130)
-+#define __NR_mknod (__NR_Linux + 131)
-+#define __NR_personality (__NR_Linux + 132)
-+#define __NR_ustat (__NR_Linux + 133)
-+#define __NR_statfs (__NR_Linux + 134)
-+#define __NR_fstatfs (__NR_Linux + 135)
-+#define __NR_sysfs (__NR_Linux + 136)
-+#define __NR_getpriority (__NR_Linux + 137)
-+#define __NR_setpriority (__NR_Linux + 138)
-+#define __NR_sched_setparam (__NR_Linux + 139)
-+#define __NR_sched_getparam (__NR_Linux + 140)
-+#define __NR_sched_setscheduler (__NR_Linux + 141)
-+#define __NR_sched_getscheduler (__NR_Linux + 142)
-+#define __NR_sched_get_priority_max (__NR_Linux + 143)
-+#define __NR_sched_get_priority_min (__NR_Linux + 144)
-+#define __NR_sched_rr_get_interval (__NR_Linux + 145)
-+#define __NR_mlock (__NR_Linux + 146)
-+#define __NR_munlock (__NR_Linux + 147)
-+#define __NR_mlockall (__NR_Linux + 148)
-+#define __NR_munlockall (__NR_Linux + 149)
-+#define __NR_vhangup (__NR_Linux + 150)
-+#define __NR_pivot_root (__NR_Linux + 151)
-+#define __NR__sysctl (__NR_Linux + 152)
-+#define __NR_prctl (__NR_Linux + 153)
-+#define __NR_adjtimex (__NR_Linux + 154)
-+#define __NR_setrlimit (__NR_Linux + 155)
-+#define __NR_chroot (__NR_Linux + 156)
-+#define __NR_sync (__NR_Linux + 157)
-+#define __NR_acct (__NR_Linux + 158)
-+#define __NR_settimeofday (__NR_Linux + 159)
-+#define __NR_mount (__NR_Linux + 160)
-+#define __NR_umount2 (__NR_Linux + 161)
-+#define __NR_swapon (__NR_Linux + 162)
-+#define __NR_swapoff (__NR_Linux + 163)
-+#define __NR_reboot (__NR_Linux + 164)
-+#define __NR_sethostname (__NR_Linux + 165)
-+#define __NR_setdomainname (__NR_Linux + 166)
-+#define __NR_create_module (__NR_Linux + 167)
-+#define __NR_init_module (__NR_Linux + 168)
-+#define __NR_delete_module (__NR_Linux + 169)
-+#define __NR_get_kernel_syms (__NR_Linux + 170)
-+#define __NR_query_module (__NR_Linux + 171)
-+#define __NR_quotactl (__NR_Linux + 172)
-+#define __NR_nfsservctl (__NR_Linux + 173)
-+#define __NR_getpmsg (__NR_Linux + 174)
-+#define __NR_putpmsg (__NR_Linux + 175)
-+#define __NR_afs_syscall (__NR_Linux + 176)
-+#define __NR_security (__NR_Linux + 177)
-+#define __NR_gettid (__NR_Linux + 178)
-+#define __NR_readahead (__NR_Linux + 179)
-+#define __NR_setxattr (__NR_Linux + 180)
-+#define __NR_lsetxattr (__NR_Linux + 181)
-+#define __NR_fsetxattr (__NR_Linux + 182)
-+#define __NR_getxattr (__NR_Linux + 183)
-+#define __NR_lgetxattr (__NR_Linux + 184)
-+#define __NR_fgetxattr (__NR_Linux + 185)
-+#define __NR_listxattr (__NR_Linux + 186)
-+#define __NR_llistxattr (__NR_Linux + 187)
-+#define __NR_flistxattr (__NR_Linux + 188)
-+#define __NR_removexattr (__NR_Linux + 189)
-+#define __NR_lremovexattr (__NR_Linux + 190)
-+#define __NR_fremovexattr (__NR_Linux + 191)
-+#define __NR_tkill (__NR_Linux + 192)
-+#define __NR_time (__NR_Linux + 193)
-+#define __NR_futex (__NR_Linux + 194)
-+#define __NR_sched_setaffinity (__NR_Linux + 195)
-+#define __NR_sched_getaffinity (__NR_Linux + 196)
-+#define __NR_cacheflush (__NR_Linux + 197)
-+#define __NR_cachectl (__NR_Linux + 198)
-+#define __NR_sysmips (__NR_Linux + 199)
-
- /*
- * Offset of the last Linux flavoured syscall
- */
--#define __NR_Linux_syscalls 233
-+#define __NR_Linux_syscalls 199
-+
-+/*
-+ * Linux N32 syscalls are in the range from 6000 to 6999.
-+ */
-+#define __NR_N32_Linux 6000
-+#define __NR_N32_read (__NR_N32_Linux + 0)
-+#define __NR_N32_write (__NR_N32_Linux + 1)
-+#define __NR_N32_open (__NR_N32_Linux + 2)
-+#define __NR_N32_close (__NR_N32_Linux + 3)
-+#define __NR_N32_stat (__NR_N32_Linux + 4)
-+#define __NR_N32_fstat (__NR_N32_Linux + 5)
-+#define __NR_N32_lstat (__NR_N32_Linux + 6)
-+#define __NR_N32_poll (__NR_N32_Linux + 7)
-+#define __NR_N32_lseek (__NR_N32_Linux + 8)
-+#define __NR_N32_mmap (__NR_N32_Linux + 9)
-+#define __NR_N32_mprotect (__NR_N32_Linux + 10)
-+#define __NR_N32_munmap (__NR_N32_Linux + 11)
-+#define __NR_N32_brk (__NR_N32_Linux + 12)
-+#define __NR_N32_rt_sigaction (__NR_N32_Linux + 13)
-+#define __NR_N32_rt_sigprocmask (__NR_N32_Linux + 14)
-+#define __NR_N32_ioctl (__NR_N32_Linux + 15)
-+#define __NR_N32_pread (__NR_N32_Linux + 16)
-+#define __NR_N32_pwrite (__NR_N32_Linux + 17)
-+#define __NR_N32_readv (__NR_N32_Linux + 18)
-+#define __NR_N32_writev (__NR_N32_Linux + 19)
-+#define __NR_N32_access (__NR_N32_Linux + 20)
-+#define __NR_N32_pipe (__NR_N32_Linux + 21)
-+#define __NR_N32__newselect (__NR_N32_Linux + 22)
-+#define __NR_N32_sched_yield (__NR_N32_Linux + 23)
-+#define __NR_N32_mremap (__NR_N32_Linux + 24)
-+#define __NR_N32_msync (__NR_N32_Linux + 25)
-+#define __NR_N32_mincore (__NR_N32_Linux + 26)
-+#define __NR_N32_madvise (__NR_N32_Linux + 27)
-+#define __NR_N32_shmget (__NR_N32_Linux + 28)
-+#define __NR_N32_shmat (__NR_N32_Linux + 29)
-+#define __NR_N32_shmctl (__NR_N32_Linux + 30)
-+#define __NR_N32_dup (__NR_N32_Linux + 31)
-+#define __NR_N32_dup2 (__NR_N32_Linux + 32)
-+#define __NR_N32_pause (__NR_N32_Linux + 33)
-+#define __NR_N32_nanosleep (__NR_N32_Linux + 34)
-+#define __NR_N32_getitimer (__NR_N32_Linux + 35)
-+#define __NR_N32_setitimer (__NR_N32_Linux + 36)
-+#define __NR_N32_alarm (__NR_N32_Linux + 37)
-+#define __NR_N32_getpid (__NR_N32_Linux + 38)
-+#define __NR_N32_sendfile (__NR_N32_Linux + 39)
-+#define __NR_N32_socket (__NR_N32_Linux + 40)
-+#define __NR_N32_connect (__NR_N32_Linux + 41)
-+#define __NR_N32_accept (__NR_N32_Linux + 42)
-+#define __NR_N32_sendto (__NR_N32_Linux + 43)
-+#define __NR_N32_recvfrom (__NR_N32_Linux + 44)
-+#define __NR_N32_sendmsg (__NR_N32_Linux + 45)
-+#define __NR_N32_recvmsg (__NR_N32_Linux + 46)
-+#define __NR_N32_shutdown (__NR_N32_Linux + 47)
-+#define __NR_N32_bind (__NR_N32_Linux + 48)
-+#define __NR_N32_listen (__NR_N32_Linux + 49)
-+#define __NR_N32_getsockname (__NR_N32_Linux + 50)
-+#define __NR_N32_getpeername (__NR_N32_Linux + 51)
-+#define __NR_N32_socketpair (__NR_N32_Linux + 52)
-+#define __NR_N32_setsockopt (__NR_N32_Linux + 53)
-+#define __NR_N32_getsockopt (__NR_N32_Linux + 54)
-+#define __NR_N32_clone (__NR_N32_Linux + 55)
-+#define __NR_N32_fork (__NR_N32_Linux + 56)
-+#define __NR_N32_execve (__NR_N32_Linux + 57)
-+#define __NR_N32_exit (__NR_N32_Linux + 58)
-+#define __NR_N32_wait4 (__NR_N32_Linux + 59)
-+#define __NR_N32_kill (__NR_N32_Linux + 60)
-+#define __NR_N32_uname (__NR_N32_Linux + 61)
-+#define __NR_N32_semget (__NR_N32_Linux + 62)
-+#define __NR_N32_semop (__NR_N32_Linux + 63)
-+#define __NR_N32_semctl (__NR_N32_Linux + 64)
-+#define __NR_N32_shmdt (__NR_N32_Linux + 65)
-+#define __NR_N32_msgget (__NR_N32_Linux + 66)
-+#define __NR_N32_msgsnd (__NR_N32_Linux + 67)
-+#define __NR_N32_msgrcv (__NR_N32_Linux + 68)
-+#define __NR_N32_msgctl (__NR_N32_Linux + 69)
-+#define __NR_N32_fcntl (__NR_N32_Linux + 70)
-+#define __NR_N32_flock (__NR_N32_Linux + 71)
-+#define __NR_N32_fsync (__NR_N32_Linux + 72)
-+#define __NR_N32_fdatasync (__NR_N32_Linux + 73)
-+#define __NR_N32_truncate (__NR_N32_Linux + 74)
-+#define __NR_N32_ftruncate (__NR_N32_Linux + 75)
-+#define __NR_N32_getdents (__NR_N32_Linux + 76)
-+#define __NR_N32_getcwd (__NR_N32_Linux + 77)
-+#define __NR_N32_chdir (__NR_N32_Linux + 78)
-+#define __NR_N32_fchdir (__NR_N32_Linux + 79)
-+#define __NR_N32_rename (__NR_N32_Linux + 80)
-+#define __NR_N32_mkdir (__NR_N32_Linux + 81)
-+#define __NR_N32_rmdir (__NR_N32_Linux + 82)
-+#define __NR_N32_creat (__NR_N32_Linux + 83)
-+#define __NR_N32_link (__NR_N32_Linux + 84)
-+#define __NR_N32_unlink (__NR_N32_Linux + 85)
-+#define __NR_N32_symlink (__NR_N32_Linux + 86)
-+#define __NR_N32_readlink (__NR_N32_Linux + 87)
-+#define __NR_N32_chmod (__NR_N32_Linux + 88)
-+#define __NR_N32_fchmod (__NR_N32_Linux + 89)
-+#define __NR_N32_chown (__NR_N32_Linux + 90)
-+#define __NR_N32_fchown (__NR_N32_Linux + 91)
-+#define __NR_N32_lchown (__NR_N32_Linux + 92)
-+#define __NR_N32_umask (__NR_N32_Linux + 93)
-+#define __NR_N32_gettimeofday (__NR_N32_Linux + 94)
-+#define __NR_N32_getrlimit (__NR_N32_Linux + 95)
-+#define __NR_N32_getrusage (__NR_N32_Linux + 96)
-+#define __NR_N32_sysinfo (__NR_N32_Linux + 97)
-+#define __NR_N32_times (__NR_N32_Linux + 98)
-+#define __NR_N32_ptrace (__NR_N32_Linux + 99)
-+#define __NR_N32_getuid (__NR_N32_Linux + 100)
-+#define __NR_N32_syslog (__NR_N32_Linux + 101)
-+#define __NR_N32_getgid (__NR_N32_Linux + 102)
-+#define __NR_N32_setuid (__NR_N32_Linux + 103)
-+#define __NR_N32_setgid (__NR_N32_Linux + 104)
-+#define __NR_N32_geteuid (__NR_N32_Linux + 105)
-+#define __NR_N32_getegid (__NR_N32_Linux + 106)
-+#define __NR_N32_setpgid (__NR_N32_Linux + 107)
-+#define __NR_N32_getppid (__NR_N32_Linux + 108)
-+#define __NR_N32_getpgrp (__NR_N32_Linux + 109)
-+#define __NR_N32_setsid (__NR_N32_Linux + 110)
-+#define __NR_N32_setreuid (__NR_N32_Linux + 111)
-+#define __NR_N32_setregid (__NR_N32_Linux + 112)
-+#define __NR_N32_getgroups (__NR_N32_Linux + 113)
-+#define __NR_N32_setgroups (__NR_N32_Linux + 114)
-+#define __NR_N32_setresuid (__NR_N32_Linux + 115)
-+#define __NR_N32_getresuid (__NR_N32_Linux + 116)
-+#define __NR_N32_setresgid (__NR_N32_Linux + 117)
-+#define __NR_N32_getresgid (__NR_N32_Linux + 118)
-+#define __NR_N32_getpgid (__NR_N32_Linux + 119)
-+#define __NR_N32_setfsuid (__NR_N32_Linux + 120)
-+#define __NR_N32_setfsgid (__NR_N32_Linux + 121)
-+#define __NR_N32_getsid (__NR_N32_Linux + 122)
-+#define __NR_N32_capget (__NR_N32_Linux + 123)
-+#define __NR_N32_capset (__NR_N32_Linux + 124)
-+#define __NR_N32_rt_sigpending (__NR_N32_Linux + 125)
-+#define __NR_N32_rt_sigtimedwait (__NR_N32_Linux + 126)
-+#define __NR_N32_rt_sigqueueinfo (__NR_N32_Linux + 127)
-+#define __NR_N32_rt_sigsuspend (__NR_N32_Linux + 128)
-+#define __NR_N32_sigaltstack (__NR_N32_Linux + 129)
-+#define __NR_N32_utime (__NR_N32_Linux + 130)
-+#define __NR_N32_mknod (__NR_N32_Linux + 131)
-+#define __NR_N32_personality (__NR_N32_Linux + 132)
-+#define __NR_N32_ustat (__NR_N32_Linux + 133)
-+#define __NR_N32_statfs (__NR_N32_Linux + 134)
-+#define __NR_N32_fstatfs (__NR_N32_Linux + 135)
-+#define __NR_N32_sysfs (__NR_N32_Linux + 136)
-+#define __NR_N32_getpriority (__NR_N32_Linux + 137)
-+#define __NR_N32_setpriority (__NR_N32_Linux + 138)
-+#define __NR_N32_sched_setparam (__NR_N32_Linux + 139)
-+#define __NR_N32_sched_getparam (__NR_N32_Linux + 140)
-+#define __NR_N32_sched_setscheduler (__NR_N32_Linux + 141)
-+#define __NR_N32_sched_getscheduler (__NR_N32_Linux + 142)
-+#define __NR_N32_sched_get_priority_max (__NR_N32_Linux + 143)
-+#define __NR_N32_sched_get_priority_min (__NR_N32_Linux + 144)
-+#define __NR_N32_sched_rr_get_interval (__NR_N32_Linux + 145)
-+#define __NR_N32_mlock (__NR_N32_Linux + 146)
-+#define __NR_N32_munlock (__NR_N32_Linux + 147)
-+#define __NR_N32_mlockall (__NR_N32_Linux + 148)
-+#define __NR_N32_munlockall (__NR_N32_Linux + 149)
-+#define __NR_N32_vhangup (__NR_N32_Linux + 150)
-+#define __NR_N32_pivot_root (__NR_N32_Linux + 151)
-+#define __NR_N32__sysctl (__NR_N32_Linux + 152)
-+#define __NR_N32_prctl (__NR_N32_Linux + 153)
-+#define __NR_N32_adjtimex (__NR_N32_Linux + 154)
-+#define __NR_N32_setrlimit (__NR_N32_Linux + 155)
-+#define __NR_N32_chroot (__NR_N32_Linux + 156)
-+#define __NR_N32_sync (__NR_N32_Linux + 157)
-+#define __NR_N32_acct (__NR_N32_Linux + 158)
-+#define __NR_N32_settimeofday (__NR_N32_Linux + 159)
-+#define __NR_N32_mount (__NR_N32_Linux + 160)
-+#define __NR_N32_umount2 (__NR_N32_Linux + 161)
-+#define __NR_N32_swapon (__NR_N32_Linux + 162)
-+#define __NR_N32_swapoff (__NR_N32_Linux + 163)
-+#define __NR_N32_reboot (__NR_N32_Linux + 164)
-+#define __NR_N32_sethostname (__NR_N32_Linux + 165)
-+#define __NR_N32_setdomainname (__NR_N32_Linux + 166)
-+#define __NR_N32_create_module (__NR_N32_Linux + 167)
-+#define __NR_N32_init_module (__NR_N32_Linux + 168)
-+#define __NR_N32_delete_module (__NR_N32_Linux + 169)
-+#define __NR_N32_get_kernel_syms (__NR_N32_Linux + 170)
-+#define __NR_N32_query_module (__NR_N32_Linux + 171)
-+#define __NR_N32_quotactl (__NR_N32_Linux + 172)
-+#define __NR_N32_nfsservctl (__NR_N32_Linux + 173)
-+#define __NR_N32_getpmsg (__NR_N32_Linux + 174)
-+#define __NR_N32_putpmsg (__NR_N32_Linux + 175)
-+#define __NR_N32_afs_syscall (__NR_N32_Linux + 176)
-+#define __NR_N32_security (__NR_N32_Linux + 177)
-+#define __NR_N32_gettid (__NR_N32_Linux + 178)
-+#define __NR_N32_readahead (__NR_N32_Linux + 179)
-+#define __NR_N32_setxattr (__NR_N32_Linux + 180)
-+#define __NR_N32_lsetxattr (__NR_N32_Linux + 181)
-+#define __NR_N32_fsetxattr (__NR_N32_Linux + 182)
-+#define __NR_N32_getxattr (__NR_N32_Linux + 183)
-+#define __NR_N32_lgetxattr (__NR_N32_Linux + 184)
-+#define __NR_N32_fgetxattr (__NR_N32_Linux + 185)
-+#define __NR_N32_listxattr (__NR_N32_Linux + 186)
-+#define __NR_N32_llistxattr (__NR_N32_Linux + 187)
-+#define __NR_N32_flistxattr (__NR_N32_Linux + 188)
-+#define __NR_N32_removexattr (__NR_N32_Linux + 189)
-+#define __NR_N32_lremovexattr (__NR_N32_Linux + 190)
-+#define __NR_N32_fremovexattr (__NR_N32_Linux + 191)
-+#define __NR_N32_tkill (__NR_N32_Linux + 192)
-+#define __NR_N32_time (__NR_N32_Linux + 193)
-+#define __NR_N32_futex (__NR_N32_Linux + 194)
-+#define __NR_N32_sched_setaffinity (__NR_N32_Linux + 195)
-+#define __NR_N32_sched_getaffinity (__NR_N32_Linux + 196)
-+#define __NR_N32_cacheflush (__NR_N32_Linux + 197)
-+#define __NR_N32_cachectl (__NR_N32_Linux + 198)
-+#define __NR_N32_sysmips (__NR_N32_Linux + 199)
-+
-+/*
-+ * Offset of the last N32 flavoured syscall
-+ */
-+#define __NR_N32_Linux_syscalls 199
-
- #ifndef __ASSEMBLY__
-
-@@ -845,12 +1022,17 @@
- static inline _syscall3(int,open,const char *,file,int,flag,int,mode)
- static inline _syscall1(int,close,int,fd)
- static inline _syscall1(int,_exit,int,exitcode)
--static inline _syscall3(pid_t,waitpid,pid_t,pid,int *,wait_stat,int,options)
-+static inline _syscall4(pid_t,wait4,pid_t,pid,int *,stat_addr,int,options,struct rusage *,ru)
- static inline _syscall1(int,delete_module,const char *,name)
-
-+static inline pid_t waitpid(int pid, int * wait_stat, int flags)
-+{
-+ return wait4(pid, wait_stat, flags, NULL);
-+}
-+
- static inline pid_t wait(int * wait_stat)
- {
-- return waitpid(-1,wait_stat,0);
-+ return waitpid(-1, wait_stat, 0);
- }
-
- #endif /* __KERNEL_SYSCALLS__ */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/user.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/user.h
---- linux-2.4.20/include/asm-mips64/user.h 2001-09-09 12:43:02.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/user.h 2003-01-17 07:56:24.000000000 -0600
-@@ -37,7 +37,7 @@
- * to write an integer number of pages.
- */
- struct user {
-- unsigned long regs[EF_SIZE/4+64]; /* integer and fp regs */
-+ unsigned long regs[EF_SIZE/8+64]; /* integer and fp regs */
- size_t u_tsize; /* text size (pages) */
- size_t u_dsize; /* data size (pages) */
- size_t u_ssize; /* stack size (pages) */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/war.h linux-2.4.20-mipscvs-20050106/include/asm-mips64/war.h
---- linux-2.4.20/include/asm-mips64/war.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/war.h 2003-01-29 10:39:00.000000000 -0600
-@@ -67,4 +67,21 @@
-
- #endif
-
-+#if defined(CONFIG_SB1_PASS_1_WORKAROUNDS) || \
-+ defined(CONFIG_SB1_PASS_2_WORKAROUNDS)
-+
-+/*
-+ * Workaround for the Sibyte M3 errata the text of which can be found at
-+ *
-+ * http://sibyte.broadcom.com/hw/bcm1250/docs/pass2errata.txt
-+ *
-+ * This will enable the use of a special TLB refill handler which does a
-+ * consistency check on the information in c0_badvaddr and c0_entryhi and
-+ * will just return and take the exception again if the information was
-+ * found to be inconsistent.
-+ */
-+#define BCM1250_M3_WAR
-+
-+#endif
-+
- #endif /* _ASM_WAR_H */
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Entries
---- linux-2.4.20/include/asm-mips64/xtalk/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Entries 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1,3 @@
-+/xtalk.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
-+/xwidget.h/1.2.2.1/Thu Jun 27 14:21:24 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Repository
---- linux-2.4.20/include/asm-mips64/xtalk/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Repository 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-mips64/xtalk
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Root
---- linux-2.4.20/include/asm-mips64/xtalk/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Root 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-mips64/xtalk/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Tag
---- linux-2.4.20/include/asm-mips64/xtalk/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-mips64/xtalk/CVS/Tag 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Entries
---- linux-2.4.20/include/asm-parisc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Entries 2005-01-06 23:06:56.000000000 -0600
-@@ -0,0 +1,99 @@
-+/a.out.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/asmregs.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/assembly.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/checksum.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/current.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/eisa_bus.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/eisa_eeprom.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/elf.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/errno.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/fcntl.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/fixmap.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/grfioctl.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/gsc.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/hardware.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.1.2.2/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/io.h/1.1.2.1/Wed Sep 11 12:45:28 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/iosapic.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/led.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.2/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/machdep.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.2.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/mmzone.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/module.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/namei.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/page.h/1.1.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/param.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/parport.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/parport_gsc.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.3.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/pdc.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/perf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.2.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.2.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/posix_types.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/processor.h/1.4.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/psw.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/resource.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/rmap.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/rt_sigframe.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/runway.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.2.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/semaphore.h/1.2.2.2/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/setup.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/shmparam.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/siginfo.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/smp.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.1.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/socket.h/1.3.2.1/Wed Sep 11 12:45:29 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/softirq.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/som.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.1.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/statfs.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/string.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/superio.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/system.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/termios.h/1.3.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/traps.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/types.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/unistd.h/1.1.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/user.h/1.1/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.1.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Repository
---- linux-2.4.20/include/asm-parisc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Repository 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-parisc
-diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Root
---- linux-2.4.20/include/asm-parisc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Root 2005-01-06 23:06:55.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-parisc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Tag
---- linux-2.4.20/include/asm-parisc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-parisc/CVS/Tag 2005-01-06 23:06:56.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Entries
---- linux-2.4.20/include/asm-ppc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,135 @@
-+/8xx_immap.h/1.4/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/a.out.h/1.2/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/amigahw.h/1.4/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/amigaints.h/1.4.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/amigappc.h/1.6/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/amigayle.h/1.3/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/amipcmcia.h/1.3/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/ans-lcd.h/1.1.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.10/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/backlight.h/1.4/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.16/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/bootinfo.h/1.7.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/bootx.h/1.5/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/btext.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.3/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.13/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.14/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.7/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/commproc.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/cpm_8260.h/1.6/Thu Jun 14 04:24:20 2001/-ko/Tlinux_2_4_20
-+/cputable.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/current.h/1.5/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/dbdma.h/1.3.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.7/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.15/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.14/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/errno.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/fcntl.h/1.8/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/floppy.h/1.7.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/gg2.h/1.2.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/hardirq.h/1.16.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/hdreg.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/heathrow.h/1.5.2.2/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/highmem.h/1.5/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.6.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/hydra.h/1.4/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/i8259.h/1.2.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.22.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/immap_8260.h/1.5/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/io.h/1.23/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/ioctl.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.8/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/ipc.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.20.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.16.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/keylargo.h/1.4.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/kgdb.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/kmap_types.h/1.5.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.10/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/m48t35.h/1.3/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/machdep.h/1.18.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.7/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/md.h/1.4/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/mediabay.h/1.5.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/mk48t59.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.5/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.14/Wed Aug 22 03:25:05 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.17/Mon Nov 5 20:16:26 2001/-ko/Tlinux_2_4_20
-+/module.h/1.3/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/mpc8260.h/1.3.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/mpc8xx.h/1.7.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.3/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/namei.h/1.6/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/nvram.h/1.7/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/ohare.h/1.5.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/open_pic.h/1.2.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/page.h/1.17.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/param.h/1.7/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/parport.h/1.2/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/pci-bridge.h/1.8.2.1/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/pci.h/1.13.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.6/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.36.2.2/Wed Sep 11 12:45:30 2002/-ko/Tlinux_2_4_20
-+/pmac_feature.h/1.1.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pnp.h/1.4/Thu Jun 14 04:24:21 2001/-ko/Tlinux_2_4_20
-+/poll.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/posix_types.h/1.9/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/ppc4xx.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ppc4xx_pic.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ppc4xx_serial.h/1.1/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/ppc_asm.h/1.2.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ppcboot.h/1.3/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/prep_nvram.h/1.4/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/processor.h/1.34.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/prom.h/1.16.2.3/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.12.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/raven.h/1.4/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/residual.h/1.6/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.8/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/rwsem.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.6/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/sections.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/segment.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/semaphore.h/1.12.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.8.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/setup.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/shmparam.h/1.4/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/siginfo.h/1.9.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.6/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/smp.h/1.18.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.7/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.11.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/softirq.h/1.17/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.14.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.8/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/statfs.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/string.h/1.7/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/system.h/1.24.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.8/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/termios.h/1.11.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/time.h/1.8/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.6.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/todc.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/traps.h/1.2/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/types.h/1.13/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.13.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.3/Thu Jun 14 04:24:25 2001/-ko/Tlinux_2_4_20
-+/uninorth.h/1.5/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/unistd.h/1.20.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/user.h/1.3/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
-+/vc_ioctl.h/1.2/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
-+/vga.h/1.8/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
-+/walnut.h/1.4/Mon Nov 5 20:16:27 2001/-ko/Tlinux_2_4_20
-+/xics.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/xor.h/1.2/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
-+/zorro.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Repository
---- linux-2.4.20/include/asm-ppc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Repository 2005-01-06 23:06:56.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ppc
-diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Root
---- linux-2.4.20/include/asm-ppc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Root 2005-01-06 23:06:56.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ppc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Tag
---- linux-2.4.20/include/asm-ppc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/CVS/Tag 2005-01-06 23:06:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ppc/param.h linux-2.4.20-mipscvs-20050106/include/asm-ppc/param.h
---- linux-2.4.20/include/asm-ppc/param.h 2001-08-28 08:58:33.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc/param.h 2001-10-18 20:25:01.000000000 -0500
-@@ -6,6 +6,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 4096
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Entries
---- linux-2.4.20/include/asm-ppc64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,110 @@
-+/a.out.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/abs_addr.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/bootinfo.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/byteorder.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/cache.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/checksum.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/current.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/div64.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/dma.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/dump.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/eeh.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/elf.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/errno.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/fcntl.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/flight_recorder.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/hvcall.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/init.h/1.1.2.1/Wed Jun 26 22:36:38 2002/-ko/Tlinux_2_4_20
-+/io.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/ioctls.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/ipc.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/kgdb.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/lmb.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/machdep.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/md.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/memory.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/mman.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/mmu.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/module.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/naca.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/namei.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/nvram.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/paca.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/page.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/param.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/parport.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/pci-bridge.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/pci.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/pci_dma.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/perfmon.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/pmc.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1.2.1/Wed Jun 26 22:36:39 2002/-ko/Tlinux_2_4_20
-+/posix_types.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/ppc32.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/ppc_asm.tmpl/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/ppcdebug.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/proc_fs.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/proc_pmc.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/processor.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/prom.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/resource.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/rtas.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/rwsem.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/semaphore.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/setup.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/shmparam.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/siginfo.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/smp.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/socket.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/softirq.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/spinlock.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/statfs.h/1.1.2.1/Wed Jun 26 22:36:40 2002/-ko/Tlinux_2_4_20
-+/string.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/system.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/termios.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/time.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/timex.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/types.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/udbg.h/1.1.2.2/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/unistd.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/user.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/user_exports.h/1.1.2.1/Wed Sep 11 12:45:31 2002/-ko/Tlinux_2_4_20
-+/vc_ioctl.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/vga.h/1.1.2.2/Wed Sep 11 12:45:34 2002/-ko/Tlinux_2_4_20
-+/xor.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+D/iSeries////
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Repository
---- linux-2.4.20/include/asm-ppc64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Repository 2005-01-06 23:06:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ppc64
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Root
---- linux-2.4.20/include/asm-ppc64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Root 2005-01-06 23:06:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Tag
---- linux-2.4.20/include/asm-ppc64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/CVS/Tag 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Entries
---- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Entries 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1,37 @@
-+/HvCall.h/1.1.2.2/Wed Sep 11 12:45:34 2002/-ko/Tlinux_2_4_20
-+/HvCallCfg.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvCallEvent.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvCallHpt.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvCallPci.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvCallSc.h/1.1.2.2/Wed Sep 11 12:45:34 2002/-ko/Tlinux_2_4_20
-+/HvCallSm.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvCallXm.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvLpConfig.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvLpEvent.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvReleaseData.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/HvTypes.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/IoHriMainStore.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/IoHriProcessorVpd.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/ItExtVpdPanel.h/1.1.2.1/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
-+/ItIplParmsReal.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/ItLpNaca.h/1.1.2.1/Wed Jun 26 22:36:41 2002/-ko/Tlinux_2_4_20
-+/ItLpPaca.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/ItLpQueue.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/ItLpRegSave.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/ItSpCommArea.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/ItVpdAreas.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/LparData.h/1.1.2.2/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
-+/LparMap.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/XmPciLpEvent.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/iSeries_FlightRecorder.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/iSeries_VpdInfo.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/iSeries_dma.h/1.1.2.1/Wed Jun 26 22:36:42 2002/-ko/Tlinux_2_4_20
-+/iSeries_fixup.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/iSeries_io.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/iSeries_irq.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/iSeries_pci.h/1.1.2.2/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
-+/iSeries_proc.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/mf.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/mf_proc.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/veth-proc.h/1.1.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Repository
---- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Repository 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-ppc64/iSeries
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Root
---- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Root 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-ppc64/iSeries/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Tag
---- linux-2.4.20/include/asm-ppc64/iSeries/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-ppc64/iSeries/CVS/Tag 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Entries
---- linux-2.4.20/include/asm-s390/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Entries 2005-01-06 23:07:03.000000000 -0600
-@@ -0,0 +1,92 @@
-+/a.out.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/atomic.h/1.7.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.7.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/byteorder.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/ccwcache.h/1.3/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/chandev.h/1.5/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/cpcmd.h/1.1/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/current.h/1.5/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/dasd.h/1.4/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/debug.h/1.4.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.4/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.3/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/ebcdic.h/1.5.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/elf.h/1.6/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/errno.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/fcntl.h/1.6/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/gdb-stub.h/1.4/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/hardirq.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/idals.h/1.2.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/ide.h/1.1.4.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/init.h/1.3/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/io.h/1.4/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/ioctl.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/ioctls.h/1.3/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/ipc.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.7.2.2/Wed Sep 11 12:45:35 2002/-ko/Tlinux_2_4_20
-+/lowcore.h/1.7.2.2/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/mathemu.h/1.4/Wed Jun 13 17:28:13 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.4/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/namei.h/1.3/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/page.h/1.6.2.1/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/param.h/1.5/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.1/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.4/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/pgtable.h/1.10.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/posix_types.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.8.2.2/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.6.2.2/Wed Jun 26 22:36:43 2002/-ko/Tlinux_2_4_20
-+/queue.h/1.5/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.4/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/rwsem.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/s390_ext.h/1.1.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/s390dyn.h/1.4/Fri Aug 24 03:38:53 2001/-ko/Tlinux_2_4_20
-+/s390io.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/s390mach.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.2.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/semaphore.h/1.4.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/setup.h/1.5.2.1/Tue Feb 26 06:00:26 2002/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.4/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/siginfo.h/1.3.2.2/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/sigp.h/1.5.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/smp.h/1.5.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.3/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.6.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/softirq.h/1.7/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.5.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.4/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/statfs.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/string.h/1.3/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/system.h/1.6.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/termios.h/1.4/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.2.4.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/todclk.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/types.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.7.2.3/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.4/Tue Nov 6 00:55:27 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/unistd.h/1.5.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/user.h/1.2/Fri May 12 23:48:42 2000/-ko/Tlinux_2_4_20
-+/vtoc.h/1.4/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Repository
---- linux-2.4.20/include/asm-s390/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Repository 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-s390
-diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Root
---- linux-2.4.20/include/asm-s390/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Root 2005-01-06 23:07:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-s390/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Tag
---- linux-2.4.20/include/asm-s390/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/CVS/Tag 2005-01-06 23:07:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-s390/param.h linux-2.4.20-mipscvs-20050106/include/asm-s390/param.h
---- linux-2.4.20/include/asm-s390/param.h 2001-02-13 16:13:44.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390/param.h 2001-03-09 14:34:48.000000000 -0600
-@@ -11,6 +11,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 4096
-diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Entries
---- linux-2.4.20/include/asm-s390x/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Entries 2005-01-06 23:07:05.000000000 -0600
-@@ -0,0 +1,90 @@
-+/a.out.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/atomic.h/1.5.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.2.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.2/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/cache.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/ccwcache.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/chandev.h/1.4/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/cpcmd.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/current.h/1.3/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/dasd.h/1.5/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/debug.h/1.4.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/dma.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/ebcdic.h/1.3.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/elf.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/errno.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/fcntl.h/1.2/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/gdb-stub.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/hardirq.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/idals.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/init.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/io.h/1.2/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/ipc.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Fri Mar 9 20:34:48 2001/-ko/Tlinux_2_4_20
-+/irq.h/1.5.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/lowcore.h/1.4.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/mman.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/namei.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/page.h/1.4.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/param.h/1.2/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.1/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.4.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/posix_types.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/processor.h/1.4.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/ptrace.h/1.2.2.2/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/queue.h/1.3/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/rwsem.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/s390_ext.h/1.1.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/s390dyn.h/1.3/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/s390io.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/s390mach.h/1.1.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.2.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/segment.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/semaphore.h/1.2.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/setup.h/1.3.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/shmparam.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.2/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/siginfo.h/1.1.2.2/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.3/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/sigp.h/1.3.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/smp.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.3/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/sockios.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/softirq.h/1.5/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.4.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/stat.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/statfs.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/string.h/1.2/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/system.h/1.3.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/termios.h/1.4/Fri Aug 24 03:38:54 2001/-ko/Tlinux_2_4_20
-+/timex.h/1.1.2.3/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/todclk.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/types.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.3.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.2/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/unistd.h/1.4.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/user.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+/vtoc.h/1.3/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Fri Mar 9 20:34:52 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Repository
---- linux-2.4.20/include/asm-s390x/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Repository 2005-01-06 23:07:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-s390x
-diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Root
---- linux-2.4.20/include/asm-s390x/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Root 2005-01-06 23:07:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-s390x/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Tag
---- linux-2.4.20/include/asm-s390x/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-s390x/CVS/Tag 2005-01-06 23:07:05.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Entries
---- linux-2.4.20/include/asm-sh/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,107 @@
-+/a.out.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/addrspace.h/1.2/Thu Jan 27 01:05:38 2000/-ko/Tlinux_2_4_20
-+/atomic.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/bigsur.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.8/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/bugs.h/1.6/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/byteorder.h/1.3/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/cache.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.9/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/current.h/1.4/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
-+/dc_sysasic.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/delay.h/1.7/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.6/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/ec3104.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.6/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/errno.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/fcntl.h/1.3/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/hardirq.h/1.8/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/hd64461.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/hd64465.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/hd64465_gpio.h/1.3/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.2/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/hitachi_7751se.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/hitachi_se.h/1.3/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/ide.h/1.9.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/init.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/io.h/1.11/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/io_7751se.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/io_adx.h/1.1/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/io_bigsur.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/io_cat68701.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_dc.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_ec3104.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_generic.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_hd64461.h/1.3/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_hd64465.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_se.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/io_sh2000.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/io_unknown.h/1.2/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/ioctl.h/1.3/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/ioctls.h/1.3/Sat Jan 29 01:42:29 2000/-ko/Tlinux_2_4_20
-+/ipc.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.11/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/keyboard-ec3104.h/1.1/Wed Jun 13 17:28:14 2001/-ko/Tlinux_2_4_20
-+/keyboard.h/1.5/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.3/Fri Oct 19 01:25:01 2001/-ko/Tlinux_2_4_20
-+/machvec.h/1.4/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/machvec_init.h/1.2/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.2/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:04 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/namei.h/1.4/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/page.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/param.h/1.4/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/pci-sh7751.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.10.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.5/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/pgtable-2level.h/1.7.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.22.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/posix_types.h/1.2/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.15/Mon Nov 5 20:16:27 2001/-ko/Tlinux_2_4_20
-+/ptrace.h/1.7/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/resource.h/1.5/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/rtc.h/1.2/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.2/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/semaphore-helper.h/1.2/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/semaphore.h/1.5.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/serial-bigsur.h/1.1/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/serial-ec3104.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/serial.h/1.4/Wed Aug 22 03:25:06 2001/-ko/Tlinux_2_4_20
-+/sh_bios.h/1.3/Wed Jan 31 22:22:34 2001/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.3/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/siginfo.h/1.4.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.3/Fri Feb 4 07:40:53 2000/-ko/Tlinux_2_4_20
-+/smc37c93x.h/1.1/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/smp.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/smplock.h/1.3/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.7.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/softirq.h/1.9/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/spinlock.h/1.3/Sat Jan 29 01:42:29 2000/-ko/Tlinux_2_4_20
-+/stat.h/1.2.4.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/statfs.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/string.h/1.8/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/system.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/termbits.h/1.2/Thu Jan 27 01:05:38 2000/-ko/Tlinux_2_4_20
-+/termios.h/1.6.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/timex.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/types.h/1.3/Sun Mar 12 23:15:51 2000/-ko/Tlinux_2_4_20
-+/uaccess.h/1.10.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1/Sat Oct 9 00:01:43 1999/-ko/Tlinux_2_4_20
-+/unistd.h/1.8.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/user.h/1.4/Wed Aug 22 03:25:07 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.1/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Repository
---- linux-2.4.20/include/asm-sh/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Repository 2005-01-06 23:07:05.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-sh
-diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Root
---- linux-2.4.20/include/asm-sh/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Root 2005-01-06 23:07:05.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-sh/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Tag
---- linux-2.4.20/include/asm-sh/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/CVS/Tag 2005-01-06 23:07:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-sh/param.h linux-2.4.20-mipscvs-20050106/include/asm-sh/param.h
---- linux-2.4.20/include/asm-sh/param.h 2001-01-04 15:19:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sh/param.h 2001-01-10 22:02:45.000000000 -0600
-@@ -3,6 +3,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 4096
-diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Entries
---- linux-2.4.20/include/asm-sparc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,142 @@
-+/a.out.h/1.4/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/apc.h/1.1.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/asi.h/1.4/Thu May 7 03:03:04 1998/-ko/Tlinux_2_4_20
-+/asmmacro.h/1.4/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/atomic.h/1.8/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/audioio.h/1.10/Wed Aug 22 03:25:07 2001/-ko/Tlinux_2_4_20
-+/auxio.h/1.3/Tue Mar 17 22:16:30 1998/-ko/Tlinux_2_4_20
-+/bitops.h/1.18.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/bpp.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/bsderrno.h/1.2/Mon Dec 1 18:00:48 1997/-ko/Tlinux_2_4_20
-+/btfixup.h/1.1.6.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.2/Mon Dec 1 18:00:49 1997/-ko/Tlinux_2_4_20
-+/byteorder.h/1.6/Tue Mar 17 22:16:31 1998/-ko/Tlinux_2_4_20
-+/cache.h/1.4/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/checksum.h/1.7.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/contregs.h/1.5/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/cprefix.h/1.1.1.1/Sun Jun 1 03:16:55 1997/-ko/Tlinux_2_4_20
-+/current.h/1.1.1.1/Sun Jun 1 03:16:55 1997/-ko/Tlinux_2_4_20
-+/cypress.h/1.2/Mon Dec 1 18:00:51 1997/-ko/Tlinux_2_4_20
-+/delay.h/1.4/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.8/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/ebus.h/1.2/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/ecc.h/1.2/Mon Dec 1 18:00:52 1997/-ko/Tlinux_2_4_20
-+/elf.h/1.11/Sat Jul 15 03:32:28 2000/-ko/Tlinux_2_4_20
-+/errno.h/1.2/Mon Dec 1 18:00:53 1997/-ko/Tlinux_2_4_20
-+/fbio.h/1.5/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/fcntl.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/floppy.h/1.9.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.12/Thu Aug 23 22:24:47 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.2/Wed Jan 10 05:27:35 2001/-ko/Tlinux_2_4_20
-+/head.h/1.7/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/highmem.h/1.5.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.1/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.6.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/idprom.h/1.2/Mon Dec 1 18:00:55 1997/-ko/Tlinux_2_4_20
-+/init.h/1.3/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/io-unit.h/1.6/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/io.h/1.12.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.3/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/ioctls.h/1.5.6.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/iommu.h/1.1.1.1/Sun Jun 1 03:16:57 1997/-ko/Tlinux_2_4_20
-+/ipc.h/1.2/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.15/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/jsflash.h/1.2/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
-+/kbio.h/1.1.1.1/Sun Jun 1 03:16:55 1997/-ko/Tlinux_2_4_20
-+/kdebug.h/1.4/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/keyboard.h/1.5.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/kgdb.h/1.3/Tue Mar 17 22:16:33 1998/-ko/Tlinux_2_4_20
-+/kmap_types.h/1.3.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.5/Wed Aug 22 03:25:07 2001/-ko/Tlinux_2_4_20
-+/machines.h/1.2/Mon Dec 1 18:00:58 1997/-ko/Tlinux_2_4_20
-+/mbus.h/1.3/Mon Dec 1 18:00:58 1997/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.2/Sat Jul 15 03:07:32 2000/-ko/Tlinux_2_4_20
-+/memreg.h/1.2/Mon Dec 1 18:00:59 1997/-ko/Tlinux_2_4_20
-+/mman.h/1.3/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.7/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/mostek.h/1.6/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/mpmbox.h/1.2/Mon Dec 1 18:01:01 1997/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/msi.h/1.2/Mon Dec 1 18:01:02 1997/-ko/Tlinux_2_4_20
-+/mxcc.h/1.2/Mon Dec 1 18:01:02 1997/-ko/Tlinux_2_4_20
-+/namei.h/1.13/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
-+/obio.h/1.2/Thu May 7 03:03:09 1998/-ko/Tlinux_2_4_20
-+/openprom.h/1.4/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/openpromio.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/oplib.h/1.7.4.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/page.h/1.19.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/param.h/1.7/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/pbm.h/1.2/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/pci.h/1.9.2.2/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/pcic.h/1.3/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/pconf.h/1.2.8.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/perfctr.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.12.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.28.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/pgtsrmmu.h/1.5/Fri Jul 21 22:01:01 2000/-ko/Tlinux_2_4_20
-+/pgtsun4.h/1.5/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/pgtsun4c.h/1.5/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/poll.h/1.2/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/posix_types.h/1.4/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.20/Mon Nov 5 21:57:13 2001/-ko/Tlinux_2_4_20
-+/psr.h/1.3/Tue Mar 17 22:16:35 1998/-ko/Tlinux_2_4_20
-+/ptrace.h/1.2/Mon Dec 1 18:01:07 1997/-ko/Tlinux_2_4_20
-+/reg.h/1.1.1.1/Sun Jun 1 03:16:55 1997/-ko/Tlinux_2_4_20
-+/resource.h/1.8/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/ross.h/1.3/Tue Mar 17 22:16:36 1998/-ko/Tlinux_2_4_20
-+/rtc.h/1.2/Mon Dec 1 18:01:08 1997/-ko/Tlinux_2_4_20
-+/sbi.h/1.2/Thu May 7 03:03:12 1998/-ko/Tlinux_2_4_20
-+/sbus.h/1.10.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.6/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/segment.h/1.1.1.1/Sun Jun 1 03:16:55 1997/-ko/Tlinux_2_4_20
-+/semaphore.h/1.11.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.2/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.3/Fri May 12 21:06:47 2000/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.5/Sat Feb 5 06:47:37 2000/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.4/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/siginfo.h/1.10.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.5/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/smp.h/1.14/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/smplock.h/1.3/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
-+/smpprim.h/1.2/Mon Dec 1 18:01:10 1997/-ko/Tlinux_2_4_20
-+/socket.h/1.10.2.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.1.1/Sun Jun 1 03:16:57 1997/-ko/Tlinux_2_4_20
-+/softirq.h/1.15/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/solerrno.h/1.2/Mon Dec 1 18:01:11 1997/-ko/Tlinux_2_4_20
-+/spinlock.h/1.12/Tue Nov 6 07:56:13 2001/-ko/Tlinux_2_4_20
-+/stat.h/1.8/Tue Aug 8 18:54:51 2000/-ko/Tlinux_2_4_20
-+/statfs.h/1.2/Mon Dec 1 18:01:12 1997/-ko/Tlinux_2_4_20
-+/string.h/1.6.4.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/sun4paddr.h/1.2/Tue Aug 25 09:22:23 1998/-ko/Tlinux_2_4_20
-+/sun4prom.h/1.1/Thu May 7 03:03:14 1998/-ko/Tlinux_2_4_20
-+/sunbpp.h/1.1/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/svr4.h/1.3/Tue Aug 25 09:22:24 1998/-ko/Tlinux_2_4_20
-+/swift.h/1.1.1.1/Sun Jun 1 03:16:56 1997/-ko/Tlinux_2_4_20
-+/sysen.h/1.2/Mon Dec 1 18:01:13 1997/-ko/Tlinux_2_4_20
-+/system.h/1.15/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/termbits.h/1.4.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/termios.h/1.11/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
-+/timer.h/1.7/Sun Jun 13 16:36:14 1999/-ko/Tlinux_2_4_20
-+/timex.h/1.2.6.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/traps.h/1.3/Thu May 7 03:03:15 1998/-ko/Tlinux_2_4_20
-+/tsunami.h/1.2/Mon Dec 1 18:01:14 1997/-ko/Tlinux_2_4_20
-+/turbosparc.h/1.4/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/types.h/1.4.4.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.13/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/unaligned.h/1.2/Tue Mar 17 22:16:39 1998/-ko/Tlinux_2_4_20
-+/unistd.h/1.17.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/user.h/1.3/Thu May 7 03:03:16 1998/-ko/Tlinux_2_4_20
-+/vac-ops.h/1.3.6.1/Wed Sep 11 12:45:36 2002/-ko/Tlinux_2_4_20
-+/vaddrs.h/1.8.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/vfc_ioctls.h/1.1.1.1/Sun Jun 1 03:16:56 1997/-ko/Tlinux_2_4_20
-+/viking.h/1.2/Mon Dec 1 18:01:18 1997/-ko/Tlinux_2_4_20
-+/vuid_event.h/1.1.1.1/Sun Jun 1 03:16:56 1997/-ko/Tlinux_2_4_20
-+/winmacro.h/1.6/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/xor.h/1.2/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Repository
---- linux-2.4.20/include/asm-sparc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Repository 2005-01-06 23:07:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-sparc
-diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Root
---- linux-2.4.20/include/asm-sparc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Root 2005-01-06 23:07:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-sparc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Tag
---- linux-2.4.20/include/asm-sparc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/CVS/Tag 2005-01-06 23:07:10.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-sparc/param.h linux-2.4.20-mipscvs-20050106/include/asm-sparc/param.h
---- linux-2.4.20/include/asm-sparc/param.h 2000-10-30 16:34:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc/param.h 2000-11-22 20:00:56.000000000 -0600
-@@ -4,6 +4,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 8192 /* Thanks for sun4's we carry baggage... */
-diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Entries
---- linux-2.4.20/include/asm-sparc64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Entries 2005-01-06 23:07:13.000000000 -0600
-@@ -0,0 +1,132 @@
-+/a.out.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/apb.h/1.1/Thu May 7 03:03:17 1998/-ko/Tlinux_2_4_20
-+/asi.h/1.4.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.9/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
-+/audioio.h/1.9/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
-+/auxio.h/1.4/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
-+/bbc.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/bitops.h/1.16.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/bpp.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/bsderrno.h/1.2/Mon Dec 1 18:01:22 1997/-ko/Tlinux_2_4_20
-+/bugs.h/1.2/Mon Dec 1 18:01:22 1997/-ko/Tlinux_2_4_20
-+/byteorder.h/1.7/Tue Mar 17 22:16:41 1998/-ko/Tlinux_2_4_20
-+/cache.h/1.5/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/chafsr.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.12.2.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/chmctrl.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/current.h/1.1.1.1/Sun Jun 1 03:17:16 1997/-ko/Tlinux_2_4_20
-+/dcr.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/dcu.h/1.1/Thu Apr 5 04:58:54 2001/-ko/Tlinux_2_4_20
-+/delay.h/1.10.2.1/Tue Feb 26 06:00:27 2002/-ko/Tlinux_2_4_20
-+/display7seg.h/1.1/Tue Aug 8 18:54:51 2000/-ko/Tlinux_2_4_20
-+/div64.h/1.1/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/dma.h/1.9/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
-+/ebus.h/1.6/Thu Apr 5 04:58:54 2001/-ko/Tlinux_2_4_20
-+/elf.h/1.17.2.3/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/envctrl.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/errno.h/1.2/Mon Dec 1 18:01:24 1997/-ko/Tlinux_2_4_20
-+/estate.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/fbio.h/1.5/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/fcntl.h/1.11/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/fhc.h/1.3.4.1/Wed Jun 26 22:36:44 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.20/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/fpumacro.h/1.6/Thu Jun 17 13:30:48 1999/-ko/Tlinux_2_4_20
-+/hardirq.h/1.16/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1/Thu Jun 17 14:09:01 1999/-ko/Tlinux_2_4_20
-+/head.h/1.6.8.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.1/Sat Sep 22 12:49:40 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.13.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/idprom.h/1.2/Mon Dec 1 18:01:26 1997/-ko/Tlinux_2_4_20
-+/init.h/1.3/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/io.h/1.20.2.1/Tue Feb 26 06:00:28 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.3/Mon Jan 4 16:09:52 1999/-ko/Tlinux_2_4_20
-+/ioctls.h/1.7.6.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/iommu.h/1.6/Thu Apr 5 04:58:54 2001/-ko/Tlinux_2_4_20
-+/ipc.h/1.2/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/irq.h/1.13.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/isa.h/1.1/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
-+/kbio.h/1.1.1.1/Sun Jun 1 03:17:15 1997/-ko/Tlinux_2_4_20
-+/kdebug.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/keyboard.h/1.5.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.5/Wed Aug 22 03:25:10 2001/-ko/Tlinux_2_4_20
-+/lsu.h/1.2/Mon Dec 1 18:01:29 1997/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/mman.h/1.3/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/mmu.h/1.1/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.20/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/module.h/1.2/Tue Aug 21 12:19:08 2001/-ko/Tlinux_2_4_20
-+/mostek.h/1.4/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/namei.h/1.13/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
-+/ns87303.h/1.3/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/openprom.h/1.6/Thu Apr 5 04:58:54 2001/-ko/Tlinux_2_4_20
-+/openpromio.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/oplib.h/1.9.4.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/page.h/1.17.4.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/param.h/1.6/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/parport.h/1.8/Thu Jun 14 04:24:26 2001/-ko/Tlinux_2_4_20
-+/pbm.h/1.14/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.10.2.1/Tue Feb 26 06:00:28 2002/-ko/Tlinux_2_4_20
-+/pconf.h/1.2.8.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/perfctr.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.16.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/pgtable.h/1.36.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/pil.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.2/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/posix_types.h/1.9/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/processor.h/1.29.2.3/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/psrcompat.h/1.5/Mon Jan 4 16:09:55 1999/-ko/Tlinux_2_4_20
-+/pstate.h/1.4/Mon Dec 1 18:01:34 1997/-ko/Tlinux_2_4_20
-+/ptrace.h/1.5/Tue Mar 17 22:16:48 1998/-ko/Tlinux_2_4_20
-+/reg.h/1.5/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/resource.h/1.9/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/rtc.h/1.2/Mon Dec 1 18:01:35 1997/-ko/Tlinux_2_4_20
-+/rwsem.h/1.1.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/sab82532.h/1.5/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/sbus.h/1.10.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.6/Tue Nov 6 00:55:28 2001/-ko/Tlinux_2_4_20
-+/segment.h/1.1.1.1/Sun Jun 1 03:17:16 1997/-ko/Tlinux_2_4_20
-+/semaphore.h/1.13.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/sfp-machine.h/1.2/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/shmparam.h/1.7/Mon Nov 5 20:16:27 2001/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.7/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/siginfo.h/1.8.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.5/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/smp.h/1.16.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.4.4.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/socket.h/1.10.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.1.1/Sun Jun 1 03:17:17 1997/-ko/Tlinux_2_4_20
-+/softirq.h/1.17/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/solerrno.h/1.2/Mon Dec 1 18:01:37 1997/-ko/Tlinux_2_4_20
-+/spinlock.h/1.15.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/spitfire.h/1.7.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/starfire.h/1.3/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
-+/stat.h/1.7/Tue Aug 8 18:54:51 2000/-ko/Tlinux_2_4_20
-+/statfs.h/1.2/Mon Dec 1 18:01:39 1997/-ko/Tlinux_2_4_20
-+/string.h/1.13/Mon Nov 5 20:16:27 2001/-ko/Tlinux_2_4_20
-+/sunbpp.h/1.1/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/svr4.h/1.4/Tue Aug 25 09:22:36 1998/-ko/Tlinux_2_4_20
-+/system.h/1.22.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.5.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/termios.h/1.11/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/timer.h/1.5/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/timex.h/1.3.2.2/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1/Fri Oct 19 01:25:02 2001/-ko/Tlinux_2_4_20
-+/ttable.h/1.10.2.1/Sat Dec 29 05:38:20 2001/-ko/Tlinux_2_4_20
-+/types.h/1.6/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/uaccess.h/1.14/Mon Nov 5 20:16:27 2001/-ko/Tlinux_2_4_20
-+/uctx.h/1.3/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/unaligned.h/1.2/Tue Mar 17 22:16:52 1998/-ko/Tlinux_2_4_20
-+/unistd.h/1.20.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/upa.h/1.3/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/user.h/1.2/Mon Dec 1 18:01:42 1997/-ko/Tlinux_2_4_20
-+/utrap.h/1.1/Tue Mar 17 22:16:52 1998/-ko/Tlinux_2_4_20
-+/vga.h/1.3/Fri Apr 28 01:09:54 2000/-ko/Tlinux_2_4_20
-+/visasm.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/vuid_event.h/1.2/Tue Jun 17 13:29:04 1997/-ko/Tlinux_2_4_20
-+/watchdog.h/1.1/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.2.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Repository
---- linux-2.4.20/include/asm-sparc64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Repository 2005-01-06 23:07:10.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-sparc64
-diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Root
---- linux-2.4.20/include/asm-sparc64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Root 2005-01-06 23:07:10.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-sparc64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Tag
---- linux-2.4.20/include/asm-sparc64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/CVS/Tag 2005-01-06 23:07:13.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/asm-sparc64/param.h linux-2.4.20-mipscvs-20050106/include/asm-sparc64/param.h
---- linux-2.4.20/include/asm-sparc64/param.h 2000-10-30 16:34:12.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-sparc64/param.h 2000-11-22 20:00:56.000000000 -0600
-@@ -4,6 +4,9 @@
-
- #ifndef HZ
- #define HZ 100
-+#ifdef __KERNEL__
-+#define hz_to_std(a) (a)
-+#endif
- #endif
-
- #define EXEC_PAGESIZE 8192 /* Thanks for sun4's we carry baggage... */
-diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Entries linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Entries
---- linux-2.4.20/include/asm-x86_64/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Entries 2005-01-06 23:07:15.000000000 -0600
-@@ -0,0 +1,116 @@
-+/a.out.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/apic.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/apicdef.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/asm-macros.i/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/atomic.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/bitops.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/boot.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/bootsetup.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/bugs.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/byteorder.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/cache.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/calling.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/checksum.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/cpufeature.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/current.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/debugreg.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/desc.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/div64.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/dma.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/e820.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/elf.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/errno.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/fcntl.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/fixmap.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/floppy.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/fpu32.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/hardirq.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/hdreg.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/hw_irq.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/i387.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/ia32.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/ia32_unistd.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ide.h/1.4.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/init.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/io.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/io_apic.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/ioctl32.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ioctls.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/ipc.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/ipcbuf.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/irq.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/kdebug.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/kmap_types.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ldt.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/locks.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mman.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mmu.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mmu_context.h/1.3.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mmx.h/1.1.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mmzone.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/module.h/1.2.2.1/Wed Sep 11 12:45:37 2002/-ko/Tlinux_2_4_20
-+/mpspec.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/msgbuf.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/msr.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/mtrr.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/namei.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/page.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/param.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/parport.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/pci-direct.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pci.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pda.h/1.3.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/pgalloc.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pgtable.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/poll.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/posix_types.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/prctl.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/processor.h/1.3.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/proto.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ptrace.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/resource.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/rwlock.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/rwsem.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/scatterlist.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/segment.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/semaphore.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/sembuf.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/setup.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/shmbuf.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/shmparam.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/sigcontext.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/sigcontext32.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/siginfo.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/signal.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/smp.h/1.2.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/smplock.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/socket.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/socket32.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/sockios.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/softirq.h/1.1.2.1/Wed Sep 11 12:45:38 2002/-ko/Tlinux_2_4_20
-+/spinlock.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/stat.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/statfs.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/string.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/system.h/1.3.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/termbits.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/termios.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/timex.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/tlb.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/types.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/uaccess.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/ucontext.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/unaligned.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/unistd.h/1.4.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/user.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/user32.h/1.2.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/vga.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/vsyscall.h/1.2.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/xor.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Repository linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Repository
---- linux-2.4.20/include/asm-x86_64/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Repository 2005-01-06 23:07:13.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/asm-x86_64
-diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Root linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Root
---- linux-2.4.20/include/asm-x86_64/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Root 2005-01-06 23:07:13.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/asm-x86_64/CVS/Tag linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Tag
---- linux-2.4.20/include/asm-x86_64/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/asm-x86_64/CVS/Tag 2005-01-06 23:07:15.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/CVS/Entries linux-2.4.20-mipscvs-20050106/include/CVS/Entries
---- linux-2.4.20/include/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,25 @@
-+/.cvsignore/1.1/Tue Mar 17 22:26:50 1998/-ko/Tlinux_2_4_20
-+D/asm-alpha////
-+D/asm-arm////
-+D/asm-cris////
-+D/asm-generic////
-+D/asm-i386////
-+D/asm-ia64////
-+D/asm-m68k////
-+D/asm-mips////
-+D/asm-mips64////
-+D/asm-parisc////
-+D/asm-ppc////
-+D/asm-ppc64////
-+D/asm-s390////
-+D/asm-s390x////
-+D/asm-sh////
-+D/asm-sparc////
-+D/asm-sparc64////
-+D/asm-x86_64////
-+D/linux////
-+D/math-emu////
-+D/net////
-+D/pcmcia////
-+D/scsi////
-+D/video////
-diff -urNd -urNd linux-2.4.20/include/CVS/Repository linux-2.4.20-mipscvs-20050106/include/CVS/Repository
---- linux-2.4.20/include/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/CVS/Repository 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include
-diff -urNd -urNd linux-2.4.20/include/CVS/Root linux-2.4.20-mipscvs-20050106/include/CVS/Root
---- linux-2.4.20/include/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/CVS/Root 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/CVS/Tag linux-2.4.20-mipscvs-20050106/include/CVS/Tag
---- linux-2.4.20/include/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/CVS/Tag 2005-01-06 23:06:29.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/.cvsignore linux-2.4.20-mipscvs-20050106/include/.cvsignore
---- linux-2.4.20/include/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/.cvsignore 1998-03-17 16:26:50.000000000 -0600
-@@ -0,0 +1 @@
-+config
-diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Entries
---- linux-2.4.20/include/linux/byteorder/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Entries 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1,7 @@
-+/big_endian.h/1.3.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/generic.h/1.4.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/little_endian.h/1.3.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/pdp_endian.h/1.3/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/swab.h/1.6.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/swabb.h/1.6/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Repository
---- linux-2.4.20/include/linux/byteorder/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Repository 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/byteorder
-diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Root
---- linux-2.4.20/include/linux/byteorder/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Root 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/byteorder/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Tag
---- linux-2.4.20/include/linux/byteorder/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/byteorder/CVS/Tag 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/CVS/Entries
---- linux-2.4.20/include/linux/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,542 @@
-+/.cvsignore/1.3/Thu Jul 24 01:44:54 1997/-ko/Tlinux_2_4_20
-+/802_11.h/1.2/Thu Apr 5 04:59:15 2001/-ko/Tlinux_2_4_20
-+/a.out.h/1.2/Fri Sep 12 01:34:06 1997/-ko/Tlinux_2_4_20
-+/ac97_codec.h/1.14/Sun Dec 2 11:34:58 2001/-ko/Tlinux_2_4_20
-+/acct.h/1.3/Mon Jan 4 16:10:00 1999/-ko/Tlinux_2_4_20
-+/acpi.h/1.17/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/adb.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/adb_mouse.h/1.1/Fri Jan 21 22:34:07 2000/-ko/Tlinux_2_4_20
-+/adfs_fs.h/1.6/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/adfs_fs_i.h/1.3/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
-+/adfs_fs_sb.h/1.3/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/affs_fs.h/1.14/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/affs_fs_i.h/1.3/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/affs_fs_sb.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/affs_hardblocks.h/1.1.1.1/Sun Jun 1 03:17:05 1997/-ko/Tlinux_2_4_20
-+/agp_backend.h/1.13.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/agpgart.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/amifd.h/1.1/Tue Aug 25 09:22:39 1998/-ko/Tlinux_2_4_20
-+/amifdreg.h/1.1/Tue Aug 25 09:22:39 1998/-ko/Tlinux_2_4_20
-+/amigaffs.h/1.5.2.1/Tue Feb 26 06:00:29 2002/-ko/Tlinux_2_4_20
-+/apm_bios.h/1.12/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
-+/arcdevice.h/1.11/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/atalk.h/1.8/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/atari_rootsec.h/1.1/Tue Aug 25 09:22:40 1998/-ko/Tlinux_2_4_20
-+/atm.h/1.3/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/atm_eni.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atm_idt77105.h/1.2/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
-+/atm_nicstar.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atm_suni.h/1.2/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
-+/atm_tcp.h/1.3/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
-+/atm_zatm.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atmapi.h/1.2/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/atmarp.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atmbr2684.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/atmclip.h/1.1/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/atmdev.h/1.8.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/atmioc.h/1.3/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/atmlec.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atmmpc.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atmppp.h/1.1/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/atmsap.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/atmsvc.h/1.2/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/auto_fs.h/1.6.4.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/auto_fs4.h/1.2/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/awe_voice.h/1.6/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ax25.h/1.4/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
-+/b1lli.h/1.8/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/b1pcmcia.h/1.4/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/baycom.h/1.3/Tue Mar 17 22:16:55 1998/-ko/Tlinux_2_4_20
-+/bfs_fs.h/1.5/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/bfs_fs_i.h/1.2/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/bfs_fs_sb.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/binfmts.h/1.13/Tue Aug 8 12:37:19 2000/-ko/Tlinux_2_4_20
-+/bitops.h/1.2/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/blk.h/1.28.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/blkdev.h/1.33.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/blkpg.h/1.1/Thu Jun 17 14:09:01 1999/-ko/Tlinux_2_4_20
-+/bootmem.h/1.6.4.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/bpqether.h/1.2/Tue Aug 25 09:22:41 1998/-ko/Tlinux_2_4_20
-+/brlock.h/1.5.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/brlvger.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/cache.h/1.2.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
-+/capability.h/1.11/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/capi.h/1.5.2.1/Tue Feb 26 06:00:29 2002/-ko/Tlinux_2_4_20
-+/cciss_ioctl.h/1.2.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/cd1400.h/1.3/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/cdk.h/1.3/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/cdrom.h/1.21/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/circ_buf.h/1.1/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
-+/cobalt-nvram.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/coda.h/1.12/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/coda_cache.h/1.6/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/coda_fs_i.h/1.8.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/coda_linux.h/1.16.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/coda_proc.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/coda_psdev.h/1.11.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/coff.h/1.2/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/com20020.h/1.3/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/compatmac.h/1.2/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/compiler.h/1.3/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/completion.h/1.1/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
-+/comstats.h/1.3/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/concap.h/1.4/Mon Nov 5 20:16:28 2001/-ko/Tlinux_2_4_20
-+/config.h/1.2/Tue Mar 17 22:17:00 1998/-ko/Tlinux_2_4_20
-+/console.h/1.13.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/console_struct.h/1.6/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/consolemap.h/1.3/Mon Feb 15 02:22:27 1999/-ko/Tlinux_2_4_20
-+/cramfs_fs.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/cramfs_fs_sb.h/1.1/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
-+/crc32.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/ctype.h/1.2/Tue Mar 17 22:17:00 1998/-ko/Tlinux_2_4_20
-+/cuda.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/cyclades.h/1.15.4.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
-+/cyclomx.h/1.7/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
-+/cycx_cfm.h/1.2/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/cycx_drv.h/1.5/Wed Feb 16 01:07:49 2000/-ko/Tlinux_2_4_20
-+/cycx_x25.h/1.3/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/dcache.h/1.34.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/delay.h/1.4/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/devfs_fs.h/1.2.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
-+/devfs_fs_kernel.h/1.8.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/devpts_fs.h/1.3/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/dio.h/1.1.6.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/dirent.h/1.2/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/divert.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/dn.h/1.3/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/dnotify.h/1.1.4.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/dp83840.h/1.1/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
-+/dtlk.h/1.2/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
-+/eeprom.h/1.1.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
-+/efi.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/efs_dir.h/1.2/Mon Apr 12 09:11:01 1999/-ko/Tlinux_2_4_20
-+/efs_fs.h/1.18/Sun Mar 19 01:28:58 2000/-ko/Tlinux_2_4_20
-+/efs_fs_i.h/1.8/Thu Jun 17 13:30:54 1999/-ko/Tlinux_2_4_20
-+/efs_fs_sb.h/1.7/Thu Jun 17 13:30:55 1999/-ko/Tlinux_2_4_20
-+/efs_vh.h/1.2/Mon Apr 12 09:11:02 1999/-ko/Tlinux_2_4_20
-+/elevator.h/1.7.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/elf.h/1.16.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/elfcore.h/1.4/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
-+/errno.h/1.2/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/errqueue.h/1.2/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/etherdevice.h/1.8/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/ethtool.h/1.7.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/ext2_fs.h/1.28/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/ext2_fs_i.h/1.5.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/ext2_fs_sb.h/1.5/Wed Jan 10 17:18:05 2001/-ko/Tlinux_2_4_20
-+/ext3_fs.h/1.1.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ext3_fs_i.h/1.1/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/ext3_fs_sb.h/1.1.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
-+/ext3_jbd.h/1.1.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
-+/fat_cvf.h/1.3/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/fb.h/1.23.4.2/Sun Dec 29 20:08:23 2002/-ko/Tlinux_2_4_20
-+/fcdevice.h/1.3/Thu Apr 5 04:59:15 2001/-ko/Tlinux_2_4_20
-+/fcntl.h/1.3/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/fd.h/1.5.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/fd1772.h/1.1/Tue Jun 22 23:07:51 1999/-ko/Tlinux_2_4_20
-+/fddidevice.h/1.4/Thu Apr 5 04:59:15 2001/-ko/Tlinux_2_4_20
-+/fdreg.h/1.1.1.1/Sun Jun 1 03:17:01 1997/-ko/Tlinux_2_4_20
-+/file.h/1.16.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/filter.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/fs.h/1.78.2.6/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/fs_struct.h/1.5/Thu Aug 23 22:24:48 2001/-ko/Tlinux_2_4_20
-+/fsfilter.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ftape-header-segment.h/1.1/Sat Dec 6 23:55:57 1997/-ko/Tlinux_2_4_20
-+/ftape-vendors.h/1.1/Sat Dec 6 23:55:57 1997/-ko/Tlinux_2_4_20
-+/ftape.h/1.5/Fri Feb 4 07:40:54 2000/-ko/Tlinux_2_4_20
-+/gameport.h/1.4.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/generic_serial.h/1.3.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
-+/genhd.h/1.19.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/ghash.h/1.1/Sun Jul 20 15:01:07 1997/-ko/Tlinux_2_4_20
-+/hayesesp.h/1.2/Thu Jun 17 13:30:57 1999/-ko/Tlinux_2_4_20
-+/hcdp_serial.h/1.1.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/hdlc.h/1.2/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
-+/hdlcdrv.h/1.10/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/hdreg.h/1.19.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/hdsmart.h/1.3/Thu Jun 15 01:56:04 2000/-ko/Tlinux_2_4_20
-+/hfs_fs.h/1.9/Fri Mar 9 20:34:53 2001/-ko/Tlinux_2_4_20
-+/hfs_fs_i.h/1.5/Fri Mar 9 20:34:53 2001/-ko/Tlinux_2_4_20
-+/hfs_fs_sb.h/1.3/Fri Mar 9 20:34:53 2001/-ko/Tlinux_2_4_20
-+/hfs_sysdep.h/1.8/Fri Mar 9 20:34:53 2001/-ko/Tlinux_2_4_20
-+/hiddev.h/1.1.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/highmem.h/1.14.2.4/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/highuid.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/hil.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/hil_mlc.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/hippidevice.h/1.5/Thu Apr 5 04:59:15 2001/-ko/Tlinux_2_4_20
-+/hp_sdc.h/1.1.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/hpfs_fs.h/1.2/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
-+/hpfs_fs_i.h/1.4/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/hpfs_fs_sb.h/1.2/Thu Jun 17 13:30:59 1999/-ko/Tlinux_2_4_20
-+/hysdn_if.h/1.4/Mon Nov 5 20:16:29 2001/-ko/Tlinux_2_4_20
-+/i2c-algo-bit.h/1.1/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/i2c-algo-ite.h/1.1/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
-+/i2c-algo-pcf.h/1.2/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/i2c-dev.h/1.6/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/i2c-elektor.h/1.3/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/i2c-id.h/1.9/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/i2c-old.h/1.1/Sat Feb 5 06:47:38 2000/-ko/Tlinux_2_4_20
-+/i2c-proc.h/1.1/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/i2c.h/1.14/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/i2o-dev.h/1.2/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/i2o.h/1.13.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/i8k.h/1.1.2.1/Sat Dec 29 05:38:21 2001/-ko/Tlinux_2_4_20
-+/ibmtr.h/1.4/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
-+/icmp.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/icmpv6.h/1.4/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/ide.h/1.25.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/if.h/1.8/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/if_arcnet.h/1.2/Sat Feb 5 06:47:45 2000/-ko/Tlinux_2_4_20
-+/if_arp.h/1.17.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
-+/if_bonding.h/1.3.2.2/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/if_bridge.h/1.1/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
-+/if_cablemodem.h/1.2/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/if_ec.h/1.3/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/if_eql.h/1.4/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/if_ether.h/1.10.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/if_fc.h/1.2/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/if_fddi.h/1.3/Thu Jun 17 13:31:00 1999/-ko/Tlinux_2_4_20
-+/if_frad.h/1.5/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/if_hippi.h/1.3/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/if_ltalk.h/1.2/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/if_packet.h/1.7/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/if_plip.h/1.1.1.1/Sun Jun 1 03:17:04 1997/-ko/Tlinux_2_4_20
-+/if_ppp.h/1.10/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/if_pppox.h/1.4.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/if_pppvar.h/1.11/Wed Jul 12 01:43:10 2000/-ko/Tlinux_2_4_20
-+/if_shaper.h/1.6/Sat Oct 9 00:01:44 1999/-ko/Tlinux_2_4_20
-+/if_slip.h/1.2/Tue Mar 17 22:17:08 1998/-ko/Tlinux_2_4_20
-+/if_strip.h/1.1.1.1/Sun Jun 1 03:17:05 1997/-ko/Tlinux_2_4_20
-+/if_tr.h/1.3/Tue Aug 25 09:22:51 1998/-ko/Tlinux_2_4_20
-+/if_tun.h/1.2/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/if_tunnel.h/1.1/Tue Dec 16 06:06:49 1997/-ko/Tlinux_2_4_20
-+/if_vlan.h/1.1.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/if_wanpipe.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/if_wanpipe_common.h/1.1/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/igmp.h/1.6.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/in.h/1.6/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/in6.h/1.10/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/in_route.h/1.3/Tue Aug 25 09:22:52 1998/-ko/Tlinux_2_4_20
-+/in_systm.h/1.1.1.1/Sun Jun 1 03:17:05 1997/-ko/Tlinux_2_4_20
-+/inet.h/1.4.4.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/inetdevice.h/1.7.2.1/Wed Jun 26 22:36:45 2002/-ko/Tlinux_2_4_20
-+/init.h/1.13.2.1/Sat Dec 29 05:38:22 2001/-ko/Tlinux_2_4_20
-+/input.h/1.13.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/intermezzo_fs.h/1.1.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/intermezzo_idl.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/intermezzo_journal.h/1.1/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/intermezzo_kml.h/1.1/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/intermezzo_lib.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/intermezzo_psdev.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/intermezzo_upcall.h/1.1/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/interrupt.h/1.19/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/iobuf.h/1.5.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/ioctl.h/1.1.1.1/Sun Jun 1 03:17:02 1997/-ko/Tlinux_2_4_20
-+/ioport.h/1.7.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ip.h/1.4/Sat Feb 5 06:47:45 2000/-ko/Tlinux_2_4_20
-+/ipc.h/1.7/Wed Feb 16 01:07:50 2000/-ko/Tlinux_2_4_20
-+/ipsec.h/1.2/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
-+/ipv6.h/1.3/Sat Sep 19 19:19:49 1998/-ko/Tlinux_2_4_20
-+/ipv6_route.h/1.5/Sat Sep 19 19:19:49 1998/-ko/Tlinux_2_4_20
-+/ipx.h/1.5/Mon Feb 15 02:22:32 1999/-ko/Tlinux_2_4_20
-+/irda.h/1.7.2.1/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/irq.h/1.9.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/irq_cpustat.h/1.4/Thu Aug 23 22:24:49 2001/-ko/Tlinux_2_4_20
-+/isapnp.h/1.9/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/isdn.h/1.27.2.1/Sat Dec 29 05:38:22 2001/-ko/Tlinux_2_4_20
-+/isdn_divertif.h/1.4.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
-+/isdn_lzscomp.h/1.2.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
-+/isdn_ppp.h/1.12/Mon Nov 5 20:16:29 2001/-ko/Tlinux_2_4_20
-+/isdnif.h/1.17.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
-+/isicom.h/1.4/Fri Aug 24 03:38:55 2001/-ko/Tlinux_2_4_20
-+/iso_fs.h/1.15.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
-+/iso_fs_i.h/1.4/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/iso_fs_sb.h/1.7/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/istallion.h/1.4/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/ite_gpio.h/1.1/Fri Mar 16 12:44:20 2001/-ko/Tlinux_2_4_20
-+/ixjuser.h/1.4/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/jbd.h/1.1.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/jffs.h/1.4/Mon Nov 5 20:16:29 2001/-ko/Tlinux_2_4_20
-+/jffs2.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/jffs2_fs_i.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/jffs2_fs_sb.h/1.2.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/journal-head.h/1.1/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/joystick.h/1.13/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/kbd_diacr.h/1.1/Tue Jun 17 13:30:33 1997/-ko/Tlinux_2_4_20
-+/kbd_kern.h/1.7.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/kbd_ll.h/1.4/Sun Jun 13 16:36:36 1999/-ko/Tlinux_2_4_20
-+/kd.h/1.2.6.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/kdev_t.h/1.3.2.3/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/kernel.h/1.25.2.3/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/kernel_stat.h/1.8.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/kernelcapi.h/1.11.2.1/Tue Feb 26 06:00:30 2002/-ko/Tlinux_2_4_20
-+/keyboard.h/1.3.4.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/kmod.h/1.8/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/lapb.h/1.2/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/limits.h/1.3.4.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/linkage.h/1.11/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/linux_logo.h/1.3/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/list.h/1.11.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/locks.h/1.7/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/logibusmouse.h/1.1/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/loop.h/1.6/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/lp.h/1.13/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/lvm.h/1.10.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/major.h/1.27.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/malloc.h/1.2/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/matroxfb.h/1.2/Sat Jul 8 00:53:08 2000/-ko/Tlinux_2_4_20
-+/mc146818rtc.h/1.8.2.1/Mon Sep 2 13:55:56 2002/-ko/Tlinux_2_4_20
-+/mc6821.h/1.1/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/mca.h/1.5/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/meye.h/1.1/Thu Aug 23 22:24:49 2001/-ko/Tlinux_2_4_20
-+/mii.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/minix_fs.h/1.19/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/minix_fs_i.h/1.1.1.1/Sun Jun 1 03:17:02 1997/-ko/Tlinux_2_4_20
-+/minix_fs_sb.h/1.3/Tue Aug 25 09:22:58 1998/-ko/Tlinux_2_4_20
-+/miscdevice.h/1.19.2.2/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/mm.h/1.63.2.3/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/mman.h/1.2/Fri Feb 4 07:40:54 2000/-ko/Tlinux_2_4_20
-+/mmzone.h/1.15.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/modsetver.h/1.1.1.1/Sun Jun 1 03:17:04 1997/-ko/Tlinux_2_4_20
-+/module.h/1.23.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/mount.h/1.20/Mon Nov 5 20:16:29 2001/-ko/Tlinux_2_4_20
-+/mpp.h/1.1.1.1/Sun Jun 1 03:17:05 1997/-ko/Tlinux_2_4_20
-+/mroute.h/1.5/Wed Jun 13 17:28:15 2001/-ko/Tlinux_2_4_20
-+/msdos_fs.h/1.22/Tue Nov 6 00:55:29 2001/-ko/Tlinux_2_4_20
-+/msdos_fs_i.h/1.8/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/msdos_fs_sb.h/1.12/Tue Nov 6 00:55:30 2001/-ko/Tlinux_2_4_20
-+/msg.h/1.9/Wed Feb 16 01:07:55 2000/-ko/Tlinux_2_4_20
-+/mtio.h/1.6/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/n_r3964.h/1.2/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/namespace.h/1.1.2.2/Wed Sep 11 12:45:39 2002/-ko/Tlinux_2_4_20
-+/nbd.h/1.11.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/ncp.h/1.4/Sat Dec 4 03:59:13 1999/-ko/Tlinux_2_4_20
-+/ncp_fs.h/1.16/Fri Mar 9 20:34:57 2001/-ko/Tlinux_2_4_20
-+/ncp_fs_i.h/1.5/Mon Jul 3 21:46:09 2000/-ko/Tlinux_2_4_20
-+/ncp_fs_sb.h/1.9/Sat Jul 8 00:53:08 2000/-ko/Tlinux_2_4_20
-+/ncp_mount.h/1.5/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/ncp_no.h/1.1/Sat Dec 4 03:59:13 1999/-ko/Tlinux_2_4_20
-+/net.h/1.11/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/netbeui.h/1.1.1.1/Sun Jun 1 03:17:01 1997/-ko/Tlinux_2_4_20
-+/netdevice.h/1.34.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/netfilter.h/1.7/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/netfilter_arp.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/netfilter_bridge.h/1.1/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/netfilter_ddp.h/1.1/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/netfilter_decnet.h/1.3/Tue Nov 28 03:59:03 2000/-ko/Tlinux_2_4_20
-+/netfilter_ipv4.h/1.4.4.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
-+/netfilter_ipv6.h/1.3/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/netfilter_ipx.h/1.1/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/netfilter_x25.h/1.1/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/netlink.h/1.9.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/netrom.h/1.3/Tue Dec 16 05:36:59 1997/-ko/Tlinux_2_4_20
-+/nfs.h/1.9/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/nfs2.h/1.1/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/nfs3.h/1.3/Wed Apr 19 04:00:20 2000/-ko/Tlinux_2_4_20
-+/nfs_flushd.h/1.3.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/nfs_fs.h/1.26.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/nfs_fs_i.h/1.12.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/nfs_fs_sb.h/1.6/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/nfs_mount.h/1.4/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/nfs_page.h/1.6.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/nfs_xdr.h/1.5.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/nfsiod.h/1.2/Thu Jun 17 13:31:09 1999/-ko/Tlinux_2_4_20
-+/nls.h/1.7.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/nmi.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/notifier.h/1.4.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ntfs_fs.h/1.4/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/ntfs_fs_i.h/1.7/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/ntfs_fs_sb.h/1.6/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/nubus.h/1.4.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/nvram.h/1.2.4.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/openprom_fs.h/1.1/Sat Feb 5 06:47:45 2000/-ko/Tlinux_2_4_20
-+/pagemap.h/1.26.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/param.h/1.1.1.1/Sun Jun 1 03:17:01 1997/-ko/Tlinux_2_4_20
-+/parport.h/1.27.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/parport_pc.h/1.11/Wed Aug 22 03:25:11 2001/-ko/Tlinux_2_4_20
-+/pc_keyb.h/1.6/Mon Aug 27 09:39:12 2001/-ko/Tlinux_2_4_20
-+/pci.h/1.50.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pci_gameport.h/1.1.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pci_ids.h/1.50.2.9/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/personality.h/1.7.2.1/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/pg.h/1.2/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/phonedev.h/1.1/Sat Feb 5 06:47:45 2000/-ko/Tlinux_2_4_20
-+/pipe_fs_i.h/1.9/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/pkt_cls.h/1.3/Sat Feb 5 06:47:45 2000/-ko/Tlinux_2_4_20
-+/pkt_sched.h/1.6.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/pm.h/1.8.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/pmu.h/1.4.2.2/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/poll.h/1.13/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
-+/posix_types.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/ppdev.h/1.2/Thu Jun 14 04:24:27 2001/-ko/Tlinux_2_4_20
-+/ppp-comp.h/1.6/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/ppp.h/1.1.1.1/Sun Jun 1 03:17:00 1997/-ko/Tlinux_2_4_20
-+/ppp_channel.h/1.8/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/ppp_defs.h/1.5/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
-+/prctl.h/1.6.2.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
-+/prefetch.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/proc_fs.h/1.39.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/proc_fs_i.h/1.2/Wed Apr 19 04:00:21 2000/-ko/Tlinux_2_4_20
-+/ps2esdi.h/1.1.1.1/Sun Jun 1 03:17:02 1997/-ko/Tlinux_2_4_20
-+/ptrace.h/1.1.1.1/Sun Jun 1 03:17:00 1997/-ko/Tlinux_2_4_20
-+/qic117.h/1.1/Sat Dec 6 23:56:11 1997/-ko/Tlinux_2_4_20
-+/qnx4_fs.h/1.11/Mon Jul 3 21:46:09 2000/-ko/Tlinux_2_4_20
-+/qnx4_fs_i.h/1.4/Wed Feb 23 00:41:40 2000/-ko/Tlinux_2_4_20
-+/qnx4_fs_sb.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/qnxtypes.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/quota.h/1.11/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/quotaops.h/1.10.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/random.h/1.6/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
-+/raw.h/1.2/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/rbtree.h/1.1/Fri Oct 19 01:25:03 2001/-ko/Tlinux_2_4_20
-+/reboot.h/1.3/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/reiserfs_fs.h/1.11.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/reiserfs_fs_i.h/1.4.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/reiserfs_fs_sb.h/1.5.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/resource.h/1.3/Fri Feb 4 07:40:54 2000/-ko/Tlinux_2_4_20
-+/rocket.h/1.1/Tue Jul 29 04:00:13 1997/-ko/Tlinux_2_4_20
-+/romfs_fs.h/1.2/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
-+/romfs_fs_i.h/1.1.1.1/Sun Jun 1 03:17:05 1997/-ko/Tlinux_2_4_20
-+/romfs_fs_sb.h/1.1.1.1/Sun Jun 1 03:17:04 1997/-ko/Tlinux_2_4_20
-+/rose.h/1.6/Mon Jan 4 16:10:14 1999/-ko/Tlinux_2_4_20
-+/route.h/1.3/Tue Mar 17 22:17:23 1998/-ko/Tlinux_2_4_20
-+/rpcsock.h/1.2/Thu Jun 17 13:31:13 1999/-ko/Tlinux_2_4_20
-+/rtc.h/1.6/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/rtnetlink.h/1.15.2.4/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/rwsem-spinlock.h/1.2.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/rwsem.h/1.2.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/sc26198.h/1.2/Tue Mar 17 22:17:24 1998/-ko/Tlinux_2_4_20
-+/scc.h/1.7/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sched.h/1.60.2.4/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/sdla.h/1.1.1.1/Sun Jun 1 03:17:02 1997/-ko/Tlinux_2_4_20
-+/sdla_asy.h/1.1/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdla_chdlc.h/1.2/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdla_fr.h/1.5/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdla_ppp.h/1.3/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdla_x25.h/1.5/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdladrv.h/1.4/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdlapci.h/1.2/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/sdlasfm.h/1.2/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
-+/securebits.h/1.1/Thu May 7 03:03:39 1998/-ko/Tlinux_2_4_20
-+/selection.h/1.7/Sun Jun 13 16:36:43 1999/-ko/Tlinux_2_4_20
-+/sem.h/1.7/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/seq_file.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/serial.h/1.19.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/serial167.h/1.2/Thu Jun 17 13:31:14 1999/-ko/Tlinux_2_4_20
-+/serialP.h/1.15.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/serial_reg.h/1.6/Thu Jun 14 04:24:27 2001/-ko/Tlinux_2_4_20
-+/serio.h/1.3.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/shm.h/1.13/Wed Jan 10 17:18:06 2001/-ko/Tlinux_2_4_20
-+/shmem_fs.h/1.3.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
-+/signal.h/1.6/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/sisfb.h/1.3.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/skbuff.h/1.27.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/slab.h/1.20.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/smb.h/1.6/Thu Jun 14 04:24:29 2001/-ko/Tlinux_2_4_20
-+/smb_fs.h/1.21/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/smb_fs_i.h/1.9/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
-+/smb_fs_sb.h/1.8/Thu Jun 14 04:24:29 2001/-ko/Tlinux_2_4_20
-+/smb_mount.h/1.5.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/smbno.h/1.4/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/smp.h/1.13/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/smp_lock.h/1.4/Fri Apr 28 01:09:55 2000/-ko/Tlinux_2_4_20
-+/socket.h/1.21.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
-+/sockios.h/1.12/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/som.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/sonet.h/1.3/Mon Mar 27 23:54:41 2000/-ko/Tlinux_2_4_20
-+/sonypi.h/1.3.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/sound.h/1.4/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/soundcard.h/1.11/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/soundmodem.h/1.2/Tue Mar 17 22:17:28 1998/-ko/Tlinux_2_4_20
-+/spinlock.h/1.11.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/stallion.h/1.5/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/stat.h/1.2/Tue Aug 25 09:23:07 1998/-ko/Tlinux_2_4_20
-+/stddef.h/1.2/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/string.h/1.9/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/stringify.h/1.1.2.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
-+/swap.h/1.46.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/swapctl.h/1.7/Fri Oct 19 01:25:04 2001/-ko/Tlinux_2_4_20
-+/synclink.h/1.6.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/sys.h/1.1.1.1/Sun Jun 1 03:17:02 1997/-ko/Tlinux_2_4_20
-+/sysctl.h/1.44.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/sysrq.h/1.7.2.2/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/sysv_fs.h/1.23/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/sysv_fs_i.h/1.4/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/sysv_fs_sb.h/1.5/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/tcp.h/1.10/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/tcp_diag.h/1.1.2.1/Sat Dec 29 05:38:23 2001/-ko/Tlinux_2_4_20
-+/telephony.h/1.6.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/termios.h/1.1.1.1/Sun Jun 1 03:17:06 1997/-ko/Tlinux_2_4_20
-+/threads.h/1.4.2.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
-+/ticable.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/time.h/1.6.4.1/Tue Feb 26 06:00:31 2002/-ko/Tlinux_2_4_20
-+/timer.h/1.20/Tue Nov 6 07:56:14 2001/-ko/Tlinux_2_4_20
-+/times.h/1.1.1.1/Sun Jun 1 03:17:05 1997/-ko/Tlinux_2_4_20
-+/timex.h/1.5/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
-+/toshiba.h/1.1/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/tpqic02.h/1.4/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/tqueue.h/1.11/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/trdevice.h/1.5.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/tty.h/1.27.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/tty_driver.h/1.6/Thu Feb 24 00:13:20 2000/-ko/Tlinux_2_4_20
-+/tty_flip.h/1.3/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
-+/tty_ldisc.h/1.6/Sun Aug 26 14:26:08 2001/-ko/Tlinux_2_4_20
-+/types.h/1.7.4.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/udf_fs.h/1.11.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/udf_fs_i.h/1.4.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/udf_fs_sb.h/1.6.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/udp.h/1.2/Fri Sep 12 01:34:17 1997/-ko/Tlinux_2_4_20
-+/ufs_fs.h/1.25/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/ufs_fs_i.h/1.7/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/ufs_fs_sb.h/1.8/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/uio.h/1.1.1.1/Sun Jun 1 03:17:03 1997/-ko/Tlinux_2_4_20
-+/ultrasound.h/1.1.1.1/Sun Jun 1 03:17:01 1997/-ko/Tlinux_2_4_20
-+/umem.h/1.1.2.1/Wed Jun 26 22:36:46 2002/-ko/Tlinux_2_4_20
-+/umsdos_fs.h/1.12/Sun Mar 19 01:28:59 2000/-ko/Tlinux_2_4_20
-+/umsdos_fs.p/1.15/Tue Aug 8 18:02:02 2000/-ko/Tlinux_2_4_20
-+/umsdos_fs_i.h/1.7/Sat Jul 8 02:59:04 2000/-ko/Tlinux_2_4_20
-+/un.h/1.1.1.1/Sun Jun 1 03:17:00 1997/-ko/Tlinux_2_4_20
-+/unistd.h/1.1.1.1/Sun Jun 1 03:17:01 1997/-ko/Tlinux_2_4_20
-+/usb.h/1.23.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/usbdev_fs_i.h/1.1/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/usbdev_fs_sb.h/1.2/Thu Jun 14 04:24:30 2001/-ko/Tlinux_2_4_20
-+/usbdevice_fs.h/1.6/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
-+/user.h/1.1.1.1/Sun Jun 1 03:17:01 1997/-ko/Tlinux_2_4_20
-+/utime.h/1.1.1.1/Sun Jun 1 03:17:04 1997/-ko/Tlinux_2_4_20
-+/uts.h/1.1/Tue Mar 17 22:17:32 1998/-ko/Tlinux_2_4_20
-+/utsname.h/1.3/Fri Feb 18 00:24:49 2000/-ko/Tlinux_2_4_20
-+/vfs.h/1.1.1.1/Sun Jun 1 03:17:03 1997/-ko/Tlinux_2_4_20
-+/video_decoder.h/1.2/Tue Sep 28 22:27:26 1999/-ko/Tlinux_2_4_20
-+/video_encoder.h/1.2/Tue Sep 28 22:27:26 1999/-ko/Tlinux_2_4_20
-+/videodev.h/1.27.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/videotext.h/1.2/Tue Aug 25 09:23:12 1998/-ko/Tlinux_2_4_20
-+/vmalloc.h/1.11.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/vt.h/1.1.1.1/Sun Jun 1 03:17:00 1997/-ko/Tlinux_2_4_20
-+/vt_buffer.h/1.6/Tue Nov 6 00:55:30 2001/-ko/Tlinux_2_4_20
-+/vt_kern.h/1.7.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/wait.h/1.13/Sun Dec 2 11:34:59 2001/-ko/Tlinux_2_4_20
-+/wanpipe.h/1.8/Sat Sep 22 12:49:41 2001/-ko/Tlinux_2_4_20
-+/wanrouter.h/1.13.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/watchdog.h/1.3.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/wavefront.h/1.4/Wed Jun 13 17:28:16 2001/-ko/Tlinux_2_4_20
-+/wireless.h/1.8.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/wrapper.h/1.10/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/x25.h/1.4/Fri Apr 28 01:09:55 2000/-ko/Tlinux_2_4_20
-+/xattr.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/yam.h/1.2/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/zconf.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/zftape.h/1.2/Thu Oct 5 01:19:02 2000/-ko/Tlinux_2_4_20
-+/zlib.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/zorro.h/1.9.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/zorro_ids.h/1.2/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+/zutil.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+D/byteorder////
-+D/isdn////
-+D/lockd////
-+D/mtd////
-+D/netfilter_arp////
-+D/netfilter_ipv4////
-+D/netfilter_ipv6////
-+D/nfsd////
-+D/raid////
-+D/sunrpc////
-diff -urNd -urNd linux-2.4.20/include/linux/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/CVS/Repository
---- linux-2.4.20/include/linux/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Repository 2005-01-06 23:07:15.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux
-diff -urNd -urNd linux-2.4.20/include/linux/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/CVS/Root
---- linux-2.4.20/include/linux/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Root 2005-01-06 23:07:15.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/CVS/Tag
---- linux-2.4.20/include/linux/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/CVS/Tag 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/.cvsignore linux-2.4.20-mipscvs-20050106/include/linux/.cvsignore
---- linux-2.4.20/include/linux/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/.cvsignore 1997-07-23 20:44:54.000000000 -0500
-@@ -0,0 +1,5 @@
-+autoconf.h
-+version.h
-+compile.h
-+modules
-+modversions.h
-diff -urNd -urNd linux-2.4.20/include/linux/elf.h linux-2.4.20-mipscvs-20050106/include/linux/elf.h
---- linux-2.4.20/include/linux/elf.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/elf.h 2002-09-11 07:45:39.000000000 -0500
-@@ -32,11 +32,16 @@
- #define PT_LOPROC 0x70000000
- #define PT_HIPROC 0x7fffffff
- #define PT_MIPS_REGINFO 0x70000000
-+#define PT_MIPS_OPTIONS 0x70000001
-
- /* Flags in the e_flags field of the header */
- #define EF_MIPS_NOREORDER 0x00000001
- #define EF_MIPS_PIC 0x00000002
- #define EF_MIPS_CPIC 0x00000004
-+#define EF_MIPS_ABI2 0x00000020
-+#define EF_MIPS_OPTIONS_FIRST 0x00000080
-+#define EF_MIPS_32BITMODE 0x00000100
-+#define EF_MIPS_ABI 0x0000f000
- #define EF_MIPS_ARCH 0xf0000000
-
- /* These constants define the different elf file types */
-@@ -60,7 +65,7 @@
-
- #define EM_MIPS 8 /* MIPS R3000 (officially, big-endian only) */
-
--#define EM_MIPS_RS4_BE 10 /* MIPS R4000 big-endian */
-+#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */
-
- #define EM_PARISC 15 /* HPPA */
-
-diff -urNd -urNd linux-2.4.20/include/linux/fb.h linux-2.4.20-mipscvs-20050106/include/linux/fb.h
---- linux-2.4.20/include/linux/fb.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/linux/fb.h 2002-12-29 14:08:23.000000000 -0600
-@@ -95,6 +95,7 @@
- #define FB_ACCEL_SIS_GLAMOUR 36 /* SiS 300/630/540 */
- #define FB_ACCEL_3DLABS_PERMEDIA3 37 /* 3Dlabs Permedia 3 */
- #define FB_ACCEL_ATI_RADEON 38 /* ATI Radeon family */
-+#define FB_ACCEL_EPSON_SED1356 39 /* Epson SED1356 */
-
-
- #define FB_ACCEL_NEOMAGIC_NM2070 90 /* NeoMagic NM2070 */
-diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Entries
---- linux-2.4.20/include/linux/isdn/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Entries 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1,2 @@
-+/tpam.h/1.1.2.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Repository
---- linux-2.4.20/include/linux/isdn/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Repository 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/isdn
-diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Root
---- linux-2.4.20/include/linux/isdn/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Root 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/isdn/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Tag
---- linux-2.4.20/include/linux/isdn/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/isdn/CVS/Tag 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Entries
---- linux-2.4.20/include/linux/lockd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Entries 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1,9 @@
-+/bind.h/1.2/Mon Mar 13 20:55:41 2000/-ko/Tlinux_2_4_20
-+/debug.h/1.2/Thu Feb 24 00:13:21 2000/-ko/Tlinux_2_4_20
-+/lockd.h/1.9/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/nlm.h/1.4/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/share.h/1.1.1.1/Sun Jun 1 03:17:07 1997/-ko/Tlinux_2_4_20
-+/sm_inter.h/1.1.1.1/Sun Jun 1 03:17:08 1997/-ko/Tlinux_2_4_20
-+/xdr.h/1.4/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
-+/xdr4.h/1.2/Mon Mar 13 20:55:41 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Repository
---- linux-2.4.20/include/linux/lockd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Repository 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/lockd
-diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Root
---- linux-2.4.20/include/linux/lockd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Root 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/lockd/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Tag
---- linux-2.4.20/include/linux/lockd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/lockd/CVS/Tag 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/mc146818rtc.h linux-2.4.20-mipscvs-20050106/include/linux/mc146818rtc.h
---- linux-2.4.20/include/linux/mc146818rtc.h 2001-11-22 13:46:58.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/mc146818rtc.h 2002-09-02 08:55:56.000000000 -0500
-@@ -98,4 +98,12 @@
- #define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10)
- #endif
-
-+#ifndef RTC_IO_EXTENT
-+#define RTC_IO_EXTENT 0x10 /* Only really two ports, but... */
-+#endif
-+
-+#ifndef RTC_IOMAPPED
-+#define RTC_IOMAPPED 1 /* Default to I/O mapping. */
-+#endif
-+
- #endif /* _MC146818RTC_H */
-diff -urNd -urNd linux-2.4.20/include/linux/miscdevice.h linux-2.4.20-mipscvs-20050106/include/linux/miscdevice.h
---- linux-2.4.20/include/linux/miscdevice.h 2002-08-02 19:39:45.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/linux/miscdevice.h 2002-06-26 17:36:46.000000000 -0500
-@@ -22,8 +22,9 @@
- #define NVRAM_MINOR 144
- #define I2O_MINOR 166
- #define MICROCODE_MINOR 184
--#define MWAVE_MINOR 219 /* ACP/Mwave Modem */
--#define MPT_MINOR 220
-+#define GPIO_MINOR 185
-+#define MWAVE_MINOR 219 /* ACP/Mwave Modem */
-+#define MPT_MINOR 220
- #define MISC_DYNAMIC_MINOR 255
-
- #define SGI_GRAPHICS_MINOR 146
-@@ -36,6 +37,8 @@
-
- #define TUN_MINOR 200
-
-+#define LCD_MINOR 140 /* Inofficial Linux/MIPS only alloc */
-+
- extern int misc_init(void);
-
- struct miscdevice
-diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Entries
---- linux-2.4.20/include/linux/mtd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Entries 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1,19 @@
-+/cfi.h/1.7/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/cfi_endian.h/1.2/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/compatmac.h/1.1.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/concat.h/1.1.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/doc2000.h/1.6/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/flashchip.h/1.2/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
-+/ftl.h/1.3.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/gen_probe.h/1.1/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/iflash.h/1.2/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/jedec.h/1.2/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/map.h/1.7/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/mtd.h/1.4/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
-+/nand.h/1.2/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/nand_ecc.h/1.1/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
-+/nand_ids.h/1.1/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/nftl.h/1.3/Wed Aug 22 03:25:12 2001/-ko/Tlinux_2_4_20
-+/partitions.h/1.2.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/pmc551.h/1.3/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Repository
---- linux-2.4.20/include/linux/mtd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Repository 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/mtd
-diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Root
---- linux-2.4.20/include/linux/mtd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Root 2005-01-06 23:07:33.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/mtd/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Tag
---- linux-2.4.20/include/linux/mtd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/mtd/CVS/Tag 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Entries
---- linux-2.4.20/include/linux/netfilter_arp/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Entries 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1,2 @@
-+/arp_tables.h/1.1.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Repository
---- linux-2.4.20/include/linux/netfilter_arp/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Repository 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/netfilter_arp
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Root
---- linux-2.4.20/include/linux/netfilter_arp/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Root 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_arp/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Tag
---- linux-2.4.20/include/linux/netfilter_arp/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_arp/CVS/Tag 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Entries
---- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Entries 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1,47 @@
-+/compat_firewall.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ip_conntrack.h/1.8.2.3/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_core.h/1.4.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/ip_conntrack_ftp.h/1.3.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_helper.h/1.2.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_icmp.h/1.1/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/ip_conntrack_irc.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_protocol.h/1.3.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_tcp.h/1.1.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_tuple.h/1.5.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ip_nat.h/1.2.2.2/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_nat_core.h/1.2/Sat Jul 15 03:32:28 2000/-ko/Tlinux_2_4_20
-+/ip_nat_helper.h/1.3.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_nat_protocol.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ip_nat_rule.h/1.1.4.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ip_queue.h/1.3/Mon Aug 28 22:00:25 2000/-ko/Tlinux_2_4_20
-+/ip_tables.h/1.6.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ipchains_core.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipfwadm_core.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_DSCP.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ipt_ECN.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ipt_LOG.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_MARK.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_REJECT.h/1.3/Sat Jul 15 03:32:28 2000/-ko/Tlinux_2_4_20
-+/ipt_TCPMSS.h/1.1/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/ipt_TOS.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_ULOG.h/1.1.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ipt_ah.h/1.1.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ipt_conntrack.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ipt_dscp.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ipt_ecn.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ipt_esp.h/1.1.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ipt_helper.h/1.1.2.1/Wed Sep 11 12:45:40 2002/-ko/Tlinux_2_4_20
-+/ipt_length.h/1.1/Tue Nov 6 07:56:15 2001/-ko/Tlinux_2_4_20
-+/ipt_limit.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_mac.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_mark.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_multiport.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_owner.h/1.1.4.1/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
-+/ipt_pkttype.h/1.1.2.1/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
-+/ipt_state.h/1.2/Fri Apr 28 01:09:57 2000/-ko/Tlinux_2_4_20
-+/ipt_tcpmss.h/1.1/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/ipt_tos.h/1.1/Thu Mar 23 02:26:01 2000/-ko/Tlinux_2_4_20
-+/ipt_ttl.h/1.1/Tue Nov 6 07:56:15 2001/-ko/Tlinux_2_4_20
-+/listhelp.h/1.2/Fri Aug 24 03:38:56 2001/-ko/Tlinux_2_4_20
-+/lockhelp.h/1.2/Thu Jan 11 04:02:45 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Repository
---- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Repository 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/netfilter_ipv4
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Root
---- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Root 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv4/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Tag
---- linux-2.4.20/include/linux/netfilter_ipv4/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv4/CVS/Tag 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Entries
---- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Entries 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1,11 @@
-+/ip6_tables.h/1.3.2.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ip6t_LOG.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_MARK.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_REJECT.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_length.h/1.1.2.1/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
-+/ip6t_limit.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_mac.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_mark.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_multiport.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/ip6t_owner.h/1.1/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Repository
---- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Repository 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/netfilter_ipv6
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Root
---- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Root 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/netfilter_ipv6/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Tag
---- linux-2.4.20/include/linux/netfilter_ipv6/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/netfilter_ipv6/CVS/Tag 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Entries
---- linux-2.4.20/include/linux/nfsd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Entries 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1,13 @@
-+/auth.h/1.1.1.1/Sun Jun 1 03:17:07 1997/-ko/Tlinux_2_4_20
-+/cache.h/1.2/Mon Jul 3 21:46:10 2000/-ko/Tlinux_2_4_20
-+/const.h/1.3/Wed Apr 19 04:00:21 2000/-ko/Tlinux_2_4_20
-+/debug.h/1.1.1.1/Sun Jun 1 03:17:07 1997/-ko/Tlinux_2_4_20
-+/export.h/1.11.4.2/Wed Sep 11 12:45:41 2002/-ko/Tlinux_2_4_20
-+/interface.h/1.1.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/nfsd.h/1.17.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/nfsfh.h/1.19/Fri Aug 24 03:38:57 2001/-ko/Tlinux_2_4_20
-+/stats.h/1.5/Fri Jul 21 22:01:01 2000/-ko/Tlinux_2_4_20
-+/syscall.h/1.9/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
-+/xdr.h/1.5/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
-+/xdr3.h/1.5/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Repository
---- linux-2.4.20/include/linux/nfsd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Repository 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/nfsd
-diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Root
---- linux-2.4.20/include/linux/nfsd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Root 2005-01-06 23:07:34.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/nfsd/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Tag
---- linux-2.4.20/include/linux/nfsd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/nfsd/CVS/Tag 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/pci_ids.h linux-2.4.20-mipscvs-20050106/include/linux/pci_ids.h
---- linux-2.4.20/include/linux/pci_ids.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/pci_ids.h 2003-01-11 11:53:18.000000000 -0600
-@@ -448,6 +448,7 @@
- #define PCI_DEVICE_ID_NEC_PCX2 0x0046
- #define PCI_DEVICE_ID_NEC_NILE4 0x005a
- #define PCI_DEVICE_ID_NEC_VRC5476 0x009b
-+#define PCI_DEVICE_ID_NEC_VRC4173 0x00a5
- #define PCI_DEVICE_ID_NEC_VRC5477_AC97 0x00a6
-
- #define PCI_VENDOR_ID_FD 0x1036
-diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Entries
---- linux-2.4.20/include/linux/raid/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Entries 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1,12 @@
-+/linear.h/1.2/Fri Aug 25 05:30:01 2000/-ko/Tlinux_2_4_20
-+/md.h/1.11/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
-+/md_compatible.h/1.5.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/md_k.h/1.15.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/md_p.h/1.3/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/md_u.h/1.6/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
-+/multipath.h/1.2/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/raid0.h/1.3/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/raid1.h/1.5/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
-+/raid5.h/1.5/Wed Aug 22 03:25:13 2001/-ko/Tlinux_2_4_20
-+/xor.h/1.2/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Repository
---- linux-2.4.20/include/linux/raid/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Repository 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/raid
-diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Root
---- linux-2.4.20/include/linux/raid/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Root 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/raid/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Tag
---- linux-2.4.20/include/linux/raid/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/raid/CVS/Tag 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/sched.h linux-2.4.20-mipscvs-20050106/include/linux/sched.h
---- linux-2.4.20/include/linux/sched.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/sched.h 2002-09-11 07:45:40.000000000 -0500
-@@ -616,6 +616,10 @@
- extern int in_group_p(gid_t);
- extern int in_egroup_p(gid_t);
-
-+extern ATTRIB_NORET void cpu_idle(void);
-+
-+extern void release_task(struct task_struct * p);
-+
- extern void proc_caches_init(void);
- extern void flush_signals(struct task_struct *);
- extern void flush_signal_handlers(struct task_struct *);
-diff -urNd -urNd linux-2.4.20/include/linux/spinlock.h linux-2.4.20-mipscvs-20050106/include/linux/spinlock.h
---- linux-2.4.20/include/linux/spinlock.h 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/spinlock.h 2003-01-11 11:53:18.000000000 -0600
-@@ -3,6 +3,8 @@
-
- #include <linux/config.h>
-
-+#include <asm/system.h>
-+
- /*
- * These are the generic versions of the spinlocks and read-write
- * locks..
-diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Entries linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Entries
---- linux-2.4.20/include/linux/sunrpc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Entries 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1,14 @@
-+/auth.h/1.6/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
-+/clnt.h/1.9.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/debug.h/1.3/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/msg_prot.h/1.1.1.1/Sun Jun 1 03:17:07 1997/-ko/Tlinux_2_4_20
-+/sched.h/1.14.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/stats.h/1.4/Fri Aug 24 03:38:57 2001/-ko/Tlinux_2_4_20
-+/svc.h/1.5.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/svcauth.h/1.1.1.1/Sun Jun 1 03:17:07 1997/-ko/Tlinux_2_4_20
-+/svcsock.h/1.5.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/timer.h/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/types.h/1.3.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/xdr.h/1.4.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/xprt.h/1.11.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Repository linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Repository
---- linux-2.4.20/include/linux/sunrpc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Repository 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/linux/sunrpc
-diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Root linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Root
---- linux-2.4.20/include/linux/sunrpc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Root 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/linux/sunrpc/CVS/Tag linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Tag
---- linux-2.4.20/include/linux/sunrpc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/sunrpc/CVS/Tag 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/linux/threads.h linux-2.4.20-mipscvs-20050106/include/linux/threads.h
---- linux-2.4.20/include/linux/threads.h 2002-02-25 13:38:13.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/linux/threads.h 2002-02-26 00:00:31.000000000 -0600
-@@ -9,7 +9,11 @@
- */
-
- #ifdef CONFIG_SMP
--#define NR_CPUS 32 /* Max processors that can be running in SMP */
-+#ifdef __mips__
-+#define NR_CPUS _MIPS_SZLONG
-+#else
-+#define NR_CPUS 64 /* Max processors that can be running in SMP */
-+#endif
- #else
- #define NR_CPUS 1
- #endif
-diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Entries linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Entries
---- linux-2.4.20/include/math-emu/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Entries 2005-01-06 23:07:36.000000000 -0600
-@@ -0,0 +1,11 @@
-+/double.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/extended.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/op-1.h/1.2.4.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/op-2.h/1.3.2.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/op-4.h/1.1.4.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/op-8.h/1.1.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/op-common.h/1.2.4.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/quad.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/single.h/1.2.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/soft-fp.h/1.2.4.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Repository linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Repository
---- linux-2.4.20/include/math-emu/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Repository 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/math-emu
-diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Root linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Root
---- linux-2.4.20/include/math-emu/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Root 2005-01-06 23:07:35.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/math-emu/CVS/Tag linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Tag
---- linux-2.4.20/include/math-emu/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/math-emu/CVS/Tag 2005-01-06 23:07:36.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Entries
---- linux-2.4.20/include/net/bluetooth/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Entries 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1,6 @@
-+/bluetooth.h/1.2.2.2/Tue Sep 10 15:32:53 2002/-ko/Tlinux_2_4_20
-+/hci.h/1.2.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/hci_core.h/1.2.2.3/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/l2cap.h/1.2.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/sco.h/1.1.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Repository
---- linux-2.4.20/include/net/bluetooth/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Repository 2005-01-06 23:07:37.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/net/bluetooth
-diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Root
---- linux-2.4.20/include/net/bluetooth/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Root 2005-01-06 23:07:37.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/net/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Tag
---- linux-2.4.20/include/net/bluetooth/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/bluetooth/CVS/Tag 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/net/CVS/Entries linux-2.4.20-mipscvs-20050106/include/net/CVS/Entries
---- linux-2.4.20/include/net/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,62 @@
-+/addrconf.h/1.10/Fri Aug 24 03:38:57 2001/-ko/Tlinux_2_4_20
-+/af_unix.h/1.3/Fri Apr 28 01:09:57 2000/-ko/Tlinux_2_4_20
-+/arp.h/1.3/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/atmclip.h/1.4/Fri May 12 21:06:50 2000/-ko/Tlinux_2_4_20
-+/ax25.h/1.9/Wed Jan 10 17:18:09 2001/-ko/Tlinux_2_4_20
-+/checksum.h/1.8/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/datalink.h/1.2/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/dn.h/1.7/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/dn_dev.h/1.3/Wed Feb 16 01:07:58 2000/-ko/Tlinux_2_4_20
-+/dn_fib.h/1.4.4.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
-+/dn_neigh.h/1.3/Tue Mar 7 15:45:43 2000/-ko/Tlinux_2_4_20
-+/dn_nsp.h/1.4/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/dn_route.h/1.4/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/dsfield.h/1.3.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/dst.h/1.12/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/flow.h/1.4/Sun Jun 13 16:36:51 1999/-ko/Tlinux_2_4_20
-+/icmp.h/1.6/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/if_inet6.h/1.7/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/inet_common.h/1.4/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/inet_ecn.h/1.2/Tue Nov 6 07:56:15 2001/-ko/Tlinux_2_4_20
-+/inetpeer.h/1.1.4.1/Tue Feb 26 06:00:32 2002/-ko/Tlinux_2_4_20
-+/ip.h/1.20/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/ip6_fib.h/1.7/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/ip6_fw.h/1.1.1.1/Sun Jun 1 03:16:54 1997/-ko/Tlinux_2_4_20
-+/ip6_route.h/1.8/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/ip_fib.h/1.10/Fri Mar 9 20:34:57 2001/-ko/Tlinux_2_4_20
-+/ipconfig.h/1.3/Thu Jun 14 04:24:30 2001/-ko/Tlinux_2_4_20
-+/ipip.h/1.5/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/ipv6.h/1.15/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/ipx.h/1.9/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/iw_handler.h/1.1.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/lapb.h/1.2/Sun Jul 20 15:01:28 1997/-ko/Tlinux_2_4_20
-+/llc.h/1.3/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/llc_frame.h/1.1.1.1/Sun Jun 1 03:16:54 1997/-ko/Tlinux_2_4_20
-+/llc_name.h/1.1.1.1/Sun Jun 1 03:16:53 1997/-ko/Tlinux_2_4_20
-+/llc_state.h/1.1.1.1/Sun Jun 1 03:16:53 1997/-ko/Tlinux_2_4_20
-+/ndisc.h/1.8.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/neighbour.h/1.8/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/netrom.h/1.7/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/p8022.h/1.2/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/pkt_cls.h/1.4/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/pkt_sched.h/1.11.4.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/profile.h/1.3/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/protocol.h/1.9/Wed Aug 22 03:25:13 2001/-ko/Tlinux_2_4_20
-+/psnap.h/1.2/Sat Oct 9 00:01:45 1999/-ko/Tlinux_2_4_20
-+/raw.h/1.4/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/rawv6.h/1.4/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/rose.h/1.9/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+/route.h/1.16.2.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/scm.h/1.4/Fri Mar 9 20:34:57 2001/-ko/Tlinux_2_4_20
-+/slhc_vj.h/1.4/Sat Jul 8 02:59:04 2000/-ko/Tlinux_2_4_20
-+/snmp.h/1.13/Wed Aug 22 03:25:13 2001/-ko/Tlinux_2_4_20
-+/sock.h/1.38.2.2/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/spx.h/1.2/Thu May 7 03:03:49 1998/-ko/Tlinux_2_4_20
-+/syncppp.h/1.2/Thu Jun 14 04:24:30 2001/-ko/Tlinux_2_4_20
-+/tcp.h/1.37.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/tcp_ecn.h/1.3/Tue Nov 6 07:56:15 2001/-ko/Tlinux_2_4_20
-+/transp_v6.h/1.4/Sun Jun 13 16:36:54 1999/-ko/Tlinux_2_4_20
-+/udp.h/1.7/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/x25.h/1.12/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+D/bluetooth////
-+D/irda////
-diff -urNd -urNd linux-2.4.20/include/net/CVS/Repository linux-2.4.20-mipscvs-20050106/include/net/CVS/Repository
---- linux-2.4.20/include/net/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Repository 2005-01-06 23:07:36.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/net
-diff -urNd -urNd linux-2.4.20/include/net/CVS/Root linux-2.4.20-mipscvs-20050106/include/net/CVS/Root
---- linux-2.4.20/include/net/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Root 2005-01-06 23:07:36.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/net/CVS/Tag linux-2.4.20-mipscvs-20050106/include/net/CVS/Tag
---- linux-2.4.20/include/net/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/CVS/Tag 2005-01-06 23:07:37.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Entries linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Entries
---- linux-2.4.20/include/net/irda/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Entries 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1,45 @@
-+/ali-ircc.h/1.1/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
-+/au1000_ircc.h/1.1/Wed Oct 31 04:49:04 2001/-ko/Tlinux_2_4_20
-+/crc.h/1.2/Thu Jun 17 13:31:25 1999/-ko/Tlinux_2_4_20
-+/discovery.h/1.4.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/ircomm_core.h/1.4/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/ircomm_event.h/1.1/Sat Oct 9 00:01:46 1999/-ko/Tlinux_2_4_20
-+/ircomm_lmp.h/1.1/Sat Oct 9 00:01:46 1999/-ko/Tlinux_2_4_20
-+/ircomm_param.h/1.1/Sat Oct 9 00:01:46 1999/-ko/Tlinux_2_4_20
-+/ircomm_ttp.h/1.1/Sat Oct 9 00:01:46 1999/-ko/Tlinux_2_4_20
-+/ircomm_tty.h/1.6.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/ircomm_tty_attach.h/1.2/Sat Feb 5 06:47:46 2000/-ko/Tlinux_2_4_20
-+/irda-usb.h/1.4/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/irda.h/1.13/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/irda_device.h/1.11/Fri Mar 9 20:34:57 2001/-ko/Tlinux_2_4_20
-+/iriap.h/1.8/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/iriap_event.h/1.2/Sat Jan 29 01:42:31 2000/-ko/Tlinux_2_4_20
-+/irias_object.h/1.7/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
-+/irlan_client.h/1.2.4.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/irlan_common.h/1.9/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/irlan_eth.h/1.5/Wed Jul 12 01:43:10 2000/-ko/Tlinux_2_4_20
-+/irlan_event.h/1.2/Sun Jun 13 16:36:58 1999/-ko/Tlinux_2_4_20
-+/irlan_filter.h/1.1/Sun Jun 13 16:36:58 1999/-ko/Tlinux_2_4_20
-+/irlan_provider.h/1.2/Thu Jun 17 13:31:27 1999/-ko/Tlinux_2_4_20
-+/irlap.h/1.11.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/irlap_event.h/1.5.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/irlap_frame.h/1.5/Fri Mar 9 20:34:57 2001/-ko/Tlinux_2_4_20
-+/irlmp.h/1.10.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/irlmp_event.h/1.4/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/irlmp_frame.h/1.3/Sat Feb 5 06:47:46 2000/-ko/Tlinux_2_4_20
-+/irmod.h/1.10/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/irport.h/1.8/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
-+/irqueue.h/1.6/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/irttp.h/1.7.4.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
-+/irtty.h/1.9/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/nsc-ircc.h/1.2/Wed Feb 23 00:41:41 2000/-ko/Tlinux_2_4_20
-+/parameters.h/1.4/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/qos.h/1.7/Thu Aug 23 22:24:50 2001/-ko/Tlinux_2_4_20
-+/smc-ircc.h/1.6/Sat Sep 22 12:49:42 2001/-ko/Tlinux_2_4_20
-+/timer.h/1.6/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/toshoboe.h/1.5/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
-+/vlsi_ir.h/1.2/Mon Nov 5 20:16:30 2001/-ko/Tlinux_2_4_20
-+/w83977af.h/1.2/Sat Feb 5 06:47:46 2000/-ko/Tlinux_2_4_20
-+/w83977af_ir.h/1.5/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
-+/wrapper.h/1.7/Fri Feb 18 22:06:20 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Repository linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Repository
---- linux-2.4.20/include/net/irda/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Repository 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/net/irda
-diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Root linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Root
---- linux-2.4.20/include/net/irda/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Root 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/net/irda/CVS/Tag linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Tag
---- linux-2.4.20/include/net/irda/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/net/irda/CVS/Tag 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/pcmcia/cs_types.h linux-2.4.20-mipscvs-20050106/include/pcmcia/cs_types.h
---- linux-2.4.20/include/pcmcia/cs_types.h 2001-10-11 11:43:29.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/cs_types.h 2002-02-15 13:54:43.000000000 -0600
-@@ -36,7 +36,7 @@
- #include <sys/types.h>
- #endif
-
--#ifdef __arm__
-+#if defined(__arm__) || defined(__mips__)
- typedef u_int ioaddr_t;
- #else
- typedef u_short ioaddr_t;
-diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Entries linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Entries
---- linux-2.4.20/include/pcmcia/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Entries 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1,15 @@
-+/bulkmem.h/1.6/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/bus_ops.h/1.5/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/ciscode.h/1.6.2.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
-+/cisreg.h/1.5/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/cistpl.h/1.6/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/cs.h/1.8.2.1/Sat Dec 29 05:38:24 2001/-ko/Tlinux_2_4_20
-+/cs_types.h/1.7.2.1/Fri Feb 15 19:54:43 2002/-ko/Tlinux_2_4_20
-+/driver_ops.h/1.5/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/ds.h/1.5/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/ftl.h/1.4/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/mem_op.h/1.4/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/memory.h/1.4/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/ss.h/1.7.2.1/Wed Jun 26 22:36:47 2002/-ko/Tlinux_2_4_20
-+/version.h/1.7/Thu Nov 23 02:00:56 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Repository linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Repository
---- linux-2.4.20/include/pcmcia/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Repository 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/pcmcia
-diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Root linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Root
---- linux-2.4.20/include/pcmcia/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Root 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/pcmcia/CVS/Tag linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Tag
---- linux-2.4.20/include/pcmcia/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/pcmcia/CVS/Tag 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Entries linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Entries
---- linux-2.4.20/include/scsi/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Entries 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1,5 @@
-+/scsi.h/1.8.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/scsi_ioctl.h/1.4/Thu Oct 5 01:19:03 2000/-ko/Tlinux_2_4_20
-+/scsicam.h/1.2/Thu Jun 17 13:31:31 1999/-ko/Tlinux_2_4_20
-+/sg.h/1.13.2.3/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Repository linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Repository
---- linux-2.4.20/include/scsi/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Repository 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/scsi
-diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Root linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Root
---- linux-2.4.20/include/scsi/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Root 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/scsi/CVS/Tag linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Tag
---- linux-2.4.20/include/scsi/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/scsi/CVS/Tag 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/video/CVS/Entries linux-2.4.20-mipscvs-20050106/include/video/CVS/Entries
---- linux-2.4.20/include/video/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Entries 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1,24 @@
-+/e1356fb.h/1.1.2.1/Sun Dec 29 20:08:23 2002//Tlinux_2_4_20
-+/fbcon-afb.h/1.1/Mon Jan 4 16:10:30 1999/-ko/Tlinux_2_4_20
-+/fbcon-cfb16.h/1.1/Mon Jan 4 16:10:30 1999/-ko/Tlinux_2_4_20
-+/fbcon-cfb2.h/1.1/Mon Jan 4 16:10:30 1999/-ko/Tlinux_2_4_20
-+/fbcon-cfb24.h/1.1/Mon Jan 4 16:10:31 1999/-ko/Tlinux_2_4_20
-+/fbcon-cfb32.h/1.1/Mon Jan 4 16:10:31 1999/-ko/Tlinux_2_4_20
-+/fbcon-cfb4.h/1.1/Mon Jan 4 16:10:31 1999/-ko/Tlinux_2_4_20
-+/fbcon-cfb8.h/1.1/Mon Jan 4 16:10:31 1999/-ko/Tlinux_2_4_20
-+/fbcon-hga.h/1.1/Sun Mar 12 23:15:53 2000/-ko/Tlinux_2_4_20
-+/fbcon-ilbm.h/1.1/Mon Jan 4 16:10:32 1999/-ko/Tlinux_2_4_20
-+/fbcon-iplan2p2.h/1.1/Mon Jan 4 16:10:32 1999/-ko/Tlinux_2_4_20
-+/fbcon-iplan2p4.h/1.1/Mon Jan 4 16:10:32 1999/-ko/Tlinux_2_4_20
-+/fbcon-iplan2p8.h/1.1/Mon Jan 4 16:10:32 1999/-ko/Tlinux_2_4_20
-+/fbcon-mac.h/1.1/Mon Jan 4 16:10:33 1999/-ko/Tlinux_2_4_20
-+/fbcon-mfb.h/1.1/Mon Jan 4 16:10:33 1999/-ko/Tlinux_2_4_20
-+/fbcon-vga-planes.h/1.1/Thu Jun 17 14:09:07 1999/-ko/Tlinux_2_4_20
-+/fbcon-vga.h/1.1/Mon Jan 4 16:10:33 1999/-ko/Tlinux_2_4_20
-+/fbcon.h/1.11.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/font.h/1.2/Mon Feb 15 02:22:58 1999/-ko/Tlinux_2_4_20
-+/macmodes.h/1.4/Wed Aug 22 03:25:17 2001/-ko/Tlinux_2_4_20
-+/newport.h/1.3/Sat Feb 10 01:01:27 2001/-ko/Tlinux_2_4_20
-+/s3blit.h/1.1/Mon Jan 4 16:10:34 1999/-ko/Tlinux_2_4_20
-+/sbusfb.h/1.4/Sat Feb 5 06:47:46 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/include/video/CVS/Repository linux-2.4.20-mipscvs-20050106/include/video/CVS/Repository
---- linux-2.4.20/include/video/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Repository 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+linux/include/video
-diff -urNd -urNd linux-2.4.20/include/video/CVS/Root linux-2.4.20-mipscvs-20050106/include/video/CVS/Root
---- linux-2.4.20/include/video/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Root 2005-01-06 23:07:38.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/include/video/CVS/Tag linux-2.4.20-mipscvs-20050106/include/video/CVS/Tag
---- linux-2.4.20/include/video/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/video/CVS/Tag 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/include/video/e1356fb.h linux-2.4.20-mipscvs-20050106/include/video/e1356fb.h
---- linux-2.4.20/include/video/e1356fb.h 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/include/video/e1356fb.h 2002-12-29 14:08:23.000000000 -0600
-@@ -0,0 +1,73 @@
-+/*
-+ * e1356fb.h -- Epson SED1356 Framebuffer Driver IOCTL Interface
-+ *
-+ * Copyright 2001 MontaVista Software Inc.
-+ * Author: MontaVista Software, Inc.
-+ * stevel@mvista.com or source@mvista.com
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License as published by the
-+ * Free Software Foundation; either version 2 of the License, or (at your
-+ * option) any later version.
-+ *
-+ * THIS SOFTWARE IS PROVIDED ``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.
-+ *
-+ * You should have received a copy of the GNU General Public License along
-+ * with this program; if not, write to the Free Software Foundation, Inc.,
-+ * 675 Mass Ave, Cambridge, MA 02139, USA.
-+ */
-+
-+/*
-+ * IOCTLs to SED1356 fb driver. 0x45 is 'E' for Epson.
-+ */
-+#define FBIO_SED1356_BITBLT 0x4500
-+
-+typedef struct {
-+ int operation;
-+ int rop;
-+ int src_y;
-+ int src_x;
-+ int src_width;
-+ int src_height;
-+ int dst_y;
-+ int dst_x;
-+ int dst_width;
-+ int dst_height;
-+ int pattern_x;
-+ int pattern_y;
-+ int attribute;
-+ unsigned int bg_color;
-+ unsigned int fg_color;
-+ unsigned short* src;
-+ int srcsize;
-+ int srcstride;
-+} blt_info_t;
-+
-+enum blt_attribute_t {
-+ BLT_ATTR_TRANSPARENT = 1
-+};
-+
-+enum blt_operation_t {
-+ BLT_WRITE_ROP = 0,
-+ BLT_READ,
-+ BLT_MOVE_POS_ROP,
-+ BLT_MOVE_NEG_ROP,
-+ BLT_WRITE_TRANSP,
-+ BLT_MOVE_POS_TRANSP,
-+ BLT_PAT_FILL_ROP,
-+ BLT_PAT_FILL_TRANSP,
-+ BLT_COLOR_EXP,
-+ BLT_COLOR_EXP_TRANSP,
-+ BLT_MOVE_COLOR_EXP,
-+ BLT_MOVE_COLOR_EXP_TRANSP,
-+ BLT_SOLID_FILL
-+};
-diff -urNd -urNd linux-2.4.20/init/CVS/Entries linux-2.4.20-mipscvs-20050106/init/CVS/Entries
---- linux-2.4.20/init/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/init/CVS/Entries 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1,4 @@
-+/do_mounts.c/1.1.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/main.c/1.69.2.4/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/version.c/1.4/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/init/CVS/Repository linux-2.4.20-mipscvs-20050106/init/CVS/Repository
---- linux-2.4.20/init/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/init/CVS/Repository 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/init
-diff -urNd -urNd linux-2.4.20/init/CVS/Root linux-2.4.20-mipscvs-20050106/init/CVS/Root
---- linux-2.4.20/init/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/init/CVS/Root 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/init/CVS/Tag linux-2.4.20-mipscvs-20050106/init/CVS/Tag
---- linux-2.4.20/init/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/init/CVS/Tag 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/init/main.c linux-2.4.20-mipscvs-20050106/init/main.c
---- linux-2.4.20/init/main.c 2002-08-02 19:39:46.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/init/main.c 2002-06-26 17:36:48.000000000 -0500
-@@ -286,7 +286,6 @@
-
-
- extern void setup_arch(char **);
--extern void cpu_idle(void);
-
- unsigned long wait_init_idle;
-
-diff -urNd -urNd linux-2.4.20/ipc/CVS/Entries linux-2.4.20-mipscvs-20050106/ipc/CVS/Entries
---- linux-2.4.20/ipc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Entries 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.2/Tue Mar 17 22:17:47 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:09 2001/-ko/Tlinux_2_4_20
-+/msg.c/1.15.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/sem.c/1.18.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/shm.c/1.56.2.3/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
-+/util.c/1.23.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/util.h/1.6.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/ipc/CVS/Repository linux-2.4.20-mipscvs-20050106/ipc/CVS/Repository
---- linux-2.4.20/ipc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Repository 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/ipc
-diff -urNd -urNd linux-2.4.20/ipc/CVS/Root linux-2.4.20-mipscvs-20050106/ipc/CVS/Root
---- linux-2.4.20/ipc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Root 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/ipc/CVS/Tag linux-2.4.20-mipscvs-20050106/ipc/CVS/Tag
---- linux-2.4.20/ipc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/ipc/CVS/Tag 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/ipc/.cvsignore linux-2.4.20-mipscvs-20050106/ipc/.cvsignore
---- linux-2.4.20/ipc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/ipc/.cvsignore 1998-03-17 16:17:47.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/kernel/CVS/Entries linux-2.4.20-mipscvs-20050106/kernel/CVS/Entries
---- linux-2.4.20/kernel/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,29 @@
-+/.cvsignore/1.2/Tue Mar 17 22:17:48 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.18/Fri Oct 19 01:25:05 2001/-ko/Tlinux_2_4_20
-+/acct.c/1.22.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/capability.c/1.7/Mon Jun 19 22:45:59 2000/-ko/Tlinux_2_4_20
-+/context.c/1.5/Tue Nov 6 00:55:31 2001/-ko/Tlinux_2_4_20
-+/dma.c/1.9/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/exec_domain.c/1.16.2.2/Tue Feb 26 06:00:33 2002/-ko/Tlinux_2_4_20
-+/exit.c/1.51.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/fork.c/1.58.2.3/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/info.c/1.5/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/itimer.c/1.6/Mon Jul 3 21:46:10 2000/-ko/Tlinux_2_4_20
-+/kmod.c/1.24.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/ksyms.c/1.76.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/module.c/1.30/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/panic.c/1.20.2.2/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/pm.c/1.8.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/printk.c/1.24.2.5/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/ptrace.c/1.17.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/resource.c/1.13.2.1/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/sched.c/1.64.2.5/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/signal.c/1.32.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/softirq.c/1.17.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/sys.c/1.40.2.2/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/sysctl.c/1.46.2.4/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
-+/time.c/1.14.4.4/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/timer.c/1.22.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/uid16.c/1.1/Wed Feb 16 01:07:59 2000/-ko/Tlinux_2_4_20
-+/user.c/1.4/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/kernel/CVS/Repository linux-2.4.20-mipscvs-20050106/kernel/CVS/Repository
---- linux-2.4.20/kernel/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Repository 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+linux/kernel
-diff -urNd -urNd linux-2.4.20/kernel/CVS/Root linux-2.4.20-mipscvs-20050106/kernel/CVS/Root
---- linux-2.4.20/kernel/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Root 2005-01-06 23:07:39.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/kernel/CVS/Tag linux-2.4.20-mipscvs-20050106/kernel/CVS/Tag
---- linux-2.4.20/kernel/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/CVS/Tag 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/kernel/.cvsignore linux-2.4.20-mipscvs-20050106/kernel/.cvsignore
---- linux-2.4.20/kernel/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/.cvsignore 1998-03-17 16:17:48.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/kernel/exit.c linux-2.4.20-mipscvs-20050106/kernel/exit.c
---- linux-2.4.20/kernel/exit.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/exit.c 2003-01-11 11:53:18.000000000 -0600
-@@ -26,7 +26,7 @@
-
- int getrusage(struct task_struct *, int, struct rusage *);
-
--static void release_task(struct task_struct * p)
-+void release_task(struct task_struct * p)
- {
- if (p != current) {
- #ifdef CONFIG_SMP
-diff -urNd -urNd linux-2.4.20/kernel/printk.c linux-2.4.20-mipscvs-20050106/kernel/printk.c
---- linux-2.4.20/kernel/printk.c 2002-08-02 19:39:46.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/kernel/printk.c 2002-06-26 17:36:48.000000000 -0500
-@@ -99,7 +99,7 @@
- /*
- * Setup a list of consoles. Called from init/main.c
- */
--static int __init console_setup(char *str)
-+int __init console_setup(char *str)
- {
- struct console_cmdline *c;
- char name[sizeof(c->name)];
-diff -urNd -urNd linux-2.4.20/kernel/sched.c linux-2.4.20-mipscvs-20050106/kernel/sched.c
---- linux-2.4.20/kernel/sched.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/sched.c 2002-09-11 07:45:42.000000000 -0500
-@@ -116,7 +116,7 @@
-
- #define idle_task(cpu) (init_tasks[cpu_number_map(cpu)])
- #define can_schedule(p,cpu) \
-- ((p)->cpus_runnable & (p)->cpus_allowed & (1 << cpu))
-+ ((p)->cpus_runnable & (p)->cpus_allowed & (1UL << cpu))
-
- #else
-
-diff -urNd -urNd linux-2.4.20/kernel/signal.c linux-2.4.20-mipscvs-20050106/kernel/signal.c
---- linux-2.4.20/kernel/signal.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/kernel/signal.c 2002-06-26 17:36:48.000000000 -0500
-@@ -14,12 +14,21 @@
- #include <linux/init.h>
- #include <linux/sched.h>
-
-+#include <asm/param.h>
- #include <asm/uaccess.h>
-
- /*
- * SLAB caches for signal bits.
- */
-
-+#define DEBUG_SIG 0
-+
-+#if DEBUG_SIG
-+#define SIG_SLAB_DEBUG (SLAB_DEBUG_FREE | SLAB_RED_ZONE /* | SLAB_POISON */)
-+#else
-+#define SIG_SLAB_DEBUG 0
-+#endif
-+
- static kmem_cache_t *sigqueue_cachep;
-
- atomic_t nr_queued_signals;
-@@ -31,7 +40,7 @@
- kmem_cache_create("sigqueue",
- sizeof(struct sigqueue),
- __alignof__(struct sigqueue),
-- 0, NULL, NULL);
-+ SIG_SLAB_DEBUG, NULL, NULL);
- if (!sigqueue_cachep)
- panic("signals_init(): cannot create sigqueue SLAB cache");
- }
-@@ -257,6 +266,11 @@
- {
- int sig = 0;
-
-+#if DEBUG_SIG
-+printk("SIG dequeue (%s:%d): %d ", current->comm, current->pid,
-+ signal_pending(current));
-+#endif
-+
- sig = next_signal(current, mask);
- if (sig) {
- if (current->notifier) {
-@@ -276,6 +290,10 @@
- }
- recalc_sigpending(current);
-
-+#if DEBUG_SIG
-+printk(" %d -> %d\n", signal_pending(current), sig);
-+#endif
-+
- return sig;
- }
-
-@@ -518,6 +536,11 @@
- unsigned long flags;
- int ret;
-
-+
-+#if DEBUG_SIG
-+printk("SIG queue (%s:%d): %d ", t->comm, t->pid, sig);
-+#endif
-+
- ret = -EINVAL;
- if (sig < 0 || sig > _NSIG)
- goto out_nolock;
-@@ -552,6 +575,9 @@
- out:
- spin_unlock_irqrestore(&t->sigmask_lock, flags);
- out_nolock:
-+#if DEBUG_SIG
-+printk(" %d -> %d\n", signal_pending(t), ret);
-+#endif
-
- return ret;
- }
-@@ -753,8 +779,8 @@
- info.si_uid = tsk->uid;
-
- /* FIXME: find out whether or not this is supposed to be c*time. */
-- info.si_utime = tsk->times.tms_utime;
-- info.si_stime = tsk->times.tms_stime;
-+ info.si_utime = hz_to_std(tsk->times.tms_utime);
-+ info.si_stime = hz_to_std(tsk->times.tms_stime);
-
- status = tsk->exit_code & 0x7f;
- why = SI_KERNEL; /* shouldn't happen */
-diff -urNd -urNd linux-2.4.20/kernel/sys.c linux-2.4.20-mipscvs-20050106/kernel/sys.c
---- linux-2.4.20/kernel/sys.c 2002-08-02 19:39:46.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/kernel/sys.c 2002-06-26 17:36:48.000000000 -0500
-@@ -791,16 +791,23 @@
-
- asmlinkage long sys_times(struct tms * tbuf)
- {
-+ struct tms temp;
-+
- /*
- * In the SMP world we might just be unlucky and have one of
- * the times increment as we use it. Since the value is an
- * atomically safe type this is just fine. Conceptually its
- * as if the syscall took an instant longer to occur.
- */
-- if (tbuf)
-- if (copy_to_user(tbuf, &current->times, sizeof(struct tms)))
-+ if (tbuf) {
-+ temp.tms_utime = hz_to_std(current->times.tms_utime);
-+ temp.tms_stime = hz_to_std(current->times.tms_stime);
-+ temp.tms_cutime = hz_to_std(current->times.tms_cutime);
-+ temp.tms_cstime = hz_to_std(current->times.tms_cstime);
-+ if (copy_to_user(tbuf, &temp, sizeof(struct tms)))
- return -EFAULT;
-- return jiffies;
-+ }
-+ return hz_to_std(jiffies);
- }
-
- /*
-diff -urNd -urNd linux-2.4.20/lib/CVS/Entries linux-2.4.20-mipscvs-20050106/lib/CVS/Entries
---- linux-2.4.20/lib/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.2/Tue Mar 17 22:17:54 1998/-ko/Tlinux_2_4_20
-+/Config.in/1.2.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.2/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/brlock.c/1.4/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/bust_spinlocks.c/1.1/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
-+/cmdline.c/1.3/Wed Jun 13 17:28:17 2001/-ko/Tlinux_2_4_20
-+/ctype.c/1.1.1.1/Sun Jun 1 03:16:23 1997/-ko/Tlinux_2_4_20
-+/dec_and_lock.c/1.3/Mon Nov 5 20:16:32 2001/-ko/Tlinux_2_4_20
-+/dump_stack.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/errno.c/1.1.1.1/Sun Jun 1 03:16:23 1997/-ko/Tlinux_2_4_20
-+/inflate.c/1.5.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/rbtree.c/1.1.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/rwsem-spinlock.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/rwsem.c/1.2/Thu Aug 23 22:24:51 2001/-ko/Tlinux_2_4_20
-+/string.c/1.14.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/vsprintf.c/1.16/Tue Nov 6 00:55:31 2001/-ko/Tlinux_2_4_20
-+D/zlib_deflate////
-+D/zlib_inflate////
-diff -urNd -urNd linux-2.4.20/lib/CVS/Repository linux-2.4.20-mipscvs-20050106/lib/CVS/Repository
---- linux-2.4.20/lib/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Repository 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/lib
-diff -urNd -urNd linux-2.4.20/lib/CVS/Root linux-2.4.20-mipscvs-20050106/lib/CVS/Root
---- linux-2.4.20/lib/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Root 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/lib/CVS/Tag linux-2.4.20-mipscvs-20050106/lib/CVS/Tag
---- linux-2.4.20/lib/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/CVS/Tag 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/lib/.cvsignore linux-2.4.20-mipscvs-20050106/lib/.cvsignore
---- linux-2.4.20/lib/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/.cvsignore 1998-03-17 16:17:54.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/lib/string.c linux-2.4.20-mipscvs-20050106/lib/string.c
---- linux-2.4.20/lib/string.c 2002-08-02 19:39:46.000000000 -0500
-+++ linux-2.4.20-mipscvs-20050106/lib/string.c 2002-06-26 17:36:48.000000000 -0500
-@@ -356,7 +356,7 @@
- *
- * Do not use memset() to access IO space, use memset_io() instead.
- */
--void * memset(void * s,int c,size_t count)
-+void * memset(void * s,int c, size_t count)
- {
- char *xs = (char *) s;
-
-@@ -474,14 +474,15 @@
- void * memscan(void * addr, int c, size_t size)
- {
- unsigned char * p = (unsigned char *) addr;
-+ unsigned char * e = p + size;
-
-- while (size) {
-- if (*p == c)
-+ while (p != e) {
-+ if (*p == (unsigned char)c)
- return (void *) p;
- p++;
-- size--;
- }
-- return (void *) p;
-+
-+ return (void *) p;
- }
- #endif
-
-diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Entries linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Entries
---- linux-2.4.20/lib/zlib_deflate/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Entries 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/deflate.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/deflate_syms.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/deftree.c/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+/defutil.h/1.1.2.1/Wed Sep 11 12:45:42 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Repository linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Repository
---- linux-2.4.20/lib/zlib_deflate/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Repository 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/lib/zlib_deflate
-diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Root linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Root
---- linux-2.4.20/lib/zlib_deflate/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Root 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/CVS/Tag linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Tag
---- linux-2.4.20/lib/zlib_deflate/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/CVS/Tag 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/lib/zlib_deflate/.cvsignore linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/.cvsignore
---- linux-2.4.20/lib/zlib_deflate/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_deflate/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Entries linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Entries
---- linux-2.4.20/lib/zlib_inflate/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Entries 2005-01-06 23:07:41.000000000 -0600
-@@ -0,0 +1,16 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:33 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.2.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/infblock.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/infblock.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/infcodes.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/infcodes.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inffast.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inffast.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inffixed.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inflate.c/1.3.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inflate_syms.c/1.2.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inftrees.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/inftrees.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/infutil.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/infutil.h/1.2.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Repository linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Repository
---- linux-2.4.20/lib/zlib_inflate/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Repository 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+linux/lib/zlib_inflate
-diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Root linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Root
---- linux-2.4.20/lib/zlib_inflate/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Root 2005-01-06 23:07:40.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/CVS/Tag linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Tag
---- linux-2.4.20/lib/zlib_inflate/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/CVS/Tag 2005-01-06 23:07:41.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/lib/zlib_inflate/.cvsignore linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/.cvsignore
---- linux-2.4.20/lib/zlib_inflate/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/lib/zlib_inflate/.cvsignore 2002-09-11 08:00:33.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/MAINTAINERS linux-2.4.20-mipscvs-20050106/MAINTAINERS
---- linux-2.4.20/MAINTAINERS 2002-11-28 17:53:08.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/MAINTAINERS 2003-01-20 12:19:34.000000000 -0600
-@@ -810,7 +810,7 @@
-
- IOC3 DRIVER
- P: Ralf Baechle
--M: ralf@oss.sgi.com
-+M: ralf@linux-mips.org
- L: linux-mips@linux-mips.org
- S: Maintained
-
-@@ -1021,7 +1021,7 @@
-
- MIPS
- P: Ralf Baechle
--M: ralf@gnu.org
-+M: ralf@linux-mips.org
- W: http://oss.sgi.com/mips/mips-howto.html
- L: linux-mips@linux-mips.org
- S: Maintained
-diff -urNd -urNd linux-2.4.20/Makefile linux-2.4.20-mipscvs-20050106/Makefile
---- linux-2.4.20/Makefile 2002-11-28 17:53:16.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Makefile 2005-01-06 23:08:28.000000000 -0600
-@@ -1,11 +1,11 @@
- VERSION = 2
- PATCHLEVEL = 4
- SUBLEVEL = 20
--EXTRAVERSION =
-+EXTRAVERSION = -mipscvs-20050106
-
- KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-
--ARCH := $(shell uname -m | sed -e s/i.86/i386/ -e s/sun4u/sparc64/ -e s/arm.*/arm/ -e s/sa110/arm/)
-+ARCH = mips
- KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
-
- CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
-@@ -216,6 +216,7 @@
- drivers/scsi/aic7xxx/aicasm/aicdb.h \
- drivers/scsi/aic7xxx/aicasm/y.tab.h \
- drivers/scsi/53c700_d.h \
-+ drivers/tc/lk201-map.c \
- net/khttpd/make_times_h \
- net/khttpd/times.h \
- submenu*
-@@ -455,10 +456,11 @@
- $(MAKE) -C Documentation/DocBook mrproper
-
- distclean: mrproper
-- rm -f core `find . \( -not -type d \) -and \
-- \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
-- -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
-- -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \) -type f -print` TAGS tags
-+ find . \( -not -type d \) -and \
-+ \( -name core -o -name '*.orig' -o -name '*.rej' \
-+ -o -name '*~' -o -name '*.bak' -o -name '#*#' \
-+ -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \
-+ -o -name TAGS -o -name tags \) -print | env -i xargs rm -f
-
- backup: mrproper
- cd .. && tar cf - linux/ | gzip -9 > backup.gz
-@@ -485,11 +487,11 @@
- $(MAKE) -C Documentation/DocBook man
-
- sums:
-- find . -type f -print | sort | xargs sum > .SUMS
-+ find . -type f -print | sort | env -i xargs sum > .SUMS
-
- dep-files: scripts/mkdep archdep include/linux/version.h
- scripts/mkdep -- init/*.c > .depend
-- scripts/mkdep -- `find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
-+ find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | env -i PATH="$(PATH)" HPATH="$(HPATH)" xargs scripts/mkdep -- > .hdepend
- $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
- ifdef CONFIG_MODVERSIONS
- $(MAKE) update-modverfile
-diff -urNd -urNd linux-2.4.20/Makefile.old linux-2.4.20-mipscvs-20050106/Makefile.old
---- linux-2.4.20/Makefile.old 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/Makefile.old 2003-01-11 11:53:08.000000000 -0600
-@@ -0,0 +1,575 @@
-+VERSION = 2
-+PATCHLEVEL = 4
-+SUBLEVEL = 20
-+EXTRAVERSION =
-+
-+KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION)
-+
-+ARCH = mips
-+KERNELPATH=kernel-$(shell echo $(KERNELRELEASE) | sed -e "s/-//g")
-+
-+CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
-+ else if [ -x /bin/bash ]; then echo /bin/bash; \
-+ else echo sh; fi ; fi)
-+TOPDIR := $(shell /bin/pwd)
-+
-+HPATH = $(TOPDIR)/include
-+FINDHPATH = $(HPATH)/asm $(HPATH)/linux $(HPATH)/scsi $(HPATH)/net $(HPATH)/math-emu
-+
-+HOSTCC = gcc
-+HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
-+
-+CROSS_COMPILE =
-+
-+#
-+# Include the make variables (CC, etc...)
-+#
-+
-+AS = $(CROSS_COMPILE)as
-+LD = $(CROSS_COMPILE)ld
-+CC = $(CROSS_COMPILE)gcc
-+CPP = $(CC) -E
-+AR = $(CROSS_COMPILE)ar
-+NM = $(CROSS_COMPILE)nm
-+STRIP = $(CROSS_COMPILE)strip
-+OBJCOPY = $(CROSS_COMPILE)objcopy
-+OBJDUMP = $(CROSS_COMPILE)objdump
-+MAKEFILES = $(TOPDIR)/.config
-+GENKSYMS = /sbin/genksyms
-+DEPMOD = /sbin/depmod
-+MODFLAGS = -DMODULE
-+CFLAGS_KERNEL =
-+PERL = perl
-+
-+export VERSION PATCHLEVEL SUBLEVEL EXTRAVERSION KERNELRELEASE ARCH \
-+ CONFIG_SHELL TOPDIR HPATH HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC \
-+ CPP AR NM STRIP OBJCOPY OBJDUMP MAKE MAKEFILES GENKSYMS MODFLAGS PERL
-+
-+all: do-it-all
-+
-+#
-+# Make "config" the default target if there is no configuration file or
-+# "depend" the target if there is no top-level dependency information.
-+#
-+
-+ifeq (.config,$(wildcard .config))
-+include .config
-+ifeq (.depend,$(wildcard .depend))
-+include .depend
-+do-it-all: Version vmlinux
-+else
-+CONFIGURATION = depend
-+do-it-all: depend
-+endif
-+else
-+CONFIGURATION = config
-+do-it-all: config
-+endif
-+
-+#
-+# INSTALL_PATH specifies where to place the updated kernel and system map
-+# images. Uncomment if you want to place them anywhere other than root.
-+#
-+
-+#export INSTALL_PATH=/boot
-+
-+#
-+# INSTALL_MOD_PATH specifies a prefix to MODLIB for module directory
-+# relocations required by build roots. This is not defined in the
-+# makefile but the arguement can be passed to make if needed.
-+#
-+
-+MODLIB := $(INSTALL_MOD_PATH)/lib/modules/$(KERNELRELEASE)
-+export MODLIB
-+
-+#
-+# standard CFLAGS
-+#
-+
-+CPPFLAGS := -D__KERNEL__ -I$(HPATH)
-+
-+CFLAGS := $(CPPFLAGS) -Wall -Wstrict-prototypes -Wno-trigraphs -O2 \
-+ -fno-strict-aliasing -fno-common
-+ifndef CONFIG_FRAME_POINTER
-+CFLAGS += -fomit-frame-pointer
-+endif
-+AFLAGS := -D__ASSEMBLY__ $(CPPFLAGS)
-+
-+#
-+# ROOT_DEV specifies the default root-device when making the image.
-+# This can be either FLOPPY, CURRENT, /dev/xxxx or empty, in which case
-+# the default of FLOPPY is used by 'build'.
-+# This is i386 specific.
-+#
-+
-+export ROOT_DEV = CURRENT
-+
-+#
-+# If you want to preset the SVGA mode, uncomment the next line and
-+# set SVGA_MODE to whatever number you want.
-+# Set it to -DSVGA_MODE=NORMAL_VGA if you just want the EGA/VGA mode.
-+# The number is the same as you would ordinarily press at bootup.
-+# This is i386 specific.
-+#
-+
-+export SVGA_MODE = -DSVGA_MODE=NORMAL_VGA
-+
-+#
-+# If you want the RAM disk device, define this to be the size in blocks.
-+# This is i386 specific.
-+#
-+
-+#export RAMDISK = -DRAMDISK=512
-+
-+CORE_FILES =kernel/kernel.o mm/mm.o fs/fs.o ipc/ipc.o
-+NETWORKS =net/network.o
-+
-+LIBS =$(TOPDIR)/lib/lib.a
-+SUBDIRS =kernel drivers mm fs net ipc lib
-+
-+DRIVERS-n :=
-+DRIVERS-y :=
-+DRIVERS-m :=
-+DRIVERS- :=
-+
-+DRIVERS-$(CONFIG_ACPI) += drivers/acpi/acpi.o
-+DRIVERS-$(CONFIG_PARPORT) += drivers/parport/driver.o
-+DRIVERS-y += drivers/char/char.o \
-+ drivers/block/block.o \
-+ drivers/misc/misc.o \
-+ drivers/net/net.o \
-+ drivers/media/media.o
-+DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o
-+DRIVERS-$(CONFIG_DRM_NEW) += drivers/char/drm/drm.o
-+DRIVERS-$(CONFIG_DRM_OLD) += drivers/char/drm-4.0/drm.o
-+DRIVERS-$(CONFIG_NUBUS) += drivers/nubus/nubus.a
-+DRIVERS-$(CONFIG_NET_FC) += drivers/net/fc/fc.o
-+DRIVERS-$(CONFIG_DEV_APPLETALK) += drivers/net/appletalk/appletalk.o
-+DRIVERS-$(CONFIG_TR) += drivers/net/tokenring/tr.o
-+DRIVERS-$(CONFIG_WAN) += drivers/net/wan/wan.o
-+DRIVERS-$(CONFIG_ARCNET) += drivers/net/arcnet/arcnetdrv.o
-+DRIVERS-$(CONFIG_ATM) += drivers/atm/atm.o
-+DRIVERS-$(CONFIG_IDE) += drivers/ide/idedriver.o
-+DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
-+DRIVERS-$(CONFIG_SCSI) += drivers/scsi/scsidrv.o
-+DRIVERS-$(CONFIG_FUSION_BOOT) += drivers/message/fusion/fusion.o
-+DRIVERS-$(CONFIG_IEEE1394) += drivers/ieee1394/ieee1394drv.o
-+
-+ifneq ($(CONFIG_CD_NO_IDESCSI)$(CONFIG_BLK_DEV_IDECD)$(CONFIG_BLK_DEV_SR)$(CONFIG_PARIDE_PCD),)
-+DRIVERS-y += drivers/cdrom/driver.o
-+endif
-+
-+DRIVERS-$(CONFIG_SOUND) += drivers/sound/sounddrivers.o
-+DRIVERS-$(CONFIG_PCI) += drivers/pci/driver.o
-+DRIVERS-$(CONFIG_MTD) += drivers/mtd/mtdlink.o
-+DRIVERS-$(CONFIG_PCMCIA) += drivers/pcmcia/pcmcia.o
-+DRIVERS-$(CONFIG_NET_PCMCIA) += drivers/net/pcmcia/pcmcia_net.o
-+DRIVERS-$(CONFIG_NET_WIRELESS) += drivers/net/wireless/wireless_net.o
-+DRIVERS-$(CONFIG_PCMCIA_CHRDEV) += drivers/char/pcmcia/pcmcia_char.o
-+DRIVERS-$(CONFIG_DIO) += drivers/dio/dio.a
-+DRIVERS-$(CONFIG_SBUS) += drivers/sbus/sbus_all.o
-+DRIVERS-$(CONFIG_ZORRO) += drivers/zorro/driver.o
-+DRIVERS-$(CONFIG_FC4) += drivers/fc4/fc4.a
-+DRIVERS-$(CONFIG_PPC32) += drivers/macintosh/macintosh.o
-+DRIVERS-$(CONFIG_MAC) += drivers/macintosh/macintosh.o
-+DRIVERS-$(CONFIG_ISAPNP) += drivers/pnp/pnp.o
-+DRIVERS-$(CONFIG_SGI_IP22) += drivers/sgi/sgi.a
-+DRIVERS-$(CONFIG_VT) += drivers/video/video.o
-+DRIVERS-$(CONFIG_PARIDE) += drivers/block/paride/paride.a
-+DRIVERS-$(CONFIG_HAMRADIO) += drivers/net/hamradio/hamradio.o
-+DRIVERS-$(CONFIG_TC) += drivers/tc/tc.a
-+DRIVERS-$(CONFIG_USB) += drivers/usb/usbdrv.o
-+DRIVERS-$(CONFIG_INPUT) += drivers/input/inputdrv.o
-+DRIVERS-$(CONFIG_HIL) += drivers/hil/hil.o
-+DRIVERS-$(CONFIG_I2O) += drivers/message/i2o/i2o.o
-+DRIVERS-$(CONFIG_IRDA) += drivers/net/irda/irda.o
-+DRIVERS-$(CONFIG_I2C) += drivers/i2c/i2c.o
-+DRIVERS-$(CONFIG_PHONE) += drivers/telephony/telephony.o
-+DRIVERS-$(CONFIG_MD) += drivers/md/mddev.o
-+DRIVERS-$(CONFIG_GSC) += drivers/gsc/gscbus.o
-+DRIVERS-$(CONFIG_BLUEZ) += drivers/bluetooth/bluetooth.o
-+DRIVERS-$(CONFIG_HOTPLUG_PCI) += drivers/hotplug/vmlinux-obj.o
-+DRIVERS-$(CONFIG_ISDN_BOOL) += drivers/isdn/vmlinux-obj.o
-+
-+DRIVERS := $(DRIVERS-y)
-+
-+
-+# files removed with 'make clean'
-+CLEAN_FILES = \
-+ kernel/ksyms.lst include/linux/compile.h \
-+ vmlinux System.map \
-+ .tmp* \
-+ drivers/char/consolemap_deftbl.c drivers/video/promcon_tbl.c \
-+ drivers/char/conmakehash \
-+ drivers/char/drm/*-mod.c \
-+ drivers/pci/devlist.h drivers/pci/classlist.h drivers/pci/gen-devlist \
-+ drivers/zorro/devlist.h drivers/zorro/gen-devlist \
-+ drivers/sound/bin2hex drivers/sound/hex2hex \
-+ drivers/atm/fore200e_mkfirm drivers/atm/{pca,sba}*{.bin,.bin1,.bin2} \
-+ drivers/scsi/aic7xxx/aicasm/aicasm \
-+ drivers/scsi/aic7xxx/aicasm/aicasm_gram.c \
-+ drivers/scsi/aic7xxx/aicasm/aicasm_gram.h \
-+ drivers/scsi/aic7xxx/aicasm/aicasm_macro_gram.c \
-+ drivers/scsi/aic7xxx/aicasm/aicasm_macro_gram.h \
-+ drivers/scsi/aic7xxx/aicasm/aicasm_macro_scan.c \
-+ drivers/scsi/aic7xxx/aicasm/aicasm_scan.c \
-+ drivers/scsi/aic7xxx/aicasm/aicdb.h \
-+ drivers/scsi/aic7xxx/aicasm/y.tab.h \
-+ drivers/scsi/53c700_d.h \
-+ drivers/tc/lk201-map.c \
-+ net/khttpd/make_times_h \
-+ net/khttpd/times.h \
-+ submenu*
-+# directories removed with 'make clean'
-+CLEAN_DIRS = \
-+ modules
-+
-+# files removed with 'make mrproper'
-+MRPROPER_FILES = \
-+ include/linux/autoconf.h include/linux/version.h \
-+ drivers/net/hamradio/soundmodem/sm_tbl_{afsk1200,afsk2666,fsk9600}.h \
-+ drivers/net/hamradio/soundmodem/sm_tbl_{hapn4800,psk4800}.h \
-+ drivers/net/hamradio/soundmodem/sm_tbl_{afsk2400_7,afsk2400_8}.h \
-+ drivers/net/hamradio/soundmodem/gentbl \
-+ drivers/sound/*_boot.h drivers/sound/.*.boot \
-+ drivers/sound/msndinit.c \
-+ drivers/sound/msndperm.c \
-+ drivers/sound/pndsperm.c \
-+ drivers/sound/pndspini.c \
-+ drivers/atm/fore200e_*_fw.c drivers/atm/.fore200e_*.fw \
-+ .version .config* config.in config.old \
-+ scripts/tkparse scripts/kconfig.tk scripts/kconfig.tmp \
-+ scripts/lxdialog/*.o scripts/lxdialog/lxdialog \
-+ .menuconfig.log \
-+ include/asm \
-+ .hdepend scripts/mkdep scripts/split-include scripts/docproc \
-+ $(TOPDIR)/include/linux/modversions.h \
-+ kernel.spec
-+
-+# directories removed with 'make mrproper'
-+MRPROPER_DIRS = \
-+ include/config \
-+ $(TOPDIR)/include/linux/modules
-+
-+
-+include arch/$(ARCH)/Makefile
-+
-+# Extra cflags for kbuild 2.4. The default is to forbid includes by kernel code
-+# from user space headers. Some UML code requires user space headers, in the
-+# UML Makefiles add 'kbuild_2_4_nostdinc :=' before include Rules.make. No
-+# other kernel code should include user space headers, if you need
-+# 'kbuild_2_4_nostdinc :=' or -I/usr/include for kernel code and you are not UML
-+# then your code is broken! KAO.
-+
-+kbuild_2_4_nostdinc := -nostdinc -iwithprefix include
-+export kbuild_2_4_nostdinc
-+
-+export CPPFLAGS CFLAGS CFLAGS_KERNEL AFLAGS AFLAGS_KERNEL
-+
-+export NETWORKS DRIVERS LIBS HEAD LDFLAGS LINKFLAGS MAKEBOOT ASFLAGS
-+
-+.S.s:
-+ $(CPP) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -o $*.s $<
-+.S.o:
-+ $(CC) $(AFLAGS) $(AFLAGS_KERNEL) -traditional -c -o $*.o $<
-+
-+Version: dummy
-+ @rm -f include/linux/compile.h
-+
-+boot: vmlinux
-+ @$(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C arch/$(ARCH)/boot
-+
-+vmlinux: include/linux/version.h $(CONFIGURATION) init/main.o init/version.o init/do_mounts.o linuxsubdirs
-+ $(LD) $(LINKFLAGS) $(HEAD) init/main.o init/version.o init/do_mounts.o \
-+ --start-group \
-+ $(CORE_FILES) \
-+ $(DRIVERS) \
-+ $(NETWORKS) \
-+ $(LIBS) \
-+ --end-group \
-+ -o vmlinux
-+ $(NM) vmlinux | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
-+
-+symlinks:
-+ rm -f include/asm
-+ ( cd include ; ln -sf asm-$(ARCH) asm)
-+ @if [ ! -d include/linux/modules ]; then \
-+ mkdir include/linux/modules; \
-+ fi
-+
-+oldconfig: symlinks
-+ $(CONFIG_SHELL) scripts/Configure -d arch/$(ARCH)/config.in
-+
-+xconfig: symlinks
-+ $(MAKE) -C scripts kconfig.tk
-+ wish -f scripts/kconfig.tk
-+
-+menuconfig: include/linux/version.h symlinks
-+ $(MAKE) -C scripts/lxdialog all
-+ $(CONFIG_SHELL) scripts/Menuconfig arch/$(ARCH)/config.in
-+
-+config: symlinks
-+ $(CONFIG_SHELL) scripts/Configure arch/$(ARCH)/config.in
-+
-+include/config/MARKER: scripts/split-include include/linux/autoconf.h
-+ scripts/split-include include/linux/autoconf.h include/config
-+ @ touch include/config/MARKER
-+
-+linuxsubdirs: $(patsubst %, _dir_%, $(SUBDIRS))
-+
-+$(patsubst %, _dir_%, $(SUBDIRS)) : dummy include/linux/version.h include/config/MARKER
-+ $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" -C $(patsubst _dir_%, %, $@)
-+
-+$(TOPDIR)/include/linux/version.h: include/linux/version.h
-+$(TOPDIR)/include/linux/compile.h: include/linux/compile.h
-+
-+newversion:
-+ . scripts/mkversion > .tmpversion
-+ @mv -f .tmpversion .version
-+
-+uts_len := 64
-+uts_truncate := sed -e 's/\(.\{1,$(uts_len)\}\).*/\1/'
-+
-+include/linux/compile.h: $(CONFIGURATION) include/linux/version.h newversion
-+ @echo -n \#`cat .version` > .ver1
-+ @if [ -n "$(CONFIG_SMP)" ] ; then echo -n " SMP" >> .ver1; fi
-+ @if [ -f .name ]; then echo -n \-`cat .name` >> .ver1; fi
-+ @LANG=C echo ' '`date` >> .ver1
-+ @echo \#define UTS_VERSION \"`cat .ver1 | $(uts_truncate)`\" > .ver
-+ @LANG=C echo \#define LINUX_COMPILE_TIME \"`date +%T`\" >> .ver
-+ @echo \#define LINUX_COMPILE_BY \"`whoami`\" >> .ver
-+ @echo \#define LINUX_COMPILE_HOST \"`hostname | $(uts_truncate)`\" >> .ver
-+ @([ -x /bin/dnsdomainname ] && /bin/dnsdomainname > .ver1) || \
-+ ([ -x /bin/domainname ] && /bin/domainname > .ver1) || \
-+ echo > .ver1
-+ @echo \#define LINUX_COMPILE_DOMAIN \"`cat .ver1 | $(uts_truncate)`\" >> .ver
-+ @echo \#define LINUX_COMPILER \"`$(CC) $(CFLAGS) -v 2>&1 | tail -1`\" >> .ver
-+ @mv -f .ver $@
-+ @rm -f .ver1
-+
-+include/linux/version.h: ./Makefile
-+ @expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \
-+ (echo KERNELRELEASE \"$(KERNELRELEASE)\" exceeds $(uts_len) characters >&2; false)
-+ @echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver
-+ @echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver
-+ @echo '#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))' >>.ver
-+ @mv -f .ver $@
-+
-+comma := ,
-+
-+init/version.o: init/version.c include/linux/compile.h include/config/MARKER
-+ $(CC) $(CFLAGS) $(CFLAGS_KERNEL) -DUTS_MACHINE='"$(ARCH)"' -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o init/version.o init/version.c
-+
-+init/main.o: init/main.c include/config/MARKER
-+ $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $@ $<
-+
-+init/do_mounts.o: init/do_mounts.c include/config/MARKER
-+ $(CC) $(CFLAGS) $(CFLAGS_KERNEL) $(PROFILING) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) -c -o $@ $<
-+
-+fs lib mm ipc kernel drivers net: dummy
-+ $(MAKE) CFLAGS="$(CFLAGS) $(CFLAGS_KERNEL)" $(subst $@, _dir_$@, $@)
-+
-+TAGS: dummy
-+ { find include/asm-${ARCH} -name '*.h' -print ; \
-+ find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print ; \
-+ find $(SUBDIRS) init arch/${ARCH} -name '*.[chS]' ; } | grep -v SCCS | grep -v '\.svn' | etags -
-+
-+# Exuberant ctags works better with -I
-+tags: dummy
-+ CTAGSF=`ctags --version | grep -i exuberant >/dev/null && echo "-I __initdata,__exitdata,EXPORT_SYMBOL,EXPORT_SYMBOL_NOVERS"`; \
-+ ctags $$CTAGSF `find include/asm-$(ARCH) -name '*.h'` && \
-+ find include -type d \( -name "asm-*" -o -name config \) -prune -o -name '*.h' -print | xargs ctags $$CTAGSF -a && \
-+ find $(SUBDIRS) init -name '*.[ch]' | xargs ctags $$CTAGSF -a
-+
-+ifdef CONFIG_MODULES
-+ifdef CONFIG_MODVERSIONS
-+MODFLAGS += -DMODVERSIONS -include $(HPATH)/linux/modversions.h
-+endif
-+
-+.PHONY: modules
-+modules: $(patsubst %, _mod_%, $(SUBDIRS))
-+
-+.PHONY: $(patsubst %, _mod_%, $(SUBDIRS))
-+$(patsubst %, _mod_%, $(SUBDIRS)) : include/linux/version.h include/config/MARKER
-+ $(MAKE) -C $(patsubst _mod_%, %, $@) CFLAGS="$(CFLAGS) $(MODFLAGS)" MAKING_MODULES=1 modules
-+
-+.PHONY: modules_install
-+modules_install: _modinst_ $(patsubst %, _modinst_%, $(SUBDIRS)) _modinst_post
-+
-+.PHONY: _modinst_
-+_modinst_:
-+ @rm -rf $(MODLIB)/kernel
-+ @rm -f $(MODLIB)/build
-+ @mkdir -p $(MODLIB)/kernel
-+ @ln -s $(TOPDIR) $(MODLIB)/build
-+
-+# If System.map exists, run depmod. This deliberately does not have a
-+# dependency on System.map since that would run the dependency tree on
-+# vmlinux. This depmod is only for convenience to give the initial
-+# boot a modules.dep even before / is mounted read-write. However the
-+# boot script depmod is the master version.
-+ifeq "$(strip $(INSTALL_MOD_PATH))" ""
-+depmod_opts :=
-+else
-+depmod_opts := -b $(INSTALL_MOD_PATH) -r
-+endif
-+.PHONY: _modinst_post
-+_modinst_post: _modinst_post_pcmcia
-+ if [ -r System.map ]; then $(DEPMOD) -ae -F System.map $(depmod_opts) $(KERNELRELEASE); fi
-+
-+# Backwards compatibilty symlinks for people still using old versions
-+# of pcmcia-cs with hard coded pathnames on insmod. Remove
-+# _modinst_post_pcmcia for kernel 2.4.1.
-+.PHONY: _modinst_post_pcmcia
-+_modinst_post_pcmcia:
-+ cd $(MODLIB); \
-+ mkdir -p pcmcia; \
-+ find kernel -path '*/pcmcia/*' -name '*.o' | xargs -i -r ln -sf ../{} pcmcia
-+
-+.PHONY: $(patsubst %, _modinst_%, $(SUBDIRS))
-+$(patsubst %, _modinst_%, $(SUBDIRS)) :
-+ $(MAKE) -C $(patsubst _modinst_%, %, $@) modules_install
-+
-+# modules disabled....
-+
-+else
-+modules modules_install: dummy
-+ @echo
-+ @echo "The present kernel configuration has modules disabled."
-+ @echo "Type 'make config' and enable loadable module support."
-+ @echo "Then build a kernel with module support enabled."
-+ @echo
-+ @exit 1
-+endif
-+
-+clean: archclean
-+ find . \( -name '*.[oas]' -o -name core -o -name '.*.flags' \) -type f -print \
-+ | grep -v lxdialog/ | xargs rm -f
-+ rm -f $(CLEAN_FILES)
-+ rm -rf $(CLEAN_DIRS)
-+ $(MAKE) -C Documentation/DocBook clean
-+
-+mrproper: clean archmrproper
-+ find . \( -size 0 -o -name .depend \) -type f -print | xargs rm -f
-+ rm -f $(MRPROPER_FILES)
-+ rm -rf $(MRPROPER_DIRS)
-+ $(MAKE) -C Documentation/DocBook mrproper
-+
-+distclean: mrproper
-+ find . \( -not -type d \) -and \
-+ \( -name core -o -name '*.orig' -o -name '*.rej' \
-+ -o -name '*~' -o -name '*.bak' -o -name '#*#' \
-+ -o -name '.*.rej' -o -name '.SUMS' -o -size 0 \
-+ -o -name TAGS -o -name tags \) -print | env -i xargs rm -f
-+
-+backup: mrproper
-+ cd .. && tar cf - linux/ | gzip -9 > backup.gz
-+ sync
-+
-+sgmldocs:
-+ chmod 755 $(TOPDIR)/scripts/docgen
-+ chmod 755 $(TOPDIR)/scripts/gen-all-syms
-+ chmod 755 $(TOPDIR)/scripts/kernel-doc
-+ $(MAKE) -C $(TOPDIR)/Documentation/DocBook books
-+
-+psdocs: sgmldocs
-+ $(MAKE) -C Documentation/DocBook ps
-+
-+pdfdocs: sgmldocs
-+ $(MAKE) -C Documentation/DocBook pdf
-+
-+htmldocs: sgmldocs
-+ $(MAKE) -C Documentation/DocBook html
-+
-+mandocs:
-+ chmod 755 $(TOPDIR)/scripts/kernel-doc
-+ chmod 755 $(TOPDIR)/scripts/split-man
-+ $(MAKE) -C Documentation/DocBook man
-+
-+sums:
-+ find . -type f -print | sort | env -i xargs sum > .SUMS
-+
-+dep-files: scripts/mkdep archdep include/linux/version.h
-+ scripts/mkdep -- init/*.c > .depend
-+ find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | env -i PATH="$(PATH)" HPATH="$(HPATH)" xargs scripts/mkdep -- > .hdepend
-+ $(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
-+ifdef CONFIG_MODVERSIONS
-+ $(MAKE) update-modverfile
-+endif
-+
-+ifdef CONFIG_MODVERSIONS
-+MODVERFILE := $(TOPDIR)/include/linux/modversions.h
-+else
-+MODVERFILE :=
-+endif
-+export MODVERFILE
-+
-+depend dep: dep-files
-+
-+checkconfig:
-+ find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkconfig.pl
-+
-+checkhelp:
-+ find * -name [cC]onfig.in -print | sort | xargs $(PERL) -w scripts/checkhelp.pl
-+
-+checkincludes:
-+ find * -name '*.[hcS]' -type f -print | sort | xargs $(PERL) -w scripts/checkincludes.pl
-+
-+ifdef CONFIGURATION
-+..$(CONFIGURATION):
-+ @echo
-+ @echo "You have a bad or nonexistent" .$(CONFIGURATION) ": running 'make" $(CONFIGURATION)"'"
-+ @echo
-+ $(MAKE) $(CONFIGURATION)
-+ @echo
-+ @echo "Successful. Try re-making (ignore the error that follows)"
-+ @echo
-+ exit 1
-+
-+#dummy: ..$(CONFIGURATION)
-+dummy:
-+
-+else
-+
-+dummy:
-+
-+endif
-+
-+include Rules.make
-+
-+#
-+# This generates dependencies for the .h files.
-+#
-+
-+scripts/mkdep: scripts/mkdep.c
-+ $(HOSTCC) $(HOSTCFLAGS) -o scripts/mkdep scripts/mkdep.c
-+
-+scripts/split-include: scripts/split-include.c
-+ $(HOSTCC) $(HOSTCFLAGS) -o scripts/split-include scripts/split-include.c
-+
-+#
-+# RPM target
-+#
-+# If you do a make spec before packing the tarball you can rpm -ta it
-+#
-+spec:
-+ . scripts/mkspec >kernel.spec
-+
-+#
-+# Build a tar ball, generate an rpm from it and pack the result
-+# There arw two bits of magic here
-+# 1) The use of /. to avoid tar packing just the symlink
-+# 2) Removing the .dep files as they have source paths in them that
-+# will become invalid
-+#
-+rpm: clean spec
-+ find . \( -size 0 -o -name .depend -o -name .hdepend \) -type f -print | xargs rm -f
-+ set -e; \
-+ cd $(TOPDIR)/.. ; \
-+ ln -sf $(TOPDIR) $(KERNELPATH) ; \
-+ tar -cvz --exclude CVS -f $(KERNELPATH).tar.gz $(KERNELPATH)/. ; \
-+ rm $(KERNELPATH) ; \
-+ cd $(TOPDIR) ; \
-+ . scripts/mkversion > .version ; \
-+ rpm -ta $(TOPDIR)/../$(KERNELPATH).tar.gz ; \
-+ rm $(TOPDIR)/../$(KERNELPATH).tar.gz
-diff -urNd -urNd linux-2.4.20/mm/CVS/Entries linux-2.4.20-mipscvs-20050106/mm/CVS/Entries
---- linux-2.4.20/mm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Entries 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1,22 @@
-+/.cvsignore/1.2/Tue Mar 17 22:17:54 1998/-ko/Tlinux_2_4_20
-+/Makefile/1.10.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/bootmem.c/1.14.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/filemap.c/1.74.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/highmem.c/1.26.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/memory.c/1.59.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/mlock.c/1.20/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
-+/mmap.c/1.49.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/mprotect.c/1.21.2.1/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/mremap.c/1.26/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
-+/numa.c/1.8/Fri Oct 19 01:25:06 2001/-ko/Tlinux_2_4_20
-+/oom_kill.c/1.8.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/page_alloc.c/1.61.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/page_io.c/1.25.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/shmem.c/1.13.2.6/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/slab.c/1.41.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/swap.c/1.18.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/swap_state.c/1.40.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/swapfile.c/1.48.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/vmalloc.c/1.28.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/vmscan.c/1.70.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/mm/CVS/Repository linux-2.4.20-mipscvs-20050106/mm/CVS/Repository
---- linux-2.4.20/mm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Repository 2005-01-06 23:07:41.000000000 -0600
-@@ -0,0 +1 @@
-+linux/mm
-diff -urNd -urNd linux-2.4.20/mm/CVS/Root linux-2.4.20-mipscvs-20050106/mm/CVS/Root
---- linux-2.4.20/mm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Root 2005-01-06 23:07:41.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/mm/CVS/Tag linux-2.4.20-mipscvs-20050106/mm/CVS/Tag
---- linux-2.4.20/mm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/mm/CVS/Tag 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/mm/.cvsignore linux-2.4.20-mipscvs-20050106/mm/.cvsignore
---- linux-2.4.20/mm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/mm/.cvsignore 1998-03-17 16:17:54.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/mm/memory.c linux-2.4.20-mipscvs-20050106/mm/memory.c
---- linux-2.4.20/mm/memory.c 2002-11-28 17:53:15.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/mm/memory.c 2003-01-11 11:53:18.000000000 -0600
-@@ -923,6 +923,7 @@
- flush_page_to_ram(new_page);
- flush_cache_page(vma, address);
- establish_pte(vma, address, page_table, pte_mkwrite(pte_mkdirty(mk_pte(new_page, vma->vm_page_prot))));
-+ flush_icache_page(vma, new_page);
- }
-
- /*
-diff -urNd -urNd linux-2.4.20/net/802/CVS/Entries linux-2.4.20-mipscvs-20050106/net/802/CVS/Entries
---- linux-2.4.20/net/802/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/TODO/1.2/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/cl2llc.c/1.4/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/cl2llc.pre/1.4.2.1/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
-+/fc.c/1.4/Fri Feb 4 07:41:04 2000/-ko/Tlinux_2_4_20
-+/fddi.c/1.6/Wed Jan 10 05:27:36 2001/-ko/Tlinux_2_4_20
-+/hippi.c/1.4/Wed Aug 22 03:25:17 2001/-ko/Tlinux_2_4_20
-+/llc_macinit.c/1.7/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/llc_sendpdu.c/1.5/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/llc_utility.c/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/p8022.c/1.6/Thu Nov 23 02:00:58 2000/-ko/Tlinux_2_4_20
-+/p8023.c/1.3/Fri Jul 21 22:01:01 2000/-ko/Tlinux_2_4_20
-+/psnap.c/1.6/Thu Nov 23 02:00:58 2000/-ko/Tlinux_2_4_20
-+/sysctl_net_802.c/1.2/Wed Mar 18 17:19:49 1998/-ko/Tlinux_2_4_20
-+/tr.c/1.15.4.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+D/pseudo////
-+D/transit////
-diff -urNd -urNd linux-2.4.20/net/802/CVS/Repository linux-2.4.20-mipscvs-20050106/net/802/CVS/Repository
---- linux-2.4.20/net/802/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Repository 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/802
-diff -urNd -urNd linux-2.4.20/net/802/CVS/Root linux-2.4.20-mipscvs-20050106/net/802/CVS/Root
---- linux-2.4.20/net/802/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Root 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/802/CVS/Tag linux-2.4.20-mipscvs-20050106/net/802/CVS/Tag
---- linux-2.4.20/net/802/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/CVS/Tag 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/802/.cvsignore linux-2.4.20-mipscvs-20050106/net/802/.cvsignore
---- linux-2.4.20/net/802/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Entries linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Entries
---- linux-2.4.20/net/802/pseudo/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Entries 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1,10 @@
-+/Makefile/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/actionnm.awk/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/actionnm.h/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/compile.awk/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/opcd2num.sed/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/opcodes/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/opcodesnm.h/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/pseudocode/1.2/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/pseudocode.h/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Repository linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Repository
---- linux-2.4.20/net/802/pseudo/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Repository 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/802/pseudo
-diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Root linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Root
---- linux-2.4.20/net/802/pseudo/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Root 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/802/pseudo/CVS/Tag linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Tag
---- linux-2.4.20/net/802/pseudo/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/pseudo/CVS/Tag 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Entries linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Entries
---- linux-2.4.20/net/802/transit/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Entries 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1,7 @@
-+/Makefile/1.2/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/compile.awk/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+/pdutr.h/1.2/Tue Mar 17 22:18:05 1998/-ko/Tlinux_2_4_20
-+/pdutr.pre/1.2/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/timertr.h/1.2/Tue Mar 17 22:18:05 1998/-ko/Tlinux_2_4_20
-+/timertr.pre/1.1.1.1/Sun Jun 1 03:16:24 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Repository linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Repository
---- linux-2.4.20/net/802/transit/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Repository 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/802/transit
-diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Root linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Root
---- linux-2.4.20/net/802/transit/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Root 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/802/transit/CVS/Tag linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Tag
---- linux-2.4.20/net/802/transit/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/802/transit/CVS/Tag 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Entries linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Entries
---- linux-2.4.20/net/8021q/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Entries 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.1/Thu Nov 15 16:02:31 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.1/Tue Nov 6 07:56:16 2001/-ko/Tlinux_2_4_20
-+/vlan.c/1.1.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/vlan.h/1.1.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/vlan_dev.c/1.1.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/vlanproc.c/1.2.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/vlanproc.h/1.1/Tue Nov 6 07:56:16 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Repository linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Repository
---- linux-2.4.20/net/8021q/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Repository 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/8021q
-diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Root linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Root
---- linux-2.4.20/net/8021q/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Root 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/8021q/CVS/Tag linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Tag
---- linux-2.4.20/net/8021q/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/8021q/CVS/Tag 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/8021q/.cvsignore linux-2.4.20-mipscvs-20050106/net/8021q/.cvsignore
---- linux-2.4.20/net/8021q/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/8021q/.cvsignore 2001-11-15 10:02:31.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Entries linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Entries
---- linux-2.4.20/net/appletalk/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Entries 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/aarp.c/1.18/Mon Nov 5 20:16:33 2001/-ko/Tlinux_2_4_20
-+/ddp.c/1.30/Fri Oct 19 01:25:07 2001/-ko/Tlinux_2_4_20
-+/sysctl_net_atalk.c/1.5/Tue Aug 25 09:23:41 1998/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Repository linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Repository
---- linux-2.4.20/net/appletalk/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Repository 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/appletalk
-diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Root linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Root
---- linux-2.4.20/net/appletalk/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Root 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/appletalk/CVS/Tag linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Tag
---- linux-2.4.20/net/appletalk/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/appletalk/CVS/Tag 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/appletalk/.cvsignore linux-2.4.20-mipscvs-20050106/net/appletalk/.cvsignore
---- linux-2.4.20/net/appletalk/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/appletalk/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/atm/CVS/Entries linux-2.4.20-mipscvs-20050106/net/atm/CVS/Entries
---- linux-2.4.20/net/atm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Entries 2005-01-06 23:07:45.000000000 -0600
-@@ -0,0 +1,30 @@
-+/.cvsignore/1.1/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.8.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/addr.c/1.4/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/addr.h/1.3/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/atm_misc.c/1.3/Mon Mar 27 23:54:43 2000/-ko/Tlinux_2_4_20
-+/br2684.c/1.1.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/clip.c/1.10/Wed Aug 22 03:25:18 2001/-ko/Tlinux_2_4_20
-+/common.c/1.14.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/common.h/1.3/Sun Jul 9 02:54:56 2000/-ko/Tlinux_2_4_20
-+/ipcommon.c/1.3/Sun Jul 9 02:54:56 2000/-ko/Tlinux_2_4_20
-+/ipcommon.h/1.3/Sun Jul 9 02:54:56 2000/-ko/Tlinux_2_4_20
-+/lec.c/1.13/Mon Nov 5 20:16:33 2001/-ko/Tlinux_2_4_20
-+/lec.h/1.5/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/lec_arpc.h/1.1/Sat Oct 9 00:01:50 1999/-ko/Tlinux_2_4_20
-+/mpc.c/1.8/Mon Nov 5 20:16:33 2001/-ko/Tlinux_2_4_20
-+/mpc.h/1.1/Sat Oct 9 00:01:50 1999/-ko/Tlinux_2_4_20
-+/mpoa_caches.c/1.3/Fri Apr 28 01:09:59 2000/-ko/Tlinux_2_4_20
-+/mpoa_caches.h/1.2/Fri Apr 28 01:09:59 2000/-ko/Tlinux_2_4_20
-+/mpoa_proc.c/1.9/Thu Aug 23 22:24:51 2001/-ko/Tlinux_2_4_20
-+/pppoatm.c/1.1.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/proc.c/1.11.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/protocols.h/1.1/Sat Oct 9 00:01:50 1999/-ko/Tlinux_2_4_20
-+/pvc.c/1.6/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/raw.c/1.5/Fri Apr 28 01:09:59 2000/-ko/Tlinux_2_4_20
-+/resources.c/1.5.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/resources.h/1.2/Fri Feb 4 07:41:04 2000/-ko/Tlinux_2_4_20
-+/signaling.c/1.7/Wed Aug 22 03:25:18 2001/-ko/Tlinux_2_4_20
-+/signaling.h/1.4/Sun Jul 9 02:54:56 2000/-ko/Tlinux_2_4_20
-+/svc.c/1.8/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/atm/CVS/Repository linux-2.4.20-mipscvs-20050106/net/atm/CVS/Repository
---- linux-2.4.20/net/atm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Repository 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/atm
-diff -urNd -urNd linux-2.4.20/net/atm/CVS/Root linux-2.4.20-mipscvs-20050106/net/atm/CVS/Root
---- linux-2.4.20/net/atm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Root 2005-01-06 23:07:44.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/atm/CVS/Tag linux-2.4.20-mipscvs-20050106/net/atm/CVS/Tag
---- linux-2.4.20/net/atm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/atm/CVS/Tag 2005-01-06 23:07:45.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/atm/.cvsignore linux-2.4.20-mipscvs-20050106/net/atm/.cvsignore
---- linux-2.4.20/net/atm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/atm/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Entries
---- linux-2.4.20/net/ax25/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Entries 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1,22 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:21 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.4/Thu Nov 23 02:00:58 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/af_ax25.c/1.33.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/ax25_addr.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_dev.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_ds_in.c/1.6/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_ds_subr.c/1.7/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_ds_timer.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_iface.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_in.c/1.12/Fri Oct 19 01:25:07 2001/-ko/Tlinux_2_4_20
-+/ax25_ip.c/1.13/Tue Nov 6 00:55:32 2001/-ko/Tlinux_2_4_20
-+/ax25_out.c/1.12/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_route.c/1.11/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_std_in.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_std_subr.c/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_std_timer.c/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_subr.c/1.10/Wed Aug 22 03:25:18 2001/-ko/Tlinux_2_4_20
-+/ax25_timer.c/1.7/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/ax25_uid.c/1.7/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/sysctl_net_ax25.c/1.6/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Repository
---- linux-2.4.20/net/ax25/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Repository 2005-01-06 23:07:45.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ax25
-diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Root linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Root
---- linux-2.4.20/net/ax25/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Root 2005-01-06 23:07:45.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ax25/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Tag
---- linux-2.4.20/net/ax25/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ax25/CVS/Tag 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ax25/.cvsignore linux-2.4.20-mipscvs-20050106/net/ax25/.cvsignore
---- linux-2.4.20/net/ax25/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ax25/.cvsignore 1999-12-06 17:13:21.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Entries linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Entries
---- linux-2.4.20/net/bluetooth/bnep/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Entries 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1,10 @@
-+/.cvsignore/1.1.2.1/Wed Sep 11 13:00:34 2002/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/bnep.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/core.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/crc32.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/crc32.h/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/netdev.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/sock.c/1.1.2.1/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Repository linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Repository
---- linux-2.4.20/net/bluetooth/bnep/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Repository 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/bluetooth/bnep
-diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Root linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Root
---- linux-2.4.20/net/bluetooth/bnep/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Root 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/CVS/Tag linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Tag
---- linux-2.4.20/net/bluetooth/bnep/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/CVS/Tag 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/bluetooth/bnep/.cvsignore linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/.cvsignore
---- linux-2.4.20/net/bluetooth/bnep/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/bnep/.cvsignore 2002-09-11 08:00:34.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Entries linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Entries
---- linux-2.4.20/net/bluetooth/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.1.2.1/Mon Dec 31 03:33:20 2001/-ko/Tlinux_2_4_20
-+/Config.in/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/af_bluetooth.c/1.2.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/hci_conn.c/1.1.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/hci_core.c/1.4.2.4/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/hci_event.c/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/hci_sock.c/1.2.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/l2cap.c/1.1.2.3/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/lib.c/1.2.2.2/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
-+/sco.c/1.1.2.2/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/syms.c/1.2.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+D/bnep////
-diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Repository linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Repository
---- linux-2.4.20/net/bluetooth/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Repository 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/bluetooth
-diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Root linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Root
---- linux-2.4.20/net/bluetooth/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Root 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/bluetooth/CVS/Tag linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Tag
---- linux-2.4.20/net/bluetooth/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/CVS/Tag 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/bluetooth/.cvsignore linux-2.4.20-mipscvs-20050106/net/bluetooth/.cvsignore
---- linux-2.4.20/net/bluetooth/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bluetooth/.cvsignore 2001-12-30 21:33:20.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Entries linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Entries
---- linux-2.4.20/net/bridge/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,18 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/br.c/1.20.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/br_device.c/1.5.2.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
-+/br_fdb.c/1.3.4.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
-+/br_forward.c/1.4.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/br_if.c/1.5.4.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/br_input.c/1.8.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/br_ioctl.c/1.4/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/br_notify.c/1.2/Thu Mar 2 02:37:14 2000/-ko/Tlinux_2_4_20
-+/br_private.h/1.6.2.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
-+/br_private_stp.h/1.3/Fri Mar 9 20:34:58 2001/-ko/Tlinux_2_4_20
-+/br_private_timer.h/1.1/Thu Feb 24 00:13:22 2000/-ko/Tlinux_2_4_20
-+/br_stp.c/1.4.4.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/br_stp_bpdu.c/1.3/Sun Dec 2 11:35:00 2001/-ko/Tlinux_2_4_20
-+/br_stp_if.c/1.4/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+/br_stp_timer.c/1.3/Fri May 12 21:06:53 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Repository linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Repository
---- linux-2.4.20/net/bridge/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Repository 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/bridge
-diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Root linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Root
---- linux-2.4.20/net/bridge/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Root 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/bridge/CVS/Tag linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Tag
---- linux-2.4.20/net/bridge/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bridge/CVS/Tag 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/bridge/.cvsignore linux-2.4.20-mipscvs-20050106/net/bridge/.cvsignore
---- linux-2.4.20/net/bridge/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/bridge/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/core/CVS/Entries linux-2.4.20-mipscvs-20050106/net/core/CVS/Entries
---- linux-2.4.20/net/core/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Entries 2005-01-06 23:07:48.000000000 -0600
-@@ -0,0 +1,21 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.9.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/datagram.c/1.14.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/dev.c/1.48.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/dev_mcast.c/1.10/Thu Nov 23 02:01:01 2000/-ko/Tlinux_2_4_20
-+/dst.c/1.10.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/dv.c/1.5/Tue Nov 6 07:56:16 2001/-ko/Tlinux_2_4_20
-+/filter.c/1.8/Thu Jun 14 04:24:31 2001/-ko/Tlinux_2_4_20
-+/iovec.c/1.17/Fri Oct 19 01:25:07 2001/-ko/Tlinux_2_4_20
-+/neighbour.c/1.18.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/netfilter.c/1.12.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/pktgen.c/1.1.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/profile.c/1.6/Sun Jun 25 01:20:06 2000/-ko/Tlinux_2_4_20
-+/rtnetlink.c/1.12.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/scm.c/1.13.4.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/skbuff.c/1.27.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/sock.c/1.33.2.2/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+/sysctl_net_core.c/1.8.4.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/utils.c/1.2/Sat Oct 9 00:01:51 1999/-ko/Tlinux_2_4_20
-+/wireless.c/1.1.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/core/CVS/Repository linux-2.4.20-mipscvs-20050106/net/core/CVS/Repository
---- linux-2.4.20/net/core/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Repository 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/core
-diff -urNd -urNd linux-2.4.20/net/core/CVS/Root linux-2.4.20-mipscvs-20050106/net/core/CVS/Root
---- linux-2.4.20/net/core/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Root 2005-01-06 23:07:46.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/core/CVS/Tag linux-2.4.20-mipscvs-20050106/net/core/CVS/Tag
---- linux-2.4.20/net/core/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/core/CVS/Tag 2005-01-06 23:07:48.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/core/.cvsignore linux-2.4.20-mipscvs-20050106/net/core/.cvsignore
---- linux-2.4.20/net/core/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/core/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/CVS/Entries linux-2.4.20-mipscvs-20050106/net/CVS/Entries
---- linux-2.4.20/net/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,34 @@
-+/.cvsignore/1.5/Sat Mar 25 22:41:21 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.28.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.21.2.3/Wed Jun 26 22:36:48 2002/-ko/Tlinux_2_4_20
-+/README/1.12.2.1/Sat Dec 29 05:38:25 2001/-ko/Tlinux_2_4_20
-+/TUNABLE/1.4/Sun Jun 13 16:37:16 1999/-ko/Tlinux_2_4_20
-+/netsyms.c/1.53.2.5/Sat Jan 11 17:53:18 2003/-ko/Tlinux_2_4_20
-+/socket.c/1.46.2.3/Wed Sep 11 12:45:43 2002/-ko/Tlinux_2_4_20
-+/sysctl_net.c/1.9/Wed Jun 13 17:28:18 2001/-ko/Tlinux_2_4_20
-+D/802////
-+D/8021q////
-+D/appletalk////
-+D/atm////
-+D/ax25////
-+D/bluetooth////
-+D/bridge////
-+D/core////
-+D/decnet////
-+D/econet////
-+D/ethernet////
-+D/ipv4////
-+D/ipv6////
-+D/ipx////
-+D/irda////
-+D/khttpd////
-+D/lapb////
-+D/netlink////
-+D/netrom////
-+D/packet////
-+D/rose////
-+D/sched////
-+D/sunrpc////
-+D/unix////
-+D/wanrouter////
-+D/x25////
-diff -urNd -urNd linux-2.4.20/net/CVS/Repository linux-2.4.20-mipscvs-20050106/net/CVS/Repository
---- linux-2.4.20/net/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/CVS/Repository 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net
-diff -urNd -urNd linux-2.4.20/net/CVS/Root linux-2.4.20-mipscvs-20050106/net/CVS/Root
---- linux-2.4.20/net/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/CVS/Root 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/CVS/Tag linux-2.4.20-mipscvs-20050106/net/CVS/Tag
---- linux-2.4.20/net/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/CVS/Tag 2005-01-06 23:07:43.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/.cvsignore linux-2.4.20-mipscvs-20050106/net/.cvsignore
---- linux-2.4.20/net/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/.cvsignore 2000-03-25 16:41:21.000000000 -0600
-@@ -0,0 +1,10 @@
-+! RCS SCCS CVS CVS.adm
-+RCSLOG cvslog.*
-+tags TAGS
-+.make.state .nse_depinfo
-+*~ #* .#* ,* _$* *$
-+*.old *.bak *.BAK *.orig *.rej .del-*
-+*.a *.olb *.o *.obj *.so *.exe
-+*.Z *.elc *.ln
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Entries
---- linux-2.4.20/net/decnet/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,17 @@
-+/.cvsignore/1.1/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.7/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.7/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/README/1.4.4.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/TODO/1.8/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/af_decnet.c/1.23.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/dn_dev.c/1.12.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/dn_fib.c/1.7.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/dn_neigh.c/1.8/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/dn_nsp_in.c/1.13/Sun Dec 2 11:35:01 2001/-ko/Tlinux_2_4_20
-+/dn_nsp_out.c/1.9/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/dn_route.c/1.18.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/dn_rules.c/1.2.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/dn_table.c/1.5.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/dn_timer.c/1.5/Wed Jan 31 22:22:35 2001/-ko/Tlinux_2_4_20
-+/sysctl_net_decnet.c/1.10/Sun Dec 2 11:35:01 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Repository
---- linux-2.4.20/net/decnet/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Repository 2005-01-06 23:07:48.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/decnet
-diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Root linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Root
---- linux-2.4.20/net/decnet/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Root 2005-01-06 23:07:48.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/decnet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Tag
---- linux-2.4.20/net/decnet/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/decnet/CVS/Tag 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/decnet/.cvsignore linux-2.4.20-mipscvs-20050106/net/decnet/.cvsignore
---- linux-2.4.20/net/decnet/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/decnet/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/econet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/econet/CVS/Entries
---- linux-2.4.20/net/econet/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Entries 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.3/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jun 13 17:28:19 2001/-ko/Tlinux_2_4_20
-+/af_econet.c/1.8.2.1/Wed Jun 26 22:36:49 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/econet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/econet/CVS/Repository
---- linux-2.4.20/net/econet/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Repository 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/econet
-diff -urNd -urNd linux-2.4.20/net/econet/CVS/Root linux-2.4.20-mipscvs-20050106/net/econet/CVS/Root
---- linux-2.4.20/net/econet/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Root 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/econet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/econet/CVS/Tag
---- linux-2.4.20/net/econet/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/econet/CVS/Tag 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/econet/.cvsignore linux-2.4.20-mipscvs-20050106/net/econet/.cvsignore
---- linux-2.4.20/net/econet/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/econet/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Entries
---- linux-2.4.20/net/ethernet/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Entries 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Tue Nov 6 07:56:16 2001/-ko/Tlinux_2_4_20
-+/eth.c/1.9/Thu Apr 5 04:59:16 2001/-ko/Tlinux_2_4_20
-+/pe2.c/1.4/Fri Jul 21 22:01:02 2000/-ko/Tlinux_2_4_20
-+/sysctl_net_ether.c/1.1.1.1/Sun Jun 1 03:16:29 1997/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Repository
---- linux-2.4.20/net/ethernet/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Repository 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ethernet
-diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Root linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Root
---- linux-2.4.20/net/ethernet/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Root 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ethernet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Tag
---- linux-2.4.20/net/ethernet/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ethernet/CVS/Tag 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ethernet/.cvsignore linux-2.4.20-mipscvs-20050106/net/ethernet/.cvsignore
---- linux-2.4.20/net/ethernet/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ethernet/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Entries
---- linux-2.4.20/net/ipv4/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,40 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.16.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.13.2.1/Sat Dec 29 05:38:26 2001/-ko/Tlinux_2_4_20
-+/af_inet.c/1.38.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/arp.c/1.26.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/devinet.c/1.22.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/fib_frontend.c/1.16.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/fib_hash.c/1.9.4.1/Sat Dec 29 05:38:27 2001/-ko/Tlinux_2_4_20
-+/fib_rules.c/1.12.2.1/Sat Dec 29 05:38:27 2001/-ko/Tlinux_2_4_20
-+/fib_semantics.c/1.12.4.3/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/icmp.c/1.30.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/igmp.c/1.22.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/inetpeer.c/1.6/Mon Nov 5 20:16:33 2001/-ko/Tlinux_2_4_20
-+/ip_forward.c/1.13/Wed Jun 13 17:28:19 2001/-ko/Tlinux_2_4_20
-+/ip_fragment.c/1.26.2.1/Tue Feb 26 06:00:35 2002/-ko/Tlinux_2_4_20
-+/ip_gre.c/1.21.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_input.c/1.20.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/ip_nat_dumb.c/1.10/Wed Jun 13 17:28:19 2001/-ko/Tlinux_2_4_20
-+/ip_options.c/1.13.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_output.c/1.33.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_sockglue.c/1.25/Tue Nov 6 07:56:16 2001/-ko/Tlinux_2_4_20
-+/ipconfig.c/1.32.2.5/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ipip.c/1.27.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ipmr.c/1.25.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/proc.c/1.21.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/protocol.c/1.8/Thu Jun 14 04:24:31 2001/-ko/Tlinux_2_4_20
-+/raw.c/1.27.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/route.c/1.35.2.6/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/syncookies.c/1.19.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/sysctl_net_ipv4.c/1.23.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/tcp.c/1.45.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/tcp_diag.c/1.1.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/tcp_input.c/1.45.2.5/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/tcp_ipv4.c/1.48.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/tcp_minisocks.c/1.8.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/tcp_output.c/1.34.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/tcp_timer.c/1.33/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/udp.c/1.35.2.2/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/utils.c/1.8.4.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+D/netfilter////
-diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Repository
---- linux-2.4.20/net/ipv4/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Repository 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ipv4
-diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Root
---- linux-2.4.20/net/ipv4/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Root 2005-01-06 23:07:49.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ipv4/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Tag
---- linux-2.4.20/net/ipv4/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/CVS/Tag 2005-01-06 23:07:54.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ipv4/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv4/.cvsignore
---- linux-2.4.20/net/ipv4/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Entries
---- linux-2.4.20/net/ipv4/netfilter/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Entries 2005-01-06 23:07:56.000000000 -0600
-@@ -0,0 +1,63 @@
-+/.cvsignore/1.1/Wed Apr 19 04:00:25 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.5.2.4/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.11.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/arp_tables.c/1.1.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/arptable_filter.c/1.1.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_core.c/1.13.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_conntrack_ftp.c/1.10.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_irc.c/1.1.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_proto_generic.c/1.4.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_proto_icmp.c/1.4.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_proto_tcp.c/1.7.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_conntrack_proto_udp.c/1.6.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_conntrack_standalone.c/1.11.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_fw_compat.c/1.10.2.1/Sat Dec 29 05:38:29 2001/-ko/Tlinux_2_4_20
-+/ip_fw_compat_masq.c/1.7.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_fw_compat_redir.c/1.2.4.3/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/ip_nat_core.c/1.9.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_nat_ftp.c/1.9.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_nat_helper.c/1.2.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_nat_irc.c/1.1.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_nat_proto_icmp.c/1.1/Thu Mar 23 02:26:02 2000/-ko/Tlinux_2_4_20
-+/ip_nat_proto_tcp.c/1.2.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_nat_proto_udp.c/1.2/Tue Aug 8 18:28:31 2000/-ko/Tlinux_2_4_20
-+/ip_nat_proto_unknown.c/1.1.4.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_nat_rule.c/1.4.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_nat_snmp_basic.c/1.1.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_nat_standalone.c/1.12.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip_queue.c/1.15.2.3/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ip_tables.c/1.14.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ipchains_core.c/1.7.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ipfwadm_core.c/1.8.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/ipt_DSCP.c/1.1.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ipt_ECN.c/1.1.2.1/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ipt_LOG.c/1.8.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/ipt_MARK.c/1.4/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_MASQUERADE.c/1.9/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_MIRROR.c/1.7.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/ipt_REDIRECT.c/1.5.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/ipt_REJECT.c/1.13.2.2/Wed Sep 11 12:45:44 2002/-ko/Tlinux_2_4_20
-+/ipt_TCPMSS.c/1.2.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/ipt_TOS.c/1.5.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/ipt_ULOG.c/1.1.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ipt_ah.c/1.1.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_conntrack.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_dscp.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_ecn.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_esp.c/1.1.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/ipt_helper.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_length.c/1.1/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/ipt_limit.c/1.5/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_mac.c/1.5/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_mark.c/1.4/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_multiport.c/1.5/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_owner.c/1.6.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_pkttype.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ipt_state.c/1.4/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_tcpmss.c/1.2/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_tos.c/1.4/Mon Nov 5 20:16:34 2001/-ko/Tlinux_2_4_20
-+/ipt_ttl.c/1.1/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/ipt_unclean.c/1.6.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/iptable_filter.c/1.4.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/iptable_mangle.c/1.6.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Repository
---- linux-2.4.20/net/ipv4/netfilter/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Repository 2005-01-06 23:07:54.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ipv4/netfilter
-diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Root
---- linux-2.4.20/net/ipv4/netfilter/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Root 2005-01-06 23:07:54.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Tag
---- linux-2.4.20/net/ipv4/netfilter/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/CVS/Tag 2005-01-06 23:07:56.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ipv4/netfilter/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/.cvsignore
---- linux-2.4.20/net/ipv4/netfilter/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv4/netfilter/.cvsignore 2000-04-18 23:00:25.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Entries
---- linux-2.4.20/net/ipv6/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,27 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.6.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/README/1.2/Sat Jan 29 01:42:33 2000/-ko/Tlinux_2_4_20
-+/addrconf.c/1.29.2.3/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/af_inet6.c/1.32/Tue Nov 6 00:55:32 2001/-ko/Tlinux_2_4_20
-+/datagram.c/1.13.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/exthdrs.c/1.11/Wed Aug 22 03:25:19 2001/-ko/Tlinux_2_4_20
-+/icmp.c/1.24.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip6_fib.c/1.17.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip6_flowlabel.c/1.4/Tue Aug 8 19:48:21 2000/-ko/Tlinux_2_4_20
-+/ip6_fw.c/1.9.4.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/ip6_input.c/1.14/Wed Jun 13 17:28:20 2001/-ko/Tlinux_2_4_20
-+/ip6_output.c/1.20.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ipv6_sockglue.c/1.20/Fri Oct 19 01:25:08 2001/-ko/Tlinux_2_4_20
-+/mcast.c/1.22/Sat Sep 22 12:49:43 2001/-ko/Tlinux_2_4_20
-+/ndisc.c/1.22.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/proc.c/1.13.4.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/protocol.c/1.8/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
-+/raw.c/1.29.2.1/Wed Jun 26 22:36:50 2002/-ko/Tlinux_2_4_20
-+/reassembly.c/1.16.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/route.c/1.29.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/sit.c/1.23.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/sysctl_net_ipv6.c/1.2/Tue Mar 17 22:18:43 1998/-ko/Tlinux_2_4_20
-+/tcp_ipv6.c/1.39.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/udp.c/1.29.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+D/netfilter////
-diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Repository
---- linux-2.4.20/net/ipv6/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Repository 2005-01-06 23:07:56.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ipv6
-diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Root
---- linux-2.4.20/net/ipv6/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Root 2005-01-06 23:07:56.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ipv6/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Tag
---- linux-2.4.20/net/ipv6/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/CVS/Tag 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ipv6/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv6/.cvsignore
---- linux-2.4.20/net/ipv6/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Entries
---- linux-2.4.20/net/ipv6/netfilter/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Entries 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1,17 @@
-+/.cvsignore/1.1/Wed Jul 5 01:33:35 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.3.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ip6_queue.c/1.1.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip6_tables.c/1.9.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip6t_LOG.c/1.1.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/ip6t_MARK.c/1.3.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/ip6t_eui64.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ip6t_length.c/1.1.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ip6t_limit.c/1.3/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/ip6t_mac.c/1.3.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/ip6t_mark.c/1.3/Mon Nov 5 20:16:35 2001/-ko/Tlinux_2_4_20
-+/ip6t_multiport.c/1.2/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/ip6t_owner.c/1.1/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/ip6table_filter.c/1.3.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+/ip6table_mangle.c/1.2.2.1/Tue Feb 26 06:00:37 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Repository
---- linux-2.4.20/net/ipv6/netfilter/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Repository 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ipv6/netfilter
-diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Root
---- linux-2.4.20/net/ipv6/netfilter/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Root 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Tag
---- linux-2.4.20/net/ipv6/netfilter/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/CVS/Tag 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ipv6/netfilter/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/.cvsignore
---- linux-2.4.20/net/ipv6/netfilter/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipv6/netfilter/.cvsignore 2000-07-04 20:33:35.000000000 -0500
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Entries linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Entries
---- linux-2.4.20/net/ipx/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Entries 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.4/Tue Nov 28 03:59:04 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.6/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/af_ipx.c/1.32/Mon Nov 5 20:16:35 2001/-ko/Tlinux_2_4_20
-+/af_spx.c/1.15/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
-+/sysctl_net_ipx.c/1.4/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Repository linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Repository
---- linux-2.4.20/net/ipx/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Repository 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/ipx
-diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Root linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Root
---- linux-2.4.20/net/ipx/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Root 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/ipx/CVS/Tag linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Tag
---- linux-2.4.20/net/ipx/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipx/CVS/Tag 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/ipx/.cvsignore linux-2.4.20-mipscvs-20050106/net/ipx/.cvsignore
---- linux-2.4.20/net/ipx/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/ipx/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Entries
---- linux-2.4.20/net/irda/compressors/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Entries 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1,2 @@
-+/.cvsignore/1.3/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Repository
---- linux-2.4.20/net/irda/compressors/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Repository 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/irda/compressors
-diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Root
---- linux-2.4.20/net/irda/compressors/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Root 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/irda/compressors/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Tag
---- linux-2.4.20/net/irda/compressors/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/CVS/Tag 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/irda/compressors/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/compressors/.cvsignore
---- linux-2.4.20/net/irda/compressors/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/compressors/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/irda/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/CVS/Entries
---- linux-2.4.20/net/irda/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,29 @@
-+/.cvsignore/1.3/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.7.4.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.8/Tue Nov 6 07:56:17 2001/-ko/Tlinux_2_4_20
-+/af_irda.c/1.21.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/crc.c/1.2/Thu Jun 17 13:32:04 1999/-ko/Tlinux_2_4_20
-+/discovery.c/1.7.4.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irda_device.c/1.16.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
-+/iriap.c/1.11.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/iriap_event.c/1.7.4.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irias_object.c/1.11/Mon Nov 5 20:16:35 2001/-ko/Tlinux_2_4_20
-+/irlap.c/1.13.2.4/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irlap_event.c/1.15.2.4/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irlap_frame.c/1.11.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/irlmp.c/1.14.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irlmp_event.c/1.9.2.3/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irlmp_frame.c/1.10.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irproc.c/1.8/Thu Aug 23 22:24:52 2001/-ko/Tlinux_2_4_20
-+/irqueue.c/1.8/Thu Aug 23 22:24:52 2001/-ko/Tlinux_2_4_20
-+/irsyms.c/1.3.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irsysctl.c/1.7.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/irttp.c/1.13/Sun Dec 2 11:35:01 2001/-ko/Tlinux_2_4_20
-+/parameters.c/1.8/Sun Dec 2 11:35:01 2001/-ko/Tlinux_2_4_20
-+/qos.c/1.13.2.2/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/timer.c/1.7/Sun Dec 2 11:35:01 2001/-ko/Tlinux_2_4_20
-+/wrapper.c/1.10/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
-+D/compressors////
-+D/ircomm////
-+D/irlan////
-+D/irnet////
-diff -urNd -urNd linux-2.4.20/net/irda/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/CVS/Repository
---- linux-2.4.20/net/irda/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Repository 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/irda
-diff -urNd -urNd linux-2.4.20/net/irda/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/CVS/Root
---- linux-2.4.20/net/irda/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Root 2005-01-06 23:07:58.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/irda/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/CVS/Tag
---- linux-2.4.20/net/irda/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/CVS/Tag 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/irda/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/.cvsignore
---- linux-2.4.20/net/irda/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Entries
---- linux-2.4.20/net/irda/ircomm/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Entries 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.3/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.2/Sat Oct 9 00:01:53 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Thu Apr 5 04:59:37 2001/-ko/Tlinux_2_4_20
-+/ircomm_core.c/1.9.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
-+/ircomm_event.c/1.4/Thu Apr 5 04:59:37 2001/-ko/Tlinux_2_4_20
-+/ircomm_lmp.c/1.4.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
-+/ircomm_param.c/1.6/Sun Dec 2 11:35:01 2001/-ko/Tlinux_2_4_20
-+/ircomm_ttp.c/1.4/Thu Apr 5 04:59:37 2001/-ko/Tlinux_2_4_20
-+/ircomm_tty.c/1.11.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ircomm_tty_attach.c/1.6.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+/ircomm_tty_ioctl.c/1.4.2.1/Wed Sep 11 12:45:45 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Repository
---- linux-2.4.20/net/irda/ircomm/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Repository 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/irda/ircomm
-diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Root
---- linux-2.4.20/net/irda/ircomm/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Root 2005-01-06 23:07:59.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/irda/ircomm/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Tag
---- linux-2.4.20/net/irda/ircomm/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/CVS/Tag 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/irda/ircomm/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/ircomm/.cvsignore
---- linux-2.4.20/net/irda/ircomm/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/ircomm/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Entries
---- linux-2.4.20/net/irda/irlan/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Entries 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.3/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.3/Sat Oct 9 00:01:53 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/irlan_client.c/1.9.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/irlan_client_event.c/1.6/Wed Jan 10 05:27:37 2001/-ko/Tlinux_2_4_20
-+/irlan_common.c/1.13.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
-+/irlan_eth.c/1.12.2.1/Tue Feb 26 06:00:38 2002/-ko/Tlinux_2_4_20
-+/irlan_event.c/1.4/Sat Jan 29 01:42:35 2000/-ko/Tlinux_2_4_20
-+/irlan_filter.c/1.3/Sat Jan 29 01:42:35 2000/-ko/Tlinux_2_4_20
-+/irlan_provider.c/1.6/Thu Apr 5 04:59:37 2001/-ko/Tlinux_2_4_20
-+/irlan_provider_event.c/1.3/Sat Jan 29 01:42:35 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Repository
---- linux-2.4.20/net/irda/irlan/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Repository 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/irda/irlan
-diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Root
---- linux-2.4.20/net/irda/irlan/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Root 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/irda/irlan/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Tag
---- linux-2.4.20/net/irda/irlan/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/CVS/Tag 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/irda/irlan/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/irlan/.cvsignore
---- linux-2.4.20/net/irda/irlan/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irlan/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Entries
---- linux-2.4.20/net/irda/irnet/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Entries 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1,9 @@
-+/.cvsignore/1.1/Sat Dec 9 23:37:46 2000/-ko/Tlinux_2_4_20
-+/Config.in/1.2/Thu Apr 5 04:59:37 2001/-ko/Tlinux_2_4_20
-+/Makefile/1.2/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/irnet.h/1.6.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/irnet_irda.c/1.7.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/irnet_irda.h/1.3.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/irnet_ppp.c/1.7/Sun Dec 2 11:35:02 2001/-ko/Tlinux_2_4_20
-+/irnet_ppp.h/1.3/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Repository
---- linux-2.4.20/net/irda/irnet/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Repository 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/irda/irnet
-diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Root linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Root
---- linux-2.4.20/net/irda/irnet/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Root 2005-01-06 23:08:00.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/irda/irnet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Tag
---- linux-2.4.20/net/irda/irnet/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/CVS/Tag 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/irda/irnet/.cvsignore linux-2.4.20-mipscvs-20050106/net/irda/irnet/.cvsignore
---- linux-2.4.20/net/irda/irnet/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/irda/irnet/.cvsignore 2000-12-09 17:37:46.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Entries linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Entries
---- linux-2.4.20/net/khttpd/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Entries 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1,22 @@
-+/.cvsignore/1.1/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.2/Fri Jan 21 22:34:11 2000/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/README/1.2.4.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/accept.c/1.2/Fri Feb 18 00:24:51 2000/-ko/Tlinux_2_4_20
-+/datasending.c/1.7/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
-+/logging.c/1.1/Sat Oct 9 00:01:53 1999/-ko/Tlinux_2_4_20
-+/main.c/1.6.2.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/make_times_h.c/1.1/Sat Oct 9 00:01:53 1999/-ko/Tlinux_2_4_20
-+/misc.c/1.2/Fri Mar 9 20:34:59 2001/-ko/Tlinux_2_4_20
-+/prototypes.h/1.2/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
-+/rfc.c/1.5/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
-+/rfc_time.c/1.2/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/security.c/1.7.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/security.h/1.2/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+/sockets.c/1.4.4.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/structure.h/1.2/Wed Feb 23 00:41:45 2000/-ko/Tlinux_2_4_20
-+/sysctl.c/1.2.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/sysctl.h/1.1.4.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/userspace.c/1.4/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/waitheaders.c/1.5.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Repository linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Repository
---- linux-2.4.20/net/khttpd/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Repository 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/khttpd
-diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Root linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Root
---- linux-2.4.20/net/khttpd/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Root 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/khttpd/CVS/Tag linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Tag
---- linux-2.4.20/net/khttpd/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/khttpd/CVS/Tag 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/khttpd/.cvsignore linux-2.4.20-mipscvs-20050106/net/khttpd/.cvsignore
---- linux-2.4.20/net/khttpd/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/khttpd/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Entries linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Entries
---- linux-2.4.20/net/lapb/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Entries 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1,8 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/lapb_iface.c/1.11.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/lapb_in.c/1.5/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/lapb_out.c/1.4/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/lapb_subr.c/1.5/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+/lapb_timer.c/1.4/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Repository linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Repository
---- linux-2.4.20/net/lapb/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Repository 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/lapb
-diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Root linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Root
---- linux-2.4.20/net/lapb/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Root 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/lapb/CVS/Tag linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Tag
---- linux-2.4.20/net/lapb/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/lapb/CVS/Tag 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/lapb/.cvsignore linux-2.4.20-mipscvs-20050106/net/lapb/.cvsignore
---- linux-2.4.20/net/lapb/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/lapb/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Entries linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Entries
---- linux-2.4.20/net/netlink/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Entries 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1,5 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/af_netlink.c/1.19.2.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/netlink_dev.c/1.15.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Repository linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Repository
---- linux-2.4.20/net/netlink/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Repository 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/netlink
-diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Root linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Root
---- linux-2.4.20/net/netlink/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Root 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/netlink/CVS/Tag linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Tag
---- linux-2.4.20/net/netlink/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netlink/CVS/Tag 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/netlink/.cvsignore linux-2.4.20-mipscvs-20050106/net/netlink/.cvsignore
---- linux-2.4.20/net/netlink/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netlink/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Entries linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Entries
---- linux-2.4.20/net/netrom/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Entries 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1,12 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/af_netrom.c/1.27.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/nr_dev.c/1.11/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+/nr_in.c/1.6/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/nr_loopback.c/1.7.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/nr_out.c/1.6/Wed Jun 13 17:28:20 2001/-ko/Tlinux_2_4_20
-+/nr_route.c/1.10.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/nr_subr.c/1.7/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+/nr_timer.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/sysctl_net_netrom.c/1.3/Sat Oct 9 00:01:55 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Repository linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Repository
---- linux-2.4.20/net/netrom/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Repository 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/netrom
-diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Root linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Root
---- linux-2.4.20/net/netrom/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Root 2005-01-06 23:08:01.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/netrom/CVS/Tag linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Tag
---- linux-2.4.20/net/netrom/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netrom/CVS/Tag 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/netrom/.cvsignore linux-2.4.20-mipscvs-20050106/net/netrom/.cvsignore
---- linux-2.4.20/net/netrom/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/netrom/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/packet/CVS/Entries linux-2.4.20-mipscvs-20050106/net/packet/CVS/Entries
---- linux-2.4.20/net/packet/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Entries 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1,4 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:22 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/af_packet.c/1.36.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/packet/CVS/Repository linux-2.4.20-mipscvs-20050106/net/packet/CVS/Repository
---- linux-2.4.20/net/packet/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Repository 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/packet
-diff -urNd -urNd linux-2.4.20/net/packet/CVS/Root linux-2.4.20-mipscvs-20050106/net/packet/CVS/Root
---- linux-2.4.20/net/packet/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Root 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/packet/CVS/Tag linux-2.4.20-mipscvs-20050106/net/packet/CVS/Tag
---- linux-2.4.20/net/packet/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/packet/CVS/Tag 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/packet/.cvsignore linux-2.4.20-mipscvs-20050106/net/packet/.cvsignore
---- linux-2.4.20/net/packet/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/packet/.cvsignore 1999-12-06 17:13:22.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/rose/CVS/Entries linux-2.4.20-mipscvs-20050106/net/rose/CVS/Entries
---- linux-2.4.20/net/rose/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Entries 2005-01-06 23:08:03.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:23 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Fri Mar 9 20:35:02 2001/-ko/Tlinux_2_4_20
-+/af_rose.c/1.29.2.3/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
-+/rose_dev.c/1.12/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+/rose_in.c/1.6/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/rose_link.c/1.9.2.1/Tue Feb 26 06:00:39 2002/-ko/Tlinux_2_4_20
-+/rose_loopback.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/rose_out.c/1.5/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/rose_route.c/1.12/Wed Aug 22 03:25:20 2001/-ko/Tlinux_2_4_20
-+/rose_subr.c/1.8.2.1/Tue Feb 26 06:00:39 2002/-ko/Tlinux_2_4_20
-+/rose_timer.c/1.4/Wed Jan 10 17:18:10 2001/-ko/Tlinux_2_4_20
-+/sysctl_net_rose.c/1.4/Sat Oct 9 00:01:55 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/rose/CVS/Repository linux-2.4.20-mipscvs-20050106/net/rose/CVS/Repository
---- linux-2.4.20/net/rose/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Repository 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/rose
-diff -urNd -urNd linux-2.4.20/net/rose/CVS/Root linux-2.4.20-mipscvs-20050106/net/rose/CVS/Root
---- linux-2.4.20/net/rose/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Root 2005-01-06 23:08:02.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/rose/CVS/Tag linux-2.4.20-mipscvs-20050106/net/rose/CVS/Tag
---- linux-2.4.20/net/rose/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/rose/CVS/Tag 2005-01-06 23:08:03.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/rose/.cvsignore linux-2.4.20-mipscvs-20050106/net/rose/.cvsignore
---- linux-2.4.20/net/rose/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/rose/.cvsignore 1999-12-06 17:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/sched/CVS/Entries linux-2.4.20-mipscvs-20050106/net/sched/CVS/Entries
---- linux-2.4.20/net/sched/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Entries 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1,29 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:23 1999/-ko/Tlinux_2_4_20
-+/Config.in/1.8.4.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/Makefile/1.7.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/cls_api.c/1.7.4.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/cls_fw.c/1.7.2.1/Sat Dec 29 05:38:30 2001/-ko/Tlinux_2_4_20
-+/cls_route.c/1.6.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/cls_rsvp.c/1.2/Mon Nov 5 20:16:36 2001/-ko/Tlinux_2_4_20
-+/cls_rsvp.h/1.5.4.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/cls_rsvp6.c/1.2/Mon Nov 5 20:16:36 2001/-ko/Tlinux_2_4_20
-+/cls_tcindex.c/1.5.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/cls_u32.c/1.8.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/estimator.c/1.4/Thu Jun 17 13:32:20 1999/-ko/Tlinux_2_4_20
-+/police.c/1.4.4.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_api.c/1.13.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/sch_atm.c/1.5.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_cbq.c/1.15.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_csz.c/1.9.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_dsmark.c/1.7.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_fifo.c/1.5.4.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_generic.c/1.13.4.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/sch_gred.c/1.7.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/sch_htb.c/1.1.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/sch_ingress.c/1.6.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/sch_prio.c/1.7.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/sch_red.c/1.12.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_sfq.c/1.8.2.2/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/sch_tbf.c/1.14.2.1/Sat Dec 29 05:38:31 2001/-ko/Tlinux_2_4_20
-+/sch_teql.c/1.11/Mon Nov 5 20:16:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/sched/CVS/Repository linux-2.4.20-mipscvs-20050106/net/sched/CVS/Repository
---- linux-2.4.20/net/sched/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Repository 2005-01-06 23:08:03.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/sched
-diff -urNd -urNd linux-2.4.20/net/sched/CVS/Root linux-2.4.20-mipscvs-20050106/net/sched/CVS/Root
---- linux-2.4.20/net/sched/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Root 2005-01-06 23:08:03.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/sched/CVS/Tag linux-2.4.20-mipscvs-20050106/net/sched/CVS/Tag
---- linux-2.4.20/net/sched/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sched/CVS/Tag 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/sched/.cvsignore linux-2.4.20-mipscvs-20050106/net/sched/.cvsignore
---- linux-2.4.20/net/sched/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sched/.cvsignore 1999-12-06 17:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Entries linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Entries
---- linux-2.4.20/net/sunrpc/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,19 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:23 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.3.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/auth.c/1.12/Fri Oct 19 01:25:09 2001/-ko/Tlinux_2_4_20
-+/auth_null.c/1.6/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
-+/auth_unix.c/1.10/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
-+/clnt.c/1.21.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/pmap_clnt.c/1.6.2.1/Wed Jun 26 22:36:51 2002/-ko/Tlinux_2_4_20
-+/sched.c/1.30.2.3/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/stats.c/1.6.2.2/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/sunrpc_syms.c/1.13.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/svc.c/1.13.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/svcauth.c/1.2/Fri May 12 21:06:57 2000/-ko/Tlinux_2_4_20
-+/svcauth_des.c/1.1.1.1/Sun Jun 1 03:16:29 1997/-ko/Tlinux_2_4_20
-+/svcsock.c/1.25.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/sysctl.c/1.9/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
-+/timer.c/1.1.2.1/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/xdr.c/1.4.2.2/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+/xprt.c/1.30.2.4/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Repository linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Repository
---- linux-2.4.20/net/sunrpc/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Repository 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/sunrpc
-diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Root linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Root
---- linux-2.4.20/net/sunrpc/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Root 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/sunrpc/CVS/Tag linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Tag
---- linux-2.4.20/net/sunrpc/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/CVS/Tag 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/sunrpc/.cvsignore linux-2.4.20-mipscvs-20050106/net/sunrpc/.cvsignore
---- linux-2.4.20/net/sunrpc/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/sunrpc/.cvsignore 1999-12-06 17:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/unix/CVS/Entries linux-2.4.20-mipscvs-20050106/net/unix/CVS/Entries
---- linux-2.4.20/net/unix/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Entries 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1,6 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:23 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+/af_unix.c/1.51.2.4/Wed Sep 11 12:45:46 2002/-ko/Tlinux_2_4_20
-+/garbage.c/1.15.2.1/Tue Feb 26 06:00:40 2002/-ko/Tlinux_2_4_20
-+/sysctl_net_unix.c/1.9/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/unix/CVS/Repository linux-2.4.20-mipscvs-20050106/net/unix/CVS/Repository
---- linux-2.4.20/net/unix/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Repository 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/unix
-diff -urNd -urNd linux-2.4.20/net/unix/CVS/Root linux-2.4.20-mipscvs-20050106/net/unix/CVS/Root
---- linux-2.4.20/net/unix/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Root 2005-01-06 23:08:06.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/unix/CVS/Tag linux-2.4.20-mipscvs-20050106/net/unix/CVS/Tag
---- linux-2.4.20/net/unix/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/unix/CVS/Tag 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/unix/.cvsignore linux-2.4.20-mipscvs-20050106/net/unix/.cvsignore
---- linux-2.4.20/net/unix/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/unix/.cvsignore 1999-12-06 17:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Entries linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Entries
---- linux-2.4.20/net/wanrouter/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Entries 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1,7 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:23 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
-+/af_wanpipe.c/1.3.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/patchlevel/1.4/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
-+/wanmain.c/1.17/Sat Sep 22 12:49:44 2001/-ko/Tlinux_2_4_20
-+/wanproc.c/1.21/Fri Oct 19 01:25:10 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Repository linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Repository
---- linux-2.4.20/net/wanrouter/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Repository 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/wanrouter
-diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Root linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Root
---- linux-2.4.20/net/wanrouter/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Root 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/wanrouter/CVS/Tag linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Tag
---- linux-2.4.20/net/wanrouter/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/CVS/Tag 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/wanrouter/.cvsignore linux-2.4.20-mipscvs-20050106/net/wanrouter/.cvsignore
---- linux-2.4.20/net/wanrouter/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/wanrouter/.cvsignore 1999-12-06 17:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/net/x25/CVS/Entries linux-2.4.20-mipscvs-20050106/net/x25/CVS/Entries
---- linux-2.4.20/net/x25/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Entries 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1,13 @@
-+/.cvsignore/1.4/Mon Dec 6 23:13:23 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+/af_x25.c/1.30.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/sysctl_net_x25.c/1.3/Sat Oct 9 00:01:56 1999/-ko/Tlinux_2_4_20
-+/x25_dev.c/1.10/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+/x25_facilities.c/1.5/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+/x25_in.c/1.12/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+/x25_link.c/1.11/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
-+/x25_out.c/1.8/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
-+/x25_route.c/1.6/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+/x25_subr.c/1.8/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
-+/x25_timer.c/1.4/Wed Jan 31 22:22:36 2001/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/net/x25/CVS/Repository linux-2.4.20-mipscvs-20050106/net/x25/CVS/Repository
---- linux-2.4.20/net/x25/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Repository 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/net/x25
-diff -urNd -urNd linux-2.4.20/net/x25/CVS/Root linux-2.4.20-mipscvs-20050106/net/x25/CVS/Root
---- linux-2.4.20/net/x25/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Root 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/net/x25/CVS/Tag linux-2.4.20-mipscvs-20050106/net/x25/CVS/Tag
---- linux-2.4.20/net/x25/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/x25/CVS/Tag 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/net/x25/.cvsignore linux-2.4.20-mipscvs-20050106/net/x25/.cvsignore
---- linux-2.4.20/net/x25/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/net/x25/.cvsignore 1999-12-06 17:13:23.000000000 -0600
-@@ -0,0 +1,2 @@
-+.depend
-+.*.flags
-diff -urNd -urNd linux-2.4.20/scripts/CVS/Entries linux-2.4.20-mipscvs-20050106/scripts/CVS/Entries
---- linux-2.4.20/scripts/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,31 @@
-+/.cvsignore/1.2.6.1/Tue Aug 27 23:00:29 2002/-ko/Tlinux_2_4_20
-+/Configure/1.19/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
-+/Lindent/1.2/Sun Dec 2 11:35:02 2001/-ko/Tlinux_2_4_20
-+/MAKEDEV.ide/1.2/Sat Oct 9 00:01:56 1999/-ko/Tlinux_2_4_20
-+/Makefile/1.5/Thu Mar 23 02:26:03 2000/-ko/Tlinux_2_4_20
-+/Menuconfig/1.18.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/README.Menuconfig/1.2/Tue Mar 17 22:19:12 1998/-ko/Tlinux_2_4_20
-+/checkconfig.pl/1.4/Thu Jun 14 04:24:32 2001/-ko/Tlinux_2_4_20
-+/checkhelp.pl/1.1/Mon Feb 15 02:23:56 1999/-ko/Tlinux_2_4_20
-+/checkincludes.pl/1.1/Wed Apr 19 04:00:25 2000/-ko/Tlinux_2_4_20
-+/docgen/1.2/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
-+/docproc.c/1.4/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
-+/gen-all-syms/1.2/Wed Apr 19 04:00:25 2000/-ko/Tlinux_2_4_20
-+/header.tk/1.12/Wed Aug 22 03:25:23 2001/-ko/Tlinux_2_4_20
-+/kernel-doc/1.11.2.2/Tue Sep 10 15:32:56 2002/-ko/Tlinux_2_4_20
-+/makelst/1.2/Fri Mar 9 20:35:03 2001/-ko/Tlinux_2_4_20
-+/mkdep.c/1.17/Fri Oct 19 01:25:10 2001/-ko/Tlinux_2_4_20
-+/mkspec/1.1.2.2/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/mkversion/1.1/Fri Oct 19 01:25:10 2001/-ko/Tlinux_2_4_20
-+/patch-kernel/1.4.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/pathdown.sh/1.1.1.1/Sun Jun 1 03:16:52 1997/-ko/Tlinux_2_4_20
-+/split-include.c/1.3/Mon Nov 5 20:16:37 2001/-ko/Tlinux_2_4_20
-+/split-man/1.1.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/tail.tk/1.6/Mon Jun 19 22:46:00 2000/-ko/Tlinux_2_4_20
-+/tkcond.c/1.7/Thu Feb 24 00:13:24 2000/-ko/Tlinux_2_4_20
-+/tkgen.c/1.11.2.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/tkparse.c/1.10.4.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/tkparse.h/1.7.4.1/Wed Jun 26 22:36:52 2002/-ko/Tlinux_2_4_20
-+/ver_linux/1.9.2.1/Sat Jan 11 17:53:19 2003/-ko/Tlinux_2_4_20
-+D/ksymoops////
-+D/lxdialog////
-diff -urNd -urNd linux-2.4.20/scripts/CVS/Repository linux-2.4.20-mipscvs-20050106/scripts/CVS/Repository
---- linux-2.4.20/scripts/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Repository 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+linux/scripts
-diff -urNd -urNd linux-2.4.20/scripts/CVS/Root linux-2.4.20-mipscvs-20050106/scripts/CVS/Root
---- linux-2.4.20/scripts/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Root 2005-01-06 23:08:07.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/scripts/CVS/Tag linux-2.4.20-mipscvs-20050106/scripts/CVS/Tag
---- linux-2.4.20/scripts/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/CVS/Tag 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/scripts/.cvsignore linux-2.4.20-mipscvs-20050106/scripts/.cvsignore
---- linux-2.4.20/scripts/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/.cvsignore 2002-08-27 18:00:29.000000000 -0500
-@@ -0,0 +1,4 @@
-+mkdep
-+split-include
-+kconfig.tk
-+tkparse
-diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Entries linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Entries
---- linux-2.4.20/scripts/ksymoops/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Entries 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1,2 @@
-+/README/1.4/Thu Oct 5 01:19:04 2000/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Repository linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Repository
---- linux-2.4.20/scripts/ksymoops/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Repository 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/scripts/ksymoops
-diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Root linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Root
---- linux-2.4.20/scripts/ksymoops/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Root 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/scripts/ksymoops/CVS/Tag linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Tag
---- linux-2.4.20/scripts/ksymoops/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/ksymoops/CVS/Tag 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Entries linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Entries
---- linux-2.4.20/scripts/lxdialog/CVS/Entries 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Entries 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1,14 @@
-+/.cvsignore/1.1/Sat Mar 25 22:41:21 2000/-ko/Tlinux_2_4_20
-+/BIG.FAT.WARNING/1.1.1.1/Sun Jun 1 03:16:52 1997/-ko/Tlinux_2_4_20
-+/Makefile/1.4/Mon Jun 19 22:46:00 2000/-ko/Tlinux_2_4_20
-+/checklist.c/1.5/Wed Jun 13 17:28:21 2001/-ko/Tlinux_2_4_20
-+/colors.h/1.1.1.1/Sun Jun 1 03:16:52 1997/-ko/Tlinux_2_4_20
-+/dialog.h/1.2/Mon Jan 4 16:11:27 1999/-ko/Tlinux_2_4_20
-+/inputbox.c/1.2/Sun Jun 13 16:38:16 1999/-ko/Tlinux_2_4_20
-+/lxdialog.c/1.3/Mon Jan 4 16:11:27 1999/-ko/Tlinux_2_4_20
-+/menubox.c/1.6/Fri Mar 9 20:35:03 2001/-ko/Tlinux_2_4_20
-+/msgbox.c/1.2/Sun Jun 13 16:38:17 1999/-ko/Tlinux_2_4_20
-+/textbox.c/1.3/Sun Jun 13 16:38:17 1999/-ko/Tlinux_2_4_20
-+/util.c/1.1.1.1/Sun Jun 1 03:16:52 1997/-ko/Tlinux_2_4_20
-+/yesno.c/1.2/Sun Jun 13 16:38:17 1999/-ko/Tlinux_2_4_20
-+D
-diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Repository linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Repository
---- linux-2.4.20/scripts/lxdialog/CVS/Repository 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Repository 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1 @@
-+linux/scripts/lxdialog
-diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Root linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Root
---- linux-2.4.20/scripts/lxdialog/CVS/Root 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Root 2005-01-06 23:08:08.000000000 -0600
-@@ -0,0 +1 @@
-+:pserver:cvs@ftp.linux-mips.org:/home/cvs
-diff -urNd -urNd linux-2.4.20/scripts/lxdialog/CVS/Tag linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Tag
---- linux-2.4.20/scripts/lxdialog/CVS/Tag 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/CVS/Tag 2005-01-06 23:08:09.000000000 -0600
-@@ -0,0 +1 @@
-+Nlinux_2_4_20
-diff -urNd -urNd linux-2.4.20/scripts/lxdialog/.cvsignore linux-2.4.20-mipscvs-20050106/scripts/lxdialog/.cvsignore
---- linux-2.4.20/scripts/lxdialog/.cvsignore 1969-12-31 18:00:00.000000000 -0600
-+++ linux-2.4.20-mipscvs-20050106/scripts/lxdialog/.cvsignore 2000-03-25 16:41:21.000000000 -0600
-@@ -0,0 +1 @@
-+lxdialog
diff --git a/packages/linux/linux-wrt-2.4.20/linux-2.4.24-attribute-used.patch b/packages/linux/linux-wrt-2.4.20/linux-2.4.24-attribute-used.patch
deleted file mode 100644
index 3a474d8b10..0000000000
--- a/packages/linux/linux-wrt-2.4.20/linux-2.4.24-attribute-used.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/include/asm-arm/setup.h~linux-2.4.24-attribute-used 2001-10-25 16:53:55.000000000 -0400
-+++ linux-2.4.20/include/asm-arm/setup.h 2005-01-07 03:34:41.753675352 -0500
-@@ -229,7 +229,7 @@
- int (*parse)(const struct tag *);
- };
-
--#define __tag __attribute__((unused, __section__(".taglist")))
-+#define __tag __attribute_used__ __attribute__((__section__(".taglist")))
- #define __tagtable(tag, fn) \
- static struct tagtable __tagtable_##fn __tag = { tag, fn }
-
---- linux-2.4.20/include/linux/compiler.h~linux-2.4.24-attribute-used 2001-09-18 17:12:45.000000000 -0400
-+++ linux-2.4.20/include/linux/compiler.h 2005-01-07 03:34:41.754675200 -0500
-@@ -13,4 +13,18 @@
- #define likely(x) __builtin_expect((x),1)
- #define unlikely(x) __builtin_expect((x),0)
-
-+#if __GNUC__ > 3
-+#define __attribute_used__ __attribute__((__used__))
-+#elif __GNUC__ == 3
-+#if __GNUC_MINOR__ >= 3
-+# define __attribute_used__ __attribute__((__used__))
-+#else
-+# define __attribute_used__ __attribute__((__unused__))
-+#endif /* __GNUC_MINOR__ >= 3 */
-+#elif __GNUC__ == 2
-+#define __attribute_used__ __attribute__((__unused__))
-+#else
-+#define __attribute_used__ /* not implemented */
-+#endif /* __GNUC__ */
-+
- #endif /* __LINUX_COMPILER_H */
---- linux-2.4.20/include/linux/init.h~linux-2.4.24-attribute-used 2001-12-21 12:42:03.000000000 -0500
-+++ linux-2.4.20/include/linux/init.h 2005-01-07 03:35:29.816368712 -0500
-@@ -2,6 +2,7 @@
- #define _LINUX_INIT_H
-
- #include <linux/config.h>
-+#include <linux/compiler.h>
-
- /* These macros are used to mark some functions or
- * initialized data (doesn't apply to uninitialized data)
-@@ -51,7 +52,7 @@
- extern initcall_t __initcall_start, __initcall_end;
-
- #define __initcall(fn) \
-- static initcall_t __initcall_##fn __init_call = fn
-+ static initcall_t __initcall_##fn __attribute_used__ __init_call = fn
- #define __exitcall(fn) \
- static exitcall_t __exitcall_##fn __exit_call = fn
-
-@@ -67,7 +68,7 @@
-
- #define __setup(str, fn) \
- static char __setup_str_##fn[] __initdata = str; \
-- static struct kernel_param __setup_##fn __attribute__((unused)) __initsetup = { __setup_str_##fn, fn }
-+ static struct kernel_param __setup_##fn __attribute_used__ __initsetup = { __setup_str_##fn, fn }
-
- #endif /* __ASSEMBLY__ */
-
-@@ -76,12 +77,12 @@
- * or exit time.
- */
- #define __init __attribute__ ((__section__ (".text.init")))
--#define __exit __attribute__ ((unused, __section__(".text.exit")))
-+#define __exit __attribute_used__ __attribute__ ((__section__(".text.exit")))
- #define __initdata __attribute__ ((__section__ (".data.init")))
--#define __exitdata __attribute__ ((unused, __section__ (".data.exit")))
--#define __initsetup __attribute__ ((unused,__section__ (".setup.init")))
--#define __init_call __attribute__ ((unused,__section__ (".initcall.init")))
--#define __exit_call __attribute__ ((unused,__section__ (".exitcall.exit")))
-+#define __exitdata __attribute_used__ __attribute__ ((__section__ (".data.exit")))
-+#define __initsetup __attribute_used__ __attribute__ ((__section__ (".setup.init")))
-+#define __init_call __attribute_used__ __attribute__ ((__section__ (".initcall.init")))
-+#define __exit_call __attribute_used__ __attribute__ ((__section__ (".exitcall.exit")))
-
- /* For assembly routines */
- #define __INIT .section ".text.init","ax"
---- linux-2.4.20/include/linux/module.h~linux-2.4.24-attribute-used 2002-08-02 20:39:45.000000000 -0400
-+++ linux-2.4.20/include/linux/module.h 2005-01-07 03:34:41.755675048 -0500
-@@ -8,6 +8,7 @@
- #define _LINUX_MODULE_H
-
- #include <linux/config.h>
-+#include <linux/compiler.h>
- #include <linux/spinlock.h>
- #include <linux/list.h>
-
-@@ -254,9 +255,9 @@
- */
- #define MODULE_GENERIC_TABLE(gtype,name) \
- static const unsigned long __module_##gtype##_size \
-- __attribute__ ((unused)) = sizeof(struct gtype##_id); \
-+ __attribute_used__ = sizeof(struct gtype##_id); \
- static const struct gtype##_id * __module_##gtype##_table \
-- __attribute__ ((unused)) = name
-+ __attribute_used__ = name
-
- /*
- * The following license idents are currently accepted as indicating free
-@@ -284,7 +285,7 @@
- */
-
- #define MODULE_LICENSE(license) \
--static const char __module_license[] __attribute__((section(".modinfo"))) = \
-+static const char __module_license[] __attribute_used__ __attribute__((section(".modinfo"))) = \
- "license=" license
-
- /* Define the module variable, and usage macros. */
-@@ -296,10 +297,10 @@
- #define MOD_IN_USE __MOD_IN_USE(THIS_MODULE)
-
- #include <linux/version.h>
--static const char __module_kernel_version[] __attribute__((section(".modinfo"))) =
-+static const char __module_kernel_version[] __attribute_used__ __attribute__((section(".modinfo"))) =
- "kernel_version=" UTS_RELEASE;
- #ifdef MODVERSIONS
--static const char __module_using_checksums[] __attribute__((section(".modinfo"))) =
-+static const char __module_using_checksums[] __attribute_used__ __attribute__((section(".modinfo"))) =
- "using_checksums=1";
- #endif
-
-@@ -319,7 +320,7 @@
- */
- #define MODULE_GENERIC_TABLE(gtype,name) \
- static const struct gtype##_id * __module_##gtype##_table \
-- __attribute__ ((unused, __section__(".data.exit"))) = name
-+ __attribute_used__ __attribute__ ((__section__(".data.exit"))) = name
-
- #ifndef __GENKSYMS__
-
diff --git a/packages/linux/linux-wrt-2.4.20/nobcom.patch b/packages/linux/linux-wrt-2.4.20/nobcom.patch
deleted file mode 100644
index fab51de5b6..0000000000
--- a/packages/linux/linux-wrt-2.4.20/nobcom.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-
-#
-# Patch managed by http://www.mn-logistik.de/unsupported/pxa250/patcher
-#
-
---- linux-2.4.20/drivers/net/Makefile~nobcom 2005-01-07 04:50:19.157885000 -0500
-+++ linux-2.4.20/drivers/net/Makefile 2005-01-07 04:50:19.221875336 -0500
-@@ -23,7 +23,7 @@
- ppp_mppe_c-objs := ppp_mppe_mppc_comp.o ppp_mppe_crypto.o
-
- # subdir-m += mac
--subdir-m += diag
-+# subdir-m += diag
-
- ifeq ($(CONFIG_HW_QOS),y)
- subdir-m += port_based_qos
-@@ -270,28 +270,15 @@
- ifdef CONFIG_HND
- subdir-$(CONFIG_HND) += hnd
- endif
--ifdef CONFIG_ET
--subdir-$(CONFIG_ET) += et.4702
--subdir-$(CONFIG_ET) += et
--endif
- ifdef CONFIG_IL
- subdir-$(CONFIG_IL) += il
- endif
--ifdef CONFIG_WL
--subdir-$(CONFIG_WL) += wl
--endif
- ifeq ($(CONFIG_HND),y)
- obj-y += hnd/hnd.o
- endif
--ifeq ($(CONFIG_ET),y)
-- obj-y += et/et.o
--endif
- ifeq ($(CONFIG_IL),y)
- obj-y += il/il.o
- endif
--ifeq ($(CONFIG_WL),y)
-- obj-y += wl/wl.o
--endif
-
- include $(TOPDIR)/Rules.make
-
---- linux-2.4.20/net/core/Makefile~nobcom 2005-01-07 04:49:30.581269000 -0500
-+++ linux-2.4.20/net/core/Makefile 2005-01-07 04:50:19.221875336 -0500
-@@ -7,8 +7,7 @@
- #
- # Note 2! The CFLAGS definition is now in the main makefile...
-
--SRCBASE := $(TOPDIR)/../..
--EXTRA_CFLAGS += -Wall -I$(SRCBASE)/
-+EXTRA_CFLAGS += -Wall
- O_TARGET := core.o
-
- export-objs := netfilter.o profile.o
---- linux-2.4.20/arch/mips/config-shared.in~nobcom 2005-01-07 04:49:30.583269000 -0500
-+++ linux-2.4.20/arch/mips/config-shared.in 2005-01-07 04:50:19.222875184 -0500
-@@ -543,7 +543,6 @@
- define_bool CONFIG_NONCOHERENT_IO y
- define_bool CONFIG_NEW_TIME_C y
- define_bool CONFIG_NEW_IRQ y
-- define_bool CONFIG_HND y
- fi
- if [ "$CONFIG_SNI_RM200_PCI" = "y" ]; then
- define_bool CONFIG_ARC32 y