This list is closed, nobody may subscribe to it.
2004 |
Jan
(53) |
Feb
(78) |
Mar
(34) |
Apr
(26) |
May
(25) |
Jun
(34) |
Jul
(16) |
Aug
(16) |
Sep
(2) |
Oct
(58) |
Nov
(13) |
Dec
(32) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(62) |
Feb
(4) |
Mar
(40) |
Apr
(9) |
May
(13) |
Jun
(26) |
Jul
(32) |
Aug
(24) |
Sep
(18) |
Oct
(18) |
Nov
(14) |
Dec
|
2006 |
Jan
(15) |
Feb
(2) |
Mar
(23) |
Apr
(2) |
May
(2) |
Jun
(13) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2007 |
Jan
(1) |
Feb
(45) |
Mar
|
Apr
(13) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
(31) |
Dec
(5) |
2008 |
Jan
(6) |
Feb
(34) |
Mar
(113) |
Apr
(40) |
May
(19) |
Jun
(5) |
Jul
(41) |
Aug
(13) |
Sep
(53) |
Oct
(4) |
Nov
(53) |
Dec
|
2009 |
Jan
(1) |
Feb
(29) |
Mar
(66) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(163) |
Nov
|
Dec
(91) |
From: <he...@us...> - 2005-03-13 12:11:39
|
Update of /cvsroot/gc-linux/linux/arch/ppc/kernel In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31180 Modified Files: cputable.c Log Message: Rearranged to force diff to give us a human understandable patch. Index: cputable.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/kernel/cputable.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- cputable.c 4 Jan 2005 21:39:06 -0000 1.6 +++ cputable.c 13 Mar 2005 12:11:27 -0000 1.7 @@ -184,6 +184,34 @@ .num_pmcs = 4, .cpu_setup = __setup_cpu_604 }, + { /* 740/750 (0x4202, don't support TAU ?) */ + .pvr_mask = 0xffffffff, + .pvr_value = 0x00084202, + .cpu_name = "740/750", + .cpu_features = CPU_FTR_COMMON | + CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | + CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_HPTE_TABLE | + CPU_FTR_MAYBE_CAN_NAP, + .cpu_user_features = COMMON_PPC, + .icache_bsize = 32, + .dcache_bsize = 32, + .num_pmcs = 4, + .cpu_setup = __setup_cpu_750 + }, + { /* 745/755 */ + .pvr_mask = 0xfffff000, + .pvr_value = 0x00083000, + .cpu_name = "745/755", + .cpu_features = CPU_FTR_COMMON | + CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | + CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU | + CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP, + .cpu_user_features = COMMON_PPC, + .icache_bsize = 32, + .dcache_bsize = 32, + .num_pmcs = 4, + .cpu_setup = __setup_cpu_750 + }, { /* 750CX (80100 and 8010x?) */ .pvr_mask = 0xfffffff0, .pvr_value = 0x00080100, @@ -240,34 +268,6 @@ .num_pmcs = 4, .cpu_setup = __setup_cpu_750cx }, - { /* 740/750 (0x4202, don't support TAU ?) */ - .pvr_mask = 0xffffffff, - .pvr_value = 0x00084202, - .cpu_name = "740/750", - .cpu_features = CPU_FTR_COMMON | - CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | - CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_HPTE_TABLE | - CPU_FTR_MAYBE_CAN_NAP, - .cpu_user_features = COMMON_PPC, - .icache_bsize = 32, - .dcache_bsize = 32, - .num_pmcs = 4, - .cpu_setup = __setup_cpu_750 - }, - { /* 745/755 */ - .pvr_mask = 0xfffff000, - .pvr_value = 0x00083000, - .cpu_name = "745/755", - .cpu_features = CPU_FTR_COMMON | - CPU_FTR_SPLIT_ID_CACHE | CPU_FTR_MAYBE_CAN_DOZE | - CPU_FTR_USE_TB | CPU_FTR_L2CR | CPU_FTR_TAU | - CPU_FTR_HPTE_TABLE | CPU_FTR_MAYBE_CAN_NAP, - .cpu_user_features = COMMON_PPC, - .icache_bsize = 32, - .dcache_bsize = 32, - .num_pmcs = 4, - .cpu_setup = __setup_cpu_750 - }, { /* 750FX rev 1.x */ .pvr_mask = 0xffffff00, .pvr_value = 0x70000100, |
From: <aot...@us...> - 2005-03-03 21:13:48
|
Update of /cvsroot/gc-linux/linux/arch/ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/arch/ppc Modified Files: Kconfig Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/Kconfig,v retrieving revision 1.22 retrieving revision 1.23 diff -u -d -r1.22 -r1.23 --- Kconfig 4 Jan 2005 21:39:00 -0000 1.22 +++ Kconfig 3 Mar 2005 21:12:48 -0000 1.23 @@ -22,6 +22,10 @@ bool default y +config GENERIC_CALIBRATE_DELAY + bool + default y + config HAVE_DEC_LOCK bool default y @@ -97,6 +101,11 @@ depends on 44x default y +config PHYS_64BIT + bool + depends on 44x + default y + config ALTIVEC bool "AltiVec Support" depends on 6xx || POWER4 @@ -317,7 +326,7 @@ HERMES: Hermes-Pro ISDN/LAN router with integrated 8 x hub - Manufacturer: Multidata Gesellschaft für Datentechnik und Informatik + Manufacturer: Multidata Gesellschaft fur Datentechnik und Informatik <http://www.multidata.de/> Date of Release: 2000 (?) End of life: - @@ -500,21 +509,41 @@ More information is available at: <http://linux-apus.sourceforge.net/>. +config KATANA + bool "Artesyn-Katana" + help + Select KATANA if configuring an Artesyn KATANA 750i or 3750 + cPCI board. + config WILLOW bool "Cogent-Willow" +config CPCI690 + bool "Force-CPCI690" + help + Select CPCI690 if configuring a Force CPCI690 cPCI board. + config PCORE bool "Force-PowerCore" config POWERPMC250 bool "Force-PowerPMC250" -config EV64260 - bool "Galileo-EV-64260-BP" +config CHESTNUT + bool "IBM 750FX Eval board or 750GX Eval board" + help + Select CHESTNUT if configuring an IBM 750FX Eval Board or a + IBM 750GX Eval board. config SPRUCE bool "IBM-Spruce" +config EV64260 + bool "Marvell-EV64260BP" + help + Select EV64260 if configuring a Marvell (formerly Galileo) + EV64260BP Evaluation platform. + config LOPEC bool "Motorola-LoPEC" @@ -600,6 +629,12 @@ config ADS8272 bool "ADS8272" +config PQ2FADS + bool "Freescale-PQ2FADS" + help + Select PQ2FADS if you wish to configure for a Freescale + PQ2FADS board (-VR or -ZU). + config LITE5200 bool "Freescale LITE5200 / (IceCube)" select PPC_MPC52xx @@ -668,7 +703,7 @@ config 8260 bool "CPM2 Support" if WILLOW depends on 6xx - default y if TQM8260 || RPX8260 || EST8260 || SBS8260 || SBC82xx + default y if TQM8260 || RPX8260 || EST8260 || SBS8260 || SBC82xx || PQ2FADS help The MPC8260 is a typical embedded CPU made by Motorola. Selecting this option means that you wish to build a kernel for a machine with @@ -685,7 +720,7 @@ config CPM2 bool - depends on 8260 || MPC8560 + depends on 8260 || MPC8560 || MPC8555 default y help The CPM2 (Communications Processor Module) is a coprocessor on @@ -721,7 +756,8 @@ config PPC_GEN550 bool depends on SANDPOINT || MCPN765 || SPRUCE || PPLUS || PCORE || \ - PRPMC750 || K2 || PRPMC800 || LOPEC + PRPMC750 || K2 || PRPMC800 || LOPEC || \ + (EV64260 && !SERIAL_MPSC) || CHESTNUT default y config FORCE @@ -731,9 +767,53 @@ config GT64260 bool - depends on EV64260 + depends on EV64260 || CPCI690 + default y + +config MV64360 + bool + depends on KATANA + default y + +config MV64360 + bool + depends on CHESTNUT + default y + +config MV64X60 + bool + depends on (GT64260 || MV64360) default y +menu "Set bridge options" + depends on MV64X60 + +config NOT_COHERENT_CACHE + bool "Turn off Cache Coherency" + default n + help + Some 64x60 bridges lock up when trying to enforce cache coherency. + When this option is selected, cache coherency will be turned off. + Note that this can cause other problems (e.g., stale data being + speculatively loaded via a cached mapping). Use at your own risk. + +config MV64X60_BASE + hex "Set bridge base used by firmware" + default "0xf1000000" + help + A firmware can leave the base address of the bridge's registers at + a non-standard location. If so, set this value to reflect the + address of that non-standard location. + +config MV64X60_NEW_BASE + hex "Set bridge base used by kernel" + default "0xf1000000" + help + If the current base address of the bridge's registers is not where + you want it, set this value to the address that you want it moved to. + +endmenu + config NONMONARCH_SUPPORT bool "Enable Non-Monarch Support" depends on PRPMC800 |
From: <aot...@us...> - 2005-03-03 21:13:45
|
Update of /cvsroot/gc-linux/linux/arch/ppc/boot/simple In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/arch/ppc/boot/simple Modified Files: Makefile head.S Log Message: Merge 2.6.11 Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/boot/simple/Makefile,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Makefile 4 Jan 2005 21:39:02 -0000 1.10 +++ Makefile 3 Mar 2005 21:12:49 -0000 1.11 @@ -47,6 +47,12 @@ # See arch/ppc/kconfig and arch/ppc/platforms/Kconfig # for definition of what platform each config option refer to. #---------------------------------------------------------------------------- + zimage-$(CONFIG_CPCI690) := zImage-STRIPELF +zimageinitrd-$(CONFIG_CPCI690) := zImage.initrd-STRIPELF + extra.o-$(CONFIG_CPCI690) := misc-cpci690.o mv64x60_stub.o + end-$(CONFIG_CPCI690) := cpci690 + cacheflag-$(CONFIG_CPCI690) := -include $(clear_L2_L3) + zimage-$(CONFIG_IBM_OPENBIOS) := zImage-TREE zimageinitrd-$(CONFIG_IBM_OPENBIOS) := zImage.initrd-TREE end-$(CONFIG_IBM_OPENBIOS) := treeboot @@ -60,16 +66,25 @@ end-$(CONFIG_EBONY) := ebony entrypoint-$(CONFIG_EBONY) := 0x01000000 + zimage-$(CONFIG_LUAN) := zImage-TREE +zimageinitrd-$(CONFIG_LUAN) := zImage.initrd-TREE + end-$(CONFIG_LUAN) := luan + entrypoint-$(CONFIG_LUAN) := 0x01000000 + extra.o-$(CONFIG_LUAN) := pibs.o + zimage-$(CONFIG_OCOTEA) := zImage-TREE zimageinitrd-$(CONFIG_OCOTEA) := zImage.initrd-TREE end-$(CONFIG_OCOTEA) := ocotea entrypoint-$(CONFIG_OCOTEA) := 0x01000000 extra.o-$(CONFIG_OCOTEA) := pibs.o - extra.o-$(CONFIG_EV64260) := direct.o misc-ev64260.o + extra.o-$(CONFIG_EV64260) := misc-ev64260.o end-$(CONFIG_EV64260) := ev64260 cacheflag-$(CONFIG_EV64260) := -include $(clear_L2_L3) + extra.o-$(CONFIG_CHESTNUT) := misc-chestnut.o + end-$(CONFIG_CHESTNUT) := chestnut + zimage-$(CONFIG_GEMINI) := zImage-STRIPELF zimageinitrd-$(CONFIG_GEMINI) := zImage.initrd-STRIPELF end-$(CONFIG_GEMINI) := gemini @@ -78,6 +93,10 @@ end-$(CONFIG_K2) := k2 cacheflag-$(CONFIG_K2) := -include $(clear_L2_L3) + extra.o-$(CONFIG_KATANA) := misc-katana.o mv64x60_stub.o + end-$(CONFIG_KATANA) := katana + cacheflag-$(CONFIG_KATANA) := -include $(clear_L2_L3) + # kconfig 'feature', only one of these will ever be 'y' at a time. # The rest will be unset. motorola := $(CONFIG_MCPN765)$(CONFIG_MVME5100)$(CONFIG_PRPMC750) \ @@ -147,6 +166,7 @@ boot-$(CONFIG_8260) += embed_config.o boot-$(CONFIG_BSEIP) += iic.o boot-$(CONFIG_MBX) += iic.o pci.o qspan_pci.o +boot-$(CONFIG_MV64X60) += misc-mv64x60.o boot-$(CONFIG_RPXCLASSIC) += iic.o pci.o qspan_pci.o boot-$(CONFIG_RPXLITE) += iic.o # Different boards need different serial implementations. @@ -154,8 +174,8 @@ boot-$(CONFIG_8xx) += m8xx_tty.o boot-$(CONFIG_8260) += m8260_tty.o endif -boot-$(CONFIG_SERIAL_MPC52xx_CONSOLE) += mpc52xx_tty.o -boot-$(CONFIG_GT64260_CONSOLE) += gt64260_tty.o +boot-$(CONFIG_SERIAL_MPC52xx_CONSOLE) += mpc52xx_tty.o +boot-$(CONFIG_SERIAL_MPSC_CONSOLE) += mv64x60_tty.o LIBS := $(common)/lib.a $(bootlib)/lib.a ifeq ($(CONFIG_PPC_PREP),y) Index: head.S =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/boot/simple/head.S,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- head.S 19 Oct 2004 23:18:39 -0000 1.6 +++ head.S 3 Mar 2005 21:12:49 -0000 1.7 @@ -142,9 +142,9 @@ */ #endif -#ifdef CONFIG_EV64260 - /* Move 64260's base regs & CS window for external UART */ - bl ev64260_init +#ifdef CONFIG_MV64X60 + /* mv64x60 specific hook to do things like moving register base, etc. */ + bl mv64x60_init #endif /* Get the load address. |
From: <aot...@us...> - 2005-03-03 21:13:29
|
Update of /cvsroot/gc-linux/linux/arch/ppc/configs In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/arch/ppc/configs Modified Files: gamecube_defconfig Log Message: Merge 2.6.11 Index: gamecube_defconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/configs/gamecube_defconfig,v retrieving revision 1.25 retrieving revision 1.26 diff -u -d -r1.25 -r1.26 --- gamecube_defconfig 4 Jan 2005 21:39:03 -0000 1.25 +++ gamecube_defconfig 3 Mar 2005 21:12:49 -0000 1.26 @@ -1,11 +1,12 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.10 -# Tue Jan 4 22:33:25 2005 +# Linux kernel version: 2.6.11 +# Thu Mar 3 15:49:42 2005 # CONFIG_MMU=y CONFIG_GENERIC_HARDIRQS=y CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_CALIBRATE_DELAY=y CONFIG_HAVE_DEC_LOCK=y CONFIG_PPC=y CONFIG_PPC32=y @@ -78,11 +79,14 @@ # # CONFIG_PPC_MULTIPLATFORM is not set # CONFIG_APUS is not set +# CONFIG_KATANA is not set # CONFIG_WILLOW is not set +# CONFIG_CPCI690 is not set # CONFIG_PCORE is not set # CONFIG_POWERPMC250 is not set -# CONFIG_EV64260 is not set +# CONFIG_CHESTNUT is not set # CONFIG_SPRUCE is not set +# CONFIG_EV64260 is not set # CONFIG_LOPEC is not set # CONFIG_MCPN765 is not set # CONFIG_MVME5100 is not set @@ -101,6 +105,7 @@ # CONFIG_RPX8260 is not set # CONFIG_TQM8260 is not set # CONFIG_ADS8272 is not set +# CONFIG_PQ2FADS is not set # CONFIG_LITE5200 is not set # CONFIG_GAMECUBE_CONSOLE is not set CONFIG_GAMECUBE_RESET=y @@ -121,6 +126,15 @@ CONFIG_EXI=y # +# PCCARD (PCMCIA/CardBus) support +# +# CONFIG_PCCARD is not set + +# +# PC-card bridges +# + +# # Advanced setup # # CONFIG_ADVANCED_OPTIONS is not set @@ -145,6 +159,7 @@ # # CONFIG_STANDALONE is not set CONFIG_PREVENT_FIRMWARE_BUILD=y +# CONFIG_FW_LOADER is not set # # Memory Technology Devices (MTD) @@ -167,6 +182,7 @@ # CONFIG_GAMECUBE_ARAM is not set # CONFIG_GAMECUBE_MEMCARD is not set # CONFIG_GAMECUBE_SD is not set +# CONFIG_BLK_DEV_COW_COMMON is not set CONFIG_BLK_DEV_LOOP=y # CONFIG_BLK_DEV_CRYPTOLOOP is not set # CONFIG_BLK_DEV_NBD is not set @@ -185,6 +201,7 @@ CONFIG_IOSCHED_AS=y CONFIG_IOSCHED_DEADLINE=y CONFIG_IOSCHED_CFQ=y +# CONFIG_ATA_OVER_ETH is not set # # ATA/ATAPI/MFM/RLL support @@ -428,7 +445,8 @@ # # Misc devices # -CONFIG_GCN_GQR=m +CONFIG_GAMECUBE_GQR=m +# CONFIG_GAMECUBE_MI is not set # # Multimedia devices @@ -469,6 +487,7 @@ # CONFIG_LOGO_LINUX_VGA16 is not set # CONFIG_LOGO_LINUX_CLUT224 is not set CONFIG_LOGO_GAMECUBE_CLUT224=y +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set # # Sound @@ -531,6 +550,11 @@ # CONFIG_MMC is not set # +# InfiniBand support +# +# CONFIG_INFINIBAND is not set + +# # File systems # CONFIG_EXT2_FS=y @@ -539,6 +563,10 @@ # CONFIG_JBD is not set # CONFIG_REISERFS_FS is not set # CONFIG_JFS_FS is not set + +# +# XFS support +# # CONFIG_XFS_FS is not set # CONFIG_MINIX_FS is not set # CONFIG_ROMFS_FS is not set @@ -598,7 +626,6 @@ # # CONFIG_NFS_FS is not set # CONFIG_NFSD is not set -# CONFIG_EXPORTFS is not set # CONFIG_SMB_FS is not set # CONFIG_CIFS is not set # CONFIG_NCP_FS is not set @@ -682,3 +709,7 @@ # Cryptographic options # # CONFIG_CRYPTO is not set + +# +# Hardware crypto devices +# |
From: <aot...@us...> - 2005-03-03 21:13:29
|
Update of /cvsroot/gc-linux/linux/arch/ppc/platforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/arch/ppc/platforms Modified Files: Makefile Log Message: Merge 2.6.11 Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/Makefile,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- Makefile 19 Oct 2004 23:36:54 -0000 1.15 +++ Makefile 3 Mar 2005 21:12:49 -0000 1.16 @@ -11,7 +11,7 @@ endif obj-$(CONFIG_PPC_PMAC) += pmac_pic.o pmac_setup.o pmac_time.o \ pmac_feature.o pmac_pci.o pmac_sleep.o \ - pmac_low_i2c.o + pmac_low_i2c.o pmac_cache.o obj-$(CONFIG_PPC_CHRP) += chrp_setup.o chrp_time.o chrp_pci.o obj-$(CONFIG_PPC_PREP) += prep_pci.o prep_setup.o ifeq ($(CONFIG_PPC_PMAC),y) @@ -23,10 +23,13 @@ obj-$(CONFIG_ADIR) += adir_setup.o adir_pic.o adir_pci.o obj-$(CONFIG_PQ2ADS) += pq2ads.o obj-$(CONFIG_TQM8260) += tqm8260_setup.o -obj-$(CONFIG_EV64260) += ev64260_setup.o +obj-$(CONFIG_CPCI690) += cpci690.o +obj-$(CONFIG_EV64260) += ev64260.o +obj-$(CONFIG_CHESTNUT) += chestnut.o obj-$(CONFIG_GEMINI) += gemini_pci.o gemini_setup.o gemini_prom.o obj-$(CONFIG_K2) += k2.o obj-$(CONFIG_LOPEC) += lopec.o +obj-$(CONFIG_KATANA) += katana.o obj-$(CONFIG_MCPN765) += mcpn765.o obj-$(CONFIG_MENF1) += menf1_setup.o menf1_pci.o obj-$(CONFIG_MVME5100) += mvme5100.o |
From: <aot...@us...> - 2005-03-03 21:13:23
|
Update of /cvsroot/gc-linux/linux/drivers/video In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers/video Modified Files: Kconfig Makefile Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Kconfig,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Kconfig 4 Jan 2005 21:39:29 -0000 1.11 +++ Kconfig 3 Mar 2005 21:12:52 -0000 1.12 @@ -574,7 +574,7 @@ packed pixel and 32 bpp packed pixel. You can also use font widths different from 8. -config FB_MATROX_G450 +config FB_MATROX_G bool "G100/G200/G400/G450/G550 support" depends on FB_MATROX ---help--- @@ -585,10 +585,10 @@ different from 8. If you need support for G400 secondary head, you must first say Y to - "I2C support" and "I2C bit-banging support" in the character devices - section, and then to "Matrox I2C support" and "G400 second head - support" here in the framebuffer section. G450/G550 secondary head - and digital output are supported without additional modules. + "I2C support" in the character devices section, and then to + "Matrox I2C support" and "G400 second head support" here in the + framebuffer section. G450/G550 secondary head and digital output + are supported without additional modules. The driver starts in monitor mode. You must use the matroxset tool (available at <ftp://platan.vc.cvut.cz/pub/linux/matrox-latest/>) to @@ -605,26 +605,6 @@ G450/G550 hardware can display TV picture only from secondary CRTC, and it performs no scaling, so picture must have 525 or 625 lines. -config FB_MATROX_G100A - bool "G100/G200/G400 support" - depends on FB_MATROX && !FB_MATROX_G450 - ---help--- - Say Y here if you have a Matrox G100, G200 or G400 based - video card. If you select "Advanced lowlevel driver options", you - should check 8 bpp packed pixel, 16 bpp packed pixel, 24 bpp packed - pixel and 32 bpp packed pixel. You can also use font widths - different from 8. - - If you need support for G400 secondary head, you must first say Y to - "I2C support" and "I2C bit-banging support" in the character devices - section, and then to "Matrox I2C support" and "G400 second head - support" here in the framebuffer section. - -config FB_MATROX_G100 - bool - depends on FB_MATROX && (FB_MATROX_G450 || FB_MATROX_G100A) - default y - config FB_MATROX_I2C tristate "Matrox I2C support" depends on FB_MATROX && I2C @@ -644,7 +624,7 @@ config FB_MATROX_MAVEN tristate "G400 second head support" - depends on FB_MATROX_G100 && FB_MATROX_I2C + depends on FB_MATROX_G && FB_MATROX_I2C ---help--- WARNING !!! This support does not work with G450 !!! @@ -836,7 +816,7 @@ depends on FB && PCI help This is the frame buffer device driver for the SiS 300, 315 and - 330 series VGA chipsets. Specs available at http://www.sis.com + 330 series VGA chipsets. Specs available at <http://www.sis.com> To compile this driver as a module, choose M here; the module will be called sisfb. @@ -905,7 +885,7 @@ WARNING: Do not use any application that uses the 3D engine (namely glide) while using this driver. - Please read the file Documentation/fb/README-sstfb.txt for supported + Please read the <file:Documentation/fb/README-sstfb.txt> for supported options and other important info support. config FB_TRIDENT @@ -945,6 +925,42 @@ help This is the frame buffer device driver for the Nintendo GameCube. +config FB_E1356 + tristate "Epson SED1356 framebuffer support" + depends on FB && EXPERIMENTAL && PCI && MIPS + +config PB1000_CRT + bool "Use CRT on Pb1000 (J65)" + depends on MIPS_PB1000=y && FB_E1356 + +config PB1000_NTSC + bool "Use Compsite NTSC on Pb1000 (J63)" + depends on MIPS_PB1000=y && FB_E1356 + +config PB1000_TFT + bool "Use TFT Panel on Pb1000 (J64)" + depends on MIPS_PB1000=y && FB_E1356 + +config PB1500_CRT + bool "Use CRT on Pb1500 " if MIPS_PB1500=y + depends on FB_E1356 + +config PB1500_CRT + prompt "Use CRT on Pb1100 " + depends on FB_E1356 && MIPS_PB1100=y + +config PB1500_TFT + bool "Use TFT Panel on Pb1500 " if MIPS_PB1500=y + depends on FB_E1356 + +config PB1500_TFT + prompt "Use TFT Panel on Pb1100 " + depends on FB_E1356 && MIPS_PB1100=y + +config FB_AU1100 + bool "Au1100 LCD Driver" + depends on FB && EXPERIMENTAL && PCI && MIPS && MIPS_PB1100=y + config FB_SBUS bool "SBUS and UPA framebuffers" depends on FB && (SPARC32 || SPARC64) @@ -1004,29 +1020,35 @@ This is the frame buffer device driver for the Hitachi HD64461 LCD frame buffer card. +config FB_PMAG_AA + bool "PMAG-AA TURBOchannel framebuffer support" + depends on FB && MACH_DECSTATION && TC + help + Support for the PMAG-AA TURBOchannel framebuffer card (1280x1024x1) + used mainly in the MIPS-based DECstation series. + config FB_PMAG_BA bool "PMAG-BA TURBOchannel framebuffer support" - depends on FB && DECSTATION && TC + depends on FB && MACH_DECSTATION && TC help - Say Y here to directly support the on-board PMAG-BA framebuffer in - the 5000/1xx versions of the DECstation. There is a page dedicated - to Linux on DECstations at <http://decstation.unix-ag.org/>. + Support for the PMAG-BA TURBOchannel framebuffer card (1024x864x8) + used mainly in the MIPS-based DECstation series. config FB_PMAGB_B - bool "PMAGB-B TURBOchannel framebuffer spport" - depends on FB && DECSTATION && TC + bool "PMAGB-B TURBOchannel framebuffer support" + depends on FB && MACH_DECSTATION && TC help - Say Y here to directly support the on-board PMAGB-B framebuffer in - the 5000/1xx versions of the DECstation. There is a page dedicated - to Linux on DECstations at <http://decstation.unix-ag.org/>. + Support for the PMAGB-B TURBOchannel framebuffer card used mainly + in the MIPS-based DECstation series. The card is currently only + supported in 1280x1024x8 mode. config FB_MAXINE - bool "Maxine (Personal DECstation) onboard framebuffer spport" - depends on FB && DECSTATION && TC + bool "Maxine (Personal DECstation) onboard framebuffer support" + depends on FB && MACH_DECSTATION && TC help - Say Y here to directly support the on-board framebuffer in the - Maxine (5000/20, /25, /33) version of the DECstation. There is a - page dedicated to Linux on DECstations at <http://decstation.unix-ag.org/>. + Support for the onboard framebuffer (1024x768x8) in the Personal + DECstation series (Personal DECstation 5000/20, /25, /33, /50, + Codename "Maxine"). config FB_TX3912 bool "TMPTX3912/PR31700 frame buffer support" @@ -1037,6 +1059,13 @@ Say Y here to enable kernel support for the on-board framebuffer. +config FB_G364 + bool + depends on MIPS_MAGNUM_4000 || OLIVETTI_M700 + help + The G364 driver is the framebuffer used in MIPS Magnum 4000 and + Olivetti M700-10 systems. + config FB_68328 bool "Motorola 68328 native frame buffer support" depends on (M68328 || M68EZ328 || M68VZ328) @@ -1058,6 +1087,19 @@ If unsure, say N. +config FB_W100 + tristate "W100 frame buffer support" + depends on FB && PXA_SHARPSL + ---help--- + Frame buffer driver for the w100 as found on the Sharp SL-Cxx series. + + This driver is also available as a module ( = code which can be + inserted and removed from the running kernel whenever you want). The + module will be called vfb. If you want to compile it as a module, + say M here and read <file:Documentation/modules.txt>. + + If unsure, say N. + config FB_PXA_PARAMETERS bool "PXA LCD command line parameters" default n @@ -1073,7 +1115,7 @@ single model of flatpanel then you can safely leave this option disabled. - Documentation/fb/pxafb.txt describes the available parameters. + <file:Documentation/fb/pxafb.txt> describes the available parameters. config FB_VIRTUAL tristate "Virtual Frame Buffer support (ONLY FOR TESTING!)" @@ -1100,5 +1142,9 @@ source "drivers/video/logo/Kconfig" endif +if FB && SYSFS + source "drivers/video/backlight/Kconfig" +endif + endmenu Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/Makefile,v retrieving revision 1.12 retrieving revision 1.13 diff -u -d -r1.12 -r1.13 --- Makefile 6 Jan 2005 20:28:24 -0000 1.12 +++ Makefile 3 Mar 2005 21:12:52 -0000 1.13 @@ -6,6 +6,7 @@ obj-$(CONFIG_VT) += console/ obj-$(CONFIG_LOGO) += logo/ +obj-$(CONFIG_SYSFS) += backlight/ obj-$(CONFIG_FB) += fbmem.o fbmon.o fbcmap.o fbsysfs.o modedb.o softcursor.o # Only include macmodes.o if we have FB support and are PPC @@ -81,12 +82,8 @@ obj-$(CONFIG_FB_SA1100) += sa1100fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_SUN3) += sun3fb.o obj-$(CONFIG_FB_HIT) += hitfb.o cfbfillrect.o cfbimgblt.o -obj-$(CONFIG_FB_TX3912) += tx3912fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_EPSON1355) += epson1355fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_PVR2) += pvr2fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o -obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o -obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o -obj-$(CONFIG_FB_MAXINE) += maxinefb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_VOODOO1) += sstfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_ARMCLCD) += amba-clcd.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_68328) += 68328fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o @@ -94,6 +91,13 @@ obj-$(CONFIG_FB_CIRRUS) += cirrusfb.o cfbfillrect.o cfbimgblt.o cfbcopyarea.o obj-$(CONFIG_FB_ASILIANT) += asiliantfb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_PXA) += pxafb.o cfbimgblt.o cfbcopyarea.o cfbfillrect.o +obj-$(CONFIG_FB_W100) += w100fb.o cfbimgblt.o cfbcopyarea.o cfbfillrect.o +obj-$(CONFIG_FB_AU1100) += au1100fb.o fbgen.o +obj-$(CONFIG_FB_PMAG_AA) += pmag-aa-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_PMAG_BA) += pmag-ba-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_PMAGB_B) += pmagb-b-fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_MAXINE) += maxinefb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o +obj-$(CONFIG_FB_TX3912) += tx3912fb.o cfbfillrect.o cfbcopyarea.o cfbimgblt.o obj-$(CONFIG_FB_GAMECUBE) += gcnfb.o gcngx.o \ cfbfillrect.o cfbcopyarea.o cfbimgblt.o |
From: <aot...@us...> - 2005-03-03 21:13:21
|
Update of /cvsroot/gc-linux/linux/drivers In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers Modified Files: Makefile Log Message: Merge 2.6.11 Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/Makefile,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -r1.6 -r1.7 --- Makefile 4 Jan 2005 21:39:13 -0000 1.6 +++ Makefile 3 Mar 2005 21:12:50 -0000 1.7 @@ -42,6 +42,7 @@ obj-$(CONFIG_SBUS) += sbus/ obj-$(CONFIG_ZORRO) += zorro/ obj-$(CONFIG_MAC) += macintosh/ +obj-$(CONFIG_ATA_OVER_ETH) += block/aoe/ obj-$(CONFIG_PARIDE) += block/paride/ obj-$(CONFIG_TC) += tc/ obj-$(CONFIG_USB) += usb/ @@ -59,5 +60,7 @@ obj-$(CONFIG_EISA) += eisa/ obj-$(CONFIG_CPU_FREQ) += cpufreq/ obj-$(CONFIG_MMC) += mmc/ +obj-$(CONFIG_INFINIBAND) += infiniband/ obj-y += firmware/ +obj-$(CONFIG_CRYPTO) += crypto/ obj-$(CONFIG_EXI) += exi/ |
From: <aot...@us...> - 2005-03-03 21:13:21
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers/block Modified Files: Kconfig Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/Kconfig,v retrieving revision 1.10 retrieving revision 1.11 diff -u -d -r1.10 -r1.11 --- Kconfig 4 Jan 2005 21:39:25 -0000 1.10 +++ Kconfig 3 Mar 2005 21:12:50 -0000 1.11 @@ -6,7 +6,7 @@ config BLK_DEV_FD tristate "Normal floppy disk support" - depends on (!ARCH_S390 && !M68K && !IA64) || Q40 || (SUN3X && BROKEN) + depends on (!ARCH_S390 && !M68K && !IA64 && !USERMODE) || Q40 || (SUN3X && BROKEN) ---help--- If you want to use the floppy disk drive(s) of your PC under Linux, say Y. Information about this driver, especially important for IBM @@ -208,7 +208,7 @@ help When enabled (Y), this option allows SCSI tape drives and SCSI medium changers (tape robots) to be accessed via a Compaq 5xxx array - controller. (See Documentation/cciss.txt for more details.) + controller. (See <file:Documentation/cciss.txt> for more details.) "SCSI support" and "SCSI tape support" must also be enabled for this option to work. @@ -234,7 +234,7 @@ ---help--- Saying Y here will include support for the MM5415 family of battery backed (Non-volatile) RAM cards. - http://www.umem.com/ + <http://www.umem.com/> The cards appear as block devices that can be partitioned into as many as 15 partitions. @@ -246,6 +246,56 @@ one is chosen dynamically. Use "devfs" or look in /proc/devices for the device number +config BLK_DEV_UBD + bool "Virtual block device" + depends on USERMODE + ---help--- + The User-Mode Linux port includes a driver called UBD which will let + you access arbitrary files on the host computer as block devices. + Unless you know that you do not need such virtual block devices say + Y here. + +config BLK_DEV_UBD_SYNC + bool "Always do synchronous disk IO for UBD" + depends on BLK_DEV_UBD + ---help--- + Writes to the virtual block device are not immediately written to the + host's disk; this may cause problems if, for example, the User-Mode + Linux 'Virtual Machine' uses a journalling filesystem and the host + computer crashes. + + Synchronous operation (i.e. always writing data to the host's disk + immediately) is configurable on a per-UBD basis by using a special + kernel command line option. Alternatively, you can say Y here to + turn on synchronous operation by default for all block devices. + + If you're running a journalling file system (like reiserfs, for + example) in your virtual machine, you will want to say Y here. If + you care for the safety of the data in your virtual machine, Y is a + wise choice too. In all other cases (for example, if you're just + playing around with User-Mode Linux) you can choose N. + +config BLK_DEV_COW_COMMON + bool + default BLK_DEV_UBD + +config MMAPPER + tristate "Example IO memory driver (BROKEN)" + depends on USERMODE && BROKEN + ---help--- + The User-Mode Linux port can provide support for IO Memory + emulation with this option. This allows a host file to be + specified as an I/O region on the kernel command line. That file + will be mapped into UML's kernel address space where a driver can + locate it and do whatever it wants with the memory, including + providing an interface to it for UML processes to use. + + For more information, see + <http://user-mode-linux.sourceforge.net/iomem.html>. + + If you'd like to be able to provide a simulated IO port space for + User-Mode Linux processes, say Y. If unsure, say N. + config BLK_DEV_LOOP tristate "Loopback device support" ---help--- @@ -397,34 +447,53 @@ for details. config INITRAMFS_SOURCE - string "Source directory of cpio_list" + string "Initramfs source file(s)" default "" help - This can be set to either a directory containing files, etc to be - included in the initramfs archive, or a file containing newline - separated entries. + This can be either a single cpio archive with a .cpio suffix or a + space-separated list of directories and files for building the + initramfs image. A cpio archive should contain a filesystem archive + to be used as an initramfs image. Directories should contain a + filesystem layout to be included in the initramfs image. Files + should contain entries according to the format described by the + "usr/gen_init_cpio" program in the kernel tree. - If it is a file, it should be in the following format: - # a comment - file <name> <location> <mode> <uid> <gid> - dir <name> <mode> <uid> <gid> - nod <name> <mode> <uid> <gid> <dev_type> <maj> <min> + When multiple directories and files are specified then the + initramfs image will be the aggregate of all of them. - Where: - <name> name of the file/dir/nod in the archive - <location> location of the file in the current filesystem - <mode> mode/permissions of the file - <uid> user id (0=root) - <gid> group id (0=root) - <dev_type> device type (b=block, c=character) - <maj> major number of nod - <min> minor number of nod + See <file:Documentation/early-userspace/README for more details. If you are not sure, leave it blank. +config INITRAMFS_ROOT_UID + int "User ID to map to 0 (user root)" + depends on INITRAMFS_SOURCE!="" + default "0" + help + This setting is only meaningful if the INITRAMFS_SOURCE is + contains a directory. Setting this user ID (UID) to something + other than "0" will cause all files owned by that UID to be + owned by user root in the initial ramdisk image. + + If you are not sure, leave it set to "0". + +config INITRAMFS_ROOT_GID + int "Group ID to map to 0 (group root)" + depends on INITRAMFS_SOURCE!="" + default "0" + help + This setting is only meaningful if the INITRAMFS_SOURCE is + contains a directory. Setting this group ID (GID) to something + other than "0" will cause all files owned by that GID to be + owned by group root in the initial ramdisk image. + + If you are not sure, leave it set to "0". + +#XXX - it makes sense to enable this only for 32-bit subarch's, not for x86_64 +#for instance. config LBD bool "Support for Large Block Devices" - depends on X86 || MIPS32 || PPC32 || ARCH_S390_31 || SUPERH + depends on X86 || MIPS32 || PPC32 || ARCH_S390_31 || SUPERH || USERMODE help Say Y here if you want to attach large (bigger than 2TB) discs to your machine, or if you want to have a raid or loopback device @@ -432,6 +501,7 @@ config CDROM_PKTCDVD tristate "Packet writing on CD/DVD media" + depends on !USERMODE help If you have a CDROM drive that supports packet writing, say Y to include preliminary support. It should work with any MMC/Mt Fuji @@ -467,4 +537,11 @@ source "drivers/block/Kconfig.iosched" +config ATA_OVER_ETH + tristate "ATA over Ethernet support" + depends on NET + help + This driver provides Support for ATA over Ethernet block + devices like the Coraid EtherDrive (R) Storage Blade. + endmenu |
From: <aot...@us...> - 2005-03-03 21:13:19
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/include/linux Modified Files: fb.h Log Message: Merge 2.6.11 Index: fb.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/fb.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- fb.h 6 Jan 2005 20:22:17 -0000 1.11 +++ fb.h 3 Mar 2005 21:12:53 -0000 1.12 @@ -491,7 +491,8 @@ #define FB_EVENT_GET_CONSOLE_MAP 0x06 /* set console to framebuffer mapping */ #define FB_EVENT_SET_CONSOLE_MAP 0x07 - +/* A display blank is requested */ +#define FB_EVENT_BLANK 0x08 struct fb_event { struct fb_info *info; @@ -586,6 +587,10 @@ int (*fb_ioctl)(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg, struct fb_info *info); + /* Handle 32bit compat ioctl (optional) */ + int (*fb_compat_ioctl)(struct file *f, unsigned cmd, unsigned long arg, + struct fb_info *info); + /* perform fb specific mmap */ int (*fb_mmap)(struct fb_info *info, struct file *file, struct vm_area_struct *vma); }; @@ -693,7 +698,7 @@ #define FBINFO_HWACCEL_YPAN 0x2000 /* optional */ #define FBINFO_HWACCEL_YWRAP 0x4000 /* optional */ -#define FBINFO_MISC_MODECHANGEUSER 0x10000 /* mode change request +#define FBINFO_MISC_USEREVENT 0x10000 /* event request from userspace */ #define FBINFO_MISC_MODESWITCH 0x20000 /* mode switch */ #define FBINFO_MISC_MODESWITCHLATE 0x40000 /* init hardware later */ @@ -866,7 +871,6 @@ /* drivers/video/modedb.c */ #define VESA_MODEDB_SIZE 34 -extern const struct fb_videomode vesa_modes[]; extern void fb_var_to_videomode(struct fb_videomode *mode, struct fb_var_screeninfo *var); extern void fb_videomode_to_var(struct fb_var_screeninfo *var, @@ -911,6 +915,8 @@ u32 flag; }; +extern const struct fb_videomode vesa_modes[]; + struct fb_modelist { struct list_head list; struct fb_videomode mode; |
From: <aot...@us...> - 2005-03-03 21:13:19
|
Update of /cvsroot/gc-linux/linux/drivers/video/logo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers/video/logo Modified Files: Kconfig Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/video/logo/Kconfig,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- Kconfig 20 Oct 2004 22:44:24 -0000 1.1 +++ Kconfig 3 Mar 2005 21:12:52 -0000 1.2 @@ -25,7 +25,7 @@ config LOGO_DEC_CLUT224 bool "224-color Digital Equipment Corporation Linux logo" - depends on LOGO && DECSTATION + depends on LOGO && MACH_DECSTATION default y config LOGO_GAMECUBE_CLUT224 |
From: <aot...@us...> - 2005-03-03 21:13:18
|
Update of /cvsroot/gc-linux/linux/include/asm-ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/include/asm-ppc Modified Files: io.h Log Message: Merge 2.6.11 Index: io.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/asm-ppc/io.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- io.h 4 Jan 2005 21:39:31 -0000 1.5 +++ io.h 3 Mar 2005 21:12:52 -0000 1.6 @@ -133,7 +133,10 @@ { __asm__ __volatile__("stw%U0%X0 %1,%0; eieio" : "=m" (*addr) : "r" (val)); } - +#if defined (CONFIG_8260_PCI9) +#define readb(addr) in_8((volatile u8 *)(addr)) +#define writeb(b,addr) out_8((volatile u8 *)(addr), (b)) +#else static inline __u8 readb(volatile void __iomem *addr) { return in_8(addr); @@ -142,6 +145,8 @@ { out_8(addr, b); } +#endif + #if defined(CONFIG_APUS) || defined(CONFIG_GAMECUBE) static inline __u16 readw(volatile void __iomem *addr) { @@ -159,6 +164,12 @@ { *(__force volatile __u32 *)(addr) = b; } +#elif defined (CONFIG_8260_PCI9) +/* Use macros if PCI9 workaround enabled */ +#define readw(addr) in_le16((volatile u16 *)(addr)) +#define readl(addr) in_le32((volatile u32 *)(addr)) +#define writew(b,addr) out_le16((volatile u16 *)(addr),(b)) +#define writel(b,addr) out_le32((volatile u32 *)(addr),(b)) #else static inline __u16 readw(volatile void __iomem *addr) { @@ -182,15 +193,15 @@ #define readw_relaxed(addr) readw(addr) #define readl_relaxed(addr) readl(addr) -static inline __u8 __raw_readb(volatile void __iomem *addr) +static inline __u8 __raw_readb(const volatile void __iomem *addr) { return *(__force volatile __u8 *)(addr); } -static inline __u16 __raw_readw(volatile void __iomem *addr) +static inline __u16 __raw_readw(const volatile void __iomem *addr) { return *(__force volatile __u16 *)(addr); } -static inline __u32 __raw_readl(volatile void __iomem *addr) +static inline __u32 __raw_readl(const volatile void __iomem *addr) { return *(__force volatile __u32 *)(addr); } @@ -332,11 +343,16 @@ #define IO_SPACE_LIMIT ~0 +#if defined (CONFIG_8260_PCI9) +#define memset_io(a,b,c) memset((void *)(a),(b),(c)) +#define memcpy_fromio(a,b,c) memcpy((a),(void *)(b),(c)) +#define memcpy_toio(a,b,c) memcpy((void *)(a),(b),(c)) +#else static inline void memset_io(volatile void __iomem *addr, unsigned char val, int count) { memset((void __force *)addr, val, count); } -static inline void memcpy_fromio(void *dst, volatile void __iomem *src, int count) +static inline void memcpy_fromio(void *dst,const volatile void __iomem *src, int count) { memcpy(dst, (void __force *) src, count); } @@ -344,6 +360,9 @@ { memcpy((void __force *) dst, src, count); } +#endif + +#define eth_io_copy_and_sum(a,b,c,d) eth_copy_and_sum((a),(void __force *)(void __iomem *)(b),(c),(d)) /* * Map in an area of physical address space, for accessing @@ -488,32 +507,32 @@ static inline void ioread8_rep(void __iomem *addr, void *dst, unsigned long count) { - _insb((u8 __force *) addr, dst, count); + _insb(addr, dst, count); } static inline void ioread16_rep(void __iomem *addr, void *dst, unsigned long count) { - _insw_ns((u16 __force *) addr, dst, count); + _insw_ns(addr, dst, count); } static inline void ioread32_rep(void __iomem *addr, void *dst, unsigned long count) { - _insl_ns((u32 __force *) addr, dst, count); + _insl_ns(addr, dst, count); } static inline void iowrite8_rep(void __iomem *addr, const void *src, unsigned long count) { - _outsb((u8 __force *) addr, src, count); + _outsb(addr, src, count); } static inline void iowrite16_rep(void __iomem *addr, const void *src, unsigned long count) { - _outsw_ns((u16 __force *) addr, src, count); + _outsw_ns(addr, src, count); } static inline void iowrite32_rep(void __iomem *addr, const void *src, unsigned long count) { - _outsl_ns((u32 __force *) addr, src, count); + _outsl_ns(addr, src, count); } /* Create a virtual mapping cookie for an IO port range */ |
From: <aot...@us...> - 2005-03-03 21:13:18
|
Update of /cvsroot/gc-linux/linux/drivers/input In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers/input Modified Files: Kconfig Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/input/Kconfig,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- Kconfig 19 Oct 2004 23:55:27 -0000 1.3 +++ Kconfig 3 Mar 2005 21:12:50 -0000 1.4 @@ -32,7 +32,7 @@ Say Y here if you want your mouse to be accessible as char devices 13:32+ - /dev/input/mouseX and 13:63 - /dev/input/mice as an emulated IntelliMouse Explorer PS/2 mouse. That way, all user space - programs (includung SVGAlib, GPM and X) will be able to use your + programs (including SVGAlib, GPM and X) will be able to use your mouse. If unsure, say Y. |
From: <aot...@us...> - 2005-03-03 21:13:02
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers/net Modified Files: Kconfig Makefile Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Kconfig,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Kconfig 4 Jan 2005 21:39:29 -0000 1.11 +++ Kconfig 3 Mar 2005 21:12:51 -0000 1.12 @@ -84,6 +84,7 @@ config TUN tristate "Universal TUN/TAP device driver support" depends on NETDEVICES + select CRC32 ---help--- TUN/TAP provides packet reception and transmission for user space programs. It can be viewed as a simple Point-to-Point or Ethernet @@ -697,6 +698,7 @@ config VORTEX tristate "3c590/3c900 series (592/595/597) \"Vortex/Boomerang\" support" depends on NET_VENDOR_3COM && (PCI || EISA) + select MII ---help--- This option enables driver support for a large number of 10mbps and 10/100mbps EISA, PCI and PCMCIA 3Com network cards: @@ -1185,37 +1187,38 @@ be called ibmveth. config IBM_EMAC - tristate "IBM PPC4xx EMAC driver support" - depends on 4xx - ---help--- - This driver supports the IBM PPC4xx EMAC family of on-chip - Ethernet controllers. + tristate "IBM PPC4xx EMAC driver support" + depends on 4xx + select CRC32 + ---help--- + This driver supports the IBM PPC4xx EMAC family of on-chip + Ethernet controllers. config IBM_EMAC_ERRMSG - bool "Verbose error messages" - depends on IBM_EMAC + bool "Verbose error messages" + depends on IBM_EMAC config IBM_EMAC_RXB - int "Number of receive buffers" - depends on IBM_EMAC - default "128" if IBM_EMAC4 - default "64" + int "Number of receive buffers" + depends on IBM_EMAC + default "128" if IBM_EMAC4 + default "64" config IBM_EMAC_TXB - int "Number of transmit buffers" - depends on IBM_EMAC - default "128" if IBM_EMAC4 - default "8" + int "Number of transmit buffers" + depends on IBM_EMAC + default "128" if IBM_EMAC4 + default "8" config IBM_EMAC_FGAP - int "Frame gap" - depends on IBM_EMAC - default "8" + int "Frame gap" + depends on IBM_EMAC + default "8" config IBM_EMAC_SKBRES - int "Skb reserve amount" - depends on IBM_EMAC - default "0" + int "Skb reserve amount" + depends on IBM_EMAC + default "0" config NET_PCI bool "EISA, VLB, PCI and on board controllers" @@ -1404,16 +1407,6 @@ will be called eepro100. -config EEPRO100_PIO - bool "Use PIO instead of MMIO" if !X86_VISWS - depends on EEPRO100 - default y if X86_VISWS - help - This instructs the driver to use programmed I/O ports (PIO) instead - of PCI shared memory (MMIO). This can possibly solve some problems - in case your mainboard has memory consistency issues. If unsure, - say N. - config E100 tristate "Intel(R) PRO/100+ support" depends on NET_PCI && PCI @@ -1426,13 +1419,13 @@ Use the above information and the Adapter & Driver ID Guide at: - http://support.intel.com/support/network/adapter/pro100/21397.htm + <http://support.intel.com/support/network/adapter/pro100/21397.htm> to identify the adapter. For the latest Intel PRO/100 network driver for Linux, see: - http://appsr.intel.com/scripts-df/support_intel.asp + <http://appsr.intel.com/scripts-df/support_intel.asp> More specific information on configuring the driver is in <file:Documentation/networking/e100.txt>. @@ -1673,7 +1666,7 @@ <file:Documentation/networking/net-modules.txt>. The module will be called tlan. - Please email feedback to tor...@co.... + Please email feedback to <tor...@co...>. config VIA_RHINE tristate "VIA Rhine support" @@ -1985,6 +1978,15 @@ If in doubt, say N. +config R8169_VLAN + bool "VLAN support" + depends on R8169 && VLAN_8021Q + ---help--- + Say Y here for the r8169 driver to support the functions required + by the kernel 802.1Q code. + + If in doubt, say Y. + config SK98LIN tristate "Marvell Yukon Chipset / SysKonnect SK-98xx Support" depends on PCI @@ -2054,14 +2056,14 @@ The dual link adapters support link-failover and dual port features. Both Marvell Yukon and SysKonnect SK-98xx/SK-95xx adapters support the scatter-gather functionality with sendfile(). Please refer to - Documentation/networking/sk98lin.txt for more information about + <file:Documentation/networking/sk98lin.txt> for more information about optional driver parameters. Questions concerning this driver may be addressed to: - li...@sy... + <li...@sy...> If you want to compile this driver as a module ( = code which can be inserted in and removed from the running kernel whenever you want), - say M here and read Documentation/kbuild/modules.txt. The module will + say M here and read <file:Documentation/kbuild/modules.txt>. The module will be called sk98lin. This is recommended. config VIA_VELOCITY @@ -2197,6 +2199,17 @@ If in doubt, say N. +config 2BUFF_MODE + bool "Use 2 Buffer Mode on Rx side." + depends on S2IO + ---help--- + On enabling the 2 buffer mode, the received frame will be + split into 2 parts before being DMA'ed to the hosts memory. + The parts are the ethernet header and ethernet payload. + This is useful on systems where DMA'ing to to unaligned + physical memory loactions comes with a heavy price. + If not sure please say N. + endmenu source "drivers/net/tokenring/Kconfig" @@ -2259,7 +2272,7 @@ the driver. Questions concerning this driver can be addressed to: - li...@sy... + <li...@sy...> To compile this driver as a module, choose M here: the module will be called skfp. This is recommended. @@ -2455,7 +2468,7 @@ This driver requires the latest version of pppd from the CVS repository at cvs.samba.org. Alternatively, see the - RoaringPenguin package (http://www.roaringpenguin.com/pppoe) + RoaringPenguin package (<http://www.roaringpenguin.com/pppoe>) which contains instruction on how to use this driver (under the heading "Kernel mode PPPoE"). @@ -2583,5 +2596,5 @@ depends on NETDEVICES && EXPERIMENTAL ---help--- If you want to log kernel messages over the network, enable this. - See Documentation/networking/netconsole.txt for details. + See <file:Documentation/networking/netconsole.txt> for details. Index: Makefile =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/Makefile,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -r1.11 -r1.12 --- Makefile 4 Jan 2005 21:39:29 -0000 1.11 +++ Makefile 3 Mar 2005 21:12:52 -0000 1.12 @@ -66,7 +66,7 @@ obj-$(CONFIG_SUNDANCE) += sundance.o obj-$(CONFIG_HAMACHI) += hamachi.o -obj-$(CONFIG_NET) += Space.o net_init.o loopback.o +obj-$(CONFIG_NET) += Space.o loopback.o obj-$(CONFIG_SEEQ8005) += seeq8005.o obj-$(CONFIG_ETHERTAP) += ethertap.o obj-$(CONFIG_NET_SB1000) += sb1000.o |
From: <aot...@us...> - 2005-03-03 21:13:01
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16634/drivers/misc Modified Files: Kconfig Log Message: Merge 2.6.11 Index: Kconfig =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/misc/Kconfig,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- Kconfig 7 Jan 2005 23:40:14 -0000 1.2 +++ Kconfig 3 Mar 2005 21:12:51 -0000 1.3 @@ -46,7 +46,7 @@ WARNING: This software may not be supported or function correctly on your IBM server. Please consult the IBM ServerProven - website http://www.pc.ibm/ww/eserver/xseries/serverproven for + website <http://www.pc.ibm/ww/eserver/xseries/serverproven> for information on the specific driver level and support statement for your IBM server. |
From: <he...@us...> - 2005-02-24 21:39:56
|
Update of /cvsroot/gc-linux/linux/drivers/misc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv350/drivers/misc Modified Files: gcn-mi.c Log Message: Several spin lock fixes. Index: gcn-mi.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/misc/gcn-mi.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gcn-mi.c 7 Jan 2005 23:39:53 -0000 1.1 +++ gcn-mi.c 24 Feb 2005 21:39:30 -0000 1.2 @@ -108,7 +108,7 @@ int region, cause, ack; unsigned long address; - spin_lock_irqsave(priv->lock, flags); + spin_lock_irqsave(&priv->lock, flags); address = readw(MI_ADDRLO) | (readw(MI_ADDRHI)<<16); @@ -132,14 +132,14 @@ if (address == priv->last_address) { priv->last_address_faults++; } else { -#if 0 if (priv->last_address_faults > 0) { +#if 0 mi_printk(KERN_INFO, "bad access" " at 0x%lx (%lu times)\n", priv->last_address, priv->last_address_faults); - } #endif + } priv->last_address = address; priv->last_address_faults = 1; } @@ -148,7 +148,7 @@ writew(ack, MI_ICR); /* ack int */ writew(0, MI_0x4020); /* kind of ack */ - spin_unlock_irqrestore(priv->lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); return IRQ_HANDLED; } |
From: <he...@us...> - 2005-02-24 21:36:51
|
Update of /cvsroot/gc-linux/linux/drivers/exi In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32007/drivers/exi Modified Files: gcn-exi-lite.c Log Message: Several spin lock fixes. Index: gcn-exi-lite.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/gcn-exi-lite.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gcn-exi-lite.c 6 Jan 2005 20:12:55 -0000 1.2 +++ gcn-exi-lite.c 24 Feb 2005 21:36:42 -0000 1.3 @@ -171,7 +171,7 @@ { struct exi_private *priv = exi_priv(); - spin_lock_irqsave(priv->select_lock, priv->select_flags); + spin_lock_irqsave(&priv->select_lock, priv->select_flags); __exi_select(channel, device, freq); } @@ -183,7 +183,7 @@ struct exi_private *priv = exi_priv(); __exi_deselect(channel); - spin_unlock_irqrestore(priv->select_lock, priv->select_flags); + spin_unlock_irqrestore(&priv->select_lock, priv->select_flags); } /** @@ -348,8 +348,8 @@ struct exi_private *priv = exi_priv(); int err = 0; - spin_lock_init(priv->lock); - spin_lock_init(priv->select_lock); + spin_lock_init(&priv->lock); + spin_lock_init(&priv->select_lock); err = request_irq(EXI_IRQ, exi_irq_handler, 0, "exi", NULL); if (err) { |
From: <he...@us...> - 2005-02-24 21:36:51
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32007/drivers/block Modified Files: gcn-aram.c Log Message: Several spin lock fixes. Index: gcn-aram.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-aram.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gcn-aram.c 16 Jan 2005 23:27:42 -0000 1.4 +++ gcn-aram.c 24 Feb 2005 21:36:42 -0000 1.5 @@ -166,8 +166,6 @@ unsigned long len; unsigned long flags; - spin_lock_irqsave(&aram_lock,flags); - while ((req = elv_next_request(q))) { /* get length */ start = req->sector << 9; @@ -207,7 +205,6 @@ goto exit_func; } exit_func: - spin_unlock_irqrestore(&aram_lock,flags); } static int aram_open(struct inode *inode, struct file *filp) |
From: <he...@us...> - 2005-02-24 21:36:50
|
Update of /cvsroot/gc-linux/linux/arch/ppc/platforms In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv32007/arch/ppc/platforms Modified Files: gcn-rsw.c Log Message: Several spin lock fixes. Index: gcn-rsw.c =================================================================== RCS file: /cvsroot/gc-linux/linux/arch/ppc/platforms/gcn-rsw.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gcn-rsw.c 6 Jan 2005 20:06:45 -0000 1.2 +++ gcn-rsw.c 24 Feb 2005 21:36:41 -0000 1.3 @@ -100,7 +100,7 @@ struct gcn_rsw_private *priv = (struct gcn_rsw_private *)data; unsigned long flags; - spin_lock_irqsave(priv->lock, flags); + spin_lock_irqsave(&priv->lock, flags); /* someone pushed the reset button */ switch (priv->state) { @@ -143,7 +143,7 @@ case EMERGENCY_RESET: /* force a hard reset if the user insists ... */ if (++priv->pushes >= RSW_EMERGENCY_PUSHES) { - spin_unlock_irqrestore(priv->lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); gcn_rsw_emergency_reset(); return IRQ_HANDLED; } else { @@ -155,7 +155,7 @@ break; } - spin_unlock_irqrestore(priv->lock, flags); + spin_unlock_irqrestore(&priv->lock, flags); return IRQ_HANDLED; } |
From: <pal...@us...> - 2005-01-16 23:27:53
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24723/drivers/block Modified Files: gcn-aram.c Log Message: Fixed buffer invalidation on interrupt reception. Index: gcn-aram.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-aram.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gcn-aram.c 13 Jan 2005 01:55:31 -0000 1.3 +++ gcn-aram.c 16 Jan 2005 23:27:42 -0000 1.4 @@ -34,18 +34,20 @@ #include <linux/hdreg.h> /* HDIO_GETGEO */ #include <asm/io.h> +#include <asm/scatterlist.h> #define ARAM_MAJOR Z2RAM_MAJOR #define HARD_SECTOR_SIZE 512 +//#define ARAM_DEBUG //#define ARAM_DBG printk #define ARAM_DBG(format, arg...); { } #define ARAM_SOUNDMEMORYOFFSET 0 #define ARAM_BUFFERSIZE (16*1024*1024 - ARAM_SOUNDMEMORYOFFSET) -#define AI_DSP_CSR (void* __iomem)0xCC00500A +#define AI_DSP_CSR (void __iomem *)0xCC00500A #define AI_CSR_RES (1<<0) #define AI_CSR_PIINT (1<<1) #define AI_CSR_HALT (1<<2) @@ -58,9 +60,17 @@ #define AI_CSR_DSPDMA (1<<9) #define AI_CSR_RESETXXX (1<<11) -#define AR_DMA_MMADDR (void* __iomem)0xCC005020 -#define AR_DMA_ARADDR (void* __iomem)0xCC005024 -#define AR_DMA_CNT (void* __iomem)0xCC005028 +#define AR_SIZE (void __iomem*)0xCC005012 +#define AR_MODE (void __iomem*)0xCC005016 +#define AR_MODE_ACCELERATOR (1 << 0) + +#define AR_REFRESH (void __iomem*)0xCC00501A + +#define AR_DMA_MMADDR (void __iomem*)0xCC005020 +#define AR_DMA_ARADDR (void __iomem*)0xCC005024 +#define AR_DMA_CNT_H (void __iomem*)0xCC005028 +#define AR_DMA_CNT_L (void __iomem*)0xCC00502A +#define AR_DMA_CNT AR_DMA_CNT_H #define ARAM_READ (1 << 31) #define ARAM_WRITE 0 @@ -80,36 +90,51 @@ static inline void ARAM_StartDMA(void *mmAddr, unsigned long arAddr, unsigned long length, unsigned long type) { +#ifdef ARAM_DEBUG + if ((readw(AI_DSP_CSR) & AI_CSR_DSPDMA) || + (readl(AR_DMA_CNT) & 0x7FFFFFFF)) { + printk("StartDMA called, but there is already an outstanding DMA request!\n"); + } + else if (((u32)mmAddr & 0x1F) || (length & 0x1F)) { + printk("StartDMA called on unaligned data\n"); + } +#endif + /* process */ writel(virt_to_phys(mmAddr),AR_DMA_MMADDR); writel(arAddr,AR_DMA_ARADDR); + /* writing the low-word kicks off the DMA */ writel(type | length,AR_DMA_CNT); } static irqreturn_t aram_irq(int irq,void *dev_id,struct pt_regs *regs) { unsigned long flags; - unsigned long len; u16 tmp; struct request *req; if (readw(AI_DSP_CSR) & AI_CSR_ARINT) { +#ifdef ARAM_DEBUG + if (readw(AI_DSP_CSR) & AI_CSR_DSPDMA) { + flags = readl(AR_DMA_CNT); + do { + cpu_relax(); + } while(readw(AI_DSP_CSR) & AI_CSR_DSPDMA); + printk("Received interrupt before completion, number of bytes remaining was %lu\n",flags); + } + else if ((flags = (readl(AR_DMA_CNT) & 0x7FFFFFFF))) { + printk("Received interrupt before completion, number of bytes remaining was %lu\n",flags); + } +#endif /* ack the int, but only ours */ local_irq_save(flags); tmp = readw(AI_DSP_CSR); - tmp &= ~(AI_CSR_PIINT | AI_CSR_AIDINT | AI_CSR_DSPINT); + tmp &= ~(AI_CSR_AIDINT | AI_CSR_DSPINT); writew(tmp,AI_DSP_CSR); local_irq_restore(flags); /* now process */ - spin_lock_irqsave(&aram_lock,flags); + spin_lock(&aram_lock); if ((req = irq_request)) { - len = req->current_nr_sectors << 9; - /* invalidate cache on read */ - if (rq_data_dir(req) == READ) { - invalidate_dcache_range( - (unsigned long)req->buffer, - (unsigned long)req->buffer + len); - } /* complete request */ if (!end_that_request_first(req,1, req->current_nr_sectors)) { @@ -126,7 +151,7 @@ else { printk(KERN_ERR DEVICE_NAME " received an interrupt but no irq_request set\n"); } - spin_unlock_irqrestore(&aram_lock,flags); + spin_unlock(&aram_lock); /* return handled */ return IRQ_HANDLED; } @@ -140,7 +165,7 @@ unsigned long start; unsigned long len; unsigned long flags; - /*unsigned long flags; */ + spin_lock_irqsave(&aram_lock,flags); while ((req = elv_next_request(q))) { @@ -165,6 +190,9 @@ irq_request = req; /* schedule DMA */ if (rq_data_dir(req) == READ) { + invalidate_dcache_range((unsigned long)req->buffer, + (unsigned long)req->buffer + + len); ARAM_StartDMA(req->buffer, start + ARAM_SOUNDMEMORYOFFSET, len, ARAM_READ); @@ -228,7 +256,7 @@ return ioctl_by_bdev(inode->i_bdev,cmd,arg); case HDIO_GETGEO: /* fake the entries */ - geo.heads = 32; + geo.heads = 16; geo.sectors = 32; geo.start = 0; geo.cylinders = ARAM_BUFFERSIZE / (geo.heads * geo.sectors); @@ -301,11 +329,14 @@ /* lock this since audio driver might be using it */ local_irq_save(flags); - writew(readw(AI_DSP_CSR) | AI_CSR_ARINTMASK,AI_DSP_CSR); + writew(readw(AI_DSP_CSR) | AI_CSR_ARINTMASK | AI_CSR_PIINT,AI_DSP_CSR); local_irq_restore(flags); refCount = 0; + printk("ARAM info: Size = %u,Mode = 0x%x,Refresh = %u\n", + readw(AR_SIZE),readw(AR_MODE),readl(AR_REFRESH)); + return 0; out_queue: |
From: <pal...@us...> - 2005-01-13 01:55:46
|
Update of /cvsroot/gc-linux/linux/sound/ppc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31027/sound/ppc Modified Files: gcn-ai.c Log Message: Fixed Fatal ARAM bug when audio+aram might reset each others interrupt handling. Various other fixes Index: gcn-ai.c =================================================================== RCS file: /cvsroot/gc-linux/linux/sound/ppc/gcn-ai.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- gcn-ai.c 8 Jan 2005 22:46:48 -0000 1.3 +++ gcn-ai.c 13 Jan 2005 01:55:33 -0000 1.4 @@ -253,6 +253,7 @@ { snd_gcn_t *chip = (snd_gcn_t *) dev; unsigned long flags; + u16 tmp; if (readw(AI_DSP_CSR) & AI_CSR_AIDINT) { u_int32_t addr; @@ -283,9 +284,12 @@ snd_pcm_period_elapsed(chip->playback_substream); } - /* ack AI DMA interrupt */ + /* ack AI DMA interrupt, go through lengths to only ack + the audio part */ local_irq_save(flags); - writew(readw(AI_DSP_CSR) | AI_CSR_AIDINT,AI_DSP_CSR); + tmp = readw(AI_DSP_CSR); + tmp &= ~(AI_CSR_PIINT | AI_CSR_ARINT | AI_CSR_DSPINT); + writew(tmp,AI_DSP_CSR); local_irq_restore(flags); return IRQ_HANDLED; @@ -358,9 +362,8 @@ strcpy(card->shortname, card->driver); sprintf(card->longname, "Nintendo GameCube Audio Interface"); - if (request_irq - (DSP_IRQ, snd_gcn_interrupt, SA_SHIRQ, card->shortname, - gcn_audio)) { + if (request_irq(DSP_IRQ, snd_gcn_interrupt, SA_INTERRUPT | SA_SHIRQ, + card->shortname,gcn_audio)) { snd_printk(KERN_ERR "%s: unable to grab IRQ %d\n", card->shortname, DSP_IRQ); return -EBUSY; |
From: <pal...@us...> - 2005-01-13 01:55:46
|
Update of /cvsroot/gc-linux/linux/drivers/net In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31027/drivers/net Modified Files: gcn-bba.c Log Message: Fixed Fatal ARAM bug when audio+aram might reset each others interrupt handling. Various other fixes Index: gcn-bba.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/net/gcn-bba.c,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- gcn-bba.c 8 Jan 2005 22:46:48 -0000 1.4 +++ gcn-bba.c 13 Jan 2005 01:55:32 -0000 1.5 @@ -29,6 +29,7 @@ #include <linux/delay.h> #include <linux/wait.h> #include <linux/inet.h> +#include <linux/sched.h> #include <linux/netdevice.h> #include <linux/etherdevice.h> #include <linux/skbuff.h> @@ -1200,10 +1201,18 @@ static int int_kthread(void *param) { + unsigned long flags; struct bba_private *priv = (struct bba_private *)param; /* set my priority through the roof */ - //set_user_nice(current,-20); + daemonize("knetexi"); current->flags |= PF_NOFREEZE; + /* this next section is copied from __setscheduler, it's static so + we can't use it here */ + /*local_irq_save(flags); + current->policy = SCHED_FIFO; + current->rt_priority = MAX_RT_PRIO - 1; + current->prio = MAX_USER_RT_PRIO - 1 - current->rt_priority; + local_irq_restore(flags); */ /* go into running state */ __set_current_state(TASK_RUNNING); do { |
From: <pal...@us...> - 2005-01-13 01:55:45
|
Update of /cvsroot/gc-linux/linux/drivers/exi In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31027/drivers/exi Modified Files: exi-bus.c exi-hw.c exi_priv.h Log Message: Fixed Fatal ARAM bug when audio+aram might reset each others interrupt handling. Various other fixes Index: exi-bus.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-bus.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- exi-bus.c 8 Jan 2005 22:46:47 -0000 1.1 +++ exi-bus.c 13 Jan 2005 01:55:32 -0000 1.2 @@ -132,6 +132,10 @@ return 0; } +static void exi_release(struct device *dev) +{ +} + static void exi_bus_scan(void) { unsigned int channel; @@ -160,10 +164,11 @@ exi_devices[channel][device].dev.bus = &exi_bus_type; exi_devices[channel][device].dev.platform_data = &exi_data[channel]; + exi_devices[channel][device].dev.release = exi_release; /* now ID the device */ exi_devices[channel][device].eid.id = exi_synchronous_id(channel,device); - if (exi_devices[channel][device].eid.id != EXI_INVALID_ID) { + if (exi_devices[channel][device].eid.id != EXI_INVALID_ID || ((device == 0) && (readl(EXI_CSR(channel)) & EXI_CSR_EXT))) { printk(KERN_INFO "%s:%s: %x\n", exi_parent[channel].bus_id, exi_devices[channel][device].dev.bus_id, @@ -177,27 +182,22 @@ void exi_bus_insert(unsigned int channel,unsigned int bInsert) { - /* - this is all wrong, just skip this function, no hot-plug support - for now - */ - /*u32 device; - u32 id; - - if (bInsert) - { - for (device=0;device<EXI_DEVICES_PER_CHANNEL;++device) { - id = exi_synchronous_id(channel,device); - if (id != EXI_INVALID_ID) { - device_register(&exi_devices[channel][device].dev); - } - } + u32 device; + /* channel 2 is really the BBA */ + if (channel == 2) { + channel = 0; + device = 2; } else { - device_register(&exi_devices[channel][0].dev); - device_register(&exi_devices[channel][1].dev); - device_register(&exi_devices[channel][2].dev); - }*/ + device = 0; + } + + if (bInsert) { + device_register(&exi_devices[channel][device].dev); + } + else { + device_unregister(&exi_devices[channel][device].dev); + } } static int __init exi_init(void) Index: exi-hw.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi-hw.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- exi-hw.c 8 Jan 2005 22:46:47 -0000 1.1 +++ exi-hw.c 13 Jan 2005 01:55:32 -0000 1.2 @@ -140,7 +140,7 @@ u32 val; /* flush the cache when writing */ if (subcmd->flags & EXI_CMD_WRITE) { - flush_dcache_range((u32)subcmd->data, + clean_dcache_range((u32)subcmd->data, (u32)subcmd->data + subcmd->len); } /* convert to physical */ Index: exi_priv.h =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/exi/exi_priv.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- exi_priv.h 8 Jan 2005 22:46:47 -0000 1.1 +++ exi_priv.h 13 Jan 2005 01:55:32 -0000 1.2 @@ -42,8 +42,6 @@ #define EXI_MAX_CHANNELS 3 #define EXI_DEVICES_PER_CHANNEL 3 -#define EXI_INVALID_ID 0xFFFFFFFF - #define EXI_READ 0 #define EXI_WRITE 1 #define EXI_CSR_BASE (void* __iomem)0xCC006800 |
From: <pal...@us...> - 2005-01-13 01:55:45
|
Update of /cvsroot/gc-linux/linux/include/linux In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31027/include/linux Modified Files: exi.h Log Message: Fixed Fatal ARAM bug when audio+aram might reset each others interrupt handling. Various other fixes Index: exi.h =================================================================== RCS file: /cvsroot/gc-linux/linux/include/linux/exi.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- exi.h 8 Jan 2005 22:46:48 -0000 1.7 +++ exi.h 13 Jan 2005 01:55:32 -0000 1.8 @@ -22,6 +22,8 @@ #define EXI_CMD_READ (0x00000000) #define EXI_CMD_WRITE (0x00000005) +#define EXI_INVALID_ID 0xFFFFFFFF + /* ---------------------- exi_command flags |
From: <pal...@us...> - 2005-01-13 01:55:43
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv31027/drivers/block Modified Files: gcn-aram.c Log Message: Fixed Fatal ARAM bug when audio+aram might reset each others interrupt handling. Various other fixes Index: gcn-aram.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-aram.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- gcn-aram.c 9 Jan 2005 23:56:21 -0000 1.2 +++ gcn-aram.c 13 Jan 2005 01:55:31 -0000 1.3 @@ -46,12 +46,17 @@ #define ARAM_BUFFERSIZE (16*1024*1024 - ARAM_SOUNDMEMORYOFFSET) #define AI_DSP_CSR (void* __iomem)0xCC00500A +#define AI_CSR_RES (1<<0) #define AI_CSR_PIINT (1<<1) +#define AI_CSR_HALT (1<<2) +#define AI_CSR_AIDINT (1<<3) +#define AI_CSR_AIDINTMASK (1<<4) #define AI_CSR_ARINT (1<<5) #define AI_CSR_ARINTMASK (1<<6) #define AI_CSR_DSPINT (1<<7) #define AI_CSR_DSPINTMASK (1<<8) -#define AI_CSR_DMA_STATUS (1<<9) +#define AI_CSR_DSPDMA (1<<9) +#define AI_CSR_RESETXXX (1<<11) #define AR_DMA_MMADDR (void* __iomem)0xCC005020 #define AR_DMA_ARADDR (void* __iomem)0xCC005024 @@ -72,10 +77,10 @@ static struct request * volatile irq_request; static u32 refCount; -static inline void ARAM_StartDMA(unsigned long mmAddr, unsigned long arAddr, +static inline void ARAM_StartDMA(void *mmAddr, unsigned long arAddr, unsigned long length, unsigned long type) { - writel(mmAddr,AR_DMA_MMADDR); + writel(virt_to_phys(mmAddr),AR_DMA_MMADDR); writel(arAddr,AR_DMA_ARADDR); writel(type | length,AR_DMA_CNT); } @@ -84,12 +89,15 @@ { unsigned long flags; unsigned long len; + u16 tmp; struct request *req; if (readw(AI_DSP_CSR) & AI_CSR_ARINT) { - /* ack the int */ + /* ack the int, but only ours */ local_irq_save(flags); - writew(readw(AI_DSP_CSR) | AI_CSR_ARINT,AI_DSP_CSR); + tmp = readw(AI_DSP_CSR); + tmp &= ~(AI_CSR_PIINT | AI_CSR_AIDINT | AI_CSR_DSPINT); + writew(tmp,AI_DSP_CSR); local_irq_restore(flags); /* now process */ @@ -99,8 +107,8 @@ /* invalidate cache on read */ if (rq_data_dir(req) == READ) { invalidate_dcache_range( - (u32)req->buffer, - (u32)req->buffer + len); + (unsigned long)req->buffer, + (unsigned long)req->buffer + len); } /* complete request */ if (!end_that_request_first(req,1, @@ -122,7 +130,6 @@ /* return handled */ return IRQ_HANDLED; } - return IRQ_NONE; } @@ -132,8 +139,9 @@ struct request *req; unsigned long start; unsigned long len; - + unsigned long flags; /*unsigned long flags; */ + spin_lock_irqsave(&aram_lock,flags); while ((req = elv_next_request(q))) { /* get length */ @@ -149,7 +157,7 @@ } else if (irq_request) { /* already scheduled? */ blk_stop_queue(q); - return; + goto exit_func; } /* dequeue */ blkdev_dequeue_request(req); @@ -157,19 +165,21 @@ irq_request = req; /* schedule DMA */ if (rq_data_dir(req) == READ) { - ARAM_StartDMA((unsigned long)req->buffer, + ARAM_StartDMA(req->buffer, start + ARAM_SOUNDMEMORYOFFSET, len, ARAM_READ); } else { - flush_dcache_range((unsigned long)req->buffer, + clean_dcache_range((unsigned long)req->buffer, (unsigned long)req->buffer + len); - ARAM_StartDMA((unsigned long)req->buffer, + ARAM_StartDMA(req->buffer, start + ARAM_SOUNDMEMORYOFFSET, len, ARAM_WRITE); } - return; + goto exit_func; } + exit_func: + spin_unlock_irqrestore(&aram_lock,flags); } static int aram_open(struct inode *inode, struct file *filp) @@ -252,7 +262,8 @@ unsigned long flags; /* get the irq */ - if ((ret=request_irq(ARAM_IRQ,aram_irq,SA_SHIRQ,"ARAM",IRQ_PARAM))) + if ((ret=request_irq(ARAM_IRQ,aram_irq,SA_INTERRUPT | SA_SHIRQ,"ARAM", + IRQ_PARAM))) goto out_irq; if ((ret=register_blkdev(ARAM_MAJOR, DEVICE_NAME))) |
From: <pal...@us...> - 2005-01-09 23:56:36
|
Update of /cvsroot/gc-linux/linux/drivers/block In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv18564/linux-cvs-2.6.9/drivers/block Modified Files: gcn-aram.c Log Message: Finished massive changes to ARAM driver. Now uses IRQ for improved I/O Index: gcn-aram.c =================================================================== RCS file: /cvsroot/gc-linux/linux/drivers/block/gcn-aram.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- gcn-aram.c 19 Oct 2004 23:47:09 -0000 1.1 +++ gcn-aram.c 9 Jan 2005 23:56:21 -0000 1.2 @@ -23,7 +23,7 @@ #include <linux/module.h> #include <linux/blkdev.h> #include <linux/delay.h> - +#include <linux/wait.h> #include <asm/setup.h> #include <asm/bitops.h> #include <asm/pgtable.h> @@ -33,187 +33,201 @@ #include <linux/fcntl.h> /* O_ACCMODE */ #include <linux/hdreg.h> /* HDIO_GETGEO */ +#include <asm/io.h> + #define ARAM_MAJOR Z2RAM_MAJOR -#define TRUE (1) -#define FALSE (0) +#define HARD_SECTOR_SIZE 512 //#define ARAM_DBG printk #define ARAM_DBG(format, arg...); { } -//#define RAMDISK -#undef RAMDISK +#define ARAM_SOUNDMEMORYOFFSET 0 +#define ARAM_BUFFERSIZE (16*1024*1024 - ARAM_SOUNDMEMORYOFFSET) -#ifdef RAMDISK -unsigned char *RAMDISKBuffer; -#define ARAM_BUFFERSIZE 10*1024 -#else -#define ARAM_BUFFERSIZE 14*1024*1024 -#define ARAM_SOUNDMEMORYOFFSET 1024*1024 - //#define ARAM_BLOCKSIZE 1024 -#endif +#define AI_DSP_CSR (void* __iomem)0xCC00500A +#define AI_CSR_PIINT (1<<1) +#define AI_CSR_ARINT (1<<5) +#define AI_CSR_ARINTMASK (1<<6) +#define AI_CSR_DSPINT (1<<7) +#define AI_CSR_DSPINTMASK (1<<8) +#define AI_CSR_DMA_STATUS (1<<9) -static int current_device = -1; -static spinlock_t aram_lock = SPIN_LOCK_UNLOCKED; +#define AR_DMA_MMADDR (void* __iomem)0xCC005020 +#define AR_DMA_ARADDR (void* __iomem)0xCC005024 +#define AR_DMA_CNT (void* __iomem)0xCC005028 -extern void flush_cache(void *start, unsigned int len); +#define ARAM_READ (1 << 31) +#define ARAM_WRITE 0 + +#define ARAM_DMA_ALIGNMENT_MASK 0x1F + +#define ARAM_IRQ 6 +#define IRQ_PARAM (void*)0xFFFFFFFA +static spinlock_t aram_lock = SPIN_LOCK_UNLOCKED; static struct block_device_operations aram_fops; static struct gendisk *aram_gendisk; +static struct request_queue *aram_queue; +static struct request * volatile irq_request; +static u32 refCount; -#define AR_DMA_MMADDR_H *(unsigned short*)0xCC005020 -#define AR_DMA_MMADDR_L *(unsigned short*)0xCC005022 -#define AR_DMA_ARADDR_H *(unsigned short*)0xCC005024 -#define AR_DMA_ARADDR_L *(unsigned short*)0xCC005026 -#define AR_DMA_CNT_H *(unsigned short*)0xCC005028 -#define AR_DMA_CNT_L *(unsigned short*)0xCC00502A -#define AI_DSP_STATUS *(volatile unsigned short*)0xCC00500A - -#define ARAM_READ 1 -#define ARAM_WRITE 0 +static inline void ARAM_StartDMA(unsigned long mmAddr, unsigned long arAddr, + unsigned long length, unsigned long type) +{ + writel(mmAddr,AR_DMA_MMADDR); + writel(arAddr,AR_DMA_ARADDR); + writel(type | length,AR_DMA_CNT); +} -void ARAM_StartDMA(unsigned long mmAddr, unsigned long arAddr, - unsigned long length, unsigned long type) +static irqreturn_t aram_irq(int irq,void *dev_id,struct pt_regs *regs) { + unsigned long flags; + unsigned long len; + struct request *req; - //printk("ARAM DMA copy -> %08x - %08x - %d %d\n",mmAddr,arAddr,length,type); - AR_DMA_MMADDR_H = mmAddr >> 16; - AR_DMA_MMADDR_L = mmAddr & 0xFFFF; - AR_DMA_ARADDR_H = arAddr >> 16; - AR_DMA_ARADDR_L = arAddr & 0xFFFF; - AR_DMA_CNT_H = (type << 15) | (length >> 16); - AR_DMA_CNT_L = length & 0xFFFF; + if (readw(AI_DSP_CSR) & AI_CSR_ARINT) { + /* ack the int */ + local_irq_save(flags); + writew(readw(AI_DSP_CSR) | AI_CSR_ARINT,AI_DSP_CSR); + local_irq_restore(flags); + + /* now process */ + spin_lock_irqsave(&aram_lock,flags); + if ((req = irq_request)) { + len = req->current_nr_sectors << 9; + /* invalidate cache on read */ + if (rq_data_dir(req) == READ) { + invalidate_dcache_range( + (u32)req->buffer, + (u32)req->buffer + len); + } + /* complete request */ + if (!end_that_request_first(req,1, + req->current_nr_sectors)) { + add_disk_randomness(req->rq_disk); + end_that_request_last(req); + } + else { + printk(KERN_ERR DEVICE_NAME " device still thinks there are requests but DMA has finished\n"); + } + irq_request = NULL; + /* start queue back up */ + blk_start_queue(aram_queue); + } + else { + printk(KERN_ERR DEVICE_NAME " received an interrupt but no irq_request set\n"); + } + spin_unlock_irqrestore(&aram_lock,flags); + /* return handled */ + return IRQ_HANDLED; + } - // We wait, until DMA finished - while (AI_DSP_STATUS & 0x200) ; + return IRQ_NONE; } -/* - echo YUHUUhello1234567890hello12345678901234567890CCC > /dev/aram - dd if=/dev/aram - cat /dev/aram | wc -c -*/ + static void do_aram_request(request_queue_t * q) { struct request *req; - blk_stop_queue(q); - spin_lock(&aram_lock); - - while ((req = elv_next_request(q)) != NULL) { - unsigned long start = req->sector << 9; - unsigned long len = req->current_nr_sectors << 9; - - if (start + len > ARAM_BUFFERSIZE) { + unsigned long start; + unsigned long len; + + /*unsigned long flags; */ + + while ((req = elv_next_request(q))) { + /* get length */ + start = req->sector << 9; + len = req->current_nr_sectors << 9; + + if ((start + len) > ARAM_BUFFERSIZE) { printk(KERN_ERR DEVICE_NAME - ": bad access: block=%lu, count=%u\n", - (unsigned long)req->sector, - req->current_nr_sectors); + ": bad access: block=%lu, count=%lu\n", + (unsigned long)req->sector,len); end_request(req, 0); continue; } -#ifdef RAMDISK - if (rq_data_dir(req) == READ) { - memcpy(req->buffer, (char *)&RAMDISKBuffer[start], len); - } else { - memcpy((char *)&RAMDISKBuffer[start], req->buffer, len); + else if (irq_request) { /* already scheduled? */ + blk_stop_queue(q); + return; } -#else + /* dequeue */ + blkdev_dequeue_request(req); + blk_stop_queue(q); + irq_request = req; + /* schedule DMA */ if (rq_data_dir(req) == READ) { - //memset(req->buffer,0,len); - //flush_dcache_range((unsigned long)req->buffer,(unsigned long)req->buffer + len); ARAM_StartDMA((unsigned long)req->buffer, start + ARAM_SOUNDMEMORYOFFSET, len, ARAM_READ); - //flush_dcache_range((unsigned long)req->buffer,(unsigned long)req->buffer + len); - invalidate_dcache_range((unsigned long)req->buffer, - (unsigned long)req->buffer + - len); - } else { + } + else { flush_dcache_range((unsigned long)req->buffer, (unsigned long)req->buffer + len); ARAM_StartDMA((unsigned long)req->buffer, start + ARAM_SOUNDMEMORYOFFSET, len, ARAM_WRITE); } -#endif - - end_request(req, 1); + return; } - - spin_unlock(&aram_lock); - blk_start_queue(q); - } static int aram_open(struct inode *inode, struct file *filp) { + unsigned long flags; + ARAM_DBG("A-RAM Open device\n"); - - int device; - int rc = -ENOMEM; - - device = iminor(inode); - - if (current_device != -1 && current_device != device) { - rc = -EBUSY; - goto err_out; - } -#ifdef RAMDISK - if (current_device == -1) { - current_device = device; - set_capacity(aram_gendisk, ARAM_BUFFERSIZE >> 9); - } -#endif + /* only allow a minor of 0 to be opened */ + if (iminor(inode)) + return -ENODEV; + /* allow multiple people to open this file */ + spin_lock_irqsave(&aram_lock,flags); + ++refCount; + spin_unlock_irqrestore(&aram_lock,flags); return 0; - - err_out: - ARAM_DBG("A-RAM Open device Error %d\n", rc); - - return rc; - } -/* - mkfs.minix /dev/aram - mount -t minix /dev/aram /mnt/ - - dd if=/dev/urandom bs=1M count=10 > /mnt/test.bin - dd if=/dev/urandom bs=1M count=1 > /mnt/test1.bin +static int aram_release(struct inode *inode, struct file *filp) +{ + unsigned long flags; + ARAM_DBG("A-RAM Close device\n"); + /* lower ref count */ + spin_lock_irqsave(&aram_lock,flags); + --refCount; + spin_unlock_irqrestore(&aram_lock,flags); + return 0; +} - -*/ static int aram_ioctl(struct inode *inode, struct file *file, unsigned int cmd, unsigned long arg) { + struct hd_geometry geo; + ARAM_DBG("A-RAM IOCTL\n"); - - if (cmd == HDIO_GETGEO) { - struct hd_geometry geo; - /* - * get geometry: we have to fake one... trim the size to a - * multiple of 2048 (1M): tell we have 32 sectors, 64 heads, - * whatever cylinders. - */ - geo.heads = 64; + + switch (cmd) { + case BLKRAGET: + case BLKFRAGET: + case BLKROGET: + case BLKBSZGET: + case BLKSSZGET: + case BLKSECTGET: + case BLKGETSIZE: + case BLKGETSIZE64: + case BLKFLSBUF: + return ioctl_by_bdev(inode->i_bdev,cmd,arg); + case HDIO_GETGEO: + /* fake the entries */ + geo.heads = 32; geo.sectors = 32; geo.start = 0; geo.cylinders = ARAM_BUFFERSIZE / (geo.heads * geo.sectors); - - if (copy_to_user((void *)arg, &geo, sizeof(geo))) + if (copy_to_user((void __user*)arg,&geo,sizeof(geo))) return -EFAULT; return 0; + default: + return -ENOTTY; } - - return -EINVAL; -} - -static int aram_release(struct inode *inode, struct file *filp) -{ - ARAM_DBG("A-RAM Close device\n"); - if (current_device == -1) - return 0; - - return 0; } static int aram_revalidate(struct gendisk *disk) @@ -230,31 +244,27 @@ .ioctl = aram_ioctl, }; -static struct request_queue *aram_queue; -#if 0 -static irqreturn_t aram_interrupt(int irq, void *dev_id, struct pt_regs *regs) -{ - printk("interrupt received\n"); - return 0; -} -#endif int __init aram_init(void) { int ret; + unsigned long flags; - printk("A-Ram Block Device Driver Init\n"); - - ret = -EBUSY; - if (register_blkdev(ARAM_MAJOR, DEVICE_NAME)) - goto err; - + /* get the irq */ + if ((ret=request_irq(ARAM_IRQ,aram_irq,SA_SHIRQ,"ARAM",IRQ_PARAM))) + goto out_irq; + + if ((ret=register_blkdev(ARAM_MAJOR, DEVICE_NAME))) + goto out_blkdev; + ret = -ENOMEM; aram_gendisk = alloc_disk(1); if (!aram_gendisk) goto out_disk; - + + spin_lock_init(&aram_lock); + aram_queue = blk_init_queue(do_aram_request, &aram_lock); if (!aram_queue) goto out_queue; @@ -262,61 +272,60 @@ aram_gendisk->major = ARAM_MAJOR; aram_gendisk->first_minor = 0; aram_gendisk->fops = &aram_fops; - sprintf(aram_gendisk->disk_name, "aram"); + strcpy(aram_gendisk->disk_name, "aram"); strcpy(aram_gendisk->devfs_name, aram_gendisk->disk_name); aram_gendisk->queue = aram_queue; - set_capacity(aram_gendisk, ARAM_BUFFERSIZE >> 9); + /* we can only have one segment at a time */ + blk_queue_max_phys_segments(aram_queue,1); + blk_queue_max_hw_segments(aram_queue,1); + /* make sectors equal to the pagesize */ + blk_queue_hardsect_size(aram_queue,HARD_SECTOR_SIZE); + /* set the DMA alignment */ + blk_queue_dma_alignment(aram_queue,ARAM_DMA_ALIGNMENT_MASK); + + set_capacity(aram_gendisk, ARAM_BUFFERSIZE >> 9); add_disk(aram_gendisk); - spin_lock_init(&aram_lock); - -#if 0 - ret = - request_irq(5, aram_interrupt, 0, aram_gendisk->disk_name, - aram_gendisk); - if (ret) { - //BBA_DBG(KERN_ERR "%s: unable to get IRQ %d\n", dev->name, dev->irq); - return ret; - } -#endif -#define AUDIO_DSP_CONTROL *(volatile u_int16_t *)(0xCC00500a) -#define AI_CSR_ARINTMASK (1<<6) - AUDIO_DSP_CONTROL &= ~AI_CSR_ARINTMASK; + /* lock this since audio driver might be using it */ + local_irq_save(flags); + writew(readw(AI_DSP_CSR) | AI_CSR_ARINTMASK,AI_DSP_CSR); + local_irq_restore(flags); -#ifdef RAMDISK - RAMDISKBuffer = kmalloc(ARAM_BUFFERSIZE, GFP_KERNEL); -#endif + refCount = 0; return 0; - out_queue: + out_queue: + del_gendisk(aram_gendisk); put_disk(aram_gendisk); - out_disk: + out_disk: unregister_blkdev(ARAM_MAJOR, DEVICE_NAME); - err: + out_blkdev: + free_irq(ARAM_IRQ,IRQ_PARAM); + out_irq: return ret; } void __exit aram_cleanup(void) { + free_irq(ARAM_IRQ,IRQ_PARAM); blk_unregister_region(MKDEV(ARAM_MAJOR, 0), 256); + if (unregister_blkdev(ARAM_MAJOR, DEVICE_NAME) != 0) printk(KERN_ERR DEVICE_NAME ": unregister of device failed\n"); - + del_gendisk(aram_gendisk); put_disk(aram_gendisk); blk_cleanup_queue(aram_queue); - -#ifdef RAMDISK - kfree(RAMDISKBuffer); -#endif - + return; } +MODULE_AUTHOR("Todd Jeffreys <to...@vo...>"); +MODULE_DESCRIPTION("Gamecube ARAM block driver"); MODULE_LICENSE("GPL"); module_init(aram_init); module_exit(aram_cleanup); |