mirror of https://gitee.com/openkylin/linux.git
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");
|
||||
}
|
||||
|
||||
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.
|
||||
*/
|
||||
|
|
|
@ -20,6 +20,7 @@
|
|||
#include <linux/in6.h>
|
||||
#include <linux/spinlock.h>
|
||||
#include <linux/mm.h>
|
||||
#include <linux/syscalls.h>
|
||||
#ifdef CONFIG_PCI
|
||||
#include <linux/pci.h>
|
||||
#endif
|
||||
|
@ -89,6 +90,9 @@ extern void ___atomic24_sub(void);
|
|||
extern void ___set_bit(void);
|
||||
extern void ___clear_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.
|
||||
* The module references will be fixed up by module_frob_arch_sections.
|
||||
|
@ -121,9 +125,9 @@ EXPORT_SYMBOL(_do_write_unlock);
|
|||
#endif
|
||||
#else
|
||||
// XXX find what uses (or used) these.
|
||||
// EXPORT_SYMBOL_PRIVATE(_rw_read_enter);
|
||||
// EXPORT_SYMBOL_PRIVATE(_rw_read_exit);
|
||||
// EXPORT_SYMBOL_PRIVATE(_rw_write_enter);
|
||||
EXPORT_SYMBOL(___rw_read_enter);
|
||||
EXPORT_SYMBOL(___rw_read_exit);
|
||||
EXPORT_SYMBOL(___rw_write_enter);
|
||||
#endif
|
||||
/* semaphores */
|
||||
EXPORT_SYMBOL(__up);
|
||||
|
@ -144,6 +148,9 @@ EXPORT_SYMBOL(___set_bit);
|
|||
EXPORT_SYMBOL(___clear_bit);
|
||||
EXPORT_SYMBOL(___change_bit);
|
||||
|
||||
/* Per-CPU information table */
|
||||
EXPORT_PER_CPU_SYMBOL(__cpu_data);
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
/* IRQ implementation. */
|
||||
EXPORT_SYMBOL(synchronize_irq);
|
||||
|
@ -151,6 +158,10 @@ EXPORT_SYMBOL(synchronize_irq);
|
|||
/* Misc SMP information */
|
||||
EXPORT_SYMBOL(__cpu_number_map);
|
||||
EXPORT_SYMBOL(__cpu_logical_map);
|
||||
|
||||
/* CPU online map and active count. */
|
||||
EXPORT_SYMBOL(cpu_online_map);
|
||||
EXPORT_SYMBOL(phys_cpu_present_map);
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(__udelay);
|
||||
|
@ -332,3 +343,6 @@ EXPORT_SYMBOL(do_BUG);
|
|||
|
||||
/* Sun Power Management Idle Handler */
|
||||
EXPORT_SYMBOL(pm_idle);
|
||||
|
||||
/* Binfmt_misc needs this */
|
||||
EXPORT_SYMBOL(sys_close);
|
||||
|
|
|
@ -37,8 +37,18 @@
|
|||
|
||||
#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 =
|
||||
"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_TX
|
||||
|
@ -1321,4 +1331,3 @@ static void __exit bigmac_cleanup(void)
|
|||
|
||||
module_init(bigmac_probe);
|
||||
module_exit(bigmac_cleanup);
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
|
@ -13,9 +13,6 @@
|
|||
* 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/module.h>
|
||||
#include <linux/kernel.h>
|
||||
|
@ -67,15 +64,24 @@ static char version[] =
|
|||
|
||||
#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];
|
||||
|
||||
/* accept MAC address of the form macaddr=0x08,0x00,0x20,0x30,0x40,0x50 */
|
||||
module_param_array(macaddr, int, NULL, 0);
|
||||
MODULE_PARM_DESC(macaddr, "Happy Meal MAC address to set");
|
||||
MODULE_LICENSE("GPL");
|
||||
|
||||
static struct happy_meal *root_happy_dev;
|
||||
|
||||
|
|
|
@ -69,9 +69,6 @@
|
|||
|
||||
#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";
|
||||
|
||||
#include <linux/config.h>
|
||||
|
@ -108,6 +105,19 @@ static char lancestr[] = "LANCE";
|
|||
#include <asm/auxio.h> /* For tpe-link-test? setting */
|
||||
#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 */
|
||||
#ifndef LANCE_LOG_TX_BUFFERS
|
||||
#define LANCE_LOG_TX_BUFFERS 4
|
||||
|
@ -1611,4 +1621,3 @@ static void __exit sparc_lance_cleanup(void)
|
|||
|
||||
module_init(sparc_lance_probe);
|
||||
module_exit(sparc_lance_cleanup);
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
|
@ -7,9 +7,6 @@
|
|||
* 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/kernel.h>
|
||||
#include <linux/types.h>
|
||||
|
@ -43,6 +40,19 @@ static char version[] =
|
|||
|
||||
#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 void qe_set_multicast(struct net_device *dev);
|
||||
|
@ -1040,4 +1050,3 @@ static void __exit qec_cleanup(void)
|
|||
|
||||
module_init(qec_probe);
|
||||
module_exit(qec_cleanup);
|
||||
MODULE_LICENSE("GPL");
|
||||
|
|
|
@ -49,6 +49,8 @@
|
|||
#include <scsi/scsi_host.h>
|
||||
#include <scsi/scsi_tcq.h>
|
||||
|
||||
#define DRV_VERSION "1.101"
|
||||
|
||||
#define DEBUG_ESP
|
||||
/* #define DEBUG_ESP_HME */
|
||||
/* #define DEBUG_ESP_DATA */
|
||||
|
@ -4398,5 +4400,8 @@ static struct scsi_host_template driver_template = {
|
|||
|
||||
#include "scsi_module.c"
|
||||
|
||||
MODULE_DESCRIPTION("EnhancedScsiProcessor Sun SCSI driver");
|
||||
MODULE_AUTHOR("David S. Miller (davem@redhat.com)");
|
||||
MODULE_LICENSE("GPL");
|
||||
MODULE_VERSION(DRV_VERSION);
|
||||
|
||||
|
|
|
@ -45,7 +45,7 @@ config LOGO_SGI_CLUT224
|
|||
|
||||
config LOGO_SUN_CLUT224
|
||||
bool "224-color Sun Linux logo"
|
||||
depends on LOGO && (SPARC || SPARC64)
|
||||
depends on LOGO && (SPARC32 || SPARC64)
|
||||
default y
|
||||
|
||||
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_ioctl(struct inode *, struct file *, unsigned int,
|
||||
unsigned long, struct fb_info *);
|
||||
static int tcx_pan_display(struct fb_var_screeninfo *, struct fb_info *);
|
||||
|
||||
/*
|
||||
* Frame buffer operations
|
||||
|
@ -45,6 +46,7 @@ static struct fb_ops tcx_ops = {
|
|||
.owner = THIS_MODULE,
|
||||
.fb_setcolreg = tcx_setcolreg,
|
||||
.fb_blank = tcx_blank,
|
||||
.fb_pan_display = tcx_pan_display,
|
||||
.fb_fillrect = cfb_fillrect,
|
||||
.fb_copyarea = cfb_copyarea,
|
||||
.fb_imageblit = cfb_imageblit,
|
||||
|
@ -153,6 +155,12 @@ static void tcx_reset (struct fb_info *info)
|
|||
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.
|
||||
* @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");
|
||||
|
||||
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",
|
||||
all->info.var.xres);
|
||||
|
@ -439,6 +450,7 @@ static void tcx_init_one(struct sbus_dev *sdev)
|
|||
return;
|
||||
}
|
||||
|
||||
fb_set_cmap(&all->info.cmap, &all->info);
|
||||
tcx_init_fix(&all->info, linebytes);
|
||||
|
||||
if (register_framebuffer(&all->info) < 0) {
|
||||
|
@ -466,7 +478,7 @@ int __init tcx_init(void)
|
|||
return -ENODEV;
|
||||
|
||||
for_all_sbusdev(sdev, sbus) {
|
||||
if (!strcmp(sdev->prom_name, "tcx"))
|
||||
if (!strcmp(sdev->prom_name, "SUNW,tcx"))
|
||||
tcx_init_one(sdev);
|
||||
}
|
||||
|
||||
|
|
|
@ -115,8 +115,8 @@ extern __inline__ unsigned long mxcc_get_creg(void)
|
|||
{
|
||||
unsigned long mxcc_control;
|
||||
|
||||
__asm__ __volatile__("set -1, %%g2\n\t"
|
||||
"set -1, %%g3\n\t"
|
||||
__asm__ __volatile__("set 0xffffffff, %%g2\n\t"
|
||||
"set 0xffffffff, %%g3\n\t"
|
||||
"stda %%g2, [%1] %2\n\t"
|
||||
"lda [%3] %2, %0\n\t" :
|
||||
"=r" (mxcc_control) :
|
||||
|
|
|
@ -44,7 +44,7 @@ typedef struct {
|
|||
|
||||
#define spin_unlock_wait(lp) \
|
||||
do { membar("#LoadLoad"); \
|
||||
} while(lp->lock)
|
||||
} while((lp)->lock)
|
||||
|
||||
static inline void _raw_spin_lock(spinlock_t *lock)
|
||||
{
|
||||
|
@ -149,7 +149,7 @@ typedef struct {
|
|||
unsigned int break_lock;
|
||||
#endif
|
||||
} 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)
|
||||
|
||||
static void inline __read_lock(rwlock_t *lock)
|
||||
|
|
|
@ -102,9 +102,9 @@ NORET_TYPE void panic(const char * fmt, ...)
|
|||
#ifdef __sparc__
|
||||
{
|
||||
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;
|
||||
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
|
||||
#if defined(CONFIG_ARCH_S390)
|
||||
|
|
Loading…
Reference in New Issue