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

Commit 7f45e5cd authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6:
  sparc32, leon: bugfix in LEON SMP interrupt init
  sparc32, sun4m: bugfix in SMP IPI traphandler
  sparc: Remove unnecessary semicolons
  Add support for allocating irqs for bootbus devices
  Do not skip interrupt sources in sun4d interrupt handler and acknowledge interrupts correctly
  Restructure sun4d_build_device_irq so that timer interrupts can be allocated
  sparc: PCIC_PCI needs SPARC32 dependency
  sparc: Do not select GENERIC_HARDIRQS_NO_DEPRECATED
  sparc32,leon: add GRPCI2 PCI Host driver
  sparc32,leon: added LEON-common low-level PCI routines
  sparc32: added CONFIG_PCIC_PCI Kconfig setting
parents 6aeccecc 10f0d07c
Loading
Loading
Loading
Loading
+17 −1
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ config SPARC
	select HAVE_DMA_API_DEBUG
	select HAVE_ARCH_JUMP_LABEL
	select HAVE_GENERIC_HARDIRQS
	select GENERIC_HARDIRQS_NO_DEPRECATED
	select GENERIC_IRQ_SHOW
	select USE_GENERIC_SMP_HELPERS if SMP

@@ -528,6 +527,23 @@ config PCI_DOMAINS
config PCI_SYSCALL
	def_bool PCI

config PCIC_PCI
	bool
	depends on PCI && SPARC32 && !SPARC_LEON
	default y

config LEON_PCI
	bool
	depends on PCI && SPARC_LEON
	default y

config GRPCI2
	bool "GRPCI2 Host Bridge Support"
	depends on LEON_PCI
	default y
	help
	  Say Y here to include the GRPCI2 Host Bridge Driver.

source "drivers/pci/Kconfig"

source "drivers/pcmcia/Kconfig"
+4 −4
Original line number Diff line number Diff line
@@ -138,7 +138,7 @@ static unsigned char sun_82072_fd_inb(int port)
		return sun_fdc->data_82072;
	case 7: /* FD_DIR */
		return sun_read_dir();
	};
	}
	panic("sun_82072_fd_inb: How did I get here?");
}

@@ -161,7 +161,7 @@ static void sun_82072_fd_outb(unsigned char value, int port)
	case 4: /* FD_STATUS */
		sun_fdc->status_82072 = value;
		break;
	};
	}
	return;
}

@@ -186,7 +186,7 @@ static unsigned char sun_82077_fd_inb(int port)
		return sun_fdc->data_82077;
	case 7: /* FD_DIR */
		return sun_read_dir();
	};
	}
	panic("sun_82077_fd_inb: How did I get here?");
}

@@ -212,7 +212,7 @@ static void sun_82077_fd_outb(unsigned char value, int port)
	case 3: /* FD_TDR */
		sun_fdc->tapectl_82077 = value;
		break;
	};
	}
	return;
}

+2 −2
Original line number Diff line number Diff line
@@ -111,7 +111,7 @@ static unsigned char sun_82077_fd_inb(unsigned long port)
	case 7: /* FD_DIR */
		/* XXX: Is DCL on 0x80 in sun4m? */
		return sbus_readb(&sun_fdc->dir_82077);
	};
	}
	panic("sun_82072_fd_inb: How did I get here?");
}

@@ -135,7 +135,7 @@ static void sun_82077_fd_outb(unsigned char value, unsigned long port)
	case 4: /* FD_STATUS */
		sbus_writeb(value, &sun_fdc->status_82077);
		break;
	};
	}
	return;
}

+3 −0
Original line number Diff line number Diff line
@@ -318,6 +318,9 @@ struct device_node;
extern unsigned int leon_build_device_irq(unsigned int real_irq,
					   irq_flow_handler_t flow_handler,
					   const char *name, int do_ack);
extern void leon_update_virq_handling(unsigned int virq,
			      irq_flow_handler_t flow_handler,
			      const char *name, int do_ack);
extern void leon_clear_clock_irq(void);
extern void leon_load_profile_irq(int cpu, unsigned int limit);
extern void leon_init_timers(irq_handler_t counter_fn);
+21 −0
Original line number Diff line number Diff line
/*
 * asm/leon_pci.h
 *
 * Copyright (C) 2011 Aeroflex Gaisler AB, Daniel Hellstrom
 */

#ifndef _ASM_LEON_PCI_H_
#define _ASM_LEON_PCI_H_

/* PCI related definitions */
struct leon_pci_info {
	struct pci_ops *ops;
	struct resource	io_space;
	struct resource	mem_space;
	int (*map_irq)(struct pci_dev *dev, u8 slot, u8 pin);
};

extern void leon_pci_init(struct platform_device *ofdev,
				struct leon_pci_info *info);

#endif /* _ASM_LEON_PCI_H_ */
Loading