You can subscribe to this list here.
2001 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(165) |
Sep
(240) |
Oct
(424) |
Nov
(526) |
Dec
(293) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2002 |
Jan
(242) |
Feb
(149) |
Mar
(143) |
Apr
(143) |
May
(76) |
Jun
(59) |
Jul
(20) |
Aug
(2) |
Sep
(49) |
Oct
(1) |
Nov
(4) |
Dec
|
2003 |
Jan
(1) |
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2004 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2008 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
(72) |
Jul
(36) |
Aug
(9) |
Sep
(16) |
Oct
(23) |
Nov
(9) |
Dec
(3) |
2010 |
Jan
|
Feb
(1) |
Mar
(35) |
Apr
(44) |
May
(56) |
Jun
(71) |
Jul
(41) |
Aug
(41) |
Sep
(22) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2012 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2014 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(1) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
|
2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2017 |
Jan
|
Feb
|
Mar
(1) |
Apr
(1) |
May
(1) |
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2021 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
(1) |
Sep
(25) |
Oct
(105) |
Nov
(15) |
Dec
|
2025 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
(4) |
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Bradley D. L. <br...@us...> - 2001-09-25 03:47:11
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv7807/drivers/char Modified Files: dummy_keyb.c Log Message: Make CONFIG_VT without CONFIG_PC_KEYB compile again. Add kbd_rate to dummy keyboard as now required. Index: dummy_keyb.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/dummy_keyb.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- dummy_keyb.c 2001/09/19 21:58:32 1.1 +++ dummy_keyb.c 2001/09/25 03:47:07 1.2 @@ -31,6 +31,11 @@ { } +int kbd_rate(struct kbd_repeat *rep) +{ + return 0; +} + int kbd_setkeycode(unsigned int scancode, unsigned int keycode) { return (scancode == keycode) ? 0 : -EINVAL; |
From: Paul M. <le...@us...> - 2001-09-25 03:36:40
|
Update of /cvsroot/linux-mips/linux/ipc In directory usw-pr-cvs1:/tmp/cvs-serv5739/ipc Modified Files: shm.c Log Message: Sync with OSS 2.4.9. Index: shm.c =================================================================== RCS file: /cvsroot/linux-mips/linux/ipc/shm.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- shm.c 2001/06/22 02:29:31 1.1.1.1 +++ shm.c 2001/09/25 03:36:36 1.2 @@ -71,7 +71,9 @@ void __init shm_init (void) { ipc_init_ids(&shm_ids, 1); +#ifdef CONFIG_PROC_FS create_proc_read_entry("sysvipc/shm", 0, 0, sysvipc_shm_read_proc, NULL); +#endif } static inline int shm_checkid(struct shmid_kernel *s, int id) |
From: Paul M. <le...@us...> - 2001-09-25 03:36:40
|
Update of /cvsroot/linux-mips/linux/kernel In directory usw-pr-cvs1:/tmp/cvs-serv5739/kernel Modified Files: exit.c Log Message: Sync with OSS 2.4.9. Index: exit.c =================================================================== RCS file: /cvsroot/linux-mips/linux/kernel/exit.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- exit.c 2001/09/15 08:51:35 1.5 +++ exit.c 2001/09/25 03:36:36 1.6 @@ -9,6 +9,7 @@ #include <linux/interrupt.h> #include <linux/smp_lock.h> #include <linux/module.h> +#include <linux/completion.h> #include <linux/tty.h> #ifdef CONFIG_BSD_PROCESS_ACCT #include <linux/acct.h> @@ -473,10 +474,10 @@ goto fake_volatile; } -NORET_TYPE void up_and_exit(struct semaphore *sem, long code) +NORET_TYPE void complete_and_exit(struct completion *comp, long code) { - if (sem) - up(sem); + if (comp) + complete(comp); do_exit(code); } |
From: Paul M. <le...@us...> - 2001-09-25 03:36:40
|
Update of /cvsroot/linux-mips/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/video Modified Files: fbmem.c Log Message: Sync with OSS 2.4.9. Index: fbmem.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/video/fbmem.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- fbmem.c 2001/09/13 17:05:53 1.6 +++ fbmem.c 2001/09/25 03:36:35 1.7 @@ -627,10 +627,7 @@ #elif defined(__i386__) if (boot_cpu_data.x86 > 3) pgprot_val(vma->vm_page_prot) |= _PAGE_PCD; -#elif defined(__mips__) - pgprot_val(vma->vm_page_prot) &= ~_CACHE_MASK; - pgprot_val(vma->vm_page_prot) |= _CACHE_UNCACHED; -#elif defined(__arm__) +#elif defined(__arm__) || defined(__mips__) vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); /* This is an IO map - tell maydump to skip this VMA */ vma->vm_flags |= VM_IO; |
From: Paul M. <le...@us...> - 2001-09-25 03:36:40
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64 In directory usw-pr-cvs1:/tmp/cvs-serv5739/include/asm-mips64 Modified Files: io.h module.h Log Message: Sync with OSS 2.4.9. Index: io.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/io.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- io.h 2001/09/04 16:15:50 1.4 +++ io.h 2001/09/25 03:36:36 1.5 @@ -30,6 +30,11 @@ #undef CONF_SLOWDOWN_IO /* + * Change "struct page" to physical address. + */ +#define page_to_phys(page) PHYSADDR(page_address(page)) + +/* * On MIPS, we have the whole physical address space mapped at all * times, so "ioremap()" and "iounmap()" do not need to do anything. * @@ -111,6 +116,9 @@ { return (void *)(address + PAGE_OFFSET); } + +/* This is too simpleminded for more sophisticated than dumb hardware ... */ +#define page_to_bus page_to_phys /* * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped Index: module.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/module.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- module.h 2001/08/21 17:21:39 1.1 +++ module.h 2001/09/25 03:36:36 1.2 @@ -26,9 +26,12 @@ { struct archdata *archdata; - if (!mod_member_present(mod, archdata_start) || !mod->archdata_start) + if (!mod_member_present(mod, archdata_end)) return 0; + archdata = (struct archdata *)(mod->archdata_start); + if (!mod_archdata_member_present(mod, struct archdata, dbe_table_end)) + return 0; if (archdata->dbe_table_start > archdata->dbe_table_end || (archdata->dbe_table_start && @@ -40,7 +43,7 @@ (unsigned long)archdata->dbe_table_end) % sizeof(struct exception_table_entry))) { printk(KERN_ERR - "arch_init_module: archdata->dbe_table_* invalid.\n"); + "module_arch_init: archdata->dbe_table_* invalid.\n"); return 1; } |
From: Paul M. <le...@us...> - 2001-09-25 03:36:40
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv5739/include/asm-mips Modified Files: au1000.h au1000_dma.h au1000_pcmcia.h io.h keyboard.h pb1000.h Log Message: Sync with OSS 2.4.9. Index: au1000.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- au1000.h 2001/09/12 21:31:06 1.6 +++ au1000.h 2001/09/25 03:36:35 1.7 @@ -28,7 +28,6 @@ * 675 Mass Ave, Cambridge, MA 02139, USA. */ - #ifndef _AU1000_H_ #define _AU1000_H_ Index: au1000_dma.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000_dma.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- au1000_dma.h 2001/08/23 17:10:44 1.2 +++ au1000_dma.h 2001/09/25 03:36:35 1.3 @@ -1,5 +1,4 @@ /* - * * BRIEF MODULE DESCRIPTION * Defines for using and allocating dma channels on the Alchemy * Au1000 mips processor. @@ -29,9 +28,8 @@ * 675 Mass Ave, Cambridge, MA 02139, USA. * */ - -#ifndef __ASM_MIPS_AU1000_DMA_H -#define __ASM_MIPS_AU1000_DMA_H +#ifndef __ASM_AU1000_DMA_H +#define __ASM_AU1000_DMA_H #include <linux/config.h> #include <asm/io.h> /* need byte IO */ @@ -49,36 +47,36 @@ #define DMA_MODE_SET 0x00000000 #define DMA_MODE_CLEAR 0x00000004 /* DMA Mode register bits follow */ - #define DMA_DAH_MASK (0x0f << 20) - #define DMA_DID_BIT 16 - #define DMA_DID_MASK (0x0f << DMA_DID_BIT) - #define DMA_BE (1<<13) - #define DMA_DR (1<<12) - #define DMA_TS8 (1<<11) - #define DMA_DW_BIT 9 - #define DMA_DW_MASK (0x03 << DMA_DW_BIT) - #define DMA_DW8 (0 << DMA_DW_BIT) - #define DMA_DW16 (1 << DMA_DW_BIT) - #define DMA_DW32 (2 << DMA_DW_BIT) - #define DMA_NC (1<<8) - #define DMA_IE (1<<7) - #define DMA_HALT (1<<6) - #define DMA_GO (1<<5) - #define DMA_AB (1<<4) - #define DMA_D1 (1<<3) - #define DMA_BE1 (1<<2) - #define DMA_D0 (1<<1) - #define DMA_BE0 (1<<0) +#define DMA_DAH_MASK (0x0f << 20) +#define DMA_DID_BIT 16 +#define DMA_DID_MASK (0x0f << DMA_DID_BIT) +#define DMA_BE (1<<13) +#define DMA_DR (1<<12) +#define DMA_TS8 (1<<11) +#define DMA_DW_BIT 9 +#define DMA_DW_MASK (0x03 << DMA_DW_BIT) +#define DMA_DW8 (0 << DMA_DW_BIT) +#define DMA_DW16 (1 << DMA_DW_BIT) +#define DMA_DW32 (2 << DMA_DW_BIT) +#define DMA_NC (1<<8) +#define DMA_IE (1<<7) +#define DMA_HALT (1<<6) +#define DMA_GO (1<<5) +#define DMA_AB (1<<4) +#define DMA_D1 (1<<3) +#define DMA_BE1 (1<<2) +#define DMA_D0 (1<<1) +#define DMA_BE0 (1<<0) #define DMA_PERIPHERAL_ADDR 0x00000008 #define DMA_BUFFER0_START 0x0000000C #define DMA_BUFFER1_START 0x00000014 #define DMA_BUFFER0_COUNT 0x00000010 #define DMA_BUFFER1_COUNT 0x00000018 - #define DMA_BAH_BIT 16 - #define DMA_BAH_MASK (0x0f << DMA_BAH_BIT) - #define DMA_COUNT_BIT 0 - #define DMA_COUNT_MASK (0xffff << DMA_COUNT_BIT) +#define DMA_BAH_BIT 16 +#define DMA_BAH_MASK (0x0f << DMA_BAH_BIT) +#define DMA_COUNT_BIT 0 +#define DMA_COUNT_MASK (0xffff << DMA_COUNT_BIT) /* DMA Device ID's follow */ enum { @@ -105,26 +103,25 @@ int dev_id; // this channel is allocated if >=0, free otherwise unsigned int io; int irq; - const char* dev_str; + const char *dev_str; unsigned int fifo_addr; unsigned int mode; }; - /* These are in arch/mips/au1000/common/dma.c */ extern struct dma_chan au1000_dma_table[]; -extern int request_au1000_dma(int dev_id, const char * dev_str); +extern int request_au1000_dma(int dev_id, const char *dev_str); extern void free_au1000_dma(unsigned int dmanr); -extern int au1000_dma_read_proc (char *buf, char **start, off_t fpos, +extern int au1000_dma_read_proc(char *buf, char **start, off_t fpos, int length, int *eof, void *data); extern void dump_au1000_dma_channel(unsigned int dmanr); extern spinlock_t au1000_dma_spin_lock; -static __inline__ struct dma_chan * -get_dma_chan (unsigned int dmanr) +static __inline__ struct dma_chan *get_dma_chan(unsigned int dmanr) { - if (dmanr > NUM_AU1000_DMA_CHANNELS || au1000_dma_table[dmanr].dev_id < 0) + if (dmanr > NUM_AU1000_DMA_CHANNELS + || au1000_dma_table[dmanr].dev_id < 0) return NULL; return &au1000_dma_table[dmanr]; } @@ -146,38 +143,39 @@ */ static __inline__ void enable_dma_buffer0(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; outl_sync(DMA_BE0, chan->io + DMA_MODE_SET); } static __inline__ void enable_dma_buffer1(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; outl_sync(DMA_BE1, chan->io + DMA_MODE_SET); } static __inline__ void enable_dma_buffers(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; - outl_sync(DMA_BE0|DMA_BE1, chan->io + DMA_MODE_SET); + outl_sync(DMA_BE0 | DMA_BE1, chan->io + DMA_MODE_SET); } /* enable/disable a specific DMA channel */ static __inline__ void enable_dma(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; // set device FIFO address - outl_sync(virt_to_phys((void*)chan->fifo_addr), - chan->io+DMA_PERIPHERAL_ADDR); + outl_sync(virt_to_phys((void *) chan->fifo_addr), + chan->io + DMA_PERIPHERAL_ADDR); - outl_sync(chan->mode | (chan->dev_id << DMA_DID_BIT) | DMA_IE | DMA_GO, + outl_sync(chan-> + mode | (chan->dev_id << DMA_DID_BIT) | DMA_IE | DMA_GO, chan->io + DMA_MODE_SET); } @@ -186,21 +184,21 @@ static __inline__ void disable_dma(unsigned int dmanr) { int i; - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; - outl_sync(DMA_D1 | DMA_D0 | DMA_GO, chan->io+DMA_MODE_CLEAR); + outl_sync(DMA_D1 | DMA_D0 | DMA_GO, chan->io + DMA_MODE_CLEAR); // poll the halt bit for (i = 0; i < DMA_HALT_POLL; i++) - if (inl(chan->io+DMA_MODE_SET) & DMA_HALT) + if (inl(chan->io + DMA_MODE_SET) & DMA_HALT) break; if (i == DMA_HALT_POLL) { printk(KERN_INFO "disable_dma: HALT poll expired!\n"); } else { // now we can disable the buffers - outl_sync(~DMA_GO, chan->io+DMA_MODE_CLEAR); + outl_sync(~DMA_GO, chan->io + DMA_MODE_CLEAR); } } @@ -210,7 +208,7 @@ */ static __inline__ void set_dma_mode(unsigned int dmanr, unsigned int mode) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; /* @@ -218,16 +216,16 @@ * FIFO width, and cacheability info for the channel. Make sure * anything else is masked off. */ - mode &= (DMA_BE|DMA_DR|DMA_TS8|DMA_DW_MASK|DMA_NC); + mode &= (DMA_BE | DMA_DR | DMA_TS8 | DMA_DW_MASK | DMA_NC); chan->mode = mode; } static __inline__ int get_dma_active_buffer(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return -1; - return (inl(chan->io+DMA_MODE_SET) & DMA_AB) ? 1 : 0; + return (inl(chan->io + DMA_MODE_SET) & DMA_AB) ? 1 : 0; } @@ -236,16 +234,18 @@ * applicable to GPO4 and GPO5. All the other devices have fixed * FIFO addresses. */ -static __inline__ void set_dma_fifo_addr(unsigned int dmanr, unsigned int a) +static __inline__ void set_dma_fifo_addr(unsigned int dmanr, + unsigned int a) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; if (chan->dev_id != DMA_ID_GP04 && chan->dev_id != DMA_ID_GP05) return; - outl_sync(virt_to_phys((void*)a), chan->io+DMA_PERIPHERAL_ADDR); + outl_sync(virt_to_phys((void *) a), + chan->io + DMA_PERIPHERAL_ADDR); } /* @@ -253,17 +253,17 @@ */ static __inline__ void clear_dma_done0(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; - outl_sync(DMA_D0, chan->io+DMA_MODE_CLEAR); + outl_sync(DMA_D0, chan->io + DMA_MODE_CLEAR); } static __inline__ void clear_dma_done1(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; - outl_sync(DMA_D1, chan->io+DMA_MODE_CLEAR); + outl_sync(DMA_D1, chan->io + DMA_MODE_CLEAR); } /* @@ -278,57 +278,62 @@ */ static __inline__ void set_dma_addr0(unsigned int dmanr, unsigned int a) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; - outl_sync(a, chan->io+DMA_BUFFER0_START); + outl_sync(a, chan->io + DMA_BUFFER0_START); } + /* * Set Buffer 1 transfer address for specific DMA channel. */ static __inline__ void set_dma_addr1(unsigned int dmanr, unsigned int a) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; - outl_sync(a, chan->io+DMA_BUFFER1_START); + outl_sync(a, chan->io + DMA_BUFFER1_START); } /* * Set Buffer 0 transfer size (max 64k) for a specific DMA channel. */ -static __inline__ void set_dma_count0(unsigned int dmanr, unsigned int count) +static __inline__ void set_dma_count0(unsigned int dmanr, + unsigned int count) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; count &= DMA_COUNT_MASK; - outl_sync(count, chan->io+DMA_BUFFER0_COUNT); + outl_sync(count, chan->io + DMA_BUFFER0_COUNT); } + /* * Set Buffer 1 transfer size (max 64k) for a specific DMA channel. */ -static __inline__ void set_dma_count1(unsigned int dmanr, unsigned int count) +static __inline__ void set_dma_count1(unsigned int dmanr, + unsigned int count) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; count &= DMA_COUNT_MASK; - outl_sync(count, chan->io+DMA_BUFFER1_COUNT); + outl_sync(count, chan->io + DMA_BUFFER1_COUNT); } /* * Set both buffer transfer sizes (max 64k) for a specific DMA channel. */ -static __inline__ void set_dma_count(unsigned int dmanr, unsigned int count) +static __inline__ void set_dma_count(unsigned int dmanr, + unsigned int count) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return; count &= DMA_COUNT_MASK; - outl_sync(count, chan->io+DMA_BUFFER0_COUNT); - outl_sync(count, chan->io+DMA_BUFFER1_COUNT); + outl_sync(count, chan->io + DMA_BUFFER0_COUNT); + outl_sync(count, chan->io + DMA_BUFFER1_COUNT); } /* @@ -338,11 +343,11 @@ static __inline__ int get_dma_buffer_done(unsigned int dmanr) { unsigned int mode; - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return 0; - mode = inl(chan->io+DMA_MODE_SET); + mode = inl(chan->io + DMA_MODE_SET); if (!(mode & (DMA_D0 | DMA_D1)) || (mode & (DMA_D0 | DMA_D1)) == (DMA_D0 | DMA_D1)) return -1; @@ -356,7 +361,7 @@ */ static __inline__ int get_dma_done_irq(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return -1; @@ -369,7 +374,7 @@ static __inline__ int get_dma_residue(unsigned int dmanr) { int curBufCntReg, count; - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) return 0; @@ -385,6 +390,5 @@ return count; } - -#endif /* __ASM_MIPS_AU1000_DMA_H */ +#endif /* __ASM_AU1000_DMA_H */ Index: au1000_pcmcia.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/au1000_pcmcia.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- au1000_pcmcia.h 2001/06/26 04:14:40 1.1 +++ au1000_pcmcia.h 2001/09/25 03:36:35 1.2 @@ -1,5 +1,4 @@ /* - * * Alchemy Semi Au1000 pcmcia driver include file * * Copyright 2001 MontaVista Software Inc. @@ -25,9 +24,8 @@ * * */ - -#if !defined(_PCMCIA_AU1000_H) -#define _PCMCIA_AU1000_H +#ifndef __ASM_AU1000_PCMCIA_H +#define __ASM_AU1000_PCMCIA_H #define AU1000_PCMCIA_POLL_PERIOD (4*HZ) @@ -86,4 +84,4 @@ extern struct pcmcia_low_level pb1000_pcmcia_ops; -#endif +#endif /* __ASM_AU1000_PCMCIA_H */ Index: io.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/io.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- io.h 2001/09/15 20:04:08 1.5 +++ io.h 2001/09/25 03:36:35 1.6 @@ -112,7 +112,6 @@ return (void *)KSEG0ADDR(address); } - /* * IO bus memory addresses are also 1:1 with the physical address */ @@ -126,11 +125,18 @@ return (void *)KSEG0ADDR(address); } +#define page_to_bus page_to_phys + /* * isa_slot_offset is the address where E(ISA) busaddress 0 is mapped * for the processor. */ extern unsigned long isa_slot_offset; + +/* + * Change "struct page" to physical address. + */ +#define page_to_phys(page) ((page - mem_map) << PAGE_SHIFT) extern void * __ioremap(unsigned long offset, unsigned long size, unsigned long flags); Index: keyboard.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/keyboard.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- keyboard.h 2001/09/06 17:02:03 1.3 +++ keyboard.h 2001/09/25 03:36:36 1.4 @@ -10,9 +10,10 @@ #ifdef __KERNEL__ +#include <linux/config.h> #include <linux/delay.h> #include <linux/ioport.h> -#include <linux/config.h> +#include <linux/kd.h> #include <asm/bootinfo.h> #define DISABLE_KBD_DURING_INTERRUPTS 0 @@ -25,7 +26,9 @@ char raw_mode); extern char pckbd_unexpected_up(unsigned char keycode); extern void pckbd_leds(unsigned char leds); +extern int pckbd_rate(struct kbd_repeat *rep); extern void pckbd_init_hw(void); +extern void pckbd_pm_resume(void); extern unsigned char pckbd_sysrq_xlate[128]; extern void kbd_forward_char (int ch); @@ -34,6 +37,7 @@ #define kbd_translate pckbd_translate #define kbd_unexpected_up pckbd_unexpected_up #define kbd_leds pckbd_leds +#define kbd_rate pckbd_rate #define kbd_init_hw pckbd_init_hw #define kbd_sysrq_xlate pckbd_sysrq_xlate Index: pb1000.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/pb1000.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pb1000.h 2001/08/17 22:53:26 1.2 +++ pb1000.h 2001/09/25 03:36:36 1.3 @@ -1,5 +1,4 @@ /* - * * Alchemy Semi PB1000 Referrence Board * * Copyright 2001 MontaVista Software Inc. @@ -25,10 +24,8 @@ * * */ - -#if !defined(_PB1000_H) -#define _PB1000_H - +#ifndef __ASM_PB1000_H +#define __ASM_PB1000_H /* PCMCIA PB1000 specific defines */ #define PCMCIA_MAX_SOCK 0 /* the second socket, 1, is not supported at this time */ @@ -163,4 +160,4 @@ { writel((readl(PCI_BRIDGE_CONFIG) & 0xffffbf00) | 0x18, PCI_BRIDGE_CONFIG); } -#endif +#endif /* __ASM_PB1000_H */ |
From: Paul M. <le...@us...> - 2001-09-25 03:36:40
|
Update of /cvsroot/linux-mips/linux/include/linux In directory usw-pr-cvs1:/tmp/cvs-serv5739/include/linux Modified Files: ac97_codec.h mc146818rtc.h netdevice.h Log Message: Sync with OSS 2.4.9. Index: ac97_codec.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/linux/ac97_codec.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- ac97_codec.h 2001/08/29 22:30:58 1.5 +++ ac97_codec.h 2001/09/25 03:36:36 1.6 @@ -185,8 +185,7 @@ int dev_mixer; int type; - /* codec specific init/reset routines, used mainly for 4 or 6 channel support */ - int (*codec_init) (struct ac97_codec *codec); + struct ac97_ops *codec_ops; /* controller specific lower leverl ac97 accessing routines */ u16 (*codec_read) (struct ac97_codec *codec, u8 reg); @@ -215,6 +214,20 @@ /* Software Modem interface */ int (*modem_ioctl)(struct ac97_codec *codec, unsigned int cmd, unsigned long arg); +}; + +/* + * Operation structures for each known AC97 chip + */ + +struct ac97_ops +{ + /* Initialise */ + int (*init)(struct ac97_codec *c); + /* Amplifier control */ + int (*amplifier)(struct ac97_codec *codec, int on); + /* Digital mode control */ + int (*digital)(struct ac97_codec *codec, int format); }; extern int ac97_read_proc (char *page_out, char **start, off_t off, Index: mc146818rtc.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/linux/mc146818rtc.h,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- mc146818rtc.h 2001/06/22 02:29:32 1.1.1.1 +++ mc146818rtc.h 2001/09/25 03:36:36 1.2 @@ -13,7 +13,7 @@ #include <asm/io.h> #include <linux/rtc.h> /* get the user-level API */ -#include <linux/spinlock.h> +#include <linux/spinlock.h> /* spinlock_t */ #include <asm/mc146818rtc.h> /* register access macros */ extern spinlock_t rtc_lock; /* serialize CMOS RAM access */ Index: netdevice.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/linux/netdevice.h,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- netdevice.h 2001/08/25 06:24:46 1.4 +++ netdevice.h 2001/09/25 03:36:36 1.5 @@ -349,7 +349,7 @@ #define NETIF_F_HW_CSUM 8 /* Can checksum all the packets. */ #define NETIF_F_DYNALLOC 16 /* Self-dectructable device. */ #define NETIF_F_HIGHDMA 32 /* Can DMA to high memory. */ -#define NETIF_F_FRAGLIST 1 /* Scatter/gather IO. */ +#define NETIF_F_FRAGLIST 64 /* Scatter/gather IO. */ /* Called after device is detached from network. */ void (*uninit)(struct net_device *dev); |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/init In directory usw-pr-cvs1:/tmp/cvs-serv5739/init Modified Files: main.c Log Message: Sync with OSS 2.4.9. Index: main.c =================================================================== RCS file: /cvsroot/linux-mips/linux/init/main.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- main.c 2001/08/25 02:19:28 1.5 +++ main.c 2001/09/25 03:36:36 1.6 @@ -87,7 +87,6 @@ extern void init_IRQ(void); extern void init_modules(void); -extern void init_inventory(void); extern void sock_init(void); extern void fork_init(unsigned long); extern void mca_init(void); @@ -571,9 +570,6 @@ "disabling it.\n",initrd_start,min_low_pfn << PAGE_SHIFT); initrd_start = 0; } -#endif -#ifdef CONFIG_BINFMT_IRIX - init_inventory(); #endif mem_init(); kmem_cache_sizes_init(); |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/sound In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/sound Modified Files: Config.in Makefile au1000.c Log Message: Sync with OSS 2.4.9. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/Config.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Config.in 2001/08/25 02:19:28 1.6 +++ Config.in 2001/09/25 03:36:35 1.7 @@ -6,6 +6,7 @@ # Prompt user for primary drivers. +dep_tristate ' BT878 audio dma' CONFIG_SOUND_BT878 $CONFIG_SOUND dep_tristate ' C-Media PCI (CMI8338/8738)' CONFIG_SOUND_CMPCI $CONFIG_SOUND $CONFIG_PCI if [ "$CONFIG_SOUND_CMPCI" = "y" -o "$CONFIG_SOUND_CMPCI" = "m" ]; then bool ' Enable legacy FM' CONFIG_SOUND_CMPCI_FM @@ -30,6 +31,7 @@ fi fi dep_tristate ' Creative SBLive! (EMU10K1)' CONFIG_SOUND_EMU10K1 $CONFIG_SOUND $CONFIG_PCI +dep_mbool ' Creative SBLive! MIDI' CONFIG_MIDI_EMU10K1 $CONFIG_SOUND_EMU10K1 $CONFIG_EXPERIMENTAL dep_tristate ' Crystal SoundFusion (CS4280/461x)' CONFIG_SOUND_FUSION $CONFIG_SOUND dep_tristate ' Crystal Sound CS4281' CONFIG_SOUND_CS4281 $CONFIG_SOUND dep_tristate ' Ensoniq AudioPCI (ES1370)' CONFIG_SOUND_ES1370 $CONFIG_SOUND $CONFIG_PCI @@ -38,10 +40,12 @@ dep_tristate ' ESS Maestro, Maestro2, Maestro2E driver' CONFIG_SOUND_MAESTRO $CONFIG_SOUND dep_tristate ' ESS Maestro3/Allegro driver (EXPERIMENTAL)' CONFIG_SOUND_MAESTRO3 $CONFIG_SOUND $CONFIG_PCI $CONFIG_EXPERIMENTAL dep_tristate ' Intel ICH (i8xx) audio support' CONFIG_SOUND_ICH $CONFIG_PCI +dep_tristate ' RME Hammerfall (RME96XX) support' CONFIG_SOUND_RME96XX $CONFIG_SOUND $CONFIG_PCI $CONFIG_EXPERIMENTAL dep_tristate ' S3 SonicVibes' CONFIG_SOUND_SONICVIBES $CONFIG_SOUND if [ "$CONFIG_VISWS" = "y" ]; then dep_tristate ' SGI Visual Workstation Sound' CONFIG_SOUND_VWSND $CONFIG_SOUND fi + if [ "$CONFIG_DDB5477" = "y" ]; then dep_tristate ' NEC Vrc5477 AC97 sound' CONFIG_SOUND_VRC5477 $CONFIG_SOUND fi Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 2001/08/25 06:24:45 1.6 +++ Makefile 2001/09/25 03:36:35 1.7 @@ -63,19 +63,26 @@ obj-$(CONFIG_SOUND_CMPCI) += cmpci.o obj-$(CONFIG_SOUND_ES1370) += es1370.o obj-$(CONFIG_SOUND_ES1371) += es1371.o ac97_codec.o -obj-$(CONFIG_SOUND_AU1000) += au1000.o ac97_codec.o obj-$(CONFIG_SOUND_VRC5477) += nec_vrc5477.o ac97_codec.o +obj-$(CONFIG_SOUND_AU1000) += au1000.o ac97_codec.o obj-$(CONFIG_SOUND_ESSSOLO1) += esssolo1.o obj-$(CONFIG_SOUND_FUSION) += cs46xx.o ac97_codec.o obj-$(CONFIG_SOUND_MAESTRO) += maestro.o obj-$(CONFIG_SOUND_MAESTRO3) += maestro3.o ac97_codec.o obj-$(CONFIG_SOUND_TRIDENT) += trident.o ac97_codec.o +obj-$(CONFIG_SOUND_RME96XX) += rme96xx.o +obj-$(CONFIG_SOUND_BT878) += btaudio.o +obj-$(CONFIG_SOUND_EMU10K1) += ac97_codec.o +ifeq ($(CONFIG_MIDI_EMU10K1),y) + obj-$(CONFIG_SOUND_EMU10K1) += sound.o +endif + subdir-$(CONFIG_SOUND_EMU10K1) += emu10k1 subdir-$(CONFIG_SOUND_CS4281) += cs4281 ifeq ($(CONFIG_SOUND_EMU10K1),y) - obj-y += ac97_codec.o emu10k1/emu10k1.o + obj-y += emu10k1/emu10k1.o endif ifeq ($(CONFIG_SOUND_CS4281),y) Index: au1000.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/au1000.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- au1000.c 2001/08/23 17:10:44 1.2 +++ au1000.c 2001/09/25 03:36:35 1.3 @@ -98,7 +98,6 @@ /* --------------------------------------------------------------------- */ struct au1000_state { - /* soundcore stuff */ int dev_audio; @@ -132,8 +131,8 @@ unsigned buforder; unsigned numfrag; // # of DMA blocks that fit in DMA buffer unsigned fragshift; [...1366 lines suppressed...] - static int __init init_au1000(void) { info("st...@mv..., built " __TIME__ " on " __DATE__); @@ -2047,12 +2143,13 @@ static int __init au1000_setup(char *options) { - char* this_opt; + char *this_opt; if (!options || !*options) return 0; - for(this_opt=strtok(options, ","); this_opt; this_opt=strtok(NULL, ",")) { + for (this_opt = strtok(options, ","); this_opt; + this_opt = strtok(NULL, ",")) { if (!strncmp(this_opt, "vra", 3)) { vra = 1; } |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/pcmcia In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/pcmcia Modified Files: au1000_generic.c cs.c Log Message: Sync with OSS 2.4.9. Index: au1000_generic.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pcmcia/au1000_generic.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- au1000_generic.c 2001/09/05 19:51:47 1.2 +++ au1000_generic.c 2001/09/25 03:36:35 1.3 @@ -681,13 +681,15 @@ pcmcia_socket[sock].k_state.vs_Xv ? "vs_Xv " : ""); p += sprintf(p, "status : %s%s%s%s%s%s%s%s%s\n", - pcmcia_socket[sock].k_state.detect ? "SS_DETECT " : "", + pcmcia_socket[sock]. + k_state.detect ? "SS_DETECT " : "", pcmcia_socket[sock].k_state.ready ? "SS_READY " : "", pcmcia_socket[sock].cs_state.Vcc ? "SS_POWERON " : "", - pcmcia_socket[sock].cs_state.flags & SS_IOCARD ? - "SS_IOCARD " : "", + pcmcia_socket[sock]. + cs_state.flags & SS_IOCARD ? \"SS_IOCARD " : "", (pcmcia_socket[sock].cs_state.flags & SS_IOCARD - && pcmcia_socket[sock].k_state.bvd1) ? "SS_STSCHG " : "", + && pcmcia_socket[sock]. + k_state.bvd1) ? "SS_STSCHG " : "", ((pcmcia_socket[sock].cs_state.flags & SS_IOCARD) == 0 && (pcmcia_socket[sock].k_state.bvd1 == 0)) ? "SS_BATDEAD " : "", @@ -695,40 +697,44 @@ && (pcmcia_socket[sock].k_state.bvd2 == 0)) ? "SS_BATWARN " : "", pcmcia_socket[sock].k_state.vs_3v ? "SS_3VCARD " : "", - pcmcia_socket[sock].k_state.vs_Xv ? "SS_XVCARD " : ""); + pcmcia_socket[sock]. + k_state.vs_Xv ? "SS_XVCARD " : ""); p += sprintf(p, "mask : %s%s%s%s%s\n", - pcmcia_socket[sock].cs_state.csc_mask & SS_DETECT ? \ - "SS_DETECT " : "", - pcmcia_socket[sock].cs_state.csc_mask & SS_READY ? \ - "SS_READY " : "", - pcmcia_socket[sock].cs_state.csc_mask & SS_BATDEAD ? \ - "SS_BATDEAD " : "", - pcmcia_socket[sock].cs_state.csc_mask & SS_BATWARN ? \ - "SS_BATWARN " : "", - pcmcia_socket[sock].cs_state.csc_mask & SS_STSCHG ? \ - "SS_STSCHG " : ""); + pcmcia_socket[sock]. + cs_state.csc_mask & SS_DETECT ? \"SS_DETECT " : "", + pcmcia_socket[sock]. + cs_state.csc_mask & SS_READY ? \"SS_READY " : "", + pcmcia_socket[sock]. + cs_state.csc_mask & SS_BATDEAD ? \"SS_BATDEAD " : "", + pcmcia_socket[sock]. + cs_state.csc_mask & SS_BATWARN ? \"SS_BATWARN " : "", + pcmcia_socket[sock]. + cs_state.csc_mask & SS_STSCHG ? \"SS_STSCHG " : ""); p += sprintf(p, "cs_flags : %s%s%s%s%s\n", - pcmcia_socket[sock].cs_state.flags & SS_PWR_AUTO ? \ - "SS_PWR_AUTO " : "", - pcmcia_socket[sock].cs_state.flags & SS_IOCARD ? \ - "SS_IOCARD " : "", - pcmcia_socket[sock].cs_state.flags & SS_RESET ? \ - "SS_RESET " : "", - pcmcia_socket[sock].cs_state.flags & SS_SPKR_ENA ? \ - "SS_SPKR_ENA " : "", - pcmcia_socket[sock].cs_state.flags & SS_OUTPUT_ENA ? \ - "SS_OUTPUT_ENA " : + pcmcia_socket[sock]. + cs_state.flags & SS_PWR_AUTO ? \"SS_PWR_AUTO " : "", + pcmcia_socket[sock]. + cs_state.flags & SS_IOCARD ? \"SS_IOCARD " : "", + pcmcia_socket[sock]. + cs_state.flags & SS_RESET ? \"SS_RESET " : "", + pcmcia_socket[sock]. + cs_state.flags & SS_SPKR_ENA ? \"SS_SPKR_ENA " : "", + pcmcia_socket[sock]. + cs_state.flags & SS_OUTPUT_ENA ? \"SS_OUTPUT_ENA " : ""); - p += sprintf(p, "Vcc : %d\n", + p += + sprintf(p, "Vcc : %d\n", pcmcia_socket[sock].cs_state.Vcc); - p += sprintf(p, "Vpp : %d\n", + p += + sprintf(p, "Vpp : %d\n", pcmcia_socket[sock].cs_state.Vpp); - p += sprintf(p, "irq : %d\n", + p += + sprintf(p, "irq : %d\n", pcmcia_socket[sock].cs_state.io_irq); p += sprintf(p, "I/O : %u\n", pcmcia_socket[sock].speed_io); Index: cs.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pcmcia/cs.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- cs.c 2001/09/06 00:00:00 1.1 +++ cs.c 2001/09/25 03:36:35 1.2 @@ -788,10 +788,6 @@ *base, align); align = 0; } - if ((s->cap.features & SS_CAP_STATIC_MAP) && s->cap.io_offset) { - *base = s->cap.io_offset | (*base & 0x0fff); - return 0; - } /* Check for an already-allocated window that must conflict with what was asked for. It is a hack because it does not catch all potential conflicts, just the most obvious ones. */ |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/fs In directory usw-pr-cvs1:/tmp/cvs-serv5739/fs Modified Files: Makefile Log Message: Sync with OSS 2.4.9. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/fs/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 2001/07/11 17:01:07 1.1 +++ Makefile 2001/09/25 03:36:35 1.2 @@ -7,7 +7,7 @@ O_TARGET := fs.o -export-objs := filesystems.o dcache.o +export-objs := filesystems.o open.o dcache.o mod-subdirs := nls obj-y := open.o read_write.o devices.o file_table.o buffer.o \ |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/pci In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/pci Modified Files: pci.ids Log Message: Sync with OSS 2.4.9. Index: pci.ids =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/pci/pci.ids,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pci.ids 2001/09/04 16:07:11 1.2 +++ pci.ids 2001/09/25 03:36:35 1.3 @@ -1561,8 +1561,8 @@ 10b7 1000 3C905C-TX Fast Etherlink for PC Management NIC 9800 3c980-TX [Fast Etherlink XL Server Adapter] 10b7 9800 3c980-TX Fast Etherlink XL Server Adapter - 9805 3c980-TX 10/100baseTX NIC [Python-T] - 10b7 9805 3c980 10/100baseTX NIC [Python-T] + 9805 3c982 Dual Port Server Cyclone + 10b7 9805 3c982 Dual Port Server Cyclone 10b8 Standard Microsystems Corp [SMC] 0005 83C170QF 1055 e000 LANEPIC @@ -4270,6 +4270,9 @@ 1607 Lava Semiconductor Manufacturing Inc 1608 Automated Wagering International 1609 Scimetric Instruments Inc +1619 FarSite Communications Ltd + 0400 FarSync T2P (2 port X.21/V.35/V.24) + 0440 FarSync T4P (4 port X.21/V.35/V.24) 1668 Action Tec Electronics Inc 1813 Ambient Technologies Inc 1a08 Sierra semiconductor |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/char Modified Files: Config.in rtc.c serial.c tty_io.c vt.c Log Message: Sync with OSS 2.4.9. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/Config.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Config.in 2001/09/13 17:03:09 1.6 +++ Config.in 2001/09/25 03:36:35 1.7 @@ -185,7 +185,7 @@ tristate 'Siemens R3964 line discipline' CONFIG_R3964 tristate 'Applicom intelligent fieldbus card support' CONFIG_APPLICOM if [ "$CONFIG_EXPERIMENTAL" = "y" ]; then - tristate 'Sony Vaio Programmable I/O Control Device support' CONFIG_SONYPI $CONFIG_PCI + dep_tristate 'Sony Vaio Programmable I/O Control Device support' CONFIG_SONYPI $CONFIG_PCI fi mainmenu_option next_comment Index: rtc.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/rtc.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- rtc.c 2001/08/10 18:30:13 1.4 +++ rtc.c 2001/09/25 03:36:35 1.5 @@ -95,8 +95,6 @@ static struct timer_list rtc_irq_timer; -static loff_t rtc_llseek(struct file *file, loff_t offset, int origin); - static ssize_t rtc_read(struct file *file, char *buf, size_t count, loff_t *ppos); @@ -190,11 +188,6 @@ * Now all the various file operations that we export. */ -static loff_t rtc_llseek(struct file *file, loff_t offset, int origin) -{ - return -ESPIPE; -} - static ssize_t rtc_read(struct file *file, char *buf, size_t count, loff_t *ppos) { @@ -617,7 +610,7 @@ static struct file_operations rtc_fops = { owner: THIS_MODULE, - llseek: rtc_llseek, + llseek: no_llseek, read: rtc_read, #if RTC_IRQ poll: rtc_poll, @@ -730,16 +723,26 @@ if (!(ctrl & RTC_DM_BINARY) || RTC_ALWAYS_BCD) BCD_TO_BIN(year); /* This should never happen... */ - if (year >= 20 && year < 48) { + if (year < 20) { + epoch = 2000; + guess = "SRM (post-2000)"; + } else if (year >= 20 && year < 48) { epoch = 1980; guess = "ARC console"; } else if (year >= 48 && year < 72) { epoch = 1952; guess = "Digital UNIX"; +#if defined(__mips__) } else if (year >= 72 && year < 74) { epoch = 2000; guess = "Digital DECstation"; +#else + } else if (year >= 70) { + epoch = 1900; + guess = "Standard PC (1900)"; +#endif } + if (guess) printk(KERN_INFO "rtc: %s epoch (%lu) detected\n", guess, epoch); #endif Index: serial.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/serial.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- serial.c 2001/08/25 06:24:45 1.4 +++ serial.c 2001/09/25 03:36:35 1.5 @@ -3912,6 +3912,22 @@ case 7: base_idx=idx-2; /* BAR 5*/ } + /* Some Titan cards are also a little weird */ + if (dev->vendor == PCI_VENDOR_ID_TITAN && + (dev->device == PCI_DEVICE_ID_TITAN_400L || + dev->device == PCI_DEVICE_ID_TITAN_800L)) { + switch (idx) { + case 0: base_idx = 1; + break; + case 1: base_idx = 2; + break; + default: + base_idx = 4; + offset = 8 * (idx - 2); + } + + } + port = pci_resource_start(dev, base_idx) + offset; if ((board->flags & SPCI_FL_BASE_TABLE) == 0) @@ -4681,6 +4697,19 @@ { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, pbn_b0_4_921600 }, + { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_100L, + PCI_ANY_ID, PCI_ANY_ID, + SPCI_FL_BASE1, 1, 921600 }, + { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_200L, + PCI_ANY_ID, PCI_ANY_ID, + SPCI_FL_BASE1 | SPCI_FL_BASE_TABLE, 2, 921600 }, + /* The 400L and 800L have a custom hack in get_pci_port */ + { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_400L, + PCI_ANY_ID, PCI_ANY_ID, + SPCI_FL_BASE_TABLE, 4, 921600 }, + { PCI_VENDOR_ID_TITAN, PCI_DEVICE_ID_TITAN_800L, + PCI_ANY_ID, PCI_ANY_ID, + SPCI_FL_BASE_TABLE, 8, 921600 }, { PCI_VENDOR_ID_SIIG, PCI_DEVICE_ID_SIIG_1S_10x_550, PCI_ANY_ID, PCI_ANY_ID, 0, 0, Index: tty_io.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/tty_io.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- tty_io.c 2001/08/25 02:19:27 1.5 +++ tty_io.c 2001/09/25 03:36:35 1.6 @@ -105,7 +105,6 @@ #ifdef CONFIG_VT extern void con_init_devfs (void); #endif -extern int rio_init(void); #define CONSOLE_DEV MKDEV(TTY_MAJOR,0) #define TTY_DEV MKDEV(TTYAUX_MAJOR,0) @@ -154,7 +153,7 @@ extern void con3215_init(void); extern void tty3215_init(void); extern void tub3270_con_init(void); -extern void tub3270_initfunc(void); +extern void tub3270_init(void); extern void rs285_console_init(void); extern void sa1100_rs_console_init(void); extern void sgi_serial_console_init(void); @@ -402,13 +401,8 @@ return cmd == TIOCSPGRP ? -ENOTTY : -EIO; } -static loff_t tty_lseek(struct file * file, loff_t offset, int orig) -{ - return -ESPIPE; -} - static struct file_operations tty_fops = { - llseek: tty_lseek, + llseek: no_llseek, read: tty_read, write: tty_write, poll: tty_poll, @@ -419,7 +413,7 @@ }; static struct file_operations hung_up_tty_fops = { - llseek: tty_lseek, + llseek: no_llseek, read: hung_up_tty_read, write: hung_up_tty_write, poll: hung_up_tty_poll, @@ -2200,6 +2194,8 @@ console_8xx_init(); #elif defined(CONFIG_MAC_SERIAL) mac_scc_console_init(); +#elif defined(CONFIG_PARISC) + pdc_console_init(); #elif defined(CONFIG_SERIAL) serial_console_init(); #endif /* CONFIG_8xx */ @@ -2216,15 +2212,18 @@ sci_console_init(); #endif #endif -#ifdef CONFIG_3215 - con3215_init(); -#endif -#ifdef CONFIG_3270_CONSOLE +#ifdef CONFIG_TN3270_CONSOLE tub3270_con_init(); #endif +#ifdef CONFIG_TN3215 + con3215_init(); +#endif #ifdef CONFIG_HWC hwc_console_init(); #endif +#ifdef CONFIG_STDIO_CONSOLE + stdio_console_init(); +#endif #ifdef CONFIG_SERIAL_21285_CONSOLE rs285_console_init(); #endif @@ -2320,6 +2319,7 @@ kbd_init(); #endif + #ifdef CONFIG_ESPSERIAL /* init ESP before rs, so rs doesn't see the port */ espserial_init(); #endif @@ -2356,9 +2356,6 @@ #ifdef CONFIG_SPECIALIX specialix_init(); #endif -#ifdef CONFIG_RIO - rio_init(); -#endif #if (defined(CONFIG_8xx) || defined(CONFIG_8260)) rs_8xx_init(); #endif /* CONFIG_8xx */ @@ -2372,10 +2369,10 @@ #ifdef CONFIG_VT vcs_init(); #endif -#ifdef CONFIG_3270 - tub3270_initfunc(); +#ifdef CONFIG_TN3270 + tub3270_init(); #endif -#ifdef CONFIG_3215 +#ifdef CONFIG_TN3215 tty3215_init(); #endif #ifdef CONFIG_HWC Index: vt.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/vt.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- vt.c 2001/06/22 02:29:32 1.1.1.1 +++ vt.c 2001/09/25 03:36:35 1.2 @@ -7,6 +7,7 @@ * Dynamic keymap and string allocation - ae...@cw... - May 1994 * Restrict VT switching via ioctl() - gr...@cs... - Dec 1995 * Some code moved for less code duplication - Andi Kleen - Mar 1997 + * Check put/get_user, cleanups - ac...@co... - Jun 2001 */ #include <linux/config.h> @@ -23,13 +24,11 @@ #include <linux/major.h> #include <linux/fs.h> #include <linux/console.h> +#include <linux/irq.h> #include <asm/io.h> #include <asm/uaccess.h> - -#if defined(__mc68000__) || defined(CONFIG_APUS) -#include <asm/machdep.h> -#endif +#include <asm/keyboard.h> #include <linux/kbd_kern.h> #include <linux/vt_kern.h> @@ -289,8 +288,10 @@ p = func_table[i]; if(p) for ( ; *p && sz; p++, sz--) - put_user(*p, q++); - put_user('\0', q); + if (put_user(*p, q++)) + return -EFAULT; + if (put_user('\0', q)) + return -EFAULT; return ((p && *p) ? -EOVERFLOW : 0); case KDSKBSENT: if (!perm) @@ -497,26 +498,26 @@ (cmd == KDENABIO)) ? -ENXIO : 0; #endif -#if defined(__mc68000__) || defined(CONFIG_APUS) - /* Linux/m68k interface for setting the keyboard delay/repeat rate */ + /* Linux m68k/i386 interface for setting the keyboard delay/repeat rate */ case KDKBDREP: { struct kbd_repeat kbrep; - if (!mach_kbdrate) return( -EINVAL ); - if (!suser()) return( -EPERM ); + if (!kbd_rate) return( -EINVAL ); + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; if (copy_from_user(&kbrep, (void *)arg, sizeof(struct kbd_repeat))) return -EFAULT; - if ((i = mach_kbdrate( &kbrep ))) return( i ); + if ((i = kbd_rate( &kbrep ))) + return i; if (copy_to_user((void *)arg, &kbrep, sizeof(struct kbd_repeat))) return -EFAULT; return 0; } -#endif case KDSETMODE: /* @@ -741,10 +742,8 @@ struct vt_stat *vtstat = (struct vt_stat *)arg; unsigned short state, mask; - i = verify_area(VERIFY_WRITE,(void *)vtstat, sizeof(struct vt_stat)); - if (i) - return i; - put_user(fg_console + 1, &vtstat->v_active); + if (put_user(fg_console + 1, &vtstat->v_active)) + return -EFAULT; state = 1; /* /dev/tty0 is always open */ for (i = 0, mask = 2; i < MAX_NR_CONSOLES && mask; ++i, mask <<= 1) if (VT_IS_IN_USE(i)) @@ -880,11 +879,9 @@ ushort ll,cc; if (!perm) return -EPERM; - i = verify_area(VERIFY_READ, (void *)vtsizes, sizeof(struct vt_sizes)); - if (i) - return i; - get_user(ll, &vtsizes->v_rows); - get_user(cc, &vtsizes->v_cols); + if (get_user(ll, &vtsizes->v_rows) || + get_user(cc, &vtsizes->v_cols)) + return -EFAULT; return vc_resize_all(ll, cc); } @@ -894,15 +891,15 @@ ushort ll,cc,vlin,clin,vcol,ccol; if (!perm) return -EPERM; - i = verify_area(VERIFY_READ, (void *)vtconsize, sizeof(struct vt_consize)); - if (i) - return i; - get_user(ll, &vtconsize->v_rows); - get_user(cc, &vtconsize->v_cols); - get_user(vlin, &vtconsize->v_vlin); - get_user(clin, &vtconsize->v_clin); - get_user(vcol, &vtconsize->v_vcol); - get_user(ccol, &vtconsize->v_ccol); + if (verify_area(VERIFY_READ, (void *)vtconsize, + sizeof(struct vt_consize))) + return -EFAULT; + __get_user(ll, &vtconsize->v_rows); + __get_user(cc, &vtconsize->v_cols); + __get_user(vlin, &vtconsize->v_vlin); + __get_user(clin, &vtconsize->v_clin); + __get_user(vcol, &vtconsize->v_vcol); + __get_user(ccol, &vtconsize->v_ccol); vlin = vlin ? vlin : video_scan_lines; if ( clin ) { @@ -1069,10 +1066,6 @@ if (!perm) return -EPERM; - i = verify_area(VERIFY_READ, (void *) arg, - sizeof(struct vc_mode)); - if (i) - return i; if (copy_from_user(&mode, (void *) arg, sizeof(mode))) return -EFAULT; return console_setmode(&mode, cmd == VC_SETMODE); @@ -1090,10 +1083,6 @@ was changed from 0x766a to 0x766c */ return console_powermode((int) arg); } - i = verify_area(VERIFY_READ, (void *) arg, - sizeof(int)); - if (i) - return i; if (get_user(cmap_size, (int *) arg)) return -EFAULT; if (cmap_size % 3) |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/sgi/char In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/sgi/char Modified Files: ds1286.c Log Message: Sync with OSS 2.4.9. Index: ds1286.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sgi/char/ds1286.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ds1286.c 2001/07/09 19:28:47 1.2 +++ ds1286.c 2001/09/25 03:36:35 1.3 @@ -53,8 +53,6 @@ static DECLARE_WAIT_QUEUE_HEAD(ds1286_wait); -static long long ds1286_llseek(struct file *file, loff_t offset, int origin); - static ssize_t ds1286_read(struct file *file, char *buf, size_t count, loff_t *ppos); @@ -90,11 +88,6 @@ * Now all the various file operations that we export. */ -static long long ds1286_llseek(struct file *file, loff_t offset, int origin) -{ - return -ESPIPE; -} - static ssize_t ds1286_read(struct file *file, char *buf, size_t count, loff_t *ppos) { @@ -338,7 +331,7 @@ */ static struct file_operations ds1286_fops = { - llseek: ds1286_llseek, + llseek: no_llseek, read: ds1286_read, poll: ds1286_poll, ioctl: ds1286_ioctl, |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/ide In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/ide Modified Files: Config.in Makefile ide-dma.c ide-pci.c Log Message: Sync with OSS 2.4.9. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/ide/Config.in,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Config.in 2001/06/22 02:29:32 1.1.1.1 +++ Config.in 2001/09/25 03:36:35 1.2 @@ -43,17 +43,21 @@ if [ "$CONFIG_BLK_DEV_IDEPCI" = "y" ]; then bool ' Sharing PCI IDE interrupts support' CONFIG_IDEPCI_SHARE_IRQ bool ' Generic PCI bus-master DMA support' CONFIG_BLK_DEV_IDEDMA_PCI +# bool ' Asynchronous DMA support (EXPERIMENTAL)' CONFIG_BLK_DEV_ADMA $CONFIG_BLK_DEV_IDEDMA_PCI + define_bool CONFIG_BLK_DEV_ADMA $CONFIG_BLK_DEV_IDEDMA_PCI bool ' Boot off-board chipsets first support' CONFIG_BLK_DEV_OFFBOARD dep_bool ' Use PCI DMA by default when available' CONFIG_IDEDMA_PCI_AUTO $CONFIG_BLK_DEV_IDEDMA_PCI define_bool CONFIG_BLK_DEV_IDEDMA $CONFIG_BLK_DEV_IDEDMA_PCI dep_bool ' ATA Work(s) In Progress (EXPERIMENTAL)' CONFIG_IDEDMA_PCI_WIP $CONFIG_BLK_DEV_IDEDMA_PCI $CONFIG_EXPERIMENTAL +# dep_bool ' Attempt to HACK around Chipsets that TIMEOUT (WIP)' CONFIG_BLK_DEV_IDEDMA_TIMEOUT $CONFIG_IDEDMA_PCI_WIP dep_bool ' Good-Bad DMA Model-Firmware (WIP)' CONFIG_IDEDMA_NEW_DRIVE_LISTINGS $CONFIG_IDEDMA_PCI_WIP + dep_bool ' AEC62XX chipset support' CONFIG_BLK_DEV_AEC62XX $CONFIG_BLK_DEV_IDEDMA_PCI dep_mbool ' AEC62XX Tuning support' CONFIG_AEC62XX_TUNING $CONFIG_BLK_DEV_AEC62XX dep_bool ' ALI M15x3 chipset support' CONFIG_BLK_DEV_ALI15X3 $CONFIG_BLK_DEV_IDEDMA_PCI dep_mbool ' ALI M15x3 WDC support (DANGEROUS)' CONFIG_WDC_ALI15X3 $CONFIG_BLK_DEV_ALI15X3 - dep_bool ' AMD Viper support' CONFIG_BLK_DEV_AMD7409 $CONFIG_BLK_DEV_IDEDMA_PCI - dep_mbool ' AMD Viper ATA-66 Override (WIP)' CONFIG_AMD7409_OVERRIDE $CONFIG_BLK_DEV_AMD7409 $CONFIG_IDEDMA_PCI_WIP + dep_bool ' AMD Viper support' CONFIG_BLK_DEV_AMD74XX $CONFIG_BLK_DEV_IDEDMA_PCI + dep_mbool ' AMD Viper ATA-66 Override (WIP)' CONFIG_AMD74XX_OVERRIDE $CONFIG_BLK_DEV_AMD74XX $CONFIG_IDEDMA_PCI_WIP dep_bool ' CMD64X chipset support' CONFIG_BLK_DEV_CMD64X $CONFIG_BLK_DEV_IDEDMA_PCI dep_bool ' CY82C693 chipset support' CONFIG_BLK_DEV_CY82C693 $CONFIG_BLK_DEV_IDEDMA_PCI dep_bool ' Cyrix CS5530 MediaGX chipset support' CONFIG_BLK_DEV_CS5530 $CONFIG_BLK_DEV_IDEDMA_PCI @@ -68,16 +72,24 @@ dep_mbool ' IT8172 IDE support' CONFIG_BLK_DEV_IT8172 $CONFIG_BLK_DEV_IDEDMA_PCI dep_mbool ' IT8172 IDE Tuning support' CONFIG_IT8172_TUNING $CONFIG_BLK_DEV_IT8172 $CONFIG_IDEDMA_PCI_AUTO fi + if [ "$CONFIG_MIPS_ITE8172" = "y" -o "$CONFIG_MIPS_IVR" = "y" ]; then + dep_mbool ' IT8172 IDE support' CONFIG_BLK_DEV_IT8172 $CONFIG_BLK_DEV_IDEDMA_PCI + dep_mbool ' IT8172 IDE Tuning support' CONFIG_IT8172_TUNING $CONFIG_BLK_DEV_IT8172 $CONFIG_IDEDMA_PCI_AUTO + fi dep_bool ' NS87415 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_NS87415 $CONFIG_BLK_DEV_IDEDMA_PCI dep_bool ' OPTi 82C621 chipset enhanced support (EXPERIMENTAL)' CONFIG_BLK_DEV_OPTI621 $CONFIG_EXPERIMENTAL - dep_bool ' PROMISE PDC20246/PDC20262/PDC20267 support' CONFIG_BLK_DEV_PDC202XX $CONFIG_BLK_DEV_IDEDMA_PCI + dep_bool ' PROMISE PDC202{46|62|65|67|68} support' CONFIG_BLK_DEV_PDC202XX $CONFIG_BLK_DEV_IDEDMA_PCI dep_bool ' Special UDMA Feature' CONFIG_PDC202XX_BURST $CONFIG_BLK_DEV_PDC202XX - dep_bool ' ServerWorks OSB4 chipset support' CONFIG_BLK_DEV_OSB4 $CONFIG_BLK_DEV_IDEDMA_PCI $CONFIG_X86 + dep_bool ' Special FastTrak Feature' CONFIG_PDC202XX_FORCE $CONFIG_BLK_DEV_PDC202XX + dep_bool ' ServerWorks OSB4/CSB5 chipsets support' CONFIG_BLK_DEV_SVWKS $CONFIG_BLK_DEV_IDEDMA_PCI $CONFIG_X86 dep_bool ' SiS5513 chipset support' CONFIG_BLK_DEV_SIS5513 $CONFIG_BLK_DEV_IDEDMA_PCI $CONFIG_X86 dep_bool ' SLC90E66 chipset support' CONFIG_BLK_DEV_SLC90E66 $CONFIG_BLK_DEV_IDEDMA_PCI $CONFIG_X86 dep_bool ' Tekram TRM290 chipset support (EXPERIMENTAL)' CONFIG_BLK_DEV_TRM290 $CONFIG_BLK_DEV_IDEDMA_PCI dep_bool ' VIA82CXXX chipset support' CONFIG_BLK_DEV_VIA82CXXX $CONFIG_BLK_DEV_IDEDMA_PCI fi + +# dep_mbool ' Pacific Digital A-DMA support (EXPERIMENTAL)' CONFIG_BLK_DEV_PDC_ADMA $CONFIG_BLK_DEV_ADMA $CONFIG_IDEDMA_PCI_WIP + if [ "$CONFIG_PPC" = "y" -o "$CONFIG_ARM" = "y" ]; then bool ' Winbond SL82c105 support' CONFIG_BLK_DEV_SL82C105 fi @@ -113,6 +125,9 @@ if [ "$CONFIG_MAC" = "y" ]; then dep_bool ' Macintosh Quadra/Powerbook IDE interface support' CONFIG_BLK_DEV_MAC_IDE $CONFIG_MAC fi + if [ "$CONFIG_Q40" = "y" ]; then + dep_bool ' Q40/Q60 IDE interface support' CONFIG_BLK_DEV_Q40IDE $CONFIG_Q40 + fi bool ' Other IDE chipset support' CONFIG_IDE_CHIPSETS if [ "$CONFIG_IDE_CHIPSETS" = "y" ]; then @@ -155,7 +170,7 @@ if [ "$CONFIG_IDE_CHIPSETS" = "y" -o \ "$CONFIG_BLK_DEV_AEC62XX" = "y" -o \ "$CONFIG_BLK_DEV_ALI15X3" = "y" -o \ - "$CONFIG_BLK_DEV_AMD7409" = "y" -o \ + "$CONFIG_BLK_DEV_AMD74XX" = "y" -o \ "$CONFIG_BLK_DEV_CMD640" = "y" -o \ "$CONFIG_BLK_DEV_CMD64X" = "y" -o \ "$CONFIG_BLK_DEV_CS5530" = "y" -o \ @@ -164,7 +179,7 @@ "$CONFIG_BLK_DEV_HPT366" = "y" -o \ "$CONFIG_BLK_DEV_IDE_PMAC" = "y" -o \ "$CONFIG_BLK_DEV_OPTI621" = "y" -o \ - "$CONFIG_BLK_DEV_OSB4" = "y" -o \ + "$CONFIG_BLK_DEV_SVWKS" = "y" -o \ "$CONFIG_BLK_DEV_PDC202XX" = "y" -o \ "$CONFIG_BLK_DEV_PIIX" = "y" -o \ "$CONFIG_BLK_DEV_IT8172" = "y" -o \ Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/ide/Makefile,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- Makefile 2001/06/22 02:29:32 1.1.1.1 +++ Makefile 2001/09/25 03:36:35 1.2 @@ -29,7 +29,7 @@ ide-obj-$(CONFIG_BLK_DEV_AEC62XX) += aec62xx.o ide-obj-$(CONFIG_BLK_DEV_ALI14XX) += ali14xx.o ide-obj-$(CONFIG_BLK_DEV_ALI15X3) += alim15x3.o -ide-obj-$(CONFIG_BLK_DEV_AMD7409) += amd7409.o +ide-obj-$(CONFIG_BLK_DEV_AMD74XX) += amd74xx.o ide-obj-$(CONFIG_BLK_DEV_BUDDHA) += buddha.o ide-obj-$(CONFIG_BLK_DEV_CMD640) += cmd640.o ide-obj-$(CONFIG_BLK_DEV_CMD64X) += cmd64x.o @@ -43,16 +43,18 @@ ide-obj-$(CONFIG_BLK_DEV_HPT366) += hpt366.o ide-obj-$(CONFIG_BLK_DEV_HT6560B) += ht6560b.o ide-obj-$(CONFIG_BLK_DEV_IDE_ICSIDE) += icside.o -ide-obj-$(CONFIG_BLK_DEV_IDEDMA) += ide-dma.o +ide-obj-$(CONFIG_BLK_DEV_ADMA) += ide-adma.o +ide-obj-$(CONFIG_BLK_DEV_IDEDMA_PCI) += ide-dma.o ide-obj-$(CONFIG_BLK_DEV_IDEPCI) += ide-pci.o ide-obj-$(CONFIG_BLK_DEV_ISAPNP) += ide-pnp.o ide-obj-$(CONFIG_BLK_DEV_IDE_PMAC) += ide-pmac.o ide-obj-$(CONFIG_BLK_DEV_MAC_IDE) += macide.o ide-obj-$(CONFIG_BLK_DEV_NS87415) += ns87415.o ide-obj-$(CONFIG_BLK_DEV_OPTI621) += opti621.o -ide-obj-$(CONFIG_BLK_DEV_OSB4) += osb4.o +ide-obj-$(CONFIG_BLK_DEV_SVWKS) += serverworks.o ide-obj-$(CONFIG_BLK_DEV_PDC202XX) += pdc202xx.o ide-obj-$(CONFIG_BLK_DEV_PDC4030) += pdc4030.o +ide-obj-$(CONFIG_BLK_DEV_PDC_ADMA) += pdcadma.o ide-obj-$(CONFIG_BLK_DEV_PIIX) += piix.o ide-obj-$(CONFIG_BLK_DEV_QD6580) += qd6580.o ide-obj-$(CONFIG_BLK_DEV_IDE_RAPIDE) += rapide.o Index: ide-dma.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/ide/ide-dma.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ide-dma.c 2001/07/10 03:07:28 1.2 +++ ide-dma.c 2001/09/25 03:36:35 1.3 @@ -90,7 +90,16 @@ #include <asm/io.h> #include <asm/irq.h> -#undef CONFIG_BLK_DEV_IDEDMA_TIMEOUT +/* + * Long lost data from 2.0.34 that is now in 2.0.39 + * + * This was used in ./drivers/block/triton.c to do DMA Base address setup + * when PnP failed. Oh the things we forget. I believe this was part + * of SFF-8038i that has been withdrawn from public access... :-(( + */ +#define DEFAULT_BMIBA 0xe800 /* in case BIOS did not init it */ +#define DEFAULT_BMCRBA 0xcc00 /* VIA's default value */ +#define DEFAULT_BMALIBA 0xd400 /* ALI's default value */ extern char *ide_dmafunc_verbose(ide_dma_action_t dmafunc); @@ -119,6 +128,12 @@ { "WDC AC31600H" , "ALL" }, { "WDC AC32100H" , "24.09P07" }, { "WDC AC23200L" , "21.10N21" }, + { "Compaq CRD-8241B" , "ALL" }, + { "CRD-8400B" , "ALL" }, + { "SanDisk SDP3B-64" , "ALL" }, + { "SAMSUNG CD-ROM SN-124", "ALL" }, + { "PLEXTOR CD-R PX-W8432T", "ALL" }, + { "ATAPI CD-ROM DRIVE 40X MAXIMUM", "ALL" }, { 0 , 0 } }; @@ -206,7 +221,8 @@ } return ide_stopped; } - printk("%s: dma_intr: bad DMA status\n", drive->name); + printk("%s: dma_intr: bad DMA status (dma_stat=%x)\n", + drive->name, dma_stat); } return ide_error(drive, "dma_intr", stat); } @@ -217,6 +233,9 @@ struct scatterlist *sg = hwif->sg_table; int nents = 0; + if (hwif->sg_dma_active) + BUG(); + if (rq->cmd == READ) hwif->sg_dma_direction = PCI_DMA_FROMDEVICE; else @@ -288,11 +307,7 @@ while (cur_len) { if (count++ >= PRD_ENTRIES) { printk("%s: DMA table too small\n", drive->name); - pci_unmap_sg(HWIF(drive)->pci_dev, - HWIF(drive)->sg_table, - HWIF(drive)->sg_nents, - HWIF(drive)->sg_dma_direction); - return 0; /* revert to PIO for this request */ + goto use_pio_instead; } else { u32 xcount, bcount = 0x10000 - (cur_addr & 0xffff); @@ -302,6 +317,20 @@ xcount = bcount & 0xffff; if (is_trm290_chipset) xcount = ((xcount >> 2) - 1) << 16; + if (xcount == 0x0000) { + /* + * Most chipsets correctly interpret a length of 0x0000 as 64KB, + * but at least one (e.g. CS5530) misinterprets it as zero (!). + * So here we break the 64KB entry into two 32KB entries instead. + */ + if (count++ >= PRD_ENTRIES) { + printk("%s: DMA table too small\n", drive->name); + goto use_pio_instead; + } + *table++ = cpu_to_le32(0x8000); + *table++ = cpu_to_le32(cur_addr + 0x8000); + xcount = 0x8000; + } *table++ = cpu_to_le32(xcount); cur_addr += bcount; cur_len -= bcount; @@ -312,12 +341,19 @@ i--; } - if (!count) - printk("%s: empty DMA table?\n", drive->name); - else if (!is_trm290_chipset) + if (count) { + if (!is_trm290_chipset) *--table |= cpu_to_le32(0x80000000); - return count; + } + printk("%s: empty DMA table?\n", drive->name); +use_pio_instead: + pci_unmap_sg(HWIF(drive)->pci_dev, + HWIF(drive)->sg_table, + HWIF(drive)->sg_nents, + HWIF(drive)->sg_dma_direction); + HWIF(drive)->sg_dma_active = 0; + return 0; /* revert to PIO for this request */ } /* Teardown mappings after DMA has completed. */ @@ -328,6 +364,7 @@ int nents = HWIF(drive)->sg_nents; pci_unmap_sg(dev, sg, nents, HWIF(drive)->sg_dma_direction); + HWIF(drive)->sg_dma_active = 0; } /* @@ -432,6 +469,7 @@ return hwif->dmaproc(ide_dma_off_quietly, drive); } +#ifndef CONFIG_BLK_DEV_IDEDMA_TIMEOUT /* * 1 dmaing, 2 error, 4 intr */ @@ -455,6 +493,30 @@ return WAIT_CMD; return 0; } +#else /* CONFIG_BLK_DEV_IDEDMA_TIMEOUT */ +static ide_startstop_t ide_dma_timeout_revovery (ide_drive_t *drive) +{ + ide_hwgroup_t *hwgroup = HWGROUP(drive); + ide_hwif_t *hwif = HWIF(drive); + int enable_dma = drive->using_dma; + unsigned long flags; + ide_startstop_t startstop; + + spin_lock_irqsave(&io_request_lock, flags); + hwgroup->handler = NULL; + del_timer(&hwgroup->timer); + spin_unlock_irqrestore(&io_request_lock, flags); + + drive->waiting_for_dma = 0; + + startstop = ide_do_reset(drive); + + if ((enable_dma) && !(drive->using_dma)) + (void) hwif->dmaproc(ide_dma_on, drive); + + return startstop; +} +#endif /* CONFIG_BLK_DEV_IDEDMA_TIMEOUT */ /* * ide_dmaproc() initiates/aborts DMA read/write operations on a drive. @@ -474,6 +536,7 @@ */ int ide_dmaproc (ide_dma_action_t func, ide_drive_t *drive) { +// ide_hwgroup_t *hwgroup = HWGROUP(drive); ide_hwif_t *hwif = HWIF(drive); unsigned long dma_base = hwif->dma_base; byte unit = (drive->select.b.unit & 0x01); @@ -504,7 +567,11 @@ drive->waiting_for_dma = 1; if (drive->media != ide_disk) return 0; +#ifdef CONFIG_BLK_DEV_IDEDMA_TIMEOUT + ide_set_handler(drive, &ide_dma_intr, WAIT_CMD, NULL); /* issue cmd to drive */ +#else /* !CONFIG_BLK_DEV_IDEDMA_TIMEOUT */ ide_set_handler(drive, &ide_dma_intr, WAIT_CMD, dma_timer_expiry); /* issue cmd to drive */ +#endif /* CONFIG_BLK_DEV_IDEDMA_TIMEOUT */ OUT_BYTE(reading ? WIN_READDMA : WIN_WRITEDMA, IDE_COMMAND_REG); case ide_dma_begin: /* Note that this is done *after* the cmd has @@ -520,7 +587,7 @@ dma_stat = inb(dma_base+2); /* get DMA status */ outb(dma_stat|6, dma_base+2); /* clear the INTR & ERROR bits */ ide_destroy_dmatable(drive); /* purge DMA mappings */ - return (dma_stat & 7) != 4; /* verify good DMA status */ + return (dma_stat & 7) != 4 ? (0x10 | dma_stat) : 0; /* verify good DMA status */ case ide_dma_test_irq: /* returns 1 if dma irq issued, 0 otherwise */ dma_stat = inb(dma_base+2); #if 0 /* do not set unless you know what you are doing */ @@ -536,6 +603,14 @@ case ide_dma_verbose: return report_drive_dmaing(drive); case ide_dma_timeout: + // FIXME: Many IDE chipsets do not permit command file register access + // FIXME: while the bus-master function is still active. + // FIXME: To prevent deadlock with those chipsets, we must be extremely + // FIXME: careful here (and in ide_intr() as well) to NOT access any + // FIXME: registers from the 0x1Fx/0x17x sets before terminating the + // FIXME: bus-master operation via the bus-master control reg. + // FIXME: Otherwise, chipset deadlock will occur, and some systems will + // FIXME: lock up completely!! #ifdef CONFIG_BLK_DEV_IDEDMA_TIMEOUT /* * Have to issue an abort and requeue the request @@ -543,6 +618,23 @@ * we have to clean up the mess, and here is as good * as any. Do it globally for all chipsets. */ + outb(0x00, dma_base); /* stop DMA */ + dma_stat = inb(dma_base+2); /* get DMA status */ + outb(dma_stat|6, dma_base+2); /* clear the INTR & ERROR bits */ + printk("%s: %s: Lets do it again!" \ + "stat = 0x%02x, dma_stat = 0x%02x\n", + drive->name, ide_dmafunc_verbose(func), + GET_STAT(), dma_stat); + + if (dma_stat & 0xF0) + return ide_dma_timeout_revovery(drive); + + printk("%s: %s: (restart_request) Lets do it again!" \ + "stat = 0x%02x, dma_stat = 0x%02x\n", + drive->name, ide_dmafunc_verbose(func), + GET_STAT(), dma_stat); + + return restart_request(drive); // BUG: return types do not match!! #endif /* CONFIG_BLK_DEV_IDEDMA_TIMEOUT */ case ide_dma_retune: case ide_dma_lostirq: @@ -626,6 +718,12 @@ unsigned long dma_base = 0; struct pci_dev *dev = hwif->pci_dev; +#ifdef CONFIG_BLK_DEV_IDEDMA_FORCED + int second_chance = 0; + +second_chance_to_dma: +#endif /* CONFIG_BLK_DEV_IDEDMA_FORCED */ + if (hwif->mate && hwif->mate->dma_base) { dma_base = hwif->mate->dma_base - (hwif->channel ? 0 : 8); } else { @@ -635,6 +733,26 @@ dma_base = 0; } } + +#ifdef CONFIG_BLK_DEV_IDEDMA_FORCED + if ((!dma_base) && (!second_chance)) { + unsigned long set_bmiba = 0; + second_chance++; + switch(dev->vendor) { + case PCI_VENDOR_ID_AL: + set_bmiba = DEFAULT_BMALIBA; break; + case PCI_VENDOR_ID_VIA: + set_bmiba = DEFAULT_BMCRBA; break; + case PCI_VENDOR_ID_INTEL: + set_bmiba = DEFAULT_BMIBA; break; + default: + return dma_base; + } + pci_write_config_dword(dev, 0x20, set_bmiba|1); + goto second_chance_to_dma; + } +#endif /* CONFIG_BLK_DEV_IDEDMA_FORCED */ + if (dma_base) { if (extra) /* PDC20246, PDC20262, HPT343, & HPT366 */ request_region(dma_base+16, extra, name); Index: ide-pci.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/ide/ide-pci.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- ide-pci.c 2001/08/10 18:36:00 1.8 +++ ide-pci.c 2001/09/25 03:36:35 1.9 @@ -27,6 +27,7 @@ #define DEVID_PIIXa ((ide_pci_devid_t){PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_0}) #define DEVID_PIIXb ((ide_pci_devid_t){PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371FB_1}) +#define DEVID_MPIIX ((ide_pci_devid_t){PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371MX}) #define DEVID_PIIX3 ((ide_pci_devid_t){PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371SB_1}) #define DEVID_PIIX4 ((ide_pci_devid_t){PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82371AB}) #define DEVID_PIIX4E ((ide_pci_devid_t){PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_82801AB_1}) @@ -42,6 +43,8 @@ #define DEVID_PDC20262 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20262}) #define DEVID_PDC20265 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20265}) #define DEVID_PDC20267 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20267}) +#define DEVID_PDC20268 ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20268}) +#define DEVID_PDC20268R ((ide_pci_devid_t){PCI_VENDOR_ID_PROMISE, PCI_DEVICE_ID_PROMISE_20268R}) #define DEVID_RZ1000 ((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_RZ1000}) #define DEVID_RZ1001 ((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_RZ1001}) #define DEVID_SAMURAI ((ide_pci_devid_t){PCI_VENDOR_ID_PCTECH, PCI_DEVICE_ID_PCTECH_SAMURAI_IDE}) @@ -71,10 +74,14 @@ #define DEVID_CY82C693 ((ide_pci_devid_t){PCI_VENDOR_ID_CONTAQ, PCI_DEVICE_ID_CONTAQ_82C693}) #define DEVID_HINT ((ide_pci_devid_t){0x3388, 0x8013}) #define DEVID_CS5530 ((ide_pci_devid_t){PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_IDE}) -#define DEVID_AMD7403 ((ide_pci_devid_t){PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_COBRA_7403}) +#define DEVID_AMD7401 ((ide_pci_devid_t){PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_COBRA_7401}) #define DEVID_AMD7409 ((ide_pci_devid_t){PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7409}) +#define DEVID_AMD7411 ((ide_pci_devid_t){PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_VIPER_7411}) +#define DEVID_PDCADMA ((ide_pci_devid_t){PCI_VENDOR_ID_PDC, PCI_DEVICE_ID_PDC_1841}) #define DEVID_SLC90E66 ((ide_pci_devid_t){PCI_VENDOR_ID_EFAR, PCI_DEVICE_ID_EFAR_SLC90E66_1}) #define DEVID_OSB4 ((ide_pci_devid_t){PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_OSB4IDE}) +#define DEVID_CSB5 ((ide_pci_devid_t){PCI_VENDOR_ID_SERVERWORKS, PCI_DEVICE_ID_SERVERWORKS_CSB5IDE}) +#define DEVID_ITE8172G ((ide_pci_devid_t){PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_IT8172G}) #define DEVID_ITE8172G ((ide_pci_devid_t){PCI_VENDOR_ID_ITE, PCI_DEVICE_ID_ITE_IT8172G}) #define IDE_IGNORE ((void *)-1) @@ -111,20 +118,20 @@ #define DMA_ALI15X3 NULL #endif -#ifdef CONFIG_BLK_DEV_AMD7409 -extern unsigned int pci_init_amd7409(struct pci_dev *, const char *); -extern unsigned int ata66_amd7409(ide_hwif_t *); -extern void ide_init_amd7409(ide_hwif_t *); -extern void ide_dmacapable_amd7409(ide_hwif_t *, unsigned long); -#define PCI_AMD7409 &pci_init_amd7409 -#define ATA66_AMD7409 &ata66_amd7409 -#define INIT_AMD7409 &ide_init_amd7409 -#define DMA_AMD7409 &ide_dmacapable_amd7409 +#ifdef CONFIG_BLK_DEV_AMD74XX +extern unsigned int pci_init_amd74xx(struct pci_dev *, const char *); +extern unsigned int ata66_amd74xx(ide_hwif_t *); +extern void ide_init_amd74xx(ide_hwif_t *); +extern void ide_dmacapable_amd74xx(ide_hwif_t *, unsigned long); +#define PCI_AMD74XX &pci_init_amd74xx +#define ATA66_AMD74XX &ata66_amd74xx +#define INIT_AMD74XX &ide_init_amd74xx +#define DMA_AMD74XX &ide_dmacapable_amd74xx #else -#define PCI_AMD7409 NULL -#define ATA66_AMD7409 NULL -#define INIT_AMD7409 NULL -#define DMA_AMD7409 NULL +#define PCI_AMD74XX NULL +#define ATA66_AMD74XX NULL +#define INIT_AMD74XX NULL +#define DMA_AMD74XX NULL #endif #ifdef CONFIG_BLK_DEV_CMD64X @@ -187,8 +194,8 @@ #define INIT_HPT366 &ide_init_hpt366 #define DMA_HPT366 &ide_dmacapable_hpt366 #else -static byte hpt363_shared_irq = 0; -static byte hpt363_shared_pin = 0; +static byte hpt363_shared_irq; +static byte hpt363_shared_pin; #define PCI_HPT366 NULL #define ATA66_HPT366 NULL #define INIT_HPT366 NULL @@ -209,17 +216,20 @@ #define INIT_OPTI621 NULL #endif -#ifdef CONFIG_BLK_DEV_OSB4 -extern unsigned int pci_init_osb4(struct pci_dev *, const char *); -extern unsigned int ata66_osb4(ide_hwif_t *); -extern void ide_init_osb4(ide_hwif_t *); -#define PCI_OSB4 &pci_init_osb4 -#define ATA66_OSB4 &ata66_osb4 -#define INIT_OSB4 &ide_init_osb4 +#ifdef CONFIG_BLK_DEV_PDC_ADMA +extern unsigned int pci_init_pdcadma(struct pci_dev *, const char *); +extern unsigned int ata66_pdcadma(ide_hwif_t *); +extern void ide_init_pdcadma(ide_hwif_t *); +extern void ide_dmacapable_pdcadma(ide_hwif_t *, unsigned long); +#define PCI_PDCADMA &pci_init_pdcadma +#define ATA66_PDCADMA &ata66_pdcadma +#define INIT_PDCADMA &ide_init_pdcadma +#define DMA_PDCADMA &ide_dmacapable_pdcadma #else -#define PCI_OSB4 NULL -#define ATA66_OSB4 NULL -#define INIT_OSB4 NULL +#define PCI_PDCADMA IDE_IGNORE +#define ATA66_PDCADMA IDE_IGNORE +#define INIT_PDCADMA IDE_IGNORE +#define DMA_PDCADMA IDE_IGNORE #endif #ifdef CONFIG_BLK_DEV_PDC202XX @@ -260,6 +270,18 @@ #define INIT_IT8172 NULL #endif +#ifdef CONFIG_BLK_DEV_IT8172 +extern unsigned int pci_init_it8172(struct pci_dev *, const char *); +extern unsigned int ata66_it8172(ide_hwif_t *); +extern void ide_init_it8172(ide_hwif_t *); +#define PCI_IT8172 &pci_init_it8172 +#define INIT_IT8172 &ide_init_it8172 +#else +#define PCI_IT8172 NULL +#define ATA66_IT8172 NULL +#define INIT_IT8172 NULL +#endif + #ifdef CONFIG_BLK_DEV_RZ1000 extern void ide_init_rz1000(ide_hwif_t *); #define INIT_RZ1000 &ide_init_rz1000 @@ -269,6 +291,19 @@ #define INIT_SAMURAI NULL +#ifdef CONFIG_BLK_DEV_SVWKS +extern unsigned int pci_init_svwks(struct pci_dev *, const char *); +extern unsigned int ata66_svwks(ide_hwif_t *); +extern void ide_init_svwks(ide_hwif_t *); +#define PCI_SVWKS &pci_init_svwks +#define ATA66_SVWKS &ata66_svwks +#define INIT_SVWKS &ide_init_svwks +#else +#define PCI_SVWKS NULL +#define ATA66_SVWKS NULL +#define INIT_SVWKS NULL +#endif + #ifdef CONFIG_BLK_DEV_SIS5513 extern unsigned int pci_init_sis5513(struct pci_dev *, const char *); extern unsigned int ata66_sis5513(ide_hwif_t *); @@ -352,6 +387,7 @@ static ide_pci_device_t ide_pci_chipsets[] __initdata = { {DEVID_PIIXa, "PIIX", NULL, NULL, INIT_PIIX, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, {DEVID_PIIXb, "PIIX", NULL, NULL, INIT_PIIX, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, + {DEVID_MPIIX, "MPIIX", NULL, NULL, INIT_PIIX, NULL, {{0x6D,0x80,0x80}, {0x6F,0x80,0x80}}, ON_BOARD, 0 }, {DEVID_PIIX3, "PIIX3", PCI_PIIX, NULL, INIT_PIIX, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, {DEVID_PIIX4, "PIIX4", PCI_PIIX, NULL, INIT_PIIX, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, {DEVID_PIIX4E, "PIIX4", PCI_PIIX, NULL, INIT_PIIX, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, @@ -363,10 +399,22 @@ {DEVID_PIIX4U4, "PIIX4", PCI_PIIX, ATA66_PIIX, INIT_PIIX, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, {DEVID_VIA_IDE, "VIA_IDE", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, {DEVID_VP_IDE, "VP_IDE", PCI_VIA82CXXX, ATA66_VIA82CXXX,INIT_VIA82CXXX, DMA_VIA82CXXX, {{0x40,0x02,0x02}, {0x40,0x01,0x01}}, ON_BOARD, 0 }, +#ifdef CONFIG_PDC202XX_FORCE + {DEVID_PDC20246,"PDC20246", PCI_PDC202XX, NULL, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 16 }, + {DEVID_PDC20262,"PDC20262", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 48 }, + {DEVID_PDC20265,"PDC20265", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 48 }, + {DEVID_PDC20267,"PDC20267", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 48 }, +#else /* !CONFIG_PDC202XX_FORCE */ {DEVID_PDC20246,"PDC20246", PCI_PDC202XX, NULL, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 16 }, {DEVID_PDC20262,"PDC20262", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 48 }, {DEVID_PDC20265,"PDC20265", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 48 }, {DEVID_PDC20267,"PDC20267", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x50,0x02,0x02}, {0x50,0x04,0x04}}, OFF_BOARD, 48 }, +#endif + {DEVID_PDC20268,"PDC20268", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 16 }, + /* Promise used a different PCI ident for the raid card apparently to try and + prevent Linux detecting it and using our own raid code. We want to detect + it for the ataraid drivers, so we have to list both here.. */ + {DEVID_PDC20268R,"PDC20268", PCI_PDC202XX, ATA66_PDC202XX, INIT_PDC202XX, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 16 }, {DEVID_RZ1000, "RZ1000", NULL, NULL, INIT_RZ1000, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, {DEVID_RZ1001, "RZ1001", NULL, NULL, INIT_RZ1000, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, {DEVID_SAMURAI, "SAMURAI", NULL, NULL, INIT_SAMURAI, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, @@ -395,10 +443,13 @@ {DEVID_CY82C693,"CY82C693", PCI_CY82C693, NULL, INIT_CY82C693, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, {DEVID_HINT, "HINT_IDE", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, {DEVID_CS5530, "CS5530", PCI_CS5530, NULL, INIT_CS5530, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, - {DEVID_AMD7403, "AMD7403", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, - {DEVID_AMD7409, "AMD7409", PCI_AMD7409, ATA66_AMD7409, INIT_AMD7409, DMA_AMD7409, {{0x40,0x01,0x01}, {0x40,0x02,0x02}}, ON_BOARD, 0 }, + {DEVID_AMD7401, "AMD7401", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, + {DEVID_AMD7409, "AMD7409", PCI_AMD74XX, ATA66_AMD74XX, INIT_AMD74XX, DMA_AMD74XX, {{0x40,0x01,0x01}, {0x40,0x02,0x02}}, ON_BOARD, 0 }, + {DEVID_AMD7411, "AMD7411", PCI_AMD74XX, ATA66_AMD74XX, INIT_AMD74XX, DMA_AMD74XX, {{0x40,0x01,0x01}, {0x40,0x02,0x02}}, ON_BOARD, 0 }, + {DEVID_PDCADMA, "PDCADMA", PCI_PDCADMA, ATA66_PDCADMA, INIT_PDCADMA, DMA_PDCADMA, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, OFF_BOARD, 0 }, {DEVID_SLC90E66,"SLC90E66", PCI_SLC90E66, ATA66_SLC90E66, INIT_SLC90E66, NULL, {{0x41,0x80,0x80}, {0x43,0x80,0x80}}, ON_BOARD, 0 }, - {DEVID_OSB4, "ServerWorks OSB4", PCI_OSB4, ATA66_OSB4, INIT_OSB4, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, + {DEVID_OSB4, "ServerWorks OSB4", PCI_SVWKS, ATA66_SVWKS, INIT_SVWKS, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, + {DEVID_CSB5, "ServerWorks CSB5", PCI_SVWKS, ATA66_SVWKS, INIT_SVWKS, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }, {DEVID_ITE8172G,"IT8172G", PCI_IT8172, NULL, INIT_IT8172, NULL, {{0x00,0x00,0x00}, {0x40,0x00,0x01}}, ON_BOARD, 0 }, {IDE_PCI_DEVID_NULL, "PCI_IDE", NULL, NULL, NULL, NULL, {{0x00,0x00,0x00}, {0x00,0x00,0x00}}, ON_BOARD, 0 }}; @@ -415,6 +466,7 @@ case PCI_DEVICE_ID_PROMISE_20262: case PCI_DEVICE_ID_PROMISE_20265: case PCI_DEVICE_ID_PROMISE_20267: + case PCI_DEVICE_ID_PROMISE_20268: case PCI_DEVICE_ID_ARTOP_ATP850UF: case PCI_DEVICE_ID_ARTOP_ATP860: case PCI_DEVICE_ID_ARTOP_ATP860R: @@ -542,8 +594,10 @@ byte tmp = 0; ide_hwif_t *hwif, *mate = NULL; unsigned int class_rev; + static int secondpdc = 0; #ifdef CONFIG_IDEDMA_AUTO + if (!noautodma) autodma = 1; #endif @@ -642,8 +696,18 @@ for (port = 0; port <= 1; ++port) { unsigned long base = 0, ctl = 0; ide_pci_enablebit_t *e = &(d->enablebits[port]); + + /* + * If this is a Promise FakeRaid controller, the 2nd controller will be marked as + * disabled while it is actually there and enabled by the bios for raid purposes. + * Skip the normal "is it enabled" test for those. + */ + if ((IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20265)) && (secondpdc++==1) && (port==1) ) + goto controller_ok; + if (e->reg && (pci_read_config_byte(dev, e->reg, &tmp) || (tmp & e->mask) != e->val)) continue; /* port not enabled */ +controller_ok: if (IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT366) && (port) && (class_rev < 0x03)) return; if ((dev->class >> 8) != PCI_CLASS_STORAGE_IDE || (dev->class & (port ? 4 : 1)) != 0) { @@ -701,6 +765,9 @@ hwif->irq = hwif->channel ? 15 : 14; goto bypass_umc_dma; } + if (IDE_PCI_DEVID_EQ(d->devid, DEVID_MPIIX)) + goto bypass_piix_dma; + if (hwif->udma_four) { printk("%s: ATA-66/100 forced bit set (WARNING)!!\n", d->name); } else { @@ -710,7 +777,9 @@ if (IDE_PCI_DEVID_EQ(d->devid, DEVID_SIS5513) || IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260) || IDE_PCI_DEVID_EQ(d->devid, DEVID_PIIX4NX) || - IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT34X)) + IDE_PCI_DEVID_EQ(d->devid, DEVID_HPT34X) || + IDE_PCI_DEVID_EQ(d->devid, DEVID_VIA_IDE) || + IDE_PCI_DEVID_EQ(d->devid, DEVID_VP_IDE)) autodma = 0; if (autodma) hwif->autodma = 1; @@ -718,6 +787,7 @@ IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20262) || IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20265) || IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20267) || + IDE_PCI_DEVID_EQ(d->devid, DEVID_PDC20268) || IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6210) || IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260) || IDE_PCI_DEVID_EQ(d->devid, DEVID_AEC6260R) || @@ -754,6 +824,7 @@ } } #endif /* CONFIG_BLK_DEV_IDEDMA */ +bypass_piix_dma: bypass_umc_dma: if (d->init_hwif) /* Call chipset-specific routine for each enabled hwif */ d->init_hwif(hwif); @@ -801,6 +872,12 @@ if (hpt363_shared_pin && hpt363_shared_irq) { d->bootable = ON_BOARD; printk("%s: onboard version of chipset, pin1=%d pin2=%d\n", d->name, pin1, pin2); +#if 0 + /* I forgot why I did this once, but it fixed something. */ + pci_write_config_byte(dev2, PCI_INTERRUPT_PIN, dev->irq); + printk("PCI: %s: Fixing interrupt %d pin %d to ZERO \n", d->name, dev2->irq, pin2); + pci_write_config_byte(dev2, PCI_INTERRUPT_LINE, 0); +#endif } break; } |
From: Paul M. <le...@us...> - 2001-09-25 03:36:39
|
Update of /cvsroot/linux-mips/linux/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv5739/drivers/net Modified Files: Config.in Log Message: Sync with OSS 2.4.9. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/Config.in,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- Config.in 2001/08/25 02:19:27 1.7 +++ Config.in 2001/09/25 03:36:35 1.8 @@ -16,7 +16,7 @@ fi if [ "$CONFIG_ISAPNP" = "y" -o "$CONFIG_ISAPNP" = "m" ]; then - tristate 'General Instruments Surfboard 1000' CONFIG_NET_SB1000 $CONFIG_ISAPNP + dep_tristate 'General Instruments Surfboard 1000' CONFIG_NET_SB1000 $CONFIG_ISAPNP fi # |
From: Paul M. <le...@us...> - 2001-09-25 03:36:38
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/kernel Modified Files: irix5sys.h sysmips.c Log Message: Sync with OSS 2.4.9. Index: irix5sys.h =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/irix5sys.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- irix5sys.h 2001/08/13 22:06:18 1.2 +++ irix5sys.h 2001/09/25 03:36:35 1.3 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * irix5sys.h: 32-bit IRIX5 ABI system call table. * * Copyright (C) 1996 David S. Miller (dm...@en...) Index: sysmips.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/sysmips.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- sysmips.c 2001/08/23 23:27:14 1.6 +++ sysmips.c 2001/09/25 03:36:35 1.7 @@ -50,8 +50,9 @@ asmlinkage int sys_sysmips(int cmd, int arg1, int arg2, int arg3) { + int *p; char *name; - int tmp, len, retval; + int tmp, len, retval, errno; switch(cmd) { case SETNAME: { @@ -74,83 +75,53 @@ } case MIPS_ATOMIC_SET: { - int *ptr, val, ret, err, tmp; - struct siginfo info; - - ptr = (int *)arg1; - val = (int)arg2; - - /* Don't emulate unaligned accesses. */ - if ((int)ptr & 3) { - info.si_signo = SIGBUS; - info.si_code = BUS_ADRALN; - goto fault; - } - - /* A zero here saves us three instructions. */ - err = verify_area(VERIFY_WRITE, ptr, 0); - if (err) { - info.si_signo = SIGSEGV; - info.si_code = SEGV_ACCERR; - goto fault; - } - #ifdef CONFIG_CPU_HAS_LLSC - __asm__(".set mips2\n\t" - "1:\n\t" - "ll %0,%5\n\t" - ".set push\n\t" - ".set noreorder\n\t" - "beq %0,%4,3f\n\t" - " move %3,%4\n" - ".set pop\n\t" - "2:\n\t" - "sc %3,%1\n\t" - "beqz %3,1b\n\t" - "3:\n\t" - ".set mips0\n\t" - ".section .fixup,\"ax\"\n" - "4:\n\t" - "li %2,%7\n\t" - "j 3b\n\t" - ".previous\n\t" - ".section __ex_table,\"a\"\n\t" - ".word 1b,4b\n\t" - ".word 2b,4b\n\t" - ".previous" - : "=&r" (ret), "=m" (*ptr), "=r" (err), "=&r" (tmp) - : "r" (val), "1" (*ptr), "2" (0), "i" (-EFAULT)); -#else - save_and_cli(tmp); - err = __get_user(ret, ptr); - if (ret != val) - err |= __put_user(val, ptr); /* No fault - unless unwriteable. */ - restore_flags(tmp); -#endif + unsigned int tmp; - if (err) { - info.si_signo = SIGSEGV; - info.si_code = SEGV_MAPERR; - goto fault; - } + p = (int *) arg1; + errno = verify_area(VERIFY_WRITE, p, sizeof(*p)); + if (errno) + return errno; + errno = 0; - if ( (ret < 0) && (ret >= -EMAXERRNO) ) { - info.si_signo = SIGSYS; - info.si_code = 0; - goto fault; - } + __asm__(".set\tpush\t\t\t# sysmips(MIPS_ATOMIC, ...)\n\t" + ".set\tmips2\n\t" + ".set\tnoat\n\t" + "1:\tll\t%0, %4\n\t" + "move\t$1, %3\n\t" + "2:\tsc\t$1, %1\n\t" + "beqz\t$1, 1b\n\t" + ".set\tpop\n\t" + ".section\t.fixup,\"ax\"\n" + "3:\tli\t%2, 1\t\t\t# error\n\t" + ".previous\n\t" + ".section\t__ex_table,\"a\"\n\t" + ".word\t1b, 3b\n\t" + ".word\t2b, 3b\n\t" + ".previous\n\t" + : "=&r" (tmp), "=o" (* (u32 *) p), "=r" (errno) + : "r" (arg2), "o" (* (u32 *) p), "2" (errno) + : "$1"); - return ret; + if (errno) + return -EFAULT; -fault: - /* Go back to SYSCALL. */ - ((struct pt_regs *)&cmd)->cp0_epc -= 4; + /* We're skipping error handling etc. */ + if (current->ptrace & PT_TRACESYS) + syscall_trace(); - info.si_addr = (void *)((struct pt_regs *)&cmd)->cp0_epc; - force_sig_info(info.si_signo, &info, current); + ((struct pt_regs *)&cmd)->regs[2] = tmp; + ((struct pt_regs *)&cmd)->regs[7] = 0; - return 0; + __asm__ __volatile__( + "move\t$29, %0\n\t" + "j\to32_ret_from_sys_call" + : /* No outputs */ + : "r" (&cmd)); + /* Unreached */ +#else + printk("sys_sysmips(MIPS_ATOMIC_SET, ...) not ready for !CONFIG_CPU_HAS_LLSC\n"); +#endif } case MIPS_FIXADE: |
From: Paul M. <le...@us...> - 2001-09-25 03:36:38
|
Update of /cvsroot/linux-mips/linux/arch/mips64/arc In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips64/arc Modified Files: tree.c Log Message: Sync with OSS 2.4.9. Index: tree.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/arc/tree.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- tree.c 2001/06/22 02:29:32 1.1.1.1 +++ tree.c 2001/09/25 03:36:35 1.2 @@ -1,5 +1,4 @@ -/* $Id$ - * +/* * This file is subject to the terms and conditions of the GNU General Public * License. See the file "COPYING" in the main directory of this archive * for more details. |
From: Paul M. <le...@us...> - 2001-09-25 03:36:38
|
Update of /cvsroot/linux-mips/linux/arch/mips/ite-boards/ivr In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/ite-boards/ivr Modified Files: pci_fixup.c Log Message: Sync with OSS 2.4.9. Index: pci_fixup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/ite-boards/ivr/pci_fixup.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- pci_fixup.c 2001/07/07 19:41:39 1.2 +++ pci_fixup.c 2001/09/25 03:36:35 1.3 @@ -125,13 +125,11 @@ default: return; } - } - #ifdef DEBUG - printk("irq fixup: slot %d, vendor %x, int line %d, int number %d\n", - slot, vendor, pin, dev->irq); + printk("irq fixup: slot %d, int line %d, int number %d\n", + slot, pin, dev->irq); #endif pci_write_config_byte(dev, PCI_INTERRUPT_LINE, dev->irq); - + } } #endif |
From: Paul M. <le...@us...> - 2001-09-25 03:36:38
|
Update of /cvsroot/linux-mips/linux/arch/mips/gt64120/momenco_ocelot In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/gt64120/momenco_ocelot Modified Files: reset.c Log Message: Sync with OSS 2.4.9. Index: reset.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/gt64120/momenco_ocelot/reset.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- reset.c 2001/06/22 02:29:32 1.1.1.1 +++ reset.c 2001/09/25 03:36:35 1.2 @@ -15,22 +15,21 @@ #include <asm/processor.h> #include <asm/reboot.h> #include <asm/system.h> +#include <linux/delay.h> void momenco_ocelot_restart(char *command) { - *(volatile char *) 0xbc000000 = 0x0f; + void *nvram = ioremap_nocache(0x2c807000, 0x1000); - /* - * Ouch, we're still alive ... This time we take the silver bullet ... - * ... and find that we leave the hardware in a state in which the - * kernel in the flush locks up somewhen during of after the PCI - * detection stuff. - */ - clear_cp0_status(ST0_BEV | ST0_ERL); - change_cp0_config(CONF_CM_CMASK, CONF_CM_UNCACHED); - flush_cache_all(); - write_32bit_cp0_register(CP0_WIRED, 0); - __asm__ __volatile__("jr\t%0"::"r"(0xbfc00000)); + if (!nvram) { + printk(KERN_NOTICE "ioremap of reset register failed\n"); + return; + } + writeb(0x84, nvram + 0xff7); /* Ask the NVRAM/RTC/watchdog chip to + assert reset in 1/16 second */ + mdelay(10+(1000/16)); + iounmap(nvram); + printk(KERN_NOTICE "Watchdog reset failed\n"); } void momenco_ocelot_halt(void) |
From: Paul M. <le...@us...> - 2001-09-25 03:36:38
|
Update of /cvsroot/linux-mips/linux/arch/mips/ite-boards/generic In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/ite-boards/generic Modified Files: it8172_setup.c Log Message: Sync with OSS 2.4.9. Index: it8172_setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/ite-boards/generic/it8172_setup.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- it8172_setup.c 2001/08/25 02:19:27 1.4 +++ it8172_setup.c 2001/09/25 03:36:35 1.5 @@ -257,14 +257,6 @@ IT8172_PCI_IO_BASE + IT_SCR1_BASE + IT_SCR_SCDR); } #endif /* CONFIG_IT8172_SCR1 */ - -#if defined(CONFIG_MIPS_IVR) - printk("Globespan IVR Board\n"); - printk("IVR port (C) 2001 MontaVista Software, Inc. (so...@mv...)\n"); -#else - printk("ITE 8172 Board\n"); - printk("ITE port (C) 2001 MontaVista Software, Inc. (so...@mv...)\n"); -#endif } |
From: Paul M. <le...@us...> - 2001-09-25 03:36:38
|
Update of /cvsroot/linux-mips/linux/arch/mips/baget In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/baget Modified Files: setup.c Log Message: Sync with OSS 2.4.9. Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/baget/setup.c,v retrieving revision 1.1.1.1 retrieving revision 1.2 diff -u -d -r1.1.1.1 -r1.2 --- setup.c 2001/06/22 02:29:31 1.1.1.1 +++ setup.c 2001/09/25 03:36:35 1.2 @@ -1,9 +1,7 @@ -/* $Id$ - * +/* * setup.c: Baget/MIPS specific setup, including init of the feature struct. * * Copyright (C) 1998 Gleb Raiko & Vladimir Roganov - * */ #include <linux/init.h> #include <linux/kernel.h> |
From: Paul M. <le...@us...> - 2001-09-25 03:36:37
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/common In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/au1000/common Modified Files: dma.c irq.c power.c usbdev.c Log Message: Sync with OSS 2.4.9. Index: dma.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/dma.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- dma.c 2001/08/30 21:50:49 1.3 +++ dma.c 2001/09/25 03:36:35 1.4 @@ -61,14 +61,14 @@ spinlock_t au1000_dma_spin_lock = SPIN_LOCK_UNLOCKED; struct dma_chan au1000_dma_table[NUM_AU1000_DMA_CHANNELS] = { - {dev_id: -1,}, - {dev_id: -1,}, - {dev_id: -1,}, - {dev_id: -1,}, - {dev_id: -1,}, - {dev_id: -1,}, - {dev_id: -1,}, - {dev_id: -1,} + {dev_id:-1,}, + {dev_id:-1,}, + {dev_id:-1,}, + {dev_id:-1,}, + {dev_id:-1,}, + {dev_id:-1,}, + {dev_id:-1,}, + {dev_id:-1,} }; // Device FIFO addresses and default DMA modes @@ -76,35 +76,37 @@ unsigned int fifo_addr; unsigned int dma_mode; } dma_dev_table[DMA_NUM_DEV] = { - { UART0_ADDR + UART_TX, 0 }, - { UART0_ADDR + UART_RX, 0 }, - { 0, 0 }, - { 0, 0 }, - { AC97C_DATA, DMA_DW16 | DMA_NC }, - { AC97C_DATA, DMA_DR | DMA_DW16 | DMA_NC }, - { UART3_ADDR + UART_TX, DMA_DW8 | DMA_NC }, - { UART3_ADDR + UART_RX, DMA_DR | DMA_DW8 | DMA_NC }, - { USB_DEV_EP0_READ_FIFO, DMA_DR | DMA_DW8 | DMA_NC }, - { USB_DEV_EP0_WRITE_FIFO, DMA_DW8 | DMA_NC }, - { USB_DEV_EP2_WRITE_FIFO, DMA_DW8 | DMA_NC }, - { USB_DEV_EP3_WRITE_FIFO, DMA_DW8 | DMA_NC }, - { USB_DEV_EP4_READ_FIFO, DMA_DR | DMA_DW8 | DMA_NC }, - { USB_DEV_EP5_READ_FIFO, DMA_DR | DMA_DW8 | DMA_NC }, - { I2S_DATA, DMA_DW32 | DMA_NC }, - { I2S_DATA, DMA_DR | DMA_DW32 | DMA_NC } + { + UART0_ADDR + UART_TX, 0}, { + UART0_ADDR + UART_RX, 0}, { + 0, 0}, { + 0, 0}, { + AC97C_DATA, DMA_DW16 | DMA_NC}, { + AC97C_DATA, DMA_DR | DMA_DW16 | DMA_NC}, { + UART3_ADDR + UART_TX, DMA_DW8 | DMA_NC}, { + UART3_ADDR + UART_RX, DMA_DR | DMA_DW8 | DMA_NC}, { + USB_DEV_EP0_READ_FIFO, DMA_DR | DMA_DW8 | DMA_NC}, { + USB_DEV_EP0_WRITE_FIFO, DMA_DW8 | DMA_NC}, { + USB_DEV_EP2_WRITE_FIFO, DMA_DW8 | DMA_NC}, { + USB_DEV_EP3_WRITE_FIFO, DMA_DW8 | DMA_NC}, { + USB_DEV_EP4_READ_FIFO, DMA_DR | DMA_DW8 | DMA_NC}, { + USB_DEV_EP5_READ_FIFO, DMA_DR | DMA_DW8 | DMA_NC}, { + I2S_DATA, DMA_DW32 | DMA_NC}, { + I2S_DATA, DMA_DR | DMA_DW32 | DMA_NC} }; -int au1000_dma_read_proc (char *buf, char **start, off_t fpos, +int au1000_dma_read_proc(char *buf, char **start, off_t fpos, int length, int *eof, void *data) { - int i, len=0; - struct dma_chan * chan; + int i, len = 0; + struct dma_chan *chan; - for (i = 0 ; i < NUM_AU1000_DMA_CHANNELS ; i++) { + for (i = 0; i < NUM_AU1000_DMA_CHANNELS; i++) { if ((chan = get_dma_chan(i)) != NULL) { - len += sprintf(buf+len, "%2d: %s\n", - i, chan->dev_str); + len += + sprintf(buf + len, "%2d: %s\n", i, + chan->dev_str); } } @@ -123,7 +125,7 @@ void dump_au1000_dma_channel(unsigned int dmanr) { - struct dma_chan * chan; + struct dma_chan *chan; if (dmanr > NUM_AU1000_DMA_CHANNELS) return; @@ -131,17 +133,17 @@ printk(KERN_INFO "Au1000 DMA%d Register Dump:\n", dmanr); printk(KERN_INFO " mode = 0x%08x\n", - inl(chan->io+DMA_MODE_SET)); + inl(chan->io + DMA_MODE_SET)); printk(KERN_INFO " addr = 0x%08x\n", - inl(chan->io+DMA_PERIPHERAL_ADDR)); + inl(chan->io + DMA_PERIPHERAL_ADDR)); printk(KERN_INFO " start0 = 0x%08x\n", - inl(chan->io+DMA_BUFFER0_START)); + inl(chan->io + DMA_BUFFER0_START)); printk(KERN_INFO " start1 = 0x%08x\n", - inl(chan->io+DMA_BUFFER1_START)); + inl(chan->io + DMA_BUFFER1_START)); printk(KERN_INFO " count0 = 0x%08x\n", - inl(chan->io+DMA_BUFFER0_COUNT)); + inl(chan->io + DMA_BUFFER0_COUNT)); printk(KERN_INFO " count1 = 0x%08x\n", - inl(chan->io+DMA_BUFFER1_COUNT)); + inl(chan->io + DMA_BUFFER1_COUNT)); } @@ -149,15 +151,15 @@ * Finds a free channel, and binds the requested device to it. * Returns the allocated channel number, or negative on error. */ -int request_au1000_dma(int dev_id, const char * dev_str) +int request_au1000_dma(int dev_id, const char *dev_str) { - struct dma_chan * chan; + struct dma_chan *chan; int i; if (dev_id < 0 || dev_id >= DMA_NUM_DEV) return -EINVAL; - for (i = 0 ; i < NUM_AU1000_DMA_CHANNELS ; i++) { + for (i = 0; i < NUM_AU1000_DMA_CHANNELS; i++) { if (au1000_dma_table[i].dev_id < 0) break; } @@ -167,7 +169,7 @@ chan = &au1000_dma_table[i]; // fill it in - chan->io = DMA_CHANNEL_BASE + i*DMA_CHANNEL_LEN; + chan->io = DMA_CHANNEL_BASE + i * DMA_CHANNEL_LEN; chan->irq = AU1000_DMA_INT_BASE + i; chan->dev_id = dev_id; chan->dev_str = dev_str; @@ -180,7 +182,7 @@ void free_au1000_dma(unsigned int dmanr) { - struct dma_chan * chan = get_dma_chan(dmanr); + struct dma_chan *chan = get_dma_chan(dmanr); if (!chan) { printk("Trying to free DMA%d\n", dmanr); return; Index: irq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/irq.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- irq.c 2001/08/30 17:52:50 1.6 +++ irq.c 2001/09/25 03:36:35 1.7 @@ -194,7 +194,6 @@ static void shutdown_irq(unsigned int irq_nr) { local_disable_irq(irq_nr); - return; } @@ -268,7 +267,6 @@ #endif local_disable_irq(irq_nr); au_sync(); - return; } Index: power.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/power.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- power.c 2001/08/28 07:23:54 1.1 +++ power.c 2001/09/25 03:36:35 1.2 @@ -76,12 +76,12 @@ flush_cache_all(); /* pin 6 is gpio */ - writel(readl(PIN_STATE) & ~(1<<11), PIN_STATE); + writel(readl(PIN_STATE) & ~(1 << 11), PIN_STATE); /* gpio 6 can cause a wake up event */ wakeup = readl(PM_WAKEUP_SOURCE_MASK); - wakeup &= ~(1<<8); /* turn off match20 wakeup */ - wakeup |= 1<<6; /* turn on gpio 6 wakeup */ + wakeup &= ~(1 << 8); /* turn off match20 wakeup */ + wakeup |= 1 << 6; /* turn on gpio 6 wakeup */ writel(wakeup, PM_WAKEUP_SOURCE_MASK); writel(1, PM_WAKEUP_CAUSE); /* clear cause */ @@ -94,10 +94,7 @@ "li $4, 1\n\t" "lui $5, 0xb190\n\t" "ori $5, 0x7c\n\t" - "sw $4, 0($5)\n\t" - "sync\n\t" - "1:\t\n\t" - "nop\n\t"); + "sw $4, 0($5)\n\t" "sync\n\t" "1:\t\n\t" "nop\n\t"); /* after a wakeup, the cpu vectors back to 0x1fc00000 so * it's up to the boot code to get us back here. @@ -106,44 +103,45 @@ return 0; } -static int pm_do_sleep(ctl_table *ctl, int write, struct file *file, void *buffer, size_t *len) +static int pm_do_sleep(ctl_table * ctl, int write, struct file *file, + void *buffer, size_t * len) { int retval = 0; if (!write) { *len = 0; - } - else { - retval = pm_send_all(PM_SUSPEND, (void *)2); + } else { + retval = pm_send_all(PM_SUSPEND, (void *) 2); if (retval) return retval; au_sleep(); - retval = pm_send_all(PM_RESUME, (void *)0); + retval = pm_send_all(PM_RESUME, (void *) 0); } return retval; } -static int pm_do_suspend(ctl_table *ctl, int write, struct file *file, void *buffer, size_t *len) +static int pm_do_suspend(ctl_table * ctl, int write, struct file *file, + void *buffer, size_t * len) { int retval = 0; if (!write) { *len = 0; - } - else { - retval = pm_send_all(PM_SUSPEND, (void *)2); + } else { + retval = pm_send_all(PM_SUSPEND, (void *) 2); if (retval) return retval; suspend_mode = 1; au1_wait(); - retval = pm_send_all(PM_RESUME, (void *)0); + retval = pm_send_all(PM_RESUME, (void *) 0); } return retval; } -static int pm_do_freq(ctl_table *ctl, int write, struct file *file, void *buffer, size_t *len) +static int pm_do_freq(ctl_table * ctl, int write, struct file *file, + void *buffer, size_t * len) { int retval = 0, i; unsigned long val, pll; @@ -151,20 +149,20 @@ #define MAX_CPU_FREQ 396 char buf[8], *p; unsigned long flags, intc0_mask, intc1_mask; - unsigned long old_baud_base, old_cpu_freq, baud_rate, old_clk, old_refresh; + unsigned long old_baud_base, old_cpu_freq, baud_rate, old_clk, + old_refresh; unsigned long new_baud_base, new_cpu_freq, new_clk, new_refresh; save_and_cli(flags); if (!write) { *len = 0; - } - else { + } else { /* Parse the new frequency */ - if (*len > TMPBUFLEN-1) { + if (*len > TMPBUFLEN - 1) { restore_flags(flags); return -EFAULT; } - if(copy_from_user(buf, buffer, *len)) { + if (copy_from_user(buf, buffer, *len)) { restore_flags(flags); return -EFAULT; } @@ -176,7 +174,7 @@ return -EFAULT; } - pll = val/12; + pll = val / 12; if ((pll > 33) || (pll < 7)) { /* 396 MHz max, 84 MHz min */ /* revisit this for higher speed cpus */ restore_flags(flags); @@ -192,17 +190,22 @@ set_au1000_uart_baud_base(new_baud_base); old_refresh = readl(REFRESH_CONFIG) & 0x1ffffff; - new_refresh = ((old_refresh * new_cpu_freq)/old_cpu_freq) | - (readl(REFRESH_CONFIG) & ~0x1ffffff); + new_refresh = + ((old_refresh * new_cpu_freq) / + old_cpu_freq) | (readl(REFRESH_CONFIG) & ~0x1ffffff); writel(pll, CPU_PLL_CNTRL); au_sync_delay(1); writel(new_refresh, REFRESH_CONFIG); au_sync_delay(1); - for (i=0; i<4; i++) { - if (readl(UART_BASE + UART_MOD_CNTRL + i*0x00100000) == 3) { - old_clk = readl(UART_BASE + UART_CLK + i*0x00100000); + for (i = 0; i < 4; i++) { + if (readl + (UART_BASE + UART_MOD_CNTRL + + i * 0x00100000) == 3) { + old_clk = + readl(UART_BASE + UART_CLK + + i * 0x00100000); // baud_rate = baud_base/clk baud_rate = old_baud_base / old_clk; /* we won't get an exact baud rate and the error @@ -215,15 +218,17 @@ baud_rate = 115200; else if (baud_rate > 50000) baud_rate = 57600; - else if(baud_rate > 30000) + else if (baud_rate > 30000) baud_rate = 38400; else if (baud_rate > 17000) baud_rate = 19200; else (baud_rate = 9600); // new_clk = new_baud_base/baud_rate - new_clk = new_baud_base/baud_rate; - writel(new_clk, UART_BASE + UART_CLK + i*0x00100000); + new_clk = new_baud_base / baud_rate; + writel(new_clk, + UART_BASE + UART_CLK + + i * 0x00100000); au_sync_delay(10); } } @@ -245,16 +250,14 @@ } -static struct ctl_table pm_table[] = -{ +static struct ctl_table pm_table[] = { {ACPI_S1_SLP_TYP, "suspend", NULL, 0, 0600, NULL, &pm_do_suspend}, {ACPI_SLEEP, "sleep", NULL, 0, 0600, NULL, &pm_do_sleep}, {CTL_ACPI, "freq", NULL, 0, 0600, NULL, &pm_do_freq}, {0} }; -static struct ctl_table pm_dir_table[] = -{ +static struct ctl_table pm_dir_table[] = { {CTL_ACPI, "pm", NULL, 0, 0555, pm_table}, {0} }; @@ -274,11 +277,7 @@ { __asm__(".set\tmips3\n\t" "wait\n\t" - "nop\n\t" - "nop\n\t" - "nop\n\t" - "nop\n\t" - ".set\tmips0"); + "nop\n\t" "nop\n\t" "nop\n\t" "nop\n\t" ".set\tmips0"); } @@ -296,13 +295,13 @@ unsigned long ticks, loopbit; int lps_precision = LPS_PREC; - loops_per_jiffy = (1<<12); + loops_per_jiffy = (1 << 12); while (loops_per_jiffy <<= 1) { /* wait for "start of" clock tick */ ticks = jiffies; while (ticks == jiffies) - /* nothing */; + /* nothing */ ; /* Go .. */ ticks = jiffies; __delay(loops_per_jiffy); @@ -315,7 +314,7 @@ (up to lps_precision bits) */ loops_per_jiffy >>= 1; loopbit = loops_per_jiffy; - while ( lps_precision-- && (loopbit >>= 1) ) { + while (lps_precision-- && (loopbit >>= 1)) { loops_per_jiffy |= loopbit; ticks = jiffies; while (ticks == jiffies); @@ -331,8 +330,7 @@ void au1_wait(void) { - __asm__("nop\n\t" - "nop\n\t"); + __asm__("nop\n\t" "nop\n\t"); } #endif /* CONFIG_PM */ Index: usbdev.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/common/usbdev.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- usbdev.c 2001/08/30 21:50:49 1.3 +++ usbdev.c 2001/09/25 03:36:35 1.4 @@ -90,17 +90,18 @@ } dev_state_t; /* local function prototypes */ -static int serial_open (struct tty_struct *tty, struct file * filp); -static void serial_close (struct tty_struct *tty, struct file * filp); -static int serial_write (struct tty_struct * tty, int from_user, +static int serial_open(struct tty_struct *tty, struct file *filp); +static void serial_close(struct tty_struct *tty, struct file *filp); +static int serial_write(struct tty_struct *tty, int from_user, const unsigned char *buf, int count); -static int serial_write_room (struct tty_struct *tty); [...1583 lines suppressed...] } #endif @@ -1799,7 +1828,7 @@ udelay(100); outl_sync(0x0003, USB_DEV_ENABLE); udelay(100); - for (i = 0; i < sizeof(au1000_config_table)/sizeof(u32); ++i) + for (i = 0; i < sizeof(au1000_config_table) / sizeof(u32); ++i) outl_sync(au1000_config_table[i], USB_DEV_CONFIG); // Flush the endpoint buffers and FIFOs @@ -1809,7 +1838,7 @@ kickstart_receive_packet(ep); for (i = 0; i < NUM_PORTS; ++i) { - struct usb_serial_port * port = &usbserial.port[i]; + struct usb_serial_port *port = &usbserial.port[i]; endpoint_flush(&port->ep_bulkin); endpoint_flush(&port->ep_bulkout); // start packet reception on bulk OUT endpoint |
From: Paul M. <le...@us...> - 2001-09-25 03:36:37
|
Update of /cvsroot/linux-mips/linux/arch/mips/au1000/pb1000 In directory usw-pr-cvs1:/tmp/cvs-serv5739/arch/mips/au1000/pb1000 Modified Files: pci_fixup.c pci_ops.c Log Message: Sync with OSS 2.4.9. Index: pci_fixup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1000/pci_fixup.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- pci_fixup.c 2001/08/29 00:12:29 1.3 +++ pci_fixup.c 2001/09/25 03:36:35 1.4 @@ -1,5 +1,4 @@ /* - * * BRIEF MODULE DESCRIPTION * Board specific pci fixups. * @@ -53,7 +52,7 @@ void __init pcibios_fixup(void) { - unsigned long pci_mem_start = (unsigned long)PCI_MEM_START; + unsigned long pci_mem_start = (unsigned long) PCI_MEM_START; writel(0, PCI_BRIDGE_CONFIG); // set extend byte to 0 writel(0, SDRAM_MBAR); // set mbar to 0 @@ -61,7 +60,8 @@ au_sync_delay(1); // set extend byte to mbar of ext slot - writel(((pci_mem_start>>24)&0xff) | (1<<8 | 1<<9 | 1<<10 | 1<<27), PCI_BRIDGE_CONFIG); + writel(((pci_mem_start >> 24) & 0xff) | + (1 << 8 | 1 << 9 | 1 << 10 | 1 << 27), PCI_BRIDGE_CONFIG); DBG("Set bridge config to %x\n", readl(PCI_BRIDGE_CONFIG)); } Index: pci_ops.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/au1000/pb1000/pci_ops.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- pci_ops.c 2001/08/17 22:53:26 1.1 +++ pci_ops.c 2001/09/25 03:36:35 1.2 @@ -1,5 +1,4 @@ /* - * * BRIEF MODULE DESCRIPTION * PB1000 specific pci support. * @@ -54,20 +53,22 @@ "pci IO space", PCI_IO_START, PCI_IO_END, - IORESOURCE_IO}; + IORESOURCE_IO +}; static struct resource pci_mem_resource = { "pci memory space", PCI_MEM_START, PCI_MEM_END, - IORESOURCE_MEM}; + IORESOURCE_MEM +}; extern struct pci_ops pb1000_pci_ops; struct pci_channel mips_pci_channels[] = { - { &pb1000_pci_ops, &pci_io_resource, &pci_mem_resource, 0, 1 }, - { (struct pci_ops *)NULL, (struct resource *)NULL, - (struct resource *)NULL, (int)NULL, (int)NULL} + {&pb1000_pci_ops, &pci_io_resource, &pci_mem_resource, 0, 1}, + {(struct pci_ops *) NULL, (struct resource *) NULL, + (struct resource *) NULL, (int) NULL, (int) NULL} }; @@ -77,13 +78,13 @@ * external slot only. The SDRAM is already initialized in setup.c. */ static int config_access(unsigned char access_type, struct pci_dev *dev, - unsigned char where, u32 *data) + unsigned char where, u32 * data) { unsigned char bus = dev->bus->number; unsigned char dev_fn = dev->devfn; unsigned long config; - if (((dev_fn>>3) != 0) || (bus != 0)) { + if (((dev_fn >> 3) != 0) || (bus != 0)) { *data = 0xffffffff; return -1; } @@ -92,8 +93,7 @@ if (access_type == PCI_ACCESS_WRITE) { outl(*data, config); - } - else { + } else { *data = inl(config); } au_sync_udelay(1); @@ -103,18 +103,16 @@ DBG("bridge config reg: %x (%x)\n", inl(PCI_BRIDGE_CONFIG), *data); - if (inl(PCI_BRIDGE_CONFIG) & (1<<16)) { + if (inl(PCI_BRIDGE_CONFIG) & (1 << 16)) { *data = 0xffffffff; return -1; - } - else { + } else { return PCIBIOS_SUCCESSFUL; } } -static int -read_config_byte (struct pci_dev *dev, int where, u8 *val) +static int read_config_byte(struct pci_dev *dev, int where, u8 * val) { u32 data; int ret; @@ -125,8 +123,7 @@ } -static int -read_config_word (struct pci_dev *dev, int where, u16 *val) +static int read_config_word(struct pci_dev *dev, int where, u16 * val) { u32 data; int ret; @@ -136,8 +133,7 @@ return ret; } -static int -read_config_dword (struct pci_dev *dev, int where, u32 *val) +static int read_config_dword(struct pci_dev *dev, int where, u32 * val) { int ret; @@ -146,8 +142,7 @@ } -static int -write_config_byte (struct pci_dev *dev, int where, u8 val) +static int write_config_byte(struct pci_dev *dev, int where, u8 val) { u32 data = 0; @@ -163,8 +158,7 @@ return PCIBIOS_SUCCESSFUL; } -static int -write_config_word (struct pci_dev *dev, int where, u16 val) +static int write_config_word(struct pci_dev *dev, int where, u16 val) { u32 data = 0; @@ -184,8 +178,7 @@ return PCIBIOS_SUCCESSFUL; } -static int -write_config_dword(struct pci_dev *dev, int where, u32 val) +static int write_config_dword(struct pci_dev *dev, int where, u32 val) { if (where & 3) return PCIBIOS_BAD_REGISTER_NUMBER; |
From: Paul M. <le...@us...> - 2001-09-25 03:36:37
|
Update of /cvsroot/linux-mips/linux In directory usw-pr-cvs1:/tmp/cvs-serv5739 Modified Files: Makefile Log Message: Sync with OSS 2.4.9. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/Makefile,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- Makefile 2001/08/25 06:24:45 1.4 +++ Makefile 2001/09/25 03:36:35 1.5 @@ -1,11 +1,11 @@ VERSION = 2 PATCHLEVEL = 4 -SUBLEVEL = 8 +SUBLEVEL = 9 EXTRAVERSION = -mips KERNELRELEASE=$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) -ARCH := mips +ARCH = mips CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \ else if [ -x /bin/bash ]; then echo /bin/bash; \ |