etrax: dump to 2.6.29

SVN-Revision: 15260
owl
Claudio Mignanti 2009-04-19 15:36:30 +00:00
parent 964d68dcec
commit 14aa5dc5c1
12 changed files with 291 additions and 205 deletions

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -10,7 +10,7 @@ ARCH:=cris
BOARD:=etrax
BOARDNAME:=Foxboard (ETRAX 100LX)
FEATURES:=squashfs jffs2
LINUX_VERSION:=2.6.25.20
LINUX_VERSION:=2.6.29.1
include $(INCLUDE_DIR)/target.mk

View File

@ -2,42 +2,12 @@
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_BASE_SMALL=0
CONFIG_BITREVERSE=y
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BLK_DEV_NBD is not set
CONFIG_BLK_DEV_SD=y
# CONFIG_BONDING is not set
CONFIG_BOUNCE=y
# CONFIG_BRIDGE is not set
# CONFIG_BT is not set
# CONFIG_CIFS is not set
CONFIG_CLASSIC_RCU=y
CONFIG_CRIS=y
# CONFIG_CRIS_MACH_ARTPEC3 is not set
# CONFIG_CRYPTO_AEAD is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_AUTHENC is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_CCM is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_CTR is not set
# CONFIG_CRYPTO_GCM is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_LZO is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_SALSA20 is not set
# CONFIG_CRYPTO_SEQIV is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_ETRAX100LX is not set
CONFIG_ETRAX100LX_V2=y
# CONFIG_ETRAXFS is not set
@ -68,6 +38,7 @@ CONFIG_ETRAX_FLASH1_SIZE=0
CONFIG_ETRAX_FLASH_BUSWIDTH=2
CONFIG_ETRAX_GPIO=y
# CONFIG_ETRAX_I2C is not set
# CONFIG_ETRAX_I2C_GVC is not set
# CONFIG_ETRAX_KMALLOCED_MODULES is not set
CONFIG_ETRAX_LED1G=2
CONFIG_ETRAX_LED1R=2
@ -165,7 +136,6 @@ CONFIG_ETRAX_USB_HOST_PORT2=y
# CONFIG_ETRAX_VCS_SIM is not set
# CONFIG_ETRAX_WATCHDOG is not set
CONFIG_EXT2_FS=y
# CONFIG_EXT3_FS is not set
CONFIG_FORCE_MAX_ZONEORDER=6
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_IOMAP=y
@ -177,8 +147,6 @@ CONFIG_HAVE_IDE=y
# CONFIG_HAVE_KPROBES is not set
# CONFIG_HAVE_KRETPROBES is not set
# CONFIG_HAVE_OPROFILE is not set
# CONFIG_HFSPLUS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_I2C is not set
# CONFIG_IBM_NEW_EMAC_EMAC4 is not set
@ -186,14 +154,7 @@ CONFIG_HAVE_IDE=y
# CONFIG_IBM_NEW_EMAC_TAH is not set
# CONFIG_IBM_NEW_EMAC_ZMII is not set
# CONFIG_IDE is not set
# CONFIG_IEEE80211 is not set
# CONFIG_IFB is not set
# CONFIG_IMQ is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_ISO9660_FS is not set
# CONFIG_LLC is not set
# CONFIG_MINIX_FS is not set
# CONFIG_MSDOS_FS is not set
CONFIG_MTD=y
CONFIG_MTDRAM_ABS_POS=0x0
CONFIG_MTDRAM_ERASE_SIZE=128
@ -244,19 +205,16 @@ CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NFSD is not set
# CONFIG_NFS_FS is not set
CONFIG_NLS=y
CONFIG_NLS_CODEPAGE_437=y
CONFIG_NLS_ISO8859_1=y
CONFIG_NO_IOPORT=y
# CONFIG_OOM_REBOOT is not set
# CONFIG_PPP is not set
# CONFIG_RTC is not set
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_SCSI=y
# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set
# CONFIG_SCSI_WAIT_SCAN is not set
CONFIG_SCSI_WAIT_SCAN=m
# CONFIG_SERIAL_8250 is not set
CONFIG_SLABINFO=y
# CONFIG_SPARSEMEM_STATIC is not set
@ -264,21 +222,12 @@ CONFIG_SLABINFO=y
# CONFIG_SVINTO_SIM is not set
# CONFIG_SYSTEM_PROFILER is not set
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TUN is not set
# CONFIG_UDF_FS is not set
CONFIG_UID16=y
CONFIG_USB=y
# CONFIG_USB_ACM is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_R8A66597_HCD is not set
# CONFIG_USB_SERIAL is not set
CONFIG_USB_STORAGE=y
CONFIG_USB_SUPPORT=y
# CONFIG_VFAT_FS is not set
# CONFIG_VIDEO_V4L2_COMMON is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_WLAN_80211 is not set
# CONFIG_XFS_FS is not set

View File

@ -2,38 +2,17 @@
# CONFIG_ARCH_HAS_ILOG2_U64 is not set
CONFIG_BASE_SMALL=0
CONFIG_BITREVERSE=y
# CONFIG_BLK_DEV_LOOP is not set
# CONFIG_BONDING is not set
# CONFIG_BLK_DEV_INITRD is not set
CONFIG_BOUNCE=y
# CONFIG_BRIDGE is not set
# CONFIG_BT is not set
# CONFIG_CIFS is not set
CONFIG_CLASSIC_RCU=y
# CONFIG_CFG80211 is not set
CONFIG_COMPAT_NET_DEV_OPS=y
CONFIG_CRIS=y
# CONFIG_CRIS_MACH_ARTPEC3 is not set
# CONFIG_CRYPTO_AEAD2 is not set
# CONFIG_CRYPTO_ALGAPI2 is not set
# CONFIG_CRYPTO_ANUBIS is not set
# CONFIG_CRYPTO_BLKCIPHER2 is not set
# CONFIG_CRYPTO_BLOWFISH is not set
# CONFIG_CRYPTO_CAMELLIA is not set
# CONFIG_CRYPTO_CAST5 is not set
# CONFIG_CRYPTO_CAST6 is not set
# CONFIG_CRYPTO_CRC32C is not set
# CONFIG_CRYPTO_HASH2 is not set
# CONFIG_CRYPTO_KHAZAD is not set
# CONFIG_CRYPTO_MANAGER2 is not set
# CONFIG_CRYPTO_MD4 is not set
# CONFIG_CRYPTO_NULL is not set
# CONFIG_CRYPTO_RNG2 is not set
# CONFIG_CRYPTO_SERPENT is not set
# CONFIG_CRYPTO_SHA256 is not set
# CONFIG_CRYPTO_SHA512 is not set
# CONFIG_CRYPTO_TEA is not set
# CONFIG_CRYPTO_TEST is not set
# CONFIG_CRYPTO_TGR192 is not set
# CONFIG_CRYPTO_TWOFISH is not set
# CONFIG_CRYPTO_WP512 is not set
# CONFIG_DCB is not set
CONFIG_DEFAULT_VEGAS=y
# CONFIG_DEFAULT_WESTWOOD is not set
# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
# CONFIG_ETRAX100LX is not set
CONFIG_ETRAX100LX_V2=y
# CONFIG_ETRAXFS is not set
@ -64,6 +43,7 @@ CONFIG_ETRAX_FLASH1_SIZE=0
CONFIG_ETRAX_FLASH_BUSWIDTH=2
CONFIG_ETRAX_GPIO=y
# CONFIG_ETRAX_I2C is not set
# CONFIG_ETRAX_I2C_GVC is not set
# CONFIG_ETRAX_KMALLOCED_MODULES is not set
CONFIG_ETRAX_LED1G=2
CONFIG_ETRAX_LED1R=2
@ -87,72 +67,8 @@ CONFIG_ETRAX_RESCUE_SER0=y
# CONFIG_ETRAX_RESCUE_SER1 is not set
# CONFIG_ETRAX_RESCUE_SER2 is not set
# CONFIG_ETRAX_RESCUE_SER3 is not set
# CONFIG_ETRAX_RS485 is not set
CONFIG_ETRAX_SDRAM=y
CONFIG_ETRAX_SER0_CD_ON_PA_BIT=-1
CONFIG_ETRAX_SER0_CD_ON_PB_BIT=-1
CONFIG_ETRAX_SER0_DSR_ON_PA_BIT=-1
CONFIG_ETRAX_SER0_DSR_ON_PB_BIT=-1
CONFIG_ETRAX_SER0_DTR_ON_PA_BIT=-1
CONFIG_ETRAX_SER0_DTR_ON_PB_BIT=-1
# CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_MIXED is not set
CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_ON_NONE=y
# CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_ON_PA is not set
# CONFIG_ETRAX_SER0_DTR_RI_DSR_CD_ON_PB is not set
CONFIG_ETRAX_SER0_RI_ON_PA_BIT=-1
CONFIG_ETRAX_SER0_RI_ON_PB_BIT=-1
CONFIG_ETRAX_SER2_CD_ON_PA_BIT=-1
CONFIG_ETRAX_SER2_CD_ON_PB_BIT=-1
CONFIG_ETRAX_SER2_DSR_ON_PA_BIT=-1
CONFIG_ETRAX_SER2_DSR_ON_PB_BIT=-1
CONFIG_ETRAX_SER2_DTR_ON_PA_BIT=-1
CONFIG_ETRAX_SER2_DTR_ON_PB_BIT=-1
# CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_MIXED is not set
CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_ON_NONE=y
# CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_ON_PA is not set
# CONFIG_ETRAX_SER2_DTR_RI_DSR_CD_ON_PB is not set
CONFIG_ETRAX_SER2_RI_ON_PA_BIT=-1
CONFIG_ETRAX_SER2_RI_ON_PB_BIT=-1
CONFIG_ETRAX_SER3_CD_ON_PA_BIT=-1
CONFIG_ETRAX_SER3_CD_ON_PB_BIT=-1
CONFIG_ETRAX_SER3_DSR_ON_PA_BIT=-1
CONFIG_ETRAX_SER3_DSR_ON_PB_BIT=-1
CONFIG_ETRAX_SER3_DTR_ON_PA_BIT=-1
CONFIG_ETRAX_SER3_DTR_ON_PB_BIT=-1
# CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_MIXED is not set
CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_ON_NONE=y
# CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_ON_PA is not set
# CONFIG_ETRAX_SER3_DTR_RI_DSR_CD_ON_PB is not set
CONFIG_ETRAX_SER3_RI_ON_PA_BIT=-1
CONFIG_ETRAX_SER3_RI_ON_PB_BIT=-1
CONFIG_ETRAX_SERIAL=y
# CONFIG_ETRAX_SERIAL_FAST_TIMER is not set
# CONFIG_ETRAX_SERIAL_FLUSH_DMA_FAST is not set
CONFIG_ETRAX_SERIAL_PORT0=y
# CONFIG_ETRAX_SERIAL_PORT0_DMA0_OUT is not set
# CONFIG_ETRAX_SERIAL_PORT0_DMA1_IN is not set
# CONFIG_ETRAX_SERIAL_PORT0_DMA6_OUT is not set
# CONFIG_ETRAX_SERIAL_PORT0_DMA7_IN is not set
CONFIG_ETRAX_SERIAL_PORT0_NO_DMA_IN=y
CONFIG_ETRAX_SERIAL_PORT0_NO_DMA_OUT=y
# CONFIG_ETRAX_SERIAL_PORT1 is not set
CONFIG_ETRAX_SERIAL_PORT2=y
CONFIG_ETRAX_SERIAL_PORT2_DMA2_OUT=y
CONFIG_ETRAX_SERIAL_PORT2_DMA3_IN=y
# CONFIG_ETRAX_SERIAL_PORT2_DMA6_OUT is not set
# CONFIG_ETRAX_SERIAL_PORT2_DMA7_IN is not set
# CONFIG_ETRAX_SERIAL_PORT2_NO_DMA_IN is not set
# CONFIG_ETRAX_SERIAL_PORT2_NO_DMA_OUT is not set
CONFIG_ETRAX_SERIAL_PORT3=y
# CONFIG_ETRAX_SERIAL_PORT3_DMA2_OUT is not set
# CONFIG_ETRAX_SERIAL_PORT3_DMA3_IN is not set
CONFIG_ETRAX_SERIAL_PORT3_DMA4_OUT=y
CONFIG_ETRAX_SERIAL_PORT3_DMA5_IN=y
# CONFIG_ETRAX_SERIAL_PORT3_DMA8_OUT is not set
# CONFIG_ETRAX_SERIAL_PORT3_DMA9_IN is not set
# CONFIG_ETRAX_SERIAL_PORT3_NO_DMA_IN is not set
# CONFIG_ETRAX_SERIAL_PORT3_NO_DMA_OUT is not set
CONFIG_ETRAX_SERIAL_RX_TIMEOUT_TICKS=1
# CONFIG_ETRAX_SERIAL is not set
# CONFIG_ETRAX_SOFT_SHUTDOWN is not set
# CONFIG_ETRAX_SYNCHRONOUS_SERIAL is not set
CONFIG_ETRAX_USB_HOST=y
@ -161,9 +77,9 @@ CONFIG_ETRAX_USB_HOST_PORT2=y
# CONFIG_ETRAX_VCS_SIM is not set
# CONFIG_ETRAX_WATCHDOG is not set
CONFIG_EXT2_FS=y
# CONFIG_EXT3_FS is not set
CONFIG_FORCE_MAX_ZONEORDER=6
# CONFIG_FREEZER is not set
CONFIG_GENERIC_FIND_LAST_BIT=y
CONFIG_GENERIC_FIND_NEXT_BIT=y
CONFIG_GENERIC_IOMAP=y
# CONFIG_GEN_RTC is not set
@ -173,22 +89,11 @@ CONFIG_HAS_IOMEM=y
# CONFIG_HAVE_AOUT is not set
# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set
CONFIG_HAVE_IDE=y
# CONFIG_HFSPLUS_FS is not set
# CONFIG_HFS_FS is not set
# CONFIG_HW_RANDOM is not set
# CONFIG_I2C is not set
# CONFIG_IBM_NEW_EMAC_MAL_CLR_ICINTSTAT is not set
# CONFIG_IBM_NEW_EMAC_MAL_COMMON_ERR is not set
# CONFIG_IBM_NEW_EMAC_NO_FLOW_CTRL is not set
# CONFIG_IDE is not set
# CONFIG_IEEE80211 is not set
# CONFIG_IFB is not set
CONFIG_INITRAMFS_SOURCE=""
# CONFIG_ISO9660_FS is not set
CONFIG_KMOD=y
# CONFIG_LLC is not set
# CONFIG_MINIX_FS is not set
# CONFIG_MSDOS_FS is not set
# CONFIG_LIB80211 is not set
# CONFIG_MAC80211 is not set
CONFIG_MISC_FILESYSTEMS=y
CONFIG_MTD=y
CONFIG_MTDRAM_ABS_POS=0x0
CONFIG_MTDRAM_ERASE_SIZE=128
@ -217,6 +122,7 @@ CONFIG_MTD_COMPLEX_MAPPINGS=y
CONFIG_MTD_CONCAT=y
CONFIG_MTD_GEN_PROBE=y
CONFIG_MTD_JEDECPROBE=y
# CONFIG_MTD_LPDDR is not set
CONFIG_MTD_MAP_BANK_WIDTH_1=y
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
CONFIG_MTD_MAP_BANK_WIDTH_2=y
@ -234,10 +140,9 @@ CONFIG_MTD_PARTITIONS=y
# CONFIG_MTD_REDBOOT_PARTS is not set
# CONFIG_MTD_ROM is not set
# CONFIG_MTD_SLRAM is not set
# CONFIG_MTD_TESTS is not set
# CONFIG_NETDEV_1000 is not set
# CONFIG_NFSD is not set
# CONFIG_NFS_FS is not set
CONFIG_NF_CT_ACCT=y
# CONFIG_NET_SCH_DRR is not set
# CONFIG_NF_DEFRAG_IPV4 is not set
CONFIG_NLS=y
CONFIG_NLS_CODEPAGE_437=y
@ -246,26 +151,22 @@ CONFIG_NO_IOPORT=y
# CONFIG_OOM_REBOOT is not set
CONFIG_PAGEFLAGS_EXTENDED=y
# CONFIG_PHYS_ADDR_T_64BIT is not set
# CONFIG_PPP is not set
CONFIG_ROMFS_FS=y
# CONFIG_RTC is not set
CONFIG_RWSEM_GENERIC_SPINLOCK=y
# CONFIG_SCSI_DMA is not set
# CONFIG_SERIAL_8250 is not set
# CONFIG_STP is not set
# CONFIG_SVINTO_SIM is not set
# CONFIG_SYSTEM_PROFILER is not set
CONFIG_SYSVIPC_SYSCTL=y
# CONFIG_TUN is not set
# CONFIG_UDF_FS is not set
CONFIG_UID16=y
CONFIG_USB=y
# CONFIG_USB_ACM is not set
# CONFIG_USB_ARCH_HAS_EHCI is not set
# CONFIG_USB_ARCH_HAS_HCD is not set
# CONFIG_USB_ARCH_HAS_OHCI is not set
# CONFIG_USB_PRINTER is not set
# CONFIG_USB_SERIAL is not set
# CONFIG_USB_OXU210HP_HCD is not set
CONFIG_USB_SUPPORT=y
# CONFIG_VFAT_FS is not set
# CONFIG_VLAN_8021Q is not set
# CONFIG_WIRELESS_EXT_SYSFS is not set
# CONFIG_WIRELESS_OLD_REGULATORY is not set
# CONFIG_WLAN_80211 is not set

View File

@ -1,5 +1,5 @@
#
# Copyright (C) 2006 OpenWrt.org
# Copyright (C) 2006-2009 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
@ -13,7 +13,7 @@ define Image/BuildKernel
endef
define Image/Prepare
cp $(LINUX_DIR)/arch/cris/boot/zImage $(KDIR)/vmlinuz
cp $(LINUX_DIR)/arch/cris/arch-v10/boot/zImage $(KDIR)/vmlinuz
$(MAKE) -C e100boot compile
$(MAKE) -C mkfimage compile
$(INSTALL_BIN) ./boot_linux $(BIN_DIR)

View File

@ -1,29 +0,0 @@
Index: linux-2.6.28.9/drivers/serial/crisv10.c
===================================================================
--- linux-2.6.28.9.orig/drivers/serial/crisv10.c 2009-04-08 16:47:06.000000000 +0200
+++ linux-2.6.28.9/drivers/serial/crisv10.c 2009-04-08 16:47:27.000000000 +0200
@@ -28,6 +28,7 @@
#include <linux/mutex.h>
#include <linux/bitops.h>
#include <linux/device.h>
+#include <linux/proc_fs.h>
#include <asm/io.h>
#include <asm/irq.h>
@@ -4389,7 +4390,6 @@
.break_ctl = rs_break,
.send_xchar = rs_send_xchar,
.wait_until_sent = rs_wait_until_sent,
- .read_proc = rs_read_proc,
.tiocmget = rs_tiocmget,
.tiocmset = rs_tiocmset
};
@@ -4455,7 +4455,7 @@
if (tty_register_driver(driver))
panic("Couldn't register serial driver\n");
/* do some initializing for the separate ports */
-
+ driver->proc_entry->read_proc = rs_read_proc;
for (i = 0, info = rs_table; i < NR_PORTS; i++,info++) {
if (info->enabled) {
if (cris_request_io_interface(info->io_if,

View File

@ -0,0 +1,265 @@
Index: linux-2.6.28.9/drivers/serial/crisv10.c
===================================================================
--- linux-2.6.28.9.orig/drivers/serial/crisv10.c 2009-04-10 12:58:18.000000000 +0200
+++ linux-2.6.28.9/drivers/serial/crisv10.c 2009-04-10 12:58:22.000000000 +0200
@@ -28,12 +28,15 @@
#include <linux/mutex.h>
#include <linux/bitops.h>
#include <linux/device.h>
+#include <linux/seq_file.h>
+#include <linux/delay.h>
+#include <linux/module.h>
+#include <linux/uaccess.h>
+#include <linux/io.h>
-#include <asm/io.h>
#include <asm/irq.h>
#include <asm/dma.h>
#include <asm/system.h>
-#include <linux/delay.h>
#include <arch/svinto.h>
@@ -457,7 +460,6 @@
#define NR_PORTS (sizeof(rs_table)/sizeof(struct e100_serial))
-static struct ktermios *serial_termios[NR_PORTS];
#ifdef CONFIG_ETRAX_SERIAL_FAST_TIMER
static struct fast_timer fast_timers[NR_PORTS];
#endif
@@ -4221,151 +4223,132 @@
return 0;
}
+#ifdef CONFIG_PROC_FS
/*
* /proc fs routines....
*/
-static int line_info(char *buf, struct e100_serial *info)
+static void seq_line_info(struct seq_file *m, struct e100_serial *info)
{
- char stat_buf[30];
- int ret;
unsigned long tmp;
- ret = sprintf(buf, "%d: uart:E100 port:%lX irq:%d",
- info->line, (unsigned long)info->ioport, info->irq);
+ seq_printf(m, "%d: uart:E100 port:%lX irq:%d",
+ info->line, (unsigned long)info->ioport, info->irq);
if (!info->ioport || (info->type == PORT_UNKNOWN)) {
- ret += sprintf(buf+ret, "\n");
- return ret;
+ seq_printf(m, "\n");
+ return;
}
- stat_buf[0] = 0;
- stat_buf[1] = 0;
- if (!E100_RTS_GET(info))
- strcat(stat_buf, "|RTS");
- if (!E100_CTS_GET(info))
- strcat(stat_buf, "|CTS");
- if (!E100_DTR_GET(info))
- strcat(stat_buf, "|DTR");
- if (!E100_DSR_GET(info))
- strcat(stat_buf, "|DSR");
- if (!E100_CD_GET(info))
- strcat(stat_buf, "|CD");
- if (!E100_RI_GET(info))
- strcat(stat_buf, "|RI");
-
- ret += sprintf(buf+ret, " baud:%d", info->baud);
-
- ret += sprintf(buf+ret, " tx:%lu rx:%lu",
+ seq_printf(m, " baud:%d", info->baud);
+ seq_printf(m, " tx:%lu rx:%lu",
(unsigned long)info->icount.tx,
(unsigned long)info->icount.rx);
tmp = CIRC_CNT(info->xmit.head, info->xmit.tail, SERIAL_XMIT_SIZE);
- if (tmp) {
- ret += sprintf(buf+ret, " tx_pend:%lu/%lu",
- (unsigned long)tmp,
- (unsigned long)SERIAL_XMIT_SIZE);
- }
-
- ret += sprintf(buf+ret, " rx_pend:%lu/%lu",
- (unsigned long)info->recv_cnt,
- (unsigned long)info->max_recv_cnt);
+ if (tmp)
+ seq_printf(m, " tx_pend:%lu/%lu",
+ (unsigned long)tmp,
+ (unsigned long)SERIAL_XMIT_SIZE);
+
+ seq_printf(m, " rx_pend:%lu/%lu",
+ (unsigned long)info->recv_cnt,
+ (unsigned long)info->max_recv_cnt);
#if 1
if (info->port.tty) {
-
if (info->port.tty->stopped)
- ret += sprintf(buf+ret, " stopped:%i",
- (int)info->port.tty->stopped);
+ seq_printf(m, " stopped:%i",
+ (int)info->port.tty->stopped);
if (info->port.tty->hw_stopped)
- ret += sprintf(buf+ret, " hw_stopped:%i",
- (int)info->port.tty->hw_stopped);
+ seq_printf(m, " hw_stopped:%i",
+ (int)info->port.tty->hw_stopped);
}
{
unsigned char rstat = info->ioport[REG_STATUS];
- if (rstat & IO_MASK(R_SERIAL0_STATUS, xoff_detect) )
- ret += sprintf(buf+ret, " xoff_detect:1");
+ if (rstat & IO_MASK(R_SERIAL0_STATUS, xoff_detect))
+ seq_printf(m, " xoff_detect:1");
}
#endif
-
-
-
if (info->icount.frame)
- ret += sprintf(buf+ret, " fe:%lu",
- (unsigned long)info->icount.frame);
+ seq_printf(m, " fe:%lu", (unsigned long)info->icount.frame);
if (info->icount.parity)
- ret += sprintf(buf+ret, " pe:%lu",
- (unsigned long)info->icount.parity);
+ seq_printf(m, " pe:%lu", (unsigned long)info->icount.parity);
if (info->icount.brk)
- ret += sprintf(buf+ret, " brk:%lu",
- (unsigned long)info->icount.brk);
+ seq_printf(m, " brk:%lu", (unsigned long)info->icount.brk);
if (info->icount.overrun)
- ret += sprintf(buf+ret, " oe:%lu",
- (unsigned long)info->icount.overrun);
+ seq_printf(m, " oe:%lu", (unsigned long)info->icount.overrun);
/*
* Last thing is the RS-232 status lines
*/
- ret += sprintf(buf+ret, " %s\n", stat_buf+1);
- return ret;
+ if (!E100_RTS_GET(info))
+ seq_puts(m, "|RTS");
+ if (!E100_CTS_GET(info))
+ seq_puts(m, "|CTS");
+ if (!E100_DTR_GET(info))
+ seq_puts(m, "|DTR");
+ if (!E100_DSR_GET(info))
+ seq_puts(m, "|DSR");
+ if (!E100_CD_GET(info))
+ seq_puts(m, "|CD");
+ if (!E100_RI_GET(info))
+ seq_puts(m, "|RI");
+ seq_puts(m, "\n");
}
-int rs_read_proc(char *page, char **start, off_t off, int count,
- int *eof, void *data)
+
+static int crisv10_proc_show(struct seq_file *m, void *v)
{
- int i, len = 0, l;
- off_t begin = 0;
+ int i;
+
+ seq_printf(m, "serinfo:1.0 driver:%s\n", serial_version);
- len += sprintf(page, "serinfo:1.0 driver:%s\n",
- serial_version);
- for (i = 0; i < NR_PORTS && len < 4000; i++) {
+ for (i = 0; i < NR_PORTS; i++) {
if (!rs_table[i].enabled)
continue;
- l = line_info(page + len, &rs_table[i]);
- len += l;
- if (len+begin > off+count)
- goto done;
- if (len+begin < off) {
- begin += len;
- len = 0;
- }
+ seq_line_info(m, &rs_table[i]);
}
#ifdef DEBUG_LOG_INCLUDED
for (i = 0; i < debug_log_pos; i++) {
- len += sprintf(page + len, "%-4i %lu.%lu ", i, debug_log[i].time, timer_data_to_ns(debug_log[i].timer_data));
- len += sprintf(page + len, debug_log[i].string, debug_log[i].value);
- if (len+begin > off+count)
- goto done;
- if (len+begin < off) {
- begin += len;
- len = 0;
- }
+ seq_printf(m, "%-4i %lu.%lu ",
+ i, debug_log[i].time,
+ timer_data_to_ns(debug_log[i].timer_data));
+ seq_printf(m, debug_log[i].string, debug_log[i].value);
}
- len += sprintf(page + len, "debug_log %i/%i %li bytes\n",
- i, DEBUG_LOG_SIZE, begin+len);
+ seq_printf(m, "debug_log %i/%i\n", i, DEBUG_LOG_SIZE);
debug_log_pos = 0;
#endif
+ return 0;
+}
- *eof = 1;
-done:
- if (off >= len+begin)
- return 0;
- *start = page + (off-begin);
- return ((count < begin+len-off) ? count : begin+len-off);
+static int crisv10_proc_open(struct inode *inode, struct file *file)
+{
+ return single_open(file, crisv10_proc_show, NULL);
}
+static const struct file_operations crisv10_proc_fops = {
+ .owner = THIS_MODULE,
+ .open = crisv10_proc_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = single_release,
+};
+#endif
+
+
/* Finally, routines used to initialize the serial driver. */
-static void
-show_serial_version(void)
+static void show_serial_version(void)
{
printk(KERN_INFO
- "ETRAX 100LX serial-driver %s, (c) 2000-2004 Axis Communications AB\r\n",
+ "ETRAX 100LX serial-driver %s, "
+ "(c) 2000-2004 Axis Communications AB\r\n",
&serial_version[11]); /* "$Revision: x.yy" */
}
@@ -4389,9 +4372,11 @@
.break_ctl = rs_break,
.send_xchar = rs_send_xchar,
.wait_until_sent = rs_wait_until_sent,
- .read_proc = rs_read_proc,
.tiocmget = rs_tiocmget,
- .tiocmset = rs_tiocmset
+ .tiocmset = rs_tiocmset,
+#ifdef CONFIG_PROC_FS
+ .proc_fops = &crisv10_proc_fops,
+#endif
};
static struct class *rs_class;