mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-18 08:35:08 +08:00
Automatic merge of rsync://rsync.kernel.org/pub/scm/linux/kernel/git/davem/sparc-2.6.git
This commit is contained in:
commit
cf025109e8
@ -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 @@
|
|||||||
#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);
|
|||||||
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);
|
|||||||
#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);
|
|||||||
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);
|
|||||||
/* 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);
|
|||||||
|
|
||||||
/* 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 @@
|
|||||||
|
|
||||||
#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)
|
|||||||
|
|
||||||
module_init(bigmac_probe);
|
module_init(bigmac_probe);
|
||||||
module_exit(bigmac_cleanup);
|
module_exit(bigmac_cleanup);
|
||||||
MODULE_LICENSE("GPL");
|
|
||||||
|
@ -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[] =
|
|||||||
|
|
||||||
#include "sunhme.h"
|
#include "sunhme.h"
|
||||||
|
|
||||||
|
#define DRV_NAME "sunhme"
|
||||||
|
#define DRV_VERSION "2.02"
|
||||||
|
#define DRV_RELDATE "8/24/03"
|
||||||
|
#define DRV_AUTHOR "David S. Miller (davem@redhat.com)"
|
||||||
|
|
||||||
#define DRV_NAME "sunhme"
|
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 @@
|
|||||||
|
|
||||||
#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";
|
|||||||
#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)
|
|||||||
|
|
||||||
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 @@
|
|||||||
* 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[] =
|
|||||||
|
|
||||||
#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)
|
|||||||
|
|
||||||
module_init(qec_probe);
|
module_init(qec_probe);
|
||||||
module_exit(qec_cleanup);
|
module_exit(qec_cleanup);
|
||||||
MODULE_LICENSE("GPL");
|
|
||||||
|
@ -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 = {
|
|||||||
|
|
||||||
#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
|
|||||||
|
|
||||||
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 *);
|
|||||||
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 = {
|
|||||||
.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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
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)
|
|||||||
{
|
{
|
||||||
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 {
|
|||||||
|
|
||||||
#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 {
|
|||||||
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, ...)
|
|||||||
#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)
|
||||||
|
Loading…
Reference in New Issue
Block a user