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

Commit 541ef5cb authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
  m68k: use the new byteorder headers
  fbcon: Protect free_irq() by MACH_IS_ATARI check
  fbcon: remove broken mac vbl handler
  m68k: fix trigraph ignored warning in setox.S
  macfb annotations and compiler warning fix
  m68k: mac baboon interrupt enable/disable
  m68k: machw.h cleanup
  m68k: Mac via cleanup and commentry
  m68k: Reinstate mac rtc
parents 0191b625 aa6eeeef
Loading
Loading
Loading
Loading
+31 −11
Original line number Original line Diff line number Diff line
@@ -18,11 +18,14 @@
#include <asm/macints.h>
#include <asm/macints.h>
#include <asm/mac_baboon.h>
#include <asm/mac_baboon.h>


/* #define DEBUG_BABOON */
/* #define DEBUG_IRQS */
/* #define DEBUG_IRQS */


extern void mac_enable_irq(unsigned int);
extern void mac_disable_irq(unsigned int);

int baboon_present;
int baboon_present;
static volatile struct baboon *baboon;
static volatile struct baboon *baboon;
static unsigned char baboon_disabled;


#if 0
#if 0
extern int macide_ack_intr(struct ata_channel *);
extern int macide_ack_intr(struct ata_channel *);
@@ -88,26 +91,43 @@ static irqreturn_t baboon_irq(int irq, void *dev_id)


void __init baboon_register_interrupts(void)
void __init baboon_register_interrupts(void)
{
{
	request_irq(IRQ_NUBUS_C, baboon_irq, IRQ_FLG_LOCK|IRQ_FLG_FAST,
	baboon_disabled = 0;
		    "baboon", (void *) baboon);
	request_irq(IRQ_NUBUS_C, baboon_irq, 0, "baboon", (void *)baboon);
}
}


void baboon_irq_enable(int irq) {
/*
 * The means for masking individual baboon interrupts remains a mystery, so
 * enable the umbrella interrupt only when no baboon interrupt is disabled.
 */

void baboon_irq_enable(int irq)
{
	int irq_idx = IRQ_IDX(irq);

#ifdef DEBUG_IRQUSE
#ifdef DEBUG_IRQUSE
	printk("baboon_irq_enable(%d)\n", irq);
	printk("baboon_irq_enable(%d)\n", irq);
#endif
#endif
	/* FIXME: figure out how to mask and unmask baboon interrupt sources */

	enable_irq(IRQ_NUBUS_C);
	baboon_disabled &= ~(1 << irq_idx);
	if (!baboon_disabled)
		mac_enable_irq(IRQ_NUBUS_C);
}
}


void baboon_irq_disable(int irq) {
void baboon_irq_disable(int irq)
{
	int irq_idx = IRQ_IDX(irq);

#ifdef DEBUG_IRQUSE
#ifdef DEBUG_IRQUSE
	printk("baboon_irq_disable(%d)\n", irq);
	printk("baboon_irq_disable(%d)\n", irq);
#endif
#endif
	disable_irq(IRQ_NUBUS_C);

	baboon_disabled |= 1 << irq_idx;
	if (baboon_disabled)
		mac_disable_irq(IRQ_NUBUS_C);
}
}


void baboon_irq_clear(int irq) {
void baboon_irq_clear(int irq)
{
	int irq_idx = IRQ_IDX(irq);
	int irq_idx = IRQ_IDX(irq);


	baboon->mb_ifr &= ~(1 << irq_idx);
	baboon->mb_ifr &= ~(1 << irq_idx);
+0 −3
Original line number Original line Diff line number Diff line
@@ -162,10 +162,7 @@ void __init config_mac(void)
	mach_init_IRQ = mac_init_IRQ;
	mach_init_IRQ = mac_init_IRQ;
	mach_get_model = mac_get_model;
	mach_get_model = mac_get_model;
	mach_gettimeoffset = mac_gettimeoffset;
	mach_gettimeoffset = mac_gettimeoffset;
#warning move to adb/via init
#if 0
	mach_hwclk = mac_hwclk;
	mach_hwclk = mac_hwclk;
#endif
	mach_set_clock_mmss = mac_set_clock_mmss;
	mach_set_clock_mmss = mac_set_clock_mmss;
	mach_reset = mac_reset;
	mach_reset = mac_reset;
	mach_halt = mac_poweroff;
	mach_halt = mac_poweroff;
+0 −1
Original line number Original line Diff line number Diff line
@@ -24,7 +24,6 @@
#define BOOTINFO_COMPAT_1_0
#define BOOTINFO_COMPAT_1_0
#include <asm/setup.h>
#include <asm/setup.h>
#include <asm/bootinfo.h>
#include <asm/bootinfo.h>
#include <asm/machw.h>
#include <asm/macints.h>
#include <asm/macints.h>


extern unsigned long mac_videobase;
extern unsigned long mac_videobase;
+4 −5
Original line number Original line Diff line number Diff line
@@ -127,7 +127,6 @@
#include <asm/irq.h>
#include <asm/irq.h>
#include <asm/traps.h>
#include <asm/traps.h>
#include <asm/bootinfo.h>
#include <asm/bootinfo.h>
#include <asm/machw.h>
#include <asm/macintosh.h>
#include <asm/macintosh.h>
#include <asm/mac_via.h>
#include <asm/mac_via.h>
#include <asm/mac_psc.h>
#include <asm/mac_psc.h>
@@ -215,8 +214,8 @@ irqreturn_t mac_debug_handler(int, void *);


/* #define DEBUG_MACINTS */
/* #define DEBUG_MACINTS */


static void mac_enable_irq(unsigned int irq);
void mac_enable_irq(unsigned int irq);
static void mac_disable_irq(unsigned int irq);
void mac_disable_irq(unsigned int irq);


static struct irq_controller mac_irq_controller = {
static struct irq_controller mac_irq_controller = {
	.name		= "mac",
	.name		= "mac",
@@ -275,7 +274,7 @@ void __init mac_init_IRQ(void)
 * These routines are just dispatchers to the VIA/OSS/PSC routines.
 * These routines are just dispatchers to the VIA/OSS/PSC routines.
 */
 */


static void mac_enable_irq(unsigned int irq)
void mac_enable_irq(unsigned int irq)
{
{
	int irq_src = IRQ_SRC(irq);
	int irq_src = IRQ_SRC(irq);


@@ -308,7 +307,7 @@ static void mac_enable_irq(unsigned int irq)
	}
	}
}
}


static void mac_disable_irq(unsigned int irq)
void mac_disable_irq(unsigned int irq)
{
{
	int irq_src = IRQ_SRC(irq);
	int irq_src = IRQ_SRC(irq);


+10 −6
Original line number Original line Diff line number Diff line
@@ -93,7 +93,7 @@ static void cuda_write_pram(int offset, __u8 data)
#define cuda_write_pram NULL
#define cuda_write_pram NULL
#endif
#endif


#ifdef CONFIG_ADB_PMU68K
#if 0 /* def CONFIG_ADB_PMU68K */
static long pmu_read_time(void)
static long pmu_read_time(void)
{
{
	struct adb_request req;
	struct adb_request req;
@@ -148,7 +148,7 @@ static void pmu_write_pram(int offset, __u8 data)
#define pmu_write_pram NULL
#define pmu_write_pram NULL
#endif
#endif


#ifdef CONFIG_ADB_MACIISI
#if 0 /* def CONFIG_ADB_MACIISI */
extern int maciisi_request(struct adb_request *req,
extern int maciisi_request(struct adb_request *req,
			void (*done)(struct adb_request *), int nbytes, ...);
			void (*done)(struct adb_request *), int nbytes, ...);


@@ -717,13 +717,18 @@ int mac_hwclk(int op, struct rtc_time *t)
		unmktime(now, 0,
		unmktime(now, 0,
			 &t->tm_year, &t->tm_mon, &t->tm_mday,
			 &t->tm_year, &t->tm_mon, &t->tm_mday,
			 &t->tm_hour, &t->tm_min, &t->tm_sec);
			 &t->tm_hour, &t->tm_min, &t->tm_sec);
#if 0
		printk("mac_hwclk: read %04d-%02d-%-2d %02d:%02d:%02d\n",
		printk("mac_hwclk: read %04d-%02d-%-2d %02d:%02d:%02d\n",
			t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
			t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
			t->tm_hour, t->tm_min, t->tm_sec);
#endif
	} else { /* write */
	} else { /* write */
#if 0
		printk("mac_hwclk: tried to write %04d-%02d-%-2d %02d:%02d:%02d\n",
		printk("mac_hwclk: tried to write %04d-%02d-%-2d %02d:%02d:%02d\n",
			t->tm_year + 1900, t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
			t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
			t->tm_hour, t->tm_min, t->tm_sec);
#endif


#if 0	/* it trashes my rtc */
		now = mktime(t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
		now = mktime(t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
			     t->tm_hour, t->tm_min, t->tm_sec);
			     t->tm_hour, t->tm_min, t->tm_sec);


@@ -742,7 +747,6 @@ int mac_hwclk(int op, struct rtc_time *t)
		case MAC_ADB_IISI:
		case MAC_ADB_IISI:
			maciisi_write_time(now);
			maciisi_write_time(now);
		}
		}
#endif
	}
	}
	return 0;
	return 0;
}
}
Loading