Subject: A3000 clock diff
To: None <netbsd-bugs@NetBSD.ORG>
From: yambo <llucius@mill2.millcomm.com>
List: netbsd-bugs
Date: 12/12/1994 02:15:31
At the risk of showing my ignorance, I am sending this diff to correct 
the problems with setting the A3000 tod clock.  I am not really sure of 
the proper procedures for doing this, so please don't be too irrated if I 
am an idiot.

--------------------- Start of diff ----------------------------
*** -	Sun Dec 11 21:44:27 1994
--- clock.c	Sun Dec 11 21:41:28 1994
***************
*** 670,676 ****
  
  resettodr()
  {
! 	if (settod && settod(time.tv_sec) == 1)
  		return;
  	printf("Cannot set battery backed clock\n");
  }
--- 670,676 ----
  
  resettodr()
  {
! 	if (settod && (settod(time.tv_sec) == 1))
  		return;
  	printf("Cannot set battery backed clock\n");
  }
***************
*** 760,772 ****
  	struct rtclock3000 *rt;
  
  	rt = clockaddr;
! 	/*
! 	 * there seem to be problems with the bitfield addressing
! 	 * currently used..
! 	 */
! return(0);
! #if not_yet
! 	if (rt)
  		return 0;
  
  	/* prepare values to be written to clock */
--- 760,766 ----
  	struct rtclock3000 *rt;
  
  	rt = clockaddr;
! 	if (!rt)
  		return 0;
  
  	/* prepare values to be written to clock */
***************
*** 807,813 ****
  	day1 = day / 10;
  	day2 = day % 10;
  
! 	rt->control1 = CONTROL1_HOLD_CLOCK;
  	rt->second1 = sec1;
  	rt->second2 = sec2;
  	rt->minute1 = min1;
--- 801,807 ----
  	day1 = day / 10;
  	day2 = day % 10;
  
! 	rt->control1 = A3CONTROL1_HOLD_CLOCK;
  	rt->second1 = sec1;
  	rt->second2 = sec2;
  	rt->minute1 = min1;
***************
*** 820,829 ****
  	rt->month2  = mon2;
  	rt->year1   = year1;
  	rt->year2   = year2;
! 	rt->control2 = CONTROL1_FREE_CLOCK;
  
  	return 1;
- #endif
  }
  
  long
--- 814,822 ----
  	rt->month2  = mon2;
  	rt->year1   = year1;
  	rt->year2   = year2;
! 	rt->control1 = A3CONTROL1_FREE_CLOCK;
  
  	return 1;
  }
  
  long
----------------------------- end of diff --------------------------

I hope this helps.

L.Lucius