Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c8d5ba18 authored by Stephen Warren's avatar Stephen Warren
Browse files

m68k: set arch_gettimeoffset directly



remove m68k's mach_gettimeoffset function pointer, and instead directly
set the arch_gettimeoffset function pointer. This requires multiplying
all function results by 1000, since the removed m68k_gettimeoffset() did
this. Also, s/unsigned long/u32/ just to make the function prototypes
exactly match that of arch_gettimeoffset.

Cc: Joshua Thompson <funaho@jurai.org>
Cc: Sam Creasey <sammy@sammy.net>
Acked-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
Acked-by: default avatarPhil Blundell <philb@gnu.org>
Signed-off-by: default avatarStephen Warren <swarren@nvidia.com>
parent 7b1f6207
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -95,7 +95,7 @@ static void amiga_sched_init(irq_handler_t handler);
static void amiga_get_model(char *model);
static void amiga_get_hardware_list(struct seq_file *m);
/* amiga specific timer functions */
static unsigned long amiga_gettimeoffset(void);
static u32 amiga_gettimeoffset(void);
extern void amiga_mksound(unsigned int count, unsigned int ticks);
static void amiga_reset(void);
extern void amiga_init_sound(void);
@@ -377,7 +377,7 @@ void __init config_amiga(void)
	mach_init_IRQ        = amiga_init_IRQ;
	mach_get_model       = amiga_get_model;
	mach_get_hardware_list = amiga_get_hardware_list;
	mach_gettimeoffset   = amiga_gettimeoffset;
	arch_gettimeoffset   = amiga_gettimeoffset;

	/*
	 * default MAX_DMA=0xffffffff on all machines. If we don't do so, the SCSI
@@ -482,10 +482,10 @@ static void __init amiga_sched_init(irq_handler_t timer_routine)
#define TICK_SIZE 10000

/* This is always executed with interrupts disabled.  */
static unsigned long amiga_gettimeoffset(void)
static u32 amiga_gettimeoffset(void)
{
	unsigned short hi, lo, hi2;
	unsigned long ticks, offset = 0;
	u32 ticks, offset = 0;

	/* read CIA B timer A current value */
	hi  = ciab.tahi;
@@ -507,7 +507,7 @@ static unsigned long amiga_gettimeoffset(void)
	ticks = jiffy_ticks - ticks;
	ticks = (10000 * ticks) / jiffy_ticks;

	return ticks + offset;
	return (ticks + offset) * 1000;
}

static void amiga_reset(void)  __noreturn;
+4 −5
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ u_long apollo_model;

extern void dn_sched_init(irq_handler_t handler);
extern void dn_init_IRQ(void);
extern unsigned long dn_gettimeoffset(void);
extern u32 dn_gettimeoffset(void);
extern int dn_dummy_hwclk(int, struct rtc_time *);
extern int dn_dummy_set_clock_mmss(unsigned long);
extern void dn_dummy_reset(void);
@@ -151,7 +151,7 @@ void __init config_apollo(void)

	mach_sched_init=dn_sched_init; /* */
	mach_init_IRQ=dn_init_IRQ;
	mach_gettimeoffset   = dn_gettimeoffset;
	arch_gettimeoffset   = dn_gettimeoffset;
	mach_max_dma_address = 0xffffffff;
	mach_hwclk           = dn_dummy_hwclk; /* */
	mach_set_clock_mmss  = dn_dummy_set_clock_mmss; /* */
@@ -203,10 +203,9 @@ void dn_sched_init(irq_handler_t timer_routine)
		pr_err("Couldn't register timer interrupt\n");
}

unsigned long dn_gettimeoffset(void) {

u32 dn_gettimeoffset(void)
{
	return 0xdeadbeef;

}

int dn_dummy_hwclk(int op, struct rtc_time *t) {
+2 −2
Original line number Diff line number Diff line
@@ -74,7 +74,7 @@ static void atari_heartbeat(int on);

/* atari specific timer functions (in time.c) */
extern void atari_sched_init(irq_handler_t);
extern unsigned long atari_gettimeoffset (void);
extern u32 atari_gettimeoffset(void);
extern int atari_mste_hwclk (int, struct rtc_time *);
extern int atari_tt_hwclk (int, struct rtc_time *);
extern int atari_mste_set_clock_mmss (unsigned long);
@@ -204,7 +204,7 @@ void __init config_atari(void)
	mach_init_IRQ        = atari_init_IRQ;
	mach_get_model	 = atari_get_model;
	mach_get_hardware_list = atari_get_hardware_list;
	mach_gettimeoffset   = atari_gettimeoffset;
	arch_gettimeoffset   = atari_gettimeoffset;
	mach_reset           = atari_reset;
	mach_max_dma_address = 0xffffff;
#if defined(CONFIG_INPUT_M68K_BEEP) || defined(CONFIG_INPUT_M68K_BEEP_MODULE)
+3 −3
Original line number Diff line number Diff line
@@ -42,9 +42,9 @@ atari_sched_init(irq_handler_t timer_routine)
#define TICK_SIZE 10000

/* This is always executed with interrupts disabled.  */
unsigned long atari_gettimeoffset (void)
u32 atari_gettimeoffset(void)
{
  unsigned long ticks, offset = 0;
  u32 ticks, offset = 0;

  /* read MFP timer C current value */
  ticks = st_mfp.tim_dt_c;
@@ -57,7 +57,7 @@ unsigned long atari_gettimeoffset (void)
  ticks = INT_TICKS - ticks;
  ticks = ticks * 10000L / INT_TICKS;

  return ticks + offset;
  return (ticks + offset) * 1000;
}


+5 −5
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@

static void bvme6000_get_model(char *model);
extern void bvme6000_sched_init(irq_handler_t handler);
extern unsigned long bvme6000_gettimeoffset (void);
extern u32 bvme6000_gettimeoffset(void);
extern int bvme6000_hwclk (int, struct rtc_time *);
extern int bvme6000_set_clock_mmss (unsigned long);
extern void bvme6000_reset (void);
@@ -110,7 +110,7 @@ void __init config_bvme6000(void)
    mach_max_dma_address = 0xffffffff;
    mach_sched_init      = bvme6000_sched_init;
    mach_init_IRQ        = bvme6000_init_IRQ;
    mach_gettimeoffset   = bvme6000_gettimeoffset;
    arch_gettimeoffset   = bvme6000_gettimeoffset;
    mach_hwclk           = bvme6000_hwclk;
    mach_set_clock_mmss	 = bvme6000_set_clock_mmss;
    mach_reset		 = bvme6000_reset;
@@ -216,13 +216,13 @@ void bvme6000_sched_init (irq_handler_t timer_routine)
 * results...
 */

unsigned long bvme6000_gettimeoffset (void)
u32 bvme6000_gettimeoffset(void)
{
    volatile RtcPtr_t rtc = (RtcPtr_t)BVME_RTC_BASE;
    volatile PitRegsPtr pit = (PitRegsPtr)BVME_PIT_BASE;
    unsigned char msr = rtc->msr & 0xc0;
    unsigned char t1int, t1op;
    unsigned long v = 800000, ov;
    u32 v = 800000, ov;

    rtc->msr = 0;	/* Ensure timer registers accessible */

@@ -246,7 +246,7 @@ unsigned long bvme6000_gettimeoffset (void)
	v += 10000;			/* Int pending, + 10ms */
    rtc->msr = msr;

    return v;
    return v * 1000;
}

/*
Loading