Commit cf025109 authored by Linus Torvalds's avatar Linus Torvalds
parents edec231a 9a59c186
...@@ -333,6 +333,17 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp) ...@@ -333,6 +333,17 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
printk("\n"); printk("\n");
} }
void dump_stack(void)
{
unsigned long *ksp;
__asm__ __volatile__("mov %%fp, %0"
: "=r" (ksp));
show_stack(current, ksp);
}
EXPORT_SYMBOL(dump_stack);
/* /*
* Note: sparc64 has a pretty intricated thread_saved_pc, check it out. * Note: sparc64 has a pretty intricated thread_saved_pc, check it out.
*/ */
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include <linux/in6.h> #include <linux/in6.h>
#include <linux/spinlock.h> #include <linux/spinlock.h>
#include <linux/mm.h> #include <linux/mm.h>
#include <linux/syscalls.h>
#ifdef CONFIG_PCI #ifdef CONFIG_PCI
#include <linux/pci.h> #include <linux/pci.h>
#endif #endif
...@@ -89,6 +90,9 @@ extern void ___atomic24_sub(void); ...@@ -89,6 +90,9 @@ extern void ___atomic24_sub(void);
extern void ___set_bit(void); extern void ___set_bit(void);
extern void ___clear_bit(void); extern void ___clear_bit(void);
extern void ___change_bit(void); extern void ___change_bit(void);
extern void ___rw_read_enter(void);
extern void ___rw_read_exit(void);
extern void ___rw_write_enter(void);
/* Alias functions whose names begin with "." and export the aliases. /* Alias functions whose names begin with "." and export the aliases.
* The module references will be fixed up by module_frob_arch_sections. * The module references will be fixed up by module_frob_arch_sections.
...@@ -121,9 +125,9 @@ EXPORT_SYMBOL(_do_write_unlock); ...@@ -121,9 +125,9 @@ EXPORT_SYMBOL(_do_write_unlock);
#endif #endif
#else #else
// XXX find what uses (or used) these. // XXX find what uses (or used) these.
// EXPORT_SYMBOL_PRIVATE(_rw_read_enter); EXPORT_SYMBOL(___rw_read_enter);
// EXPORT_SYMBOL_PRIVATE(_rw_read_exit); EXPORT_SYMBOL(___rw_read_exit);
// EXPORT_SYMBOL_PRIVATE(_rw_write_enter); EXPORT_SYMBOL(___rw_write_enter);
#endif #endif
/* semaphores */ /* semaphores */
EXPORT_SYMBOL(__up); EXPORT_SYMBOL(__up);
...@@ -144,6 +148,9 @@ EXPORT_SYMBOL(___set_bit); ...@@ -144,6 +148,9 @@ EXPORT_SYMBOL(___set_bit);
EXPORT_SYMBOL(___clear_bit); EXPORT_SYMBOL(___clear_bit);
EXPORT_SYMBOL(___change_bit); EXPORT_SYMBOL(___change_bit);
/* Per-CPU information table */
EXPORT_PER_CPU_SYMBOL(__cpu_data);
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
/* IRQ implementation. */ /* IRQ implementation. */
EXPORT_SYMBOL(synchronize_irq); EXPORT_SYMBOL(synchronize_irq);
...@@ -151,6 +158,10 @@ EXPORT_SYMBOL(synchronize_irq); ...@@ -151,6 +158,10 @@ EXPORT_SYMBOL(synchronize_irq);
/* Misc SMP information */ /* Misc SMP information */
EXPORT_SYMBOL(__cpu_number_map); EXPORT_SYMBOL(__cpu_number_map);
EXPORT_SYMBOL(__cpu_logical_map); EXPORT_SYMBOL(__cpu_logical_map);
/* CPU online map and active count. */
EXPORT_SYMBOL(cpu_online_map);
EXPORT_SYMBOL(phys_cpu_present_map);
#endif #endif
EXPORT_SYMBOL(__udelay); EXPORT_SYMBOL(__udelay);
...@@ -332,3 +343,6 @@ EXPORT_SYMBOL(do_BUG); ...@@ -332,3 +343,6 @@ EXPORT_SYMBOL(do_BUG);
/* Sun Power Management Idle Handler */ /* Sun Power Management Idle Handler */
EXPORT_SYMBOL(pm_idle); EXPORT_SYMBOL(pm_idle);
/* Binfmt_misc needs this */
EXPORT_SYMBOL(sys_close);
...@@ -37,8 +37,18 @@ ...@@ -37,8 +37,18 @@
#include "sunbmac.h" #include "sunbmac.h"
#define DRV_NAME "sunbmac"
#define DRV_VERSION "2.0"
#define DRV_RELDATE "11/24/03"
#define DRV_AUTHOR "David S. Miller (davem@redhat.com)"
static char version[] __initdata = static char version[] __initdata =
"sunbmac.c:v2.0 24/Nov/03 David S. Miller (davem@redhat.com)\n"; DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " " DRV_AUTHOR "\n";
MODULE_VERSION(DRV_VERSION);
MODULE_AUTHOR(DRV_AUTHOR);
MODULE_DESCRIPTION("Sun BigMAC 100baseT ethernet driver");
MODULE_LICENSE("GPL");
#undef DEBUG_PROBE #undef DEBUG_PROBE
#undef DEBUG_TX #undef DEBUG_TX
...@@ -1321,4 +1331,3 @@ static void __exit bigmac_cleanup(void) ...@@ -1321,4 +1331,3 @@ static void __exit bigmac_cleanup(void)
module_init(bigmac_probe); module_init(bigmac_probe);
module_exit(bigmac_cleanup); module_exit(bigmac_cleanup);
MODULE_LICENSE("GPL");
...@@ -13,9 +13,6 @@ ...@@ -13,9 +13,6 @@
* argument : macaddr=0x00,0x10,0x20,0x30,0x40,0x50 * argument : macaddr=0x00,0x10,0x20,0x30,0x40,0x50
*/ */
static char version[] =
"sunhme.c:v2.02 24/Aug/2003 David S. Miller (davem@redhat.com)\n";
#include <linux/config.h> #include <linux/config.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
...@@ -67,15 +64,24 @@ static char version[] = ...@@ -67,15 +64,24 @@ static char version[] =
#include "sunhme.h" #include "sunhme.h"
#define DRV_NAME "sunhme" #define DRV_NAME "sunhme"
#define DRV_VERSION "2.02"
#define DRV_RELDATE "8/24/03"
#define DRV_AUTHOR "David S. Miller (davem@redhat.com)"
static char version[] =
DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " " DRV_AUTHOR "\n";
MODULE_VERSION(DRV_VERSION);
MODULE_AUTHOR(DRV_AUTHOR);
MODULE_DESCRIPTION("Sun HappyMealEthernet(HME) 10/100baseT ethernet driver");
MODULE_LICENSE("GPL");
static int macaddr[6]; static int macaddr[6];
/* accept MAC address of the form macaddr=0x08,0x00,0x20,0x30,0x40,0x50 */ /* accept MAC address of the form macaddr=0x08,0x00,0x20,0x30,0x40,0x50 */
module_param_array(macaddr, int, NULL, 0); module_param_array(macaddr, int, NULL, 0);
MODULE_PARM_DESC(macaddr, "Happy Meal MAC address to set"); MODULE_PARM_DESC(macaddr, "Happy Meal MAC address to set");
MODULE_LICENSE("GPL");
static struct happy_meal *root_happy_dev; static struct happy_meal *root_happy_dev;
......
...@@ -69,9 +69,6 @@ ...@@ -69,9 +69,6 @@
#undef DEBUG_DRIVER #undef DEBUG_DRIVER
static char version[] =
"sunlance.c:v2.02 24/Aug/03 Miguel de Icaza (miguel@nuclecu.unam.mx)\n";
static char lancestr[] = "LANCE"; static char lancestr[] = "LANCE";
#include <linux/config.h> #include <linux/config.h>
...@@ -108,6 +105,19 @@ static char lancestr[] = "LANCE"; ...@@ -108,6 +105,19 @@ static char lancestr[] = "LANCE";
#include <asm/auxio.h> /* For tpe-link-test? setting */ #include <asm/auxio.h> /* For tpe-link-test? setting */
#include <asm/irq.h> #include <asm/irq.h>
#define DRV_NAME "sunlance"
#define DRV_VERSION "2.02"
#define DRV_RELDATE "8/24/03"
#define DRV_AUTHOR "Miguel de Icaza (miguel@nuclecu.unam.mx)"
static char version[] =
DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " " DRV_AUTHOR "\n";
MODULE_VERSION(DRV_VERSION);
MODULE_AUTHOR(DRV_AUTHOR);
MODULE_DESCRIPTION("Sun Lance ethernet driver");
MODULE_LICENSE("GPL");
/* Define: 2^4 Tx buffers and 2^4 Rx buffers */ /* Define: 2^4 Tx buffers and 2^4 Rx buffers */
#ifndef LANCE_LOG_TX_BUFFERS #ifndef LANCE_LOG_TX_BUFFERS
#define LANCE_LOG_TX_BUFFERS 4 #define LANCE_LOG_TX_BUFFERS 4
...@@ -1611,4 +1621,3 @@ static void __exit sparc_lance_cleanup(void) ...@@ -1611,4 +1621,3 @@ static void __exit sparc_lance_cleanup(void)
module_init(sparc_lance_probe); module_init(sparc_lance_probe);
module_exit(sparc_lance_cleanup); module_exit(sparc_lance_cleanup);
MODULE_LICENSE("GPL");
...@@ -7,9 +7,6 @@ ...@@ -7,9 +7,6 @@
* Copyright (C) 1996, 1999, 2003 David S. Miller (davem@redhat.com) * Copyright (C) 1996, 1999, 2003 David S. Miller (davem@redhat.com)
*/ */
static char version[] =
"sunqe.c:v3.0 8/24/03 David S. Miller (davem@redhat.com)\n";
#include <linux/module.h> #include <linux/module.h>
#include <linux/kernel.h> #include <linux/kernel.h>
#include <linux/types.h> #include <linux/types.h>
...@@ -43,6 +40,19 @@ static char version[] = ...@@ -43,6 +40,19 @@ static char version[] =
#include "sunqe.h" #include "sunqe.h"
#define DRV_NAME "sunqe"
#define DRV_VERSION "3.0"
#define DRV_RELDATE "8/24/03"
#define DRV_AUTHOR "David S. Miller (davem@redhat.com)"
static char version[] =
DRV_NAME ".c:v" DRV_VERSION " " DRV_RELDATE " " DRV_AUTHOR "\n";
MODULE_VERSION(DRV_VERSION);
MODULE_AUTHOR(DRV_AUTHOR);
MODULE_DESCRIPTION("Sun QuadEthernet 10baseT SBUS card driver");
MODULE_LICENSE("GPL");
static struct sunqec *root_qec_dev; static struct sunqec *root_qec_dev;
static void qe_set_multicast(struct net_device *dev); static void qe_set_multicast(struct net_device *dev);
...@@ -1040,4 +1050,3 @@ static void __exit qec_cleanup(void) ...@@ -1040,4 +1050,3 @@ static void __exit qec_cleanup(void)
module_init(qec_probe); module_init(qec_probe);
module_exit(qec_cleanup); module_exit(qec_cleanup);
MODULE_LICENSE("GPL");
...@@ -49,6 +49,8 @@ ...@@ -49,6 +49,8 @@
#include <scsi/scsi_host.h> #include <scsi/scsi_host.h>
#include <scsi/scsi_tcq.h> #include <scsi/scsi_tcq.h>
#define DRV_VERSION "1.101"
#define DEBUG_ESP #define DEBUG_ESP
/* #define DEBUG_ESP_HME */ /* #define DEBUG_ESP_HME */
/* #define DEBUG_ESP_DATA */ /* #define DEBUG_ESP_DATA */
...@@ -4398,5 +4400,8 @@ static struct scsi_host_template driver_template = { ...@@ -4398,5 +4400,8 @@ static struct scsi_host_template driver_template = {
#include "scsi_module.c" #include "scsi_module.c"
MODULE_DESCRIPTION("EnhancedScsiProcessor Sun SCSI driver");
MODULE_AUTHOR("David S. Miller (davem@redhat.com)");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_VERSION(DRV_VERSION);
...@@ -45,7 +45,7 @@ config LOGO_SGI_CLUT224 ...@@ -45,7 +45,7 @@ config LOGO_SGI_CLUT224
config LOGO_SUN_CLUT224 config LOGO_SUN_CLUT224
bool "224-color Sun Linux logo" bool "224-color Sun Linux logo"
depends on LOGO && (SPARC || SPARC64) depends on LOGO && (SPARC32 || SPARC64)
default y default y
config LOGO_SUPERH_MONO config LOGO_SUPERH_MONO
......
...@@ -36,6 +36,7 @@ static int tcx_blank(int, struct fb_info *); ...@@ -36,6 +36,7 @@ static int tcx_blank(int, struct fb_info *);
static int tcx_mmap(struct fb_info *, struct file *, struct vm_area_struct *); static int tcx_mmap(struct fb_info *, struct file *, struct vm_area_struct *);
static int tcx_ioctl(struct inode *, struct file *, unsigned int, static int tcx_ioctl(struct inode *, struct file *, unsigned int,
unsigned long, struct fb_info *); unsigned long, struct fb_info *);
static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
/* /*
* Frame buffer operations * Frame buffer operations
...@@ -45,6 +46,7 @@ static struct fb_ops tcx_ops = { ...@@ -45,6 +46,7 @@ static struct fb_ops tcx_ops = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.fb_setcolreg = tcx_setcolreg, .fb_setcolreg = tcx_setcolreg,
.fb_blank = tcx_blank, .fb_blank = tcx_blank,
.fb_pan_display = tcx_pan_display,
.fb_fillrect = cfb_fillrect, .fb_fillrect = cfb_fillrect,
.fb_copyarea = cfb_copyarea, .fb_copyarea = cfb_copyarea,
.fb_imageblit = cfb_imageblit, .fb_imageblit = cfb_imageblit,
...@@ -153,6 +155,12 @@ static void tcx_reset (struct fb_info *info) ...@@ -153,6 +155,12 @@ static void tcx_reset (struct fb_info *info)
spin_unlock_irqrestore(&par->lock, flags); spin_unlock_irqrestore(&par->lock, flags);
} }
static int tcx_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
{
tcx_reset(info);
return 0;
}
/** /**
* tcx_setcolreg - Optional function. Sets a color register. * tcx_setcolreg - Optional function. Sets a color register.
* @regno: boolean, 0 copy local, 1 get_user() function * @regno: boolean, 0 copy local, 1 get_user() function
...@@ -366,6 +374,9 @@ static void tcx_init_one(struct sbus_dev *sdev) ...@@ -366,6 +374,9 @@ static void tcx_init_one(struct sbus_dev *sdev)
all->par.lowdepth = prom_getbool(sdev->prom_node, "tcx-8-bit"); all->par.lowdepth = prom_getbool(sdev->prom_node, "tcx-8-bit");
sbusfb_fill_var(&all->info.var, sdev->prom_node, 8); sbusfb_fill_var(&all->info.var, sdev->prom_node, 8);
all->info.var.red.length = 8;
all->info.var.green.length = 8;
all->info.var.blue.length = 8;
linebytes = prom_getintdefault(sdev->prom_node, "linebytes", linebytes = prom_getintdefault(sdev->prom_node, "linebytes",
all->info.var.xres); all->info.var.xres);
...@@ -439,6 +450,7 @@ static void tcx_init_one(struct sbus_dev *sdev) ...@@ -439,6 +450,7 @@ static void tcx_init_one(struct sbus_dev *sdev)
return; return;
} }
fb_set_cmap(&all->info.cmap, &all->info);
tcx_init_fix(&all->info, linebytes); tcx_init_fix(&all->info, linebytes);
if (register_framebuffer(&all->info) < 0) { if (register_framebuffer(&all->info) < 0) {
...@@ -466,7 +478,7 @@ int __init tcx_init(void) ...@@ -466,7 +478,7 @@ int __init tcx_init(void)
return -ENODEV; return -ENODEV;
for_all_sbusdev(sdev, sbus) { for_all_sbusdev(sdev, sbus) {
if (!strcmp(sdev->prom_name, "tcx")) if (!strcmp(sdev->prom_name, "SUNW,tcx"))
tcx_init_one(sdev); tcx_init_one(sdev);
} }
......
...@@ -115,8 +115,8 @@ extern __inline__ unsigned long mxcc_get_creg(void) ...@@ -115,8 +115,8 @@ extern __inline__ unsigned long mxcc_get_creg(void)
{ {
unsigned long mxcc_control; unsigned long mxcc_control;
__asm__ __volatile__("set -1, %%g2\n\t" __asm__ __volatile__("set 0xffffffff, %%g2\n\t"
"set -1, %%g3\n\t" "set 0xffffffff, %%g3\n\t"
"stda %%g2, [%1] %2\n\t" "stda %%g2, [%1] %2\n\t"
"lda [%3] %2, %0\n\t" : "lda [%3] %2, %0\n\t" :
"=r" (mxcc_control) : "=r" (mxcc_control) :
......
...@@ -44,7 +44,7 @@ typedef struct { ...@@ -44,7 +44,7 @@ typedef struct {
#define spin_unlock_wait(lp) \ #define spin_unlock_wait(lp) \
do { membar("#LoadLoad"); \ do { membar("#LoadLoad"); \
} while(lp->lock) } while((lp)->lock)
static inline void _raw_spin_lock(spinlock_t *lock) static inline void _raw_spin_lock(spinlock_t *lock)
{ {
...@@ -149,7 +149,7 @@ typedef struct { ...@@ -149,7 +149,7 @@ typedef struct {
unsigned int break_lock; unsigned int break_lock;
#endif #endif
} rwlock_t; } rwlock_t;
#define RW_LOCK_UNLOCKED {0,} #define RW_LOCK_UNLOCKED (rwlock_t) {0,}
#define rwlock_init(lp) do { *(lp) = RW_LOCK_UNLOCKED; } while(0) #define rwlock_init(lp) do { *(lp) = RW_LOCK_UNLOCKED; } while(0)
static void inline __read_lock(rwlock_t *lock) static void inline __read_lock(rwlock_t *lock)
......
...@@ -102,9 +102,9 @@ NORET_TYPE void panic(const char * fmt, ...) ...@@ -102,9 +102,9 @@ NORET_TYPE void panic(const char * fmt, ...)
#ifdef __sparc__ #ifdef __sparc__
{ {
extern int stop_a_enabled; extern int stop_a_enabled;
/* Make sure the user can actually press L1-A */ /* Make sure the user can actually press Stop-A (L1-A) */
stop_a_enabled = 1; stop_a_enabled = 1;
printk(KERN_EMERG "Press L1-A to return to the boot prom\n"); printk(KERN_EMERG "Press Stop-A (L1-A) to return to the boot prom\n");
} }
#endif #endif
#if defined(CONFIG_ARCH_S390) #if defined(CONFIG_ARCH_S390)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment