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: Leblanc f. <fle...@us...> - 2002-03-19 14:22:27
|
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv17935/arch/mips/configs Modified Files: defconfig-casio-e15 Log Message: Update casio E15 projet to latest structure. Index: defconfig-casio-e15 =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-casio-e15,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- defconfig-casio-e15 7 Mar 2002 09:15:16 -0000 1.1 +++ defconfig-casio-e15 19 Mar 2002 14:22:21 -0000 1.2 @@ -14,10 +14,11 @@ # CONFIG_ACER_PICA_61 is not set # CONFIG_ALGOR_P4032 is not set # CONFIG_BAGET_MIPS is not set -# CONFIG_COBALT_MICRO_SERVER is not set +# CONFIG_MIPS_COBALT is not set # CONFIG_DECSTATION is not set # CONFIG_DDB5074 is not set # CONFIG_NEC_EAGLE is not set +# CONFIG_NEC_KORVA is not set # CONFIG_MIPS_EV96100 is not set # CONFIG_MIPS_EV64120 is not set # CONFIG_MIPS_ATLAS is not set @@ -28,7 +29,12 @@ # CONFIG_CASIO_BE300 is not set CONFIG_CASIO_E15=y # CONFIG_VADEM_CLIO_1000 is not set -# CONFIG_NEC_MOBILEPRO_780 is not set +# CONFIG_NEC_MOBILEPRO is not set +# CONFIG_IDT_79S334 is not set +# CONFIG_IDT_79EB355 is not set +# CONFIG_IBM_WORKPAD is not set +# CONFIG_CASIO_E55 is not set +# CONFIG_VICTOR_MPC303 is not set # CONFIG_MIPS_MAGNUM_4000 is not set # CONFIG_MOMENCO_OCELOT is not set # CONFIG_DDB5476 is not set @@ -43,19 +49,21 @@ # CONFIG_MIPS_PB1500 is not set # CONFIG_TOSHIBA_JMR3927 is not set # CONFIG_HP_LASERJET is not set +# CONFIG_HIGHMEM is not set CONFIG_RWSEM_GENERIC_SPINLOCK=y # CONFIG_RWSEM_XCHGADD_ALGORITHM is not set # CONFIG_MCA is not set # CONFIG_SBUS is not set CONFIG_CPU_VR41XX=y CONFIG_VR4111=y -CONFIG_SERIAL=y -CONFIG_SERIAL_MANY_PORTS=y CONFIG_NEW_IRQ=y CONFIG_IRQ_CPU=y CONFIG_NEW_TIME_C=y -CONFIG_ISA=y +CONFIG_VR41XX_TIME_C=y CONFIG_NONCOHERENT_IO=y +CONFIG_ISA=y +CONFIG_SERIAL=y +CONFIG_SERIAL_MANY_PORTS=y CONFIG_DUMMY_KEYB=y CONFIG_TOUCH_PANEL=y CONFIG_BUTTONS=y @@ -66,8 +74,6 @@ CONFIG_ADIF=y CONFIG_GPIO_LCD=y CONFIG_EISA=y -# CONFIG_PCI is not set -# CONFIG_I8259 is not set # # Loadable module support @@ -88,11 +94,13 @@ # CONFIG_CPU_R5432 is not set # CONFIG_CPU_R5900 is not set # CONFIG_CPU_RM7000 is not set +# CONFIG_CPU_SR7100 is not set # CONFIG_CPU_NEVADA is not set # CONFIG_CPU_R10000 is not set # CONFIG_CPU_SB1 is not set # CONFIG_CPU_MIPS32 is not set # CONFIG_CPU_MIPS64 is not set +# CONFIG_CPU_RC32300 is not set # CONFIG_CPU_ADVANCED is not set # CONFIG_CPU_HAS_LLSC is not set # CONFIG_CPU_HAS_LLDSCD is not set @@ -102,16 +110,17 @@ # General setup # CONFIG_CPU_LITTLE_ENDIAN=y +# CONFIG_CPU_R5900_CONTEXT is not set +# CONFIG_VR4131_CACHE_FIX is not set +# CONFIG_VR4122_CLKSPEEDREG_FIX is not set CONFIG_KCORE_ELF=y CONFIG_ELF_KERNEL=y # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_ELF=y CONFIG_BINFMT_MISC=y -CONFIG_PM=y -CONFIG_PM_SUSPEND_WAKEUP=y -CONFIG_PM_POWERED_SUSPEND=y -# CONFIG_PM_STANDBY is not set -CONFIG_PROC_GIUINFO=y +# CONFIG_PM is not set +# CONFIG_PROC_GIUINFO is not set +# CONFIG_CPU_FREQ is not set CONFIG_NET=y CONFIG_HOTPLUG=y @@ -157,10 +166,8 @@ # CONFIG_BLK_DEV_DAC960 is not set CONFIG_BLK_DEV_LOOP=y CONFIG_BLK_DEV_NBD=y -CONFIG_BLK_DEV_RAM=y -CONFIG_BLK_DEV_RAM_SIZE=4096 -CONFIG_BLK_DEV_INITRD=y -CONFIG_EMBEDDED_RAMDISK=y +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_BLK_DEV_INITRD is not set # # Multi-device support (RAID and LVM) @@ -179,8 +186,6 @@ # CONFIG_PACKET=y CONFIG_PACKET_MMAP=y -CONFIG_NETLINK=y -CONFIG_RTNETLINK=y CONFIG_NETLINK_DEV=y # CONFIG_NETFILTER is not set # CONFIG_FILTER is not set @@ -301,7 +306,6 @@ # CONFIG_SUNLANCE is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set -# CONFIG_SUNLANCE is not set # CONFIG_SUNGEM is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_LANCE is not set @@ -368,7 +372,9 @@ CONFIG_IRNET=y CONFIG_IRCOMM=y # CONFIG_IRDA_ULTRA is not set -# CONFIG_IRDA_OPTIONS is not set +# CONFIG_IRDA_CACHE_LAST_LSAP is not set +# CONFIG_IRDA_FAST_RR is not set +# CONFIG_IRDA_DEBUG is not set # # Infrared-port device drivers @@ -572,6 +578,7 @@ # CONFIG_NLS_CODEPAGE_949 is not set # CONFIG_NLS_CODEPAGE_874 is not set # CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set # CONFIG_NLS_CODEPAGE_1251 is not set # CONFIG_NLS_ISO8859_1 is not set # CONFIG_NLS_ISO8859_2 is not set @@ -602,12 +609,18 @@ # CONFIG_FB_CYBER2000 is not set # CONFIG_FB_E1355 is not set # CONFIG_FB_MQ200 is not set -# CONFIG_FB_SIMPLE is not set -CONFIG_FB_HPCSFB=y -# CONFIG_FB_SED1354 is not set -# CONFIG_FB_VR4181 is not set -# CONFIG_FB_R3912 is not set -# CONFIG_FB_VRC4171 is not set +# CONFIG_FB_MATROX is not set +# CONFIG_FB_ATY is not set +# CONFIG_FB_RADEON is not set +# CONFIG_FB_ATY128 is not set +# CONFIG_FB_SIS is not set +# CONFIG_FB_3DFX is not set +# CONFIG_FB_VOODOO1 is not set +# CONFIG_FB_TRIDENT is not set +# CONFIG_FB_E1356 is not set +# CONFIG_FB_IT8181 is not set +CONFIG_FB_SIMPLE=y +# CONFIG_FB_HPCSFB is not set # CONFIG_FB_VIRTUAL is not set CONFIG_FBCON_ADVANCED=y # CONFIG_FBCON_MFB is not set @@ -652,12 +665,13 @@ # CONFIG_SOUND_ICH is not set # CONFIG_SOUND_RME96XX is not set # CONFIG_SOUND_SONICVIBES is not set +# CONFIG_SOUND_HAL2 is not set # CONFIG_SOUND_TRIDENT is not set # CONFIG_SOUND_MSNDCLAS is not set # CONFIG_SOUND_MSNDPIN is not set # CONFIG_SOUND_VIA82CXXX is not set # CONFIG_MIDI_VIA82CXXX is not set -CONFIG_SOUND_VR41XX=y +# CONFIG_SOUND_VR41XX is not set # CONFIG_SOUND_OSS is not set # CONFIG_SOUND_TVMIXER is not set @@ -704,6 +718,7 @@ # CONFIG_USB_SERIAL_EMPEG is not set # CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set @@ -717,6 +732,7 @@ # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set # CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_CYBERJACK is not set # CONFIG_USB_SERIAL_XIRCOM is not set |
From: Leblanc f. <fle...@us...> - 2002-03-19 14:22:26
|
Update of /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15 In directory usw-pr-cvs1:/tmp/cvs-serv17935/arch/mips/vr41xx/vr4111/casio-e15 Modified Files: Makefile setup.c Log Message: Update casio E15 projet to latest structure. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15/Makefile,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Makefile 10 Mar 2002 23:33:11 -0000 1.1 +++ Makefile 19 Mar 2002 14:22:21 -0000 1.2 @@ -15,9 +15,9 @@ .S.o: $(CC) $(AFLAGS) -c $< -o $@ -O_TARGET := casio.o +O_TARGET := casio-e15.o -all: casio.o +all: casio-e15.o obj-y += setup.o prom.o Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/vr41xx/vr4111/casio-e15/setup.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- setup.c 11 Mar 2002 19:36:41 -0000 1.2 +++ setup.c 19 Mar 2002 14:22:21 -0000 1.3 @@ -16,89 +16,72 @@ * for more details. * */ - #include <linux/config.h> +#include <linux/init.h> #include <linux/console.h> #ifdef CONFIG_IDE #include <linux/ide.h> #endif -#include <linux/init.h> -#include <linux/delay.h> -#include <asm/time.h> +#include <linux/ioport.h> + #include <asm/reboot.h> +#include <asm/time.h> #include <asm/vr41xx.h> -#include <asm/io.h> +#include <asm/vr41xx/e15.h> #ifdef CONFIG_PM_SUSPEND_WAKEUP #include <asm/power.h> #endif -extern void vr41xx_restart(char *c); -extern void vr4111_standby(void); -extern void vr4111_suspend(void); -extern void vr4111_hibernate(void); -extern void vr4111_wait(void); -extern void vr4111_time_init(void); -extern void vr4111_timer_setup(void); - -extern void vr4111_init_serial(void); extern void vr41xx_xblink_led(unsigned int times, unsigned int time_on, unsigned int time_off); +#ifdef CONFIG_BLK_DEV_INITRD +extern unsigned long initrd_start, initrd_end; +extern void * __rd_start, * __rd_end; +#endif + #ifdef CONFIG_BLK_DEV_IDE extern struct ide_ops std_ide_ops; -//extern struct ide_ops vr41xx_ide_ops; #endif struct semaphore vr41xx_dma_sem; -#ifdef CONFIG_PCMCIA -void __init put_cf_reg(unsigned char reg, unsigned char val) -{ - /* PCMCIA controller (VG469) is mapped here */ - outb(reg, 0x3e0); - outb(val, 0x3e1); -} -#endif -void __init bus_error_init(void) +void __init vr41xx_board_irq_init(void) { } void __init nec_vr41xx_setup(void) { - - set_io_port_base(VR41XX_PORT_BASE); - isa_slot_offset = VR41XX_ISAMEM_BASE; - - board_time_init = vr4111_time_init; - board_timer_setup = vr4111_timer_setup; + set_io_port_base(IO_PORT_BASE); + ioport_resource.start = IO_PORT_RESOURCE_START; + ioport_resource.end = IO_PORT_RESOURCE_END; + iomem_resource.start = IO_MEM_RESOURCE_START; + iomem_resource.end = IO_MEM_RESOURCE_END; -#ifdef CONFIG_PM_SUSPEND_WAKEUP - _machine_restart = do_wakeup; -#else - _machine_restart = vr41xx_restart; +#ifdef CONFIG_BLK_DEV_INITRD + ROOT_DEV = MKDEV(RAMDISK_MAJOR, 0); + initrd_start = (unsigned long)&__rd_start; + initrd_end = (unsigned long)&__rd_end; #endif - _machine_halt = vr4111_hibernate; - _machine_power_off = vr4111_suspend; - cpu_wait = vr4111_wait; + + _machine_restart = vr41xx_restart; + _machine_halt = vr41xx_halt; + _machine_power_off = vr41xx_power_off; + + board_time_init = vr41xx_time_init; + board_timer_setup = vr41xx_timer_setup; #ifdef CONFIG_BLK_DEV_IDE ide_ops = &std_ide_ops; - //ide_ops = &vr41xx_ide_ops; #endif #ifdef CONFIG_FB conswitchp = &dummy_con; #endif -#ifdef CONFIG_PCMCIA - /* Reset the PCMCIA and CF and power them off */ - put_cf_reg(0x03, 0x20); /* Socket 0 */ - put_cf_reg(0x43, 0x20); /* Socket 1 */ - put_cf_reg(0x02, 0x00); /* Socket 0 */ - put_cf_reg(0x42, 0x00); /* Socket 1 */ -#endif + vr41xx_bcu_init(); - vr4111_init_serial(); + vr41xx_siu_init(0, SIU_RS232C, 0); // Insure that vr41xx_dma_sem is initialized as unlocked, even // in the case of a failed hibernate/wakeup: |
From: Leblanc f. <fle...@us...> - 2002-03-19 14:22:25
|
Update of /cvsroot/linux-mips/linux/include/asm-mips/vr41xx In directory usw-pr-cvs1:/tmp/cvs-serv17935/include/asm-mips/vr41xx Added Files: e15.h Log Message: Update casio E15 projet to latest structure. --- NEW FILE: e15.h --- /* * FILE NAME * include/asm-mips/vr41xx/cassiopeia/e15.h * * BRIEF MODULE DESCRIPTION * Include file for CASIO CASSIOPEIA E-15. * * Copyright 2002 Yoichi Yuasa * yu...@hh... * Copyright 2002 francois Leblanc <fra...@ce...> * * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. */ #ifndef __CASIO_E15_H #define __CASIO_E15_H #include <asm/addrspace.h> #include <asm/vr41xx.h> /* * Board specific address mapping */ #define VR41XX_ISA_MEM_BASE 0x10000000 #define VR41XX_ISA_MEM_SIZE 0x04000000 #define VR41XX_ISA_IO_BASE 0x14000000 #define VR41XX_ISA_IO_SIZE 0x04000000 #define IO_PORT_BASE KSEG1ADDR(VR41XX_ISA_IO_BASE) #define IO_PORT_RESOURCE_START 0 #define IO_PORT_RESOURCE_END VR41XX_ISA_IO_SIZE #define IO_MEM_RESOURCE_START VR41XX_ISA_MEM_BASE #define IO_MEM_RESOURCE_END (VR41XX_ISA_MEM_BASE + VR41XX_ISA_MEM_SIZE) #endif /* __CASIO_E15_H */ |
From: Leblanc f. <fle...@us...> - 2002-03-19 14:22:24
|
Update of /cvsroot/linux-mips/linux/arch/mips In directory usw-pr-cvs1:/tmp/cvs-serv17935/arch/mips Modified Files: Makefile config.in Log Message: Update casio E15 projet to latest structure. Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/Makefile,v retrieving revision 1.41 retrieving revision 1.42 diff -u -d -r1.41 -r1.42 --- Makefile 9 Mar 2002 07:47:19 -0000 1.41 +++ Makefile 19 Mar 2002 14:22:21 -0000 1.42 @@ -473,11 +473,11 @@ # ifdef CONFIG_CASIO_E15 SUBDIRS += arch/mips/vr41xx/common \ - arch/mips/vr4111/common \ - arch/mips/vr4111/casio + arch/mips/vr41xx/vr4111/common \ + arch/mips/vr41xx/vr4111/casio-e15 LIBS += arch/mips/vr41xx/common/vr41xx.o \ - arch/mips/vr4111/common/vr4111.o \ - arch/mips/vr4111/casio/casio.o + arch/mips/vr41xx/vr4111/common/vr4111.o \ + arch/mips/vr41xx/vr4111/casio-e15/casio-e15.o LOADADDR += 0x80001000 endif Index: config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/config.in,v retrieving revision 1.89 retrieving revision 1.90 diff -u -d -r1.89 -r1.90 --- config.in 12 Mar 2002 22:51:31 -0000 1.89 +++ config.in 19 Mar 2002 14:22:21 -0000 1.90 @@ -462,13 +462,14 @@ if [ "$CONFIG_CASIO_E15" = "y" ]; then define_bool CONFIG_CPU_VR41XX y define_bool CONFIG_VR4111 y - define_bool CONFIG_SERIAL y - define_bool CONFIG_SERIAL_MANY_PORTS y define_bool CONFIG_NEW_IRQ y define_bool CONFIG_IRQ_CPU y define_bool CONFIG_NEW_TIME_C y - define_bool CONFIG_ISA y + define_bool CONFIG_VR41XX_TIME_C y define_bool CONFIG_NONCOHERENT_IO y + define_bool CONFIG_ISA y + define_bool CONFIG_SERIAL y + define_bool CONFIG_SERIAL_MANY_PORTS y define_bool CONFIG_DUMMY_KEYB y define_bool CONFIG_TOUCH_PANEL y define_bool CONFIG_BUTTONS y |
From: James S. <jsi...@us...> - 2002-03-18 23:32:40
|
Update of /cvsroot/linux-mips/linux/arch/mips/configs In directory usw-pr-cvs1:/tmp/cvs-serv13445 Modified Files: defconfig-sb1250-swarm Log Message: Enable support for NFS root in the default kernel. Index: defconfig-sb1250-swarm =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/configs/defconfig-sb1250-swarm,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- defconfig-sb1250-swarm 12 Feb 2002 18:21:25 -0000 1.6 +++ defconfig-sb1250-swarm 18 Mar 2002 23:32:37 -0000 1.7 @@ -2,6 +2,7 @@ # Automatically generated make config: don't edit # CONFIG_MIPS=y +CONFIG_MIPS32=y # # Code maturity level options @@ -17,10 +18,8 @@ # CONFIG_MIPS_COBALT is not set # CONFIG_DECSTATION is not set # CONFIG_DDB5074 is not set -# CONFIG_NEC_EAGLE is not set -# CONFIG_NEC_KORVA is not set -# CONFIG_MIPS_EV96100 is not set # CONFIG_MIPS_EV64120 is not set +# CONFIG_MIPS_EV96100 is not set # CONFIG_MIPS_ATLAS is not set # CONFIG_MIPS_MALTA is not set # CONFIG_NINO is not set @@ -28,18 +27,12 @@ # CONFIG_PCI is not set # CONFIG_SIBYTE_SB1250_PROF is not set # CONFIG_BCM1250_TBPROF is not set +# CONFIG_REMOTE_DEBUG is not set CONFIG_SIBYTE_SWARM=y -CONFIG_SIMULATION=y +# CONFIG_SIMULATION is not set # CONFIG_L3DEMO is not set CONFIG_SIBYTE_SWARM_MAX_MEM_REGIONS=16 CONFIG_SMP=y -# CONFIG_PS2 is not set -# CONFIG_CASIO_BE300 is not set -# CONFIG_CASIO_E15 is not set -# CONFIG_VADEM_CLIO_1000 is not set -# CONFIG_NEC_MOBILEPRO is not set -# CONFIG_IDT_79S334 is not set -# CONFIG_IDT_79EB355 is not set # CONFIG_MIPS_MAGNUM_4000 is not set # CONFIG_MOMENCO_OCELOT is not set # CONFIG_DDB5476 is not set @@ -60,8 +53,9 @@ # CONFIG_MCA is not set # CONFIG_SBUS is not set CONFIG_NEW_IRQ=y -CONFIG_SWAP_IO_SPACE=y CONFIG_NEW_TIME_C=y +CONFIG_DUMMY_KEYB=y +CONFIG_SWAP_IO_SPACE=y # CONFIG_ISA is not set # CONFIG_EISA is not set @@ -84,15 +78,12 @@ # CONFIG_CPU_TX49XX is not set # CONFIG_CPU_R5000 is not set # CONFIG_CPU_R5432 is not set -# CONFIG_CPU_R5900 is not set # CONFIG_CPU_RM7000 is not set -# CONFIG_CPU_SR7100 is not set # CONFIG_CPU_NEVADA is not set # CONFIG_CPU_R10000 is not set CONFIG_CPU_SB1=y # CONFIG_CPU_MIPS32 is not set # CONFIG_CPU_MIPS64 is not set -# CONFIG_CPU_RC32300 is not set CONFIG_SB1_PASS_1_WORKAROUNDS=y CONFIG_SB1_CACHE_ERROR=y CONFIG_VTAG_ICACHE=y @@ -107,8 +98,6 @@ # General setup # # CONFIG_CPU_LITTLE_ENDIAN is not set -# CONFIG_CPU_R5900_CONTEXT is not set -# CONFIG_VR4131_CACHE_FIX is not set CONFIG_KCORE_ELF=y CONFIG_ELF_KERNEL=y # CONFIG_BINFMT_IRIX is not set @@ -116,7 +105,6 @@ # CONFIG_BINFMT_AOUT is not set CONFIG_BINFMT_ELF=y # CONFIG_BINFMT_MISC is not set -# CONFIG_CPU_FREQ is not set CONFIG_NET=y # CONFIG_HOTPLUG is not set # CONFIG_PCMCIA is not set @@ -173,7 +161,10 @@ CONFIG_INET=y # CONFIG_IP_MULTICAST is not set # CONFIG_IP_ADVANCED_ROUTER is not set -# CONFIG_IP_PNP is not set +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set # CONFIG_NET_IPIP is not set # CONFIG_NET_IPGRE is not set # CONFIG_ARPD is not set @@ -246,6 +237,7 @@ # CONFIG_BONDING is not set # CONFIG_EQUALIZER is not set # CONFIG_TUN is not set +# CONFIG_ETHERTAP is not set # # Ethernet (10 or 100Mbit) @@ -255,7 +247,6 @@ # CONFIG_SUNLANCE is not set # CONFIG_SUNBMAC is not set # CONFIG_SUNQE is not set -# CONFIG_SUNLANCE is not set # CONFIG_SUNGEM is not set # CONFIG_NET_VENDOR_3COM is not set # CONFIG_LANCE is not set @@ -385,7 +376,6 @@ # CONFIG_INTEL_RNG is not set # CONFIG_NVRAM is not set # CONFIG_RTC is not set -# CONFIG_MIPS_RTC is not set # CONFIG_DTLK is not set # CONFIG_R3964 is not set # CONFIG_APPLICOM is not set @@ -459,7 +449,7 @@ # CONFIG_INTERMEZZO_FS is not set CONFIG_NFS_FS=y CONFIG_NFS_V3=y -# CONFIG_ROOT_NFS is not set +CONFIG_ROOT_NFS=y # CONFIG_NFSD is not set # CONFIG_NFSD_V3 is not set CONFIG_SUNRPC=y @@ -508,6 +498,10 @@ # # CONFIG_USB_AUDIO is not set # CONFIG_USB_BLUETOOTH is not set + +# +# SCSI support is needed for USB Storage +# # CONFIG_USB_STORAGE is not set # CONFIG_USB_STORAGE_DEBUG is not set # CONFIG_USB_STORAGE_DATAFAB is not set @@ -570,6 +564,7 @@ # CONFIG_USB_SERIAL_EMPEG is not set # CONFIG_USB_SERIAL_FTDI_SIO is not set # CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set # CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set @@ -583,6 +578,7 @@ # CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set # CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set # CONFIG_USB_SERIAL_MCT_U232 is not set +# CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_PL2303 is not set # CONFIG_USB_SERIAL_CYBERJACK is not set # CONFIG_USB_SERIAL_XIRCOM is not set @@ -606,7 +602,5 @@ # Kernel hacking # CONFIG_CROSSCOMPILE=y -# CONFIG_REMOTE_DEBUG is not set -# CONFIG_GDB_CONSOLE is not set # CONFIG_DEBUG is not set # CONFIG_MAGIC_SYSRQ is not set |
From: James S. <jsi...@us...> - 2002-03-18 22:56:46
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv3464 Added Files: time.h Log Message: Missing time bit. |
From: James S. <jsi...@us...> - 2002-03-18 22:54:24
|
Update of /cvsroot/linux-mips/linux/arch/mips/sibyte/swarm In directory usw-pr-cvs1:/tmp/cvs-serv2637 Modified Files: Makefile setup.c Added Files: rtc_xicor1241.c Log Message: Sibyte time updates that should have gone in long time ago ... --- NEW FILE: rtc_xicor1241.c --- /* * Copyright (C) 2000, 2001 Broadcom Corporation * * Copyright (C) 2002 MontaVista Software Inc. * Author: js...@mv... or js...@ju... * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the * Free Software Foundation; either version 2 of the License, or (at your * option) any later version. * */ #include <linux/types.h> #include <linux/time.h> #include <asm/time.h> #include <asm/addrspace.h> #include <asm/sibyte/64bit.h> #include <asm/sibyte/sb1250.h> #include <asm/sibyte/sb1250_regs.h> #include <asm/sibyte/sb1250_smbus.h> /* Xicor 1241 definitions */ /* * Register bits */ #define X1241REG_SR_BAT 0x80 /* currently on battery power */ #define X1241REG_SR_RWEL 0x04 /* r/w latch is enabled, can write RTC */ #define X1241REG_SR_WEL 0x02 /* r/w latch is unlocked, can enable r/w now */ #define X1241REG_SR_RTCF 0x01 /* clock failed */ #define X1241REG_BL_BP2 0x80 /* block protect 2 */ #define X1241REG_BL_BP1 0x40 /* block protect 1 */ #define X1241REG_BL_BP0 0x20 /* block protect 0 */ #define X1241REG_BL_WD1 0x10 #define X1241REG_BL_WD0 0x08 #define X1241REG_HR_MIL 0x80 /* military time format */ /* * Register numbers */ #define X1241REG_BL 0x10 /* block protect bits */ #define X1241REG_INT 0x11 /* */ #define X1241REG_SC 0x30 /* Seconds */ #define X1241REG_MN 0x31 /* Minutes */ #define X1241REG_HR 0x32 /* Hours */ #define X1241REG_DT 0x33 /* Day of month */ #define X1241REG_MO 0x34 /* Month */ #define X1241REG_YR 0x35 /* Year */ #define X1241REG_DW 0x36 /* Day of Week */ #define X1241REG_Y2K 0x37 /* Year 2K */ #define X1241REG_SR 0x3F /* Status register */ #define X1241_CCR_ADDRESS 0x6F #define SMB_CSR(reg) (KSEG1 | A_SMB_REGISTER(1, reg)) static int xicor_read(uint8_t addr) { while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY) ; out64((addr >> 8) & 0x7, SMB_CSR(R_SMB_CMD)); out64((addr & 0xff), SMB_CSR(R_SMB_DATA)); out64((V_SMB_ADDR(X1241_CCR_ADDRESS) | V_SMB_TT_WR2BYTE), SMB_CSR(R_SMB_START)); while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY) ; out64((V_SMB_ADDR(X1241_CCR_ADDRESS) | V_SMB_TT_RD1BYTE), SMB_CSR(R_SMB_START)); while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY) ; if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) { /* Clear error bit by writing a 1 */ out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS)); return -1; } return (in64(SMB_CSR(R_SMB_DATA)) & 0xff); } static int xicor_write(uint8_t addr, int b) { while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY) ; out64(addr, SMB_CSR(R_SMB_CMD)); out64((addr & 0xff) | ((b & 0xff) << 8), SMB_CSR(R_SMB_DATA)); out64(V_SMB_ADDR(X1241_CCR_ADDRESS) | V_SMB_TT_WR3BYTE, SMB_CSR(R_SMB_START)); while (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_BUSY) ; if (in64(SMB_CSR(R_SMB_STATUS)) & M_SMB_ERROR) { /* Clear error bit by writing a 1 */ out64(M_SMB_ERROR, SMB_CSR(R_SMB_STATUS)); return -1; } else { return 0; } } #define BCD_TO_BIN(val) ((val)=((val)&15) + ((val)>>4)*10) #define BIN_TO_BCD(val) ((val)=(((val)/10)<<4) + (val)%10) int xicor_set_time(unsigned long t) { struct rtc_time tm; int tmp; to_tm(t, &tm); /* unlock writes to the CCR */ xicor_write(X1241REG_SR, X1241REG_SR_WEL); xicor_write(X1241REG_SR, X1241REG_SR_WEL | X1241REG_SR_RWEL); /* trivial ones */ BIN_TO_BCD(tm.tm_sec); xicor_write(X1241REG_SC, tm.tm_sec); BIN_TO_BCD(tm.tm_min); xicor_write(X1241REG_MN, tm.tm_min); BIN_TO_BCD(tm.tm_mday); xicor_write(X1241REG_DT, tm.tm_mday); /* tm_mon starts from 0, *ick* */ tm.tm_mon ++; BIN_TO_BCD(tm.tm_mon); xicor_write(X1241REG_MO, tm.tm_mon); /* year is split */ tmp = tm.tm_year / 100; tm.tm_year %= 100; xicor_write(X1241REG_YR, tm.tm_year); xicor_write(X1241REG_Y2K, tmp); /* hour is the most tricky one */ tmp = xicor_read(X1241REG_HR); if (tmp & X1241REG_HR_MIL) { /* 24 hour format */ BIN_TO_BCD(tm.tm_hour); tmp = (tmp & ~0x3f) | (tm.tm_hour & 0x3f); } else { /* 12 hour format, with 0x2 for pm */ tmp = tmp & ~0x3f; if (tm.tm_hour >= 12) { tmp |= 0x20; tm.tm_hour -= 12; } BIN_TO_BCD(tm.tm_hour); tmp |= tm.tm_hour; } xicor_write(X1241REG_HR, tmp); xicor_write(X1241REG_SR, 0); return 0; } unsigned long xicor_get_time(void) { unsigned int year, mon, day, hour, min, sec, y2k; sec = xicor_read(X1241REG_SC); min = xicor_read(X1241REG_MN); hour = xicor_read(X1241REG_HR); if (hour & X1241REG_HR_MIL) { hour &= 0x3f; } else { if (hour & 0x20) hour = (hour & 0xf) + 0x12; } BCD_TO_BIN(sec); BCD_TO_BIN(min); BCD_TO_BIN(hour); day = xicor_read(X1241REG_DT); mon = xicor_read(X1241REG_MO); year = xicor_read(X1241REG_YR); y2k = xicor_read(X1241REG_Y2K); BCD_TO_BIN(day); BCD_TO_BIN(mon); BCD_TO_BIN(year); BCD_TO_BIN(y2k); year += (y2k * 100); return mktime(year, mon, day, hour, min, sec); } Index: Makefile =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/sibyte/swarm/Makefile,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Makefile 19 Nov 2001 17:49:33 -0000 1.2 +++ Makefile 18 Mar 2002 22:54:22 -0000 1.3 @@ -7,7 +7,7 @@ all: sbswarm.a -OBJS-y = setup.o cmdline.o rtc.o time.o memory.o cfe_api.o +OBJS-y = setup.o cmdline.o memory.o cfe_api.o rtc_xicor1241.o OBJS-$(CONFIG_SMP) += smp.o Index: setup.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/sibyte/swarm/setup.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- setup.c 19 Feb 2002 17:34:24 -0000 1.9 +++ setup.c 18 Mar 2002 22:54:22 -0000 1.10 @@ -21,12 +21,12 @@ */ #include <linux/spinlock.h> -#include <linux/mc146818rtc.h> #include <linux/mm.h> #include <linux/bootmem.h> #include <linux/blk.h> #include <linux/init.h> #include <linux/ide.h> + #include <asm/irq.h> #include <asm/io.h> #include <asm/bootinfo.h> @@ -229,14 +229,31 @@ { } -extern void swarm_time_init(void); +void __init swarm_timer_setup(struct irqaction *irq) +{ + /* + * we don't set up irqaction, because we will deliver timer + * interrupts through low-level (direct) meachanism. + */ + + /* We only need to setup the generic timer */ + sb1250_time_init(); +} + +extern int xicor_set_time(unsigned long); +extern unsigned int xicor_get_time(void); void __init swarm_setup(void) { extern int panic_timeout; - rtc_ops = &swarm_rtc_ops; - panic_timeout = 5; /* For debug. This should probably be raised later */ + panic_timeout = 5; /* For debug. */ + + board_timer_setup = swarm_timer_setup; + + rtc_get_time = xicor_get_time; + rtc_set_time = xicor_set_time; + _machine_restart = (void (*)(char *))swarm_linux_exit; _machine_halt = swarm_linux_exit; _machine_power_off = swarm_linux_exit; @@ -254,7 +271,7 @@ #endif " runs\n"); - board_timer_setup = swarm_time_init; +// board_timer_setup = swarm_time_init; #ifdef CONFIG_BLK_DEV_IDE_SWARM ide_ops = &swarm_ide_ops; |
From: James S. <jsi...@us...> - 2002-03-18 22:53:36
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv2346 Modified Files: io.h Log Message: Provide additinal caching modes for ioremap. Don't use unless you KNOW what you're doing. Index: io.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/io.h,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- io.h 7 Mar 2002 09:15:17 -0000 1.18 +++ io.h 18 Mar 2002 22:53:34 -0000 1.19 @@ -144,6 +144,16 @@ return __ioremap(offset, size, _CACHE_UNCACHED); } +static inline void *ioremap_cacheable_cow(phys_t offset, unsigned long size) +{ + return __ioremap(offset, size, _CACHE_CACHABLE_COW); +} + +static inline void *ioremap_uncached_accelerated(phys_t offset, unsigned long size) +{ + return __ioremap(offset, size, _CACHE_UNCACHED_ACCELERATED); +} + extern void iounmap(void *addr); /* @@ -309,39 +319,6 @@ } } -#ifdef CONFIG_CASIO_E15 -#define __OUTS1(s) \ -extern inline void __outs##s(unsigned int port, const void * addr, unsigned long count) { - -#define __OUTS2(m) \ -if (count) \ -__asm__ __volatile__ ( \ - ".set\tnoreorder\n\t" \ - ".set\tnoat\n" \ - "1:\tl" #m "\t$1,(%0)\n\t" \ - "subu\t%1,1\n\t" \ - "s" #m "\t$1,%4(%5)\n\t" \ - "bne\t$0,%1,1b\n\t" \ - "addiu\t%0,%6\n\t" \ - ".set\tat\n\t" \ - ".set\treorder" - -#define __OUTS(m,s,i) \ -__OUTS1(s) __OUTS2(m) \ - : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "i" (0), "r" (mips_io_port_base+port), "I" (i) \ - : "$1");} \ -__OUTS1(s##c) __OUTS2(m) \ - : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "ir" (port), "r" (mips_io_port_base), "I" (i) \ - : "$1");} - -__OUTS(h,w,2) - -#define outsw(port,addr,count) \ - __outsw ((port),(addr),(count)) - -#else static inline void outsw(unsigned long port, void *addr, unsigned int count) { while (count--) { @@ -349,41 +326,7 @@ addr += 2; } } -#endif - -#ifdef CONFIG_CASIO_E15 -#define __INS1(s) \ -extern inline void __ins##s(unsigned int port, void * addr, unsigned long count) { -#define __INS2(m) \ -if (count) \ -__asm__ __volatile__ ( \ - ".set\tnoreorder\n\t" \ - ".set\tnoat\n" \ - "1:\tl" #m "\t$1,%4(%5)\n\t" \ - "subu\t%1,1\n\t" \ - "s" #m "\t$1,(%0)\n\t" \ - "bne\t$0,%1,1b\n\t" \ - "addiu\t%0,%6\n\t" \ - ".set\tat\n\t" \ - ".set\treorder" - -#define __INS(m,s,i) \ -__INS1(s) __INS2(m) \ - : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "i" (0), "r" (mips_io_port_base+port), "I" (i) \ - : "$1");} \ -__INS1(s##c) __INS2(m) \ - : "=r" (addr), "=r" (count) \ - : "0" (addr), "1" (count), "ir" (port), "r" (mips_io_port_base), "I" (i) \ - : "$1");} - -__INS(h,w,2) - -#define insw(port,addr,count) \ - __insw((port),(addr),(count)) - -#else static inline void insw(unsigned long port, void *addr, unsigned int count) { while (count--) { @@ -391,7 +334,6 @@ addr += 2; } } -#endif static inline void outsl(unsigned long port, void *addr, unsigned int count) { |
From: James S. <jsi...@us...> - 2002-03-18 22:48:21
|
Update of /cvsroot/linux-mips/linux/arch/mips/mm In directory usw-pr-cvs1:/tmp/cvs-serv689 Modified Files: init.c Log Message: Initialize pgd entries for highmem properly. Index: init.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/init.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- init.c 12 Feb 2002 18:01:05 -0000 1.5 +++ init.c 18 Mar 2002 22:48:17 -0000 1.6 @@ -206,6 +206,12 @@ #ifdef CONFIG_HIGHMEM /* + * Fixed mappings: + */ + vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK; + fixrange_init(vaddr, 0, pgd_base); + + /* * Permanent kmaps: */ vaddr = PKMAP_BASE; |
From: James S. <jsi...@us...> - 2002-03-18 22:47:19
|
Update of /cvsroot/linux-mips/linux/include/asm-mips64 In directory usw-pr-cvs1:/tmp/cvs-serv405 Modified Files: pgtable.h Log Message: Fix typo. Properly define _CACHE_UNCACHED_ACCELERATED for SB1 also. Index: pgtable.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips64/pgtable.h,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- pgtable.h 26 Feb 2002 17:34:15 -0000 1.12 +++ pgtable.h 18 Mar 2002 22:47:15 -0000 1.13 @@ -177,7 +177,7 @@ #define _CACHE_CACHABLE_CE (4<<9) /* R4[04]00 only */ #define _CACHE_CACHABLE_COW (5<<9) /* R4[04]00 only */ #define _CACHE_CACHABLE_CUW (6<<9) /* R4[04]00 only */ -#define _CACHE_CACHABLE_ACCELERATED (7<<9) /* R10000 only */ +#define _CACHE_UNCACHED_ACCELERATED (7<<9) /* R10000 only */ #define _CACHE_MASK (7<<9) #define __READABLE (_PAGE_READ | _PAGE_SILENT_READ | _PAGE_ACCESSED) |
From: James S. <jsi...@us...> - 2002-03-18 22:46:34
|
Update of /cvsroot/linux-mips/linux/include/asm-mips In directory usw-pr-cvs1:/tmp/cvs-serv32579 Modified Files: pgtable.h Log Message: Updates and fixed typo. Index: pgtable.h =================================================================== RCS file: /cvsroot/linux-mips/linux/include/asm-mips/pgtable.h,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- pgtable.h 9 Mar 2002 01:36:19 -0000 1.14 +++ pgtable.h 18 Mar 2002 22:46:30 -0000 1.15 @@ -19,7 +19,6 @@ #include <asm/cachectl.h> #include <asm/fixmap.h> - /* Cache flushing: * * - flush_cache_all() flushes entire cache @@ -92,6 +91,11 @@ #endif /* !defined (_LANGUAGE_ASSEMBLY) */ /* PMD_SHIFT determines the size of the area a second-level page table can map */ +#ifdef CONFIG_64BIT_PHYS_ADDR +#define PMD_SHIFT 21 +#else +#define PMD_SHIFT 22 +#endif #define PMD_SIZE (1UL << PMD_SHIFT) #define PMD_MASK (~(PMD_SIZE-1)) @@ -104,6 +108,17 @@ * Entries per page directory level: we use two-level, so * we don't really have any PMD directory physically. */ +#ifdef CONFIG_64BIT_PHYS_ADDR +#define PTRS_PER_PTE 512 +#define PTRS_PER_PMD 1 +#define PTRS_PER_PGD 2048 +#define PGD_ORDER 1 +#else +#define PTRS_PER_PTE 1024 +#define PTRS_PER_PMD 1 +#define PTRS_PER_PGD 1024 +#define PGD_ORDER 0 +#endif #define USER_PTRS_PER_PGD (0x80000000UL/PGDIR_SIZE) #define FIRST_USER_PGD_NR 0 @@ -171,6 +186,7 @@ #define _CACHE_UNCACHED (2<<9) #define _CACHE_CACHABLE_COW (5<<9) #define _CACHE_CACHABLE_NONCOHERENT (5<<9) +#define _CACHE_UNCACHED_ACCELERATED (7<<9) #else @@ -181,7 +197,7 @@ #define _CACHE_CACHABLE_CE (4<<9) /* R4[04]00 only */ #define _CACHE_CACHABLE_COW (5<<9) /* R4[04]00 only */ #define _CACHE_CACHABLE_CUW (6<<9) /* R4[04]00 only */ -#define _CACHE_CACHABLE_ACCELERATED (7<<9) /* R10000 only */ +#define _CACHE_UNCACHED_ACCELERATED (7<<9) /* R10000 only */ #endif #endif @@ -236,13 +252,19 @@ #define __S110 PAGE_SHARED #define __S111 PAGE_SHARED -#if defined(CONFIG_64BIT_PHYS_ADDR) && defined(CONFIG_CPU_MIPS32) -#include <asm/pgtable-3level.h> +#if !defined (_LANGUAGE_ASSEMBLY) + +#ifdef CONFIG_64BIT_PHYS_ADDR +#define pte_ERROR(e) \ + printk("%s:%d: bad pte %016Lx.\n", __FILE__, __LINE__, pte_val(e)) #else -#include <asm/pgtable-2level.h> +#define pte_ERROR(e) \ + printk("%s:%d: bad pte %08lx.\n", __FILE__, __LINE__, pte_val(e)) #endif - -#if !defined (_LANGUAGE_ASSEMBLY) +#define pmd_ERROR(e) \ + printk("%s:%d: bad pmd %08lx.\n", __FILE__, __LINE__, pmd_val(e)) +#define pgd_ERROR(e) \ + printk("%s:%d: bad pgd %08lx.\n", __FILE__, __LINE__, pgd_val(e)) extern unsigned long empty_zero_page; extern unsigned long zero_page_mask; @@ -268,7 +290,29 @@ pmd_val(*pmdp) = (((unsigned long) ptep) & PAGE_MASK); } +static inline int pte_none(pte_t pte) { return !pte_val(pte); } +static inline int pte_present(pte_t pte) { return pte_val(pte) & _PAGE_PRESENT; } + +/* Certain architectures need to do special things when pte's + * within a page table are directly modified. Thus, the following + * hook is made available. + */ +static inline void set_pte(pte_t *ptep, pte_t pteval) +{ + *ptep = pteval; +} + +static inline void pte_clear(pte_t *ptep) +{ + set_pte(ptep, __pte(0)); +} +/* + * (pmds are folded into pgds so this doesnt get actually called, + * but the define is needed for a generic inline function.) + */ +#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval) +#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval) /* * Empty pgd/pmd entries point to the invalid_pte_table. @@ -295,12 +339,6 @@ } /* - * Permanent address of a page. Obviously must never be called on a highmem - * page. - */ -#define page_address(page) ((page)->virtual) - -/* * The "pgd_xxx()" functions here are trivial for a folded two-level * setup: the pgd is never bad, and a pmd always exists (as it's folded * into the pgd entry) @@ -311,69 +349,70 @@ static inline void pgd_clear(pgd_t *pgdp) { } /* + * Permanent address of a page. Obviously must never be called on a highmem + * page. + */ +#define page_address(page) ((page)->virtual) +#ifdef CONFIG_CPU_VR41XX +#define pte_page(x) (mem_map+(unsigned long)((pte_val(x) >> (PAGE_SHIFT + 2)))) +#else +#define pte_page(x) (mem_map+(unsigned long)((pte_val(x) >> PAGE_SHIFT))) +#endif + +/* * The following only work if pte_present() is true. * Undefined behaviour if not.. */ -static inline int pte_present(pte_t pte) { return (pte.pte_low) & _PAGE_PRESENT; } - -static inline int pte_read(pte_t pte) { return (pte).pte_low & _PAGE_READ; } -static inline int pte_write(pte_t pte) { return (pte).pte_low & _PAGE_WRITE; } -static inline int pte_dirty(pte_t pte) { return (pte).pte_low & _PAGE_MODIFIED; } -static inline int pte_young(pte_t pte) { return (pte).pte_low & _PAGE_ACCESSED; } - -static inline void pte_clear(pte_t *ptep) -{ - set_pte(ptep, __pte(0)); -} +static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_READ; } +static inline int pte_write(pte_t pte) { return pte_val(pte) & _PAGE_WRITE; } +static inline int pte_dirty(pte_t pte) { return pte_val(pte) & _PAGE_MODIFIED; } +static inline int pte_young(pte_t pte) { return pte_val(pte) & _PAGE_ACCESSED; } static inline pte_t pte_wrprotect(pte_t pte) { - (pte).pte_low &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE); + pte_val(pte) &= ~(_PAGE_WRITE | _PAGE_SILENT_WRITE); return pte; } static inline pte_t pte_rdprotect(pte_t pte) { - (pte).pte_low &= ~(_PAGE_READ | _PAGE_SILENT_READ); + pte_val(pte) &= ~(_PAGE_READ | _PAGE_SILENT_READ); return pte; } static inline pte_t pte_mkclean(pte_t pte) { - (pte).pte_low &= ~(_PAGE_MODIFIED|_PAGE_SILENT_WRITE); + pte_val(pte) &= ~(_PAGE_MODIFIED|_PAGE_SILENT_WRITE); return pte; } static inline pte_t pte_mkold(pte_t pte) { - (pte).pte_low &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ); + pte_val(pte) &= ~(_PAGE_ACCESSED|_PAGE_SILENT_READ); return pte; } static inline pte_t pte_mkwrite(pte_t pte) { - (pte).pte_low |= _PAGE_WRITE; - if ((pte).pte_low & _PAGE_MODIFIED) { - (pte).pte_low |= _PAGE_SILENT_WRITE; - } + pte_val(pte) |= _PAGE_WRITE; + if (pte_val(pte) & _PAGE_MODIFIED) + pte_val(pte) |= _PAGE_SILENT_WRITE; return pte; } static inline pte_t pte_mkread(pte_t pte) { - (pte).pte_low |= _PAGE_READ; - if ((pte).pte_low & _PAGE_ACCESSED) { - (pte).pte_low |= _PAGE_SILENT_READ; - } + pte_val(pte) |= _PAGE_READ; + if (pte_val(pte) & _PAGE_ACCESSED) + pte_val(pte) |= _PAGE_SILENT_READ; return pte; } static inline pte_t pte_mkdirty(pte_t pte) { - (pte).pte_low |= _PAGE_MODIFIED; - if ((pte).pte_low & _PAGE_WRITE) { - (pte).pte_low |= _PAGE_SILENT_WRITE; - } + pte_val(pte) |= _PAGE_MODIFIED; + if (pte_val(pte) & _PAGE_WRITE) + pte_val(pte) |= _PAGE_SILENT_WRITE; return pte; } @@ -396,9 +435,9 @@ static inline pte_t pte_mkyoung(pte_t pte) { - (pte).pte_low |= _PAGE_ACCESSED; - if ((pte).pte_low & _PAGE_READ) - (pte).pte_low |= _PAGE_SILENT_READ; + pte_val(pte) |= _PAGE_ACCESSED; + if (pte_val(pte) & _PAGE_READ) + pte_val(pte) |= _PAGE_SILENT_READ; return pte; } @@ -407,20 +446,41 @@ * and a page entry and page directory to the page they refer to. */ -#define mk_pte(page, pgprot) __mk_pte((page) - mem_map, (pgprot)) -#define mk_pte_phys(physpage, pgprot) __mk_pte((physpage) >> PAGE_SHIFT, pgprot) +#ifdef CONFIG_CPU_VR41XX +#define mk_pte(page, pgprot) \ +({ \ + pte_t __pte; \ + \ + pte_val(__pte) = ((phys_t)(page - mem_map) << (PAGE_SHIFT + 2)) | \ + pgprot_val(pgprot); \ + \ + __pte; \ +}) +#else +#define mk_pte(page, pgprot) \ +({ \ + pte_t __pte; \ + \ + pte_val(__pte) = ((phys_t)(page - mem_map) << PAGE_SHIFT) | \ + pgprot_val(pgprot); \ + \ + __pte; \ +}) +#endif -static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) +static inline pte_t mk_pte_phys(phys_t physpage, pgprot_t pgprot) { - return __pte(((pte).pte_low & _PAGE_CHG_MASK) | pgprot_val(newprot)); +#ifdef CONFIG_CPU_VR41XX + return __pte((physpage << 2) | pgprot_val(pgprot)); +#else + return __pte(physpage | pgprot_val(pgprot)); +#endif } -/* - * (pmds are folded into pgds so this doesnt get actually called, - * but the define is needed for a generic inline function.) - */ -#define set_pmd(pmdptr, pmdval) (*(pmdptr) = pmdval) -#define set_pgd(pgdptr, pgdval) (*(pgdptr) = pgdval) +static inline pte_t pte_modify(pte_t pte, pgprot_t newprot) +{ + return __pte((pte_val(pte) & _PAGE_CHG_MASK) | pgprot_val(newprot)); +} #define page_pte(page) page_pte_prot(page, __pgprot(0)) @@ -463,7 +523,7 @@ #define SWP_TYPE(x) (((x).val >> 1) & 0x3f) #define SWP_OFFSET(x) ((x).val >> 8) #define SWP_ENTRY(type,offset) ((swp_entry_t) { ((type) << 1) | ((offset) << 8) }) -#define pte_to_swp_entry(pte) ((swp_entry_t) { (pte).pte_low }) +#define pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) }) #define swp_entry_to_pte(x) ((pte_t) { (x).val }) |
From: James S. <jsi...@us...> - 2002-03-18 22:40:34
|
Update of /cvsroot/linux-mips/linux/arch/mips64/mm In directory usw-pr-cvs1:/tmp/cvs-serv30600/mips64/mm Modified Files: r4xx0.c Log Message: Don't disable interrupts during R4k cache flushes. This has been show to result in missed timer interrupts and time to the point that xntpd looses synchonization. The question why all these flushes ever disabled interrupts stays unanswered ... Index: r4xx0.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/mm/r4xx0.c,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- r4xx0.c 19 Feb 2002 17:43:02 -0000 1.13 +++ r4xx0.c 18 Mar 2002 22:40:31 -0000 1.14 @@ -692,83 +692,47 @@ static inline void r4k_flush_cache_all_s16d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache16(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s32d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache32(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s64d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache64(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s128d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache128(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s32d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); blast_scache32(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s64d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); blast_scache64(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s128d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); blast_scache128(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); - __restore_flags(flags); } static void r4k_flush_cache_range_s16d16i16(struct mm_struct *mm, @@ -776,7 +740,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) == 0) return; @@ -795,7 +758,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -805,7 +767,6 @@ blast_scache16_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -815,7 +776,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) == 0) return; @@ -834,7 +794,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -844,7 +803,6 @@ blast_scache32_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -854,7 +812,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) == 0) return; @@ -873,7 +830,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -883,7 +839,6 @@ blast_scache64_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -893,7 +848,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) == 0) return; @@ -912,7 +866,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -922,7 +875,6 @@ blast_scache128_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -932,7 +884,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) == 0) return; @@ -951,7 +902,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -961,7 +911,6 @@ blast_scache32_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -971,7 +920,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) == 0) return; @@ -990,7 +938,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -1000,7 +947,6 @@ blast_scache64_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -1010,7 +956,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (CPU_CONTEXT(smp_processor_id(), mm) != 0) return; @@ -1029,7 +974,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -1039,7 +983,6 @@ blast_scache128_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -1049,14 +992,10 @@ unsigned long end) { if (CPU_CONTEXT(smp_processor_id(), mm) != 0) { - unsigned long flags; - #ifdef DEBUG_CACHE printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end); #endif - __save_and_cli(flags); blast_dcache16(); blast_icache16(); - __restore_flags(flags); } } @@ -1065,14 +1004,10 @@ unsigned long end) { if (CPU_CONTEXT(smp_processor_id(), mm) != 0) { - unsigned long flags; - #ifdef DEBUG_CACHE printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end); #endif - __save_and_cli(flags); blast_dcache32(); blast_icache32(); - __restore_flags(flags); } } @@ -1175,7 +1110,6 @@ unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1190,7 +1124,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1219,14 +1152,12 @@ } else blast_scache16_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1241,7 +1172,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1269,14 +1199,12 @@ } else blast_scache32_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1291,7 +1219,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1320,14 +1247,12 @@ } else blast_scache64_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1342,7 +1267,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1372,14 +1296,12 @@ } else blast_scache128_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1394,7 +1316,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1425,14 +1346,12 @@ } else blast_scache32_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1447,7 +1366,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1478,14 +1396,12 @@ } else blast_scache64_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1500,7 +1416,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1529,14 +1444,12 @@ } else blast_scache128_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1551,7 +1464,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1579,14 +1491,12 @@ blast_dcache16_page_indexed(page); } out: - __restore_flags(flags); } static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1601,7 +1511,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1631,14 +1540,12 @@ blast_dcache32_page_indexed(page); } out: - __restore_flags(flags); } static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1653,7 +1560,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1683,7 +1589,6 @@ blast_dcache32_page_indexed(page ^ dcache_waybit); } out: - __restore_flags(flags); } static void r4k_flush_page_to_ram_s16(struct page *page) @@ -1708,20 +1613,12 @@ static void r4k_flush_page_to_ram_d16(struct page *page) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16_page((unsigned long)page_address(page)); - __restore_flags(flags); } static void r4k_flush_page_to_ram_d32(struct page *page) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32_page((unsigned long)page_address(page)); - __restore_flags(flags); } /* |
From: James S. <jsi...@us...> - 2002-03-18 22:40:34
|
Update of /cvsroot/linux-mips/linux/arch/mips/mm In directory usw-pr-cvs1:/tmp/cvs-serv30600/mips/mm Modified Files: c-r4k.c Log Message: Don't disable interrupts during R4k cache flushes. This has been show to result in missed timer interrupts and time to the point that xntpd looses synchonization. The question why all these flushes ever disabled interrupts stays unanswered ... Index: c-r4k.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/c-r4k.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- c-r4k.c 15 Jan 2002 00:34:07 -0000 1.6 +++ c-r4k.c 18 Mar 2002 22:40:31 -0000 1.7 @@ -75,83 +75,47 @@ static inline void r4k_flush_cache_all_s16d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache16(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s32d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache32(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s64d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache64(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s128d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); blast_scache128(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s32d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); blast_scache32(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s64d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); blast_scache64(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_s128d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); blast_scache128(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_d16i16(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache16(); blast_icache16(); - __restore_flags(flags); } static inline void r4k_flush_cache_all_d32i32(void) { - unsigned long flags; - - __save_and_cli(flags); blast_dcache32(); blast_icache32(); - __restore_flags(flags); } static void @@ -160,7 +124,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -178,7 +141,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while (start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -188,7 +150,6 @@ blast_scache16_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -199,7 +160,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -217,7 +177,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -227,7 +186,6 @@ blast_scache32_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -237,7 +195,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -255,7 +212,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -265,7 +221,6 @@ blast_scache64_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -275,7 +230,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -293,7 +247,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -303,7 +256,6 @@ blast_scache128_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -313,7 +265,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -331,7 +282,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -341,7 +291,6 @@ blast_scache32_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -351,7 +300,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -369,7 +317,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -379,7 +326,6 @@ blast_scache64_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -389,7 +335,6 @@ unsigned long end) { struct vm_area_struct *vma; - unsigned long flags; if (mm->context == 0) return; @@ -407,7 +352,6 @@ pmd_t *pmd; pte_t *pte; - __save_and_cli(flags); while(start < end) { pgd = pgd_offset(mm, start); pmd = pmd_offset(pgd, start); @@ -417,7 +361,6 @@ blast_scache128_page(start); start += PAGE_SIZE; } - __restore_flags(flags); } } } @@ -427,14 +370,10 @@ unsigned long end) { if (mm->context != 0) { - unsigned long flags; - #ifdef DEBUG_CACHE printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end); #endif - __save_and_cli(flags); blast_dcache16(); blast_icache16(); - __restore_flags(flags); } } @@ -443,14 +382,10 @@ unsigned long end) { if (mm->context != 0) { - unsigned long flags; - #ifdef DEBUG_CACHE printk("crange[%d,%08lx,%08lx]", (int)mm->context, start, end); #endif - __save_and_cli(flags); blast_dcache32(); blast_icache32(); - __restore_flags(flags); } } @@ -553,7 +488,6 @@ unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -568,7 +502,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -598,14 +531,12 @@ } else blast_scache16_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s32d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -620,7 +551,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -649,14 +579,12 @@ } else blast_scache32_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s64d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -671,7 +599,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -700,14 +627,12 @@ } else blast_scache64_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s128d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -722,7 +647,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -752,14 +676,12 @@ } else blast_scache128_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s32d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -774,7 +696,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -804,14 +725,12 @@ } else blast_scache32_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s64d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -826,7 +745,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -856,14 +774,12 @@ } else blast_scache64_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_s128d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -878,7 +794,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -907,14 +822,12 @@ } else blast_scache128_page(page); out: - __restore_flags(flags); } static void r4k_flush_cache_page_d16i16(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -929,7 +842,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -958,14 +870,12 @@ blast_dcache16_page_indexed(page); } out: - __restore_flags(flags); } static void r4k_flush_cache_page_d32i32(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -980,7 +890,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1010,14 +919,12 @@ blast_dcache32_page_indexed(page); } out: - __restore_flags(flags); } static void r4k_flush_cache_page_d32i32_r4600(struct vm_area_struct *vma, unsigned long page) { struct mm_struct *mm = vma->vm_mm; - unsigned long flags; pgd_t *pgdp; pmd_t *pmdp; pte_t *ptep; @@ -1032,7 +939,6 @@ #ifdef DEBUG_CACHE printk("cpage[%d,%08lx]", (int)mm->context, page); #endif - __save_and_cli(flags); page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pmdp = pmd_offset(pgdp, page); @@ -1062,7 +968,6 @@ blast_dcache32_page_indexed(page ^ dcache_waybit); } out: - __restore_flags(flags); } /* If the addresses passed to these routines are valid, they are |
From: James S. <jsi...@us...> - 2002-03-18 22:38:06
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv29872 Modified Files: irq.c Log Message: Irq_err_count is atomic_t, so use atomic_read(). Index: irq.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/irq.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- irq.c 17 Jan 2002 00:50:24 -0000 1.10 +++ irq.c 18 Mar 2002 22:38:02 -0000 1.11 @@ -31,8 +31,6 @@ irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = { [0 ... NR_IRQS-1] = { 0, &no_irq_type, NULL, 0, SPIN_LOCK_UNLOCKED}}; -static void register_irq_proc(unsigned int irq); - /* * Special irq handlers. */ @@ -100,7 +98,7 @@ p += sprintf(p, ", %s", action->name); *p++ = '\n'; } - p += sprintf(p, "ERR: %10u\n", atomic_read(&irq_err_count)); + p += sprintf(p, "ERR: %10lu\n", atomic_read(&irq_err_count)); return p - buf; } |
From: James S. <jsi...@us...> - 2002-03-18 22:38:05
|
Update of /cvsroot/linux-mips/linux/drivers/net In directory usw-pr-cvs1:/tmp/cvs-serv27609/drivers/net Modified Files: meth.c tc35815.c Log Message: Removed malloc.h from a bunch of files. Index: meth.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/meth.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- meth.c 28 Nov 2001 17:15:01 -0000 1.1 +++ meth.c 18 Mar 2002 22:31:38 -0000 1.2 @@ -33,7 +33,7 @@ #include <linux/sched.h> #include <linux/kernel.h> /* printk() */ #include <linux/delay.h> -#include <linux/malloc.h> /* kmalloc() */ +#include <linux/slab.h> #include <linux/errno.h> /* error codes */ #include <linux/types.h> /* size_t */ #include <linux/interrupt.h> /* mark_bh */ Index: tc35815.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/tc35815.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- tc35815.c 7 Dec 2001 23:12:23 -0000 1.2 +++ tc35815.c 18 Mar 2002 22:31:38 -0000 1.3 @@ -41,7 +41,7 @@ #include <linux/ptrace.h> #include <linux/ioport.h> #include <linux/in.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/string.h> #include <asm/system.h> #include <asm/bitops.h> @@ -398,8 +398,9 @@ struct BDesc bd[RX_BUF_PAGES]; }; -#define tc_readl(addr) readl(addr) -#define tc_writel(d, addr) writel(d, addr) + +extern unsigned long tc_readl(volatile __u32 *addr); +extern void tc_writel(unsigned long data, volatile __u32 *addr); dma_addr_t priv_dma_handle; |
From: James S. <jsi...@us...> - 2002-03-18 22:38:05
|
Update of /cvsroot/linux-mips/linux/drivers/sound In directory usw-pr-cvs1:/tmp/cvs-serv27609/drivers/sound Modified Files: ite8172.c Log Message: Removed malloc.h from a bunch of files. Index: ite8172.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/ite8172.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- ite8172.c 22 Nov 2001 01:19:25 -0000 1.3 +++ ite8172.c 18 Mar 2002 22:31:38 -0000 1.4 @@ -59,7 +59,7 @@ #include <linux/sched.h> #include <linux/delay.h> #include <linux/sound.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/soundcard.h> #include <linux/pci.h> #include <linux/init.h> |
From: James S. <jsi...@us...> - 2002-03-18 22:38:05
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv27609/drivers/char Modified Files: serial_txx927.c Log Message: Removed malloc.h from a bunch of files. Index: serial_txx927.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/serial_txx927.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- serial_txx927.c 10 Nov 2001 03:52:49 -0000 1.1 +++ serial_txx927.c 18 Mar 2002 22:31:38 -0000 1.2 @@ -78,7 +78,7 @@ #include <linux/ptrace.h> #include <linux/ioport.h> #include <linux/mm.h> -#include <linux/malloc.h> +#include <linux/slab.h> #include <linux/init.h> #include <linux/serialP.h> #include <linux/delay.h> |
From: James S. <jsi...@us...> - 2002-03-18 22:38:03
|
Update of /cvsroot/linux-mips/linux/drivers/net/irda In directory usw-pr-cvs1:/tmp/cvs-serv27970 Modified Files: Config.in Log Message: Protect more MIPS stuff with CONFIG_MIPS. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/net/irda/Config.in,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Config.in 6 Nov 2001 09:10:21 -0000 1.2 +++ Config.in 18 Mar 2002 22:32:29 -0000 1.3 @@ -24,7 +24,9 @@ dep_tristate 'NSC PC87108/PC87338' CONFIG_NSC_FIR $CONFIG_IRDA dep_tristate 'Winbond W83977AF (IR)' CONFIG_WINBOND_FIR $CONFIG_IRDA dep_tristate 'Toshiba Type-O IR Port' CONFIG_TOSHIBA_FIR $CONFIG_IRDA -dep_tristate 'Alchemy Au1000 SIR/FIR' CONFIG_AU1000_FIR $CONFIG_IRDA +if [ "$CONFIG_MIPS" = "y" ]; then + dep_tristate 'Alchemy Au1000 SIR/FIR' CONFIG_AU1000_FIR $CONFIG_IRDA +fi if [ "$CONFIG_EXPERIMENTAL" != "n" ]; then dep_tristate 'SMC IrCC (Experimental)' CONFIG_SMC_IRCC_FIR $CONFIG_IRDA dep_tristate 'ALi M5123 FIR (Experimental)' CONFIG_ALI_FIR $CONFIG_IRDA |
From: James S. <jsi...@us...> - 2002-03-18 22:35:53
|
Update of /cvsroot/linux-mips/linux/drivers/char In directory usw-pr-cvs1:/tmp/cvs-serv29169 Modified Files: Config.in Log Message: Protect pile of stuff by CONFIG_MIPS. Index: Config.in =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/char/Config.in,v retrieving revision 1.33 retrieving revision 1.34 diff -u -d -r1.33 -r1.34 --- Config.in 7 Mar 2002 16:21:50 -0000 1.33 +++ Config.in 18 Mar 2002 22:35:50 -0000 1.34 @@ -62,27 +62,29 @@ tristate ' Stallion EasyIO or EC8/32 support' CONFIG_STALLION tristate ' Stallion EC8/64, ONboard, Brumby support' CONFIG_ISTALLION fi - bool ' TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912 - dep_bool ' Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912 - bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART - if [ "$CONFIG_AU1000_UART" = "y" ]; then - bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE - fi - bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL - if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then - bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE - fi - if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then - bool ' Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART - if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then - bool ' Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE - if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then - define_bool CONFIG_SERIAL_CONSOLE y - fi - int ' Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024 - bool ' Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 - fi - fi + if [ "$CONFIG_MIPS" = "y" ]; then + bool ' TX3912/PR31700 serial port support' CONFIG_SERIAL_TX3912 + dep_bool ' Console on TX3912/PR31700 serial port' CONFIG_SERIAL_TX3912_CONSOLE $CONFIG_SERIAL_TX3912 + bool ' Enable Au1000 UART Support' CONFIG_AU1000_UART + if [ "$CONFIG_AU1000_UART" = "y" ]; then + bool ' Enable Au1000 serial console' CONFIG_AU1000_SERIAL_CONSOLE + fi + bool 'TXx927 SIO support' CONFIG_TXX927_SERIAL + if [ "$CONFIG_TXX927_SERIAL" = "y" ]; then + bool 'TXx927 SIO Console support' CONFIG_TXX927_SERIAL_CONSOLE + fi + if [ "$CONFIG_SIBYTE_SB1250" = "y" ]; then + bool ' Support for sb1250 onchip DUART' CONFIG_SIBYTE_SB1250_DUART + if [ "$CONFIG_SIBYTE_SB1250_DUART" = "y" ]; then + bool ' Console on SB1250 DUART' CONFIG_SIBYTE_SB1250_DUART_CONSOLE + if [ "$CONFIG_SIBYTE_SB1250_DUART_CONSOLE" = "y" ]; then + define_bool CONFIG_SERIAL_CONSOLE y + fi + int ' Output buffers size (in bytes)' CONFIG_SB1250_DUART_OUTPUT_BUF_SIZE 1024 + bool ' Leave port 1 alone (for kgdb or audio)' CONFIG_SIBYTE_SB1250_DUART_NO_PORT_1 + fi + fi + fi fi if [ "$CONFIG_VR4122" = "y" -o "$CONFIG_VR4131" = "y" ]; then bool 'NEC VRC4173 support' CONFIG_VRC4173 @@ -245,10 +247,6 @@ tristate 'Ftape (QIC-80/Travan) support' CONFIG_FTAPE if [ "$CONFIG_FTAPE" != "n" ]; then source drivers/char/ftape/Config.in -fi - -if [ "$CONFIG_X86" = "y" ]; then - tristate 'ACP Modem (Mwave) support' CONFIG_MWAVE fi endmenu |
From: James S. <jsi...@us...> - 2002-03-18 22:34:37
|
Update of /cvsroot/linux-mips/linux/arch/mips/kernel In directory usw-pr-cvs1:/tmp/cvs-serv28710 Modified Files: signal.c Log Message: Remove trailing semicolon from do { ... } while(0); style macros. Index: signal.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/kernel/signal.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- signal.c 2 Jan 2002 19:58:02 -0000 1.5 +++ signal.c 18 Mar 2002 22:34:34 -0000 1.6 @@ -197,7 +197,7 @@ */ #define restore_fpr(i) \ - do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0); + do { err |= __get_user(pfreg[i], &sc->sc_fpregs[i]); } while(0) restore_fpr( 0); restore_fpr( 1); restore_fpr( 2); restore_fpr( 3); restore_fpr( 4); restore_fpr( 5); restore_fpr( 6); restore_fpr( 7); @@ -251,7 +251,7 @@ #define restore_gp_reg(i) do { \ err |= __get_user(reg, &sc->sc_regs[i]); \ regs->regs[i] = reg; \ -} while(0); +} while(0) restore_gp_reg( 1); restore_gp_reg( 2); restore_gp_reg( 3); restore_gp_reg( 4); restore_gp_reg( 5); restore_gp_reg( 6); restore_gp_reg( 7); restore_gp_reg( 8); restore_gp_reg( 9); |
From: James S. <jsi...@us...> - 2002-03-18 22:33:48
|
Update of /cvsroot/linux-mips/linux/arch/mips/baget In directory usw-pr-cvs1:/tmp/cvs-serv28262 Added Files: vacserial.c Log Message: Jiffies wraparound fix. |
From: James S. <jsi...@us...> - 2002-03-18 22:27:45
|
Update of /cvsroot/linux-mips/linux/drivers/sound In directory usw-pr-cvs1:/tmp/cvs-serv26224 Modified Files: nec_vrc5477.c Log Message: Remove surplus llseeks. Index: nec_vrc5477.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/sound/nec_vrc5477.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- nec_vrc5477.c 6 Nov 2001 09:10:22 -0000 1.6 +++ nec_vrc5477.c 18 Mar 2002 22:27:42 -0000 1.7 @@ -818,12 +818,6 @@ /* --------------------------------------------------------------------- */ -static loff_t vrc5477_ac97_llseek(struct file *file, loff_t offset, int origin) -{ - return -ESPIPE; -} - - static int vrc5477_ac97_open_mixdev(struct inode *inode, struct file *file) { int minor = MINOR(inode->i_rdev); @@ -865,7 +859,7 @@ static /*const*/ struct file_operations vrc5477_ac97_mixer_fops = { owner: THIS_MODULE, - llseek: vrc5477_ac97_llseek, + llseek: no_llseek, ioctl: vrc5477_ac97_ioctl_mixdev, open: vrc5477_ac97_open_mixdev, release: vrc5477_ac97_release_mixdev, @@ -1631,7 +1625,7 @@ static /*const*/ struct file_operations vrc5477_ac97_audio_fops = { owner: THIS_MODULE, - llseek: vrc5477_ac97_llseek, + llseek: no_llseek, read: vrc5477_ac97_read, write: vrc5477_ac97_write, poll: vrc5477_ac97_poll, |
From: James S. <jsi...@us...> - 2002-03-18 22:26:32
|
Update of /cvsroot/linux-mips/linux/drivers/video In directory usw-pr-cvs1:/tmp/cvs-serv25818 Modified Files: fbmem.c Log Message: Minor junk cleanup. Index: fbmem.c =================================================================== RCS file: /cvsroot/linux-mips/linux/drivers/video/fbmem.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- fbmem.c 8 Mar 2002 20:14:25 -0000 1.18 +++ fbmem.c 18 Mar 2002 22:26:30 -0000 1.19 @@ -225,9 +225,7 @@ #ifdef CONFIG_FB_TRIDENT { "trident", tridentfb_init, tridentfb_setup }, #endif -#ifdef CONFIG_FB_VOODOO1 - { "sst", sstfb_init, sstfb_setup }, -#endif + /* * Generic drivers that are used as fallbacks * @@ -312,6 +310,9 @@ #endif #ifdef CONFIG_FB_PMAG_BA { "pmagbafb", pmagbafb_init, NULL }, +#endif +#ifdef CONFIG_FB_VOODOO1 + { "sst", sstfb_init, sstfb_setup }, #endif #ifdef CONFIG_FB_PMAGB_B { "pmagbbfb", pmagbbfb_init, NULL }, |
From: James S. <jsi...@us...> - 2002-03-18 22:25:58
|
Update of /cvsroot/linux-mips/linux/arch/mips64/mm In directory usw-pr-cvs1:/tmp/cvs-serv23208/mips64/mm Modified Files: c-sb1.c Log Message: Flushing the icache was possibly resulting in a pagefault. Fix negated condition. Index: c-sb1.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips64/mm/c-sb1.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- c-sb1.c 26 Feb 2002 17:34:15 -0000 1.4 +++ c-sb1.c 18 Mar 2002 22:19:21 -0000 1.5 @@ -23,6 +23,7 @@ #include <asm/bootinfo.h> #include <asm/cacheops.h> #include <asm/cpu.h> +#include <asm/uaccess.h> /* These are probed at ld_mmu time */ static unsigned long icache_size; @@ -244,10 +245,7 @@ static void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page) { - unsigned int cpu = smp_processor_id(); - if (!(vma->vm_flags & VM_EXEC)) { -// printk("sb1_flush_icache_page(): not exec\n"); return; } @@ -258,7 +256,6 @@ * * Bumping the ASID may well be cheaper, need to experiment ... */ -//printk("sb1_flush_icache_page(): flushing exec page\n"); sb1___flush_cache_all(); } @@ -326,27 +323,41 @@ #endif } -static void local_sb1_flush_cache_sigtramp(unsigned long addr) +/* + * A signal trampoline must fit into a single cacheline. + */ +static inline void local_sb1_flush_cache_sigtramp(unsigned long addr) { unsigned long daddr, iaddr; - daddr = addr & ~(dcache_line_size - 1); protected_writeback_dcache_line(daddr); - protected_writeback_dcache_line(daddr + dcache_line_size); iaddr = addr & ~(icache_line_size - 1); protected_flush_icache_line(iaddr); - protected_flush_icache_line(iaddr + icache_line_size); } #ifdef CONFIG_SMP -extern void sb1_flush_cache_sigtramp_ipi(void *ignored); -asm("sb1_flush_cache_sigtramp_ipi = local_sb1_flush_cache_sigtramp"); +static void sb1_flush_cache_sigtramp_ipi(void *info) +{ + unsigned long iaddr = (unsigned long) info; + + iaddr = iaddr & ~(icache_line_size - 1); + protected_flush_icache_line(iaddr); +} static void sb1_flush_cache_sigtramp(unsigned long addr) { - smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); + unsigned long tmp; + + /* + * Flush the local dcache, then load the instruction back into a + * register. That will make sure that any remote CPU also has + * written back it's data cache to memory. + */ local_sb1_flush_cache_sigtramp(addr); + __get_user(tmp, (unsigned long *)addr); + + smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); } #else void sb1_flush_cache_sigtramp(unsigned long addr); |
From: James S. <jsi...@us...> - 2002-03-18 22:25:58
|
Update of /cvsroot/linux-mips/linux/arch/mips/mm In directory usw-pr-cvs1:/tmp/cvs-serv23208/mips/mm Modified Files: c-sb1.c Log Message: Flushing the icache was possibly resulting in a pagefault. Fix negated condition. Index: c-sb1.c =================================================================== RCS file: /cvsroot/linux-mips/linux/arch/mips/mm/c-sb1.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- c-sb1.c 5 Feb 2002 17:03:53 -0000 1.12 +++ c-sb1.c 18 Mar 2002 22:19:21 -0000 1.13 @@ -23,6 +23,7 @@ #include <asm/bootinfo.h> #include <asm/cacheops.h> #include <asm/cpu.h> +#include <asm/uaccess.h> /* These are probed at ld_mmu time */ static unsigned int icache_size; @@ -245,11 +246,11 @@ * If there's no context yet, or the page isn't executable, no icache flush * is needed */ -static void sb1_flush_icache_page(struct vm_area_struct *vma, struct page *page) +static void sb1_flush_icache_page(struct vm_area_struct *vma, + struct page *page) { - if ((vma->vm_mm->context == 0) || !(vma->vm_flags & VM_EXEC)) { + if (!(vma->vm_flags & VM_EXEC)) return; - } /* * We're not sure of the virtual address(es) involved here, so @@ -322,15 +323,12 @@ } /* - * XXX - Still need to really understand this. This is mostly just - * derived from the r10k and r4k implementations, and seems to work - * but things that "seem to work" when I don't understand *why* they - * "seem to work" disturb me greatly...JDC + * A signal trampoline must fit into a single cacheline. */ -static void local_sb1_flush_cache_sigtramp(unsigned long addr) +static inline void local_sb1_flush_cache_sigtramp(unsigned long addr) { unsigned long daddr, iaddr; - + daddr = addr & ~(dcache_line_size - 1); protected_writeback_dcache_line(daddr); protected_writeback_dcache_line(daddr + dcache_line_size); @@ -340,14 +338,30 @@ } #ifdef CONFIG_SMP -extern void sb1_flush_cache_sigtramp_ipi(void *ignored); -asm("sb1_flush_cache_sigtramp_ipi = local_sb1_flush_cache_sigtramp"); + +static void sb1_flush_cache_sigtramp_ipi(void *info) +{ + unsigned long iaddr = (unsigned long) info; + + iaddr = iaddr & ~(icache_line_size - 1); + protected_flush_icache_line(iaddr); +} static void sb1_flush_cache_sigtramp(unsigned long addr) { - smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); + unsigned long tmp; + + /* + * Flush the local dcache, then load the instruction back into a + * register. That will make sure that any remote CPU also has + * written back it's data cache to memory. + */ local_sb1_flush_cache_sigtramp(addr); + __get_user(tmp, (unsigned long *)addr); + + smp_call_function(sb1_flush_cache_sigtramp_ipi, (void *) addr, 1, 1); } + #else void sb1_flush_cache_sigtramp(unsigned long addr); asm("sb1_flush_cache_sigtramp = local_sb1_flush_cache_sigtramp"); |