aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/etrax/patches-2.6.29
diff options
context:
space:
mode:
authorClaudio Mignanti <c.mignanti@gmail.com>2009-05-09 13:15:16 +0000
committerClaudio Mignanti <c.mignanti@gmail.com>2009-05-09 13:15:16 +0000
commit46e8f85a9c472eb382651707acecb258f2377af5 (patch)
tree77347c2fbd27d74aa93873358ca4b2812272f4d4 /target/linux/etrax/patches-2.6.29
parent007269b55ed1a794b16ef577f3db574b83305cde (diff)
downloadmaster-187ad058-46e8f85a9c472eb382651707acecb258f2377af5.tar.gz
master-187ad058-46e8f85a9c472eb382651707acecb258f2377af5.tar.bz2
master-187ad058-46e8f85a9c472eb382651707acecb258f2377af5.zip
[etrax] add patches for 2.6.30, remove config-default
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@15743 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/etrax/patches-2.6.29')
-rw-r--r--target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch51
-rw-r--r--target/linux/etrax/patches-2.6.29/200-samsung_flash.patch11
-rw-r--r--target/linux/etrax/patches-2.6.29/201-flashsize.patch88
-rw-r--r--target/linux/etrax/patches-2.6.29/300-sysfs.patch43
-rw-r--r--target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch15
-rw-r--r--target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch41
-rw-r--r--target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch263
7 files changed, 0 insertions, 512 deletions
diff --git a/target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch b/target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch
deleted file mode 100644
index bf43914f73..0000000000
--- a/target/linux/etrax/patches-2.6.29/100-cris-makefiles.patch
+++ /dev/null
@@ -1,51 +0,0 @@
---- a/arch/cris/Makefile
-+++ b/arch/cris/Makefile
-@@ -40,7 +40,7 @@ endif
-
- LD = $(CROSS_COMPILE)ld -mcrislinux
-
--OBJCOPYFLAGS := -O binary -R .note -R .comment -S
-+OBJCOPYFLAGS := -O binary -R .bss -R .note -R .note.gnu.build-id -R .comment -S
-
- CPPFLAGS_vmlinux.lds = -DDRAM_VIRTUAL_BASE=0x$(CONFIG_ETRAX_DRAM_VIRTUAL_BASE)
-
---- a/arch/cris/arch-v10/boot/Makefile
-+++ b/arch/cris/arch-v10/boot/Makefile
-@@ -2,8 +2,6 @@
- # arch/cris/arch-v10/boot/Makefile
- #
-
--OBJCOPYFLAGS = -O binary --remove-section=.bss
--
- subdir- := compressed rescue
- targets := Image
-
-@@ -13,7 +11,7 @@ $(obj)/Image: vmlinux FORCE
-
- $(obj)/compressed/vmlinux: $(obj)/Image FORCE
- $(Q)$(MAKE) $(build)=$(obj)/compressed $@
-- $(Q)$(MAKE) $(build)=$(obj)/rescue $(obj)/rescue/rescue.bin
-+# $(Q)$(MAKE) $(build)=$(obj)/rescue $(obj)/rescue/rescue.bin
-
- $(obj)/zImage: $(obj)/compressed/vmlinux
- @cp $< $@
---- a/arch/cris/arch-v10/boot/compressed/Makefile
-+++ b/arch/cris/arch-v10/boot/compressed/Makefile
-@@ -6,7 +6,6 @@ asflags-y += $(LINUXINCLUDE)
- ccflags-y += -O2 $(LINUXINCLUDE)
- ldflags-y += -T $(srctree)/$(src)/decompress.lds
- OBJECTS = $(obj)/head.o $(obj)/misc.o
--OBJCOPYFLAGS = -O binary --remove-section=.bss
-
- quiet_cmd_image = BUILD $@
- cmd_image = cat $(obj)/decompress.bin $(obj)/piggy.gz > $@
---- a/arch/cris/arch-v10/boot/rescue/Makefile
-+++ b/arch/cris/arch-v10/boot/rescue/Makefile
-@@ -5,7 +5,6 @@
- ccflags-y += -O2 $(LINUXINCLUDE)
- asflags-y += $(LINUXINCLUDE)
- ldflags-y += -T $(srctree)/$(src)/rescue.lds
--OBJCOPYFLAGS = -O binary --remove-section=.bss
- obj-$(CONFIG_ETRAX_AXISFLASHMAP) = head.o
- OBJECT := $(obj)/head.o
-
diff --git a/target/linux/etrax/patches-2.6.29/200-samsung_flash.patch b/target/linux/etrax/patches-2.6.29/200-samsung_flash.patch
deleted file mode 100644
index d04c2794d4..0000000000
--- a/target/linux/etrax/patches-2.6.29/200-samsung_flash.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- a/drivers/mtd/chips/cfi_cmdset_0002.c
-+++ b/drivers/mtd/chips/cfi_cmdset_0002.c
-@@ -374,7 +374,7 @@ struct mtd_info *cfi_cmdset_0002(struct
-
- cfi_fixup_major_minor(cfi, extp);
-
-- if (extp->MajorVersion != '1' ||
-+ if (extp->MajorVersion < '1' || extp->MajorVersion > '3' ||
- (extp->MinorVersion < '0' || extp->MinorVersion > '4')) {
- if (cfi->mfr == MANUFACTURER_SAMSUNG &&
- (extp->MajorVersion == '3' && extp->MinorVersion == '3')) {
diff --git a/target/linux/etrax/patches-2.6.29/201-flashsize.patch b/target/linux/etrax/patches-2.6.29/201-flashsize.patch
deleted file mode 100644
index 42a467f749..0000000000
--- a/target/linux/etrax/patches-2.6.29/201-flashsize.patch
+++ /dev/null
@@ -1,88 +0,0 @@
---- a/arch/cris/arch-v10/drivers/axisflashmap.c
-+++ b/arch/cris/arch-v10/drivers/axisflashmap.c
-@@ -113,7 +113,7 @@ static struct map_info map_cse1 = {
-
- /* If no partition-table was found, we use this default-set. */
- #define MAX_PARTITIONS 7
--#define NUM_DEFAULT_PARTITIONS 3
-+#define NUM_DEFAULT_PARTITIONS 2
-
- /*
- * Default flash size is 2MB. CONFIG_ETRAX_PTABLE_SECTOR is most likely the
-@@ -122,19 +122,14 @@ static struct map_info map_cse1 = {
- */
- static struct mtd_partition axis_default_partitions[NUM_DEFAULT_PARTITIONS] = {
- {
-- .name = "boot firmware",
-- .size = CONFIG_ETRAX_PTABLE_SECTOR,
-- .offset = 0
-- },
-- {
- .name = "kernel",
-- .size = 0x200000 - (6 * CONFIG_ETRAX_PTABLE_SECTOR),
-- .offset = CONFIG_ETRAX_PTABLE_SECTOR
-+ .size = 0x00,
-+ .offset = 0
- },
- {
-- .name = "filesystem",
-- .size = 5 * CONFIG_ETRAX_PTABLE_SECTOR,
-- .offset = 0x200000 - (5 * CONFIG_ETRAX_PTABLE_SECTOR)
-+ .name = "rootfs",
-+ .size = 0x200000,
-+ .offset = 0x200000
- }
- };
-
-@@ -281,6 +276,11 @@ static int __init init_axis_flash(void)
- struct partitiontable_entry *ptable;
- int use_default_ptable = 1; /* Until proven otherwise. */
- const char pmsg[] = " /dev/flash%d at 0x%08x, size 0x%08x\n";
-+ unsigned int kernel_part_size = 0;
-+ unsigned char *flash_mem = (unsigned char*)(FLASH_CACHED_ADDR);
-+ unsigned int flash_scan_count = 0;
-+ const char *part_magic = "ACME_PART_MAGIC";
-+ unsigned int magic_len = strlen(part_magic);
-
- if (!(mymtd = flash_probe())) {
- /* There's no reason to use this module if no flash chip can
-@@ -293,6 +293,31 @@ static int __init init_axis_flash(void)
- axisflash_mtd = mymtd;
- }
-
-+ /* scan flash to findout where out partition starts */
-+
-+ printk(KERN_INFO "Scanning flash for end of kernel magic\n");
-+ for(flash_scan_count = 0; flash_scan_count < 100000; flash_scan_count++) {
-+ if(strncmp(&flash_mem[flash_scan_count], part_magic, magic_len - 1) == 0) {
-+ kernel_part_size = flash_mem[flash_scan_count + magic_len ];
-+ kernel_part_size <<= 8;
-+ kernel_part_size += flash_mem[flash_scan_count + magic_len + 2];
-+ kernel_part_size <<= 8;
-+ kernel_part_size += flash_mem[flash_scan_count + magic_len + 1];
-+ kernel_part_size <<= 8;
-+ kernel_part_size += flash_mem[flash_scan_count + magic_len + 3];
-+ printk(KERN_INFO "Kernel ends at 0x%.08X\n", kernel_part_size);
-+ flash_scan_count = 1100000;
-+ }
-+ }
-+
-+
-+ if(kernel_part_size){
-+ kernel_part_size = (kernel_part_size & 0xffff0000);
-+ axis_default_partitions[0].size = kernel_part_size;
-+ axis_default_partitions[1].size = mymtd->size - axis_default_partitions[0].size;
-+ axis_default_partitions[1].offset = axis_default_partitions[0].size;
-+ }
-+
- if (mymtd) {
- mymtd->owner = THIS_MODULE;
- ptable_head = (struct partitiontable_head *)(FLASH_CACHED_ADDR +
---- a/arch/cris/arch-v10/lib/hw_settings.S
-+++ b/arch/cris/arch-v10/lib/hw_settings.S
-@@ -60,3 +60,5 @@
- .dword R_PORT_PB_SET
- .dword PB_SET_VALUE
- .dword 0 ; No more register values
-+ .ascii "ACME_PART_MAGIC"
-+ .dword 0xdeadc0de
diff --git a/target/linux/etrax/patches-2.6.29/300-sysfs.patch b/target/linux/etrax/patches-2.6.29/300-sysfs.patch
deleted file mode 100644
index ffaec36758..0000000000
--- a/target/linux/etrax/patches-2.6.29/300-sysfs.patch
+++ /dev/null
@@ -1,43 +0,0 @@
---- a/drivers/serial/crisv10.c
-+++ b/drivers/serial/crisv10.c
-@@ -27,6 +27,7 @@ static char *serial_version = "$Revision
- #include <linux/kernel.h>
- #include <linux/mutex.h>
- #include <linux/bitops.h>
-+#include <linux/device.h>
-
- #include <asm/io.h>
- #include <asm/irq.h>
-@@ -4393,6 +4394,7 @@ static const struct tty_operations rs_op
- .tiocmset = rs_tiocmset
- };
-
-+static struct class *rs_class;
- static int __init
- rs_init(void)
- {
-@@ -4527,6 +4529,24 @@ rs_init(void)
- #endif
- #endif /* CONFIG_SVINTO_SIM */
-
-+ rs_class = class_create(THIS_MODULE, "rs_tty");
-+#ifdef CONFIG_ETRAX_SERIAL_PORT0
-+ device_create(rs_class, NULL,
-+ MKDEV(TTY_MAJOR, 64), NULL, "ttyS0");
-+#endif
-+#ifdef CONFIG_ETRAX_SERIAL_PORT1
-+ device_create(rs_class, NULL,
-+ MKDEV(TTY_MAJOR, 65), NULL, "ttyS1");
-+#endif
-+#ifdef CONFIG_ETRAX_SERIAL_PORT2
-+ device_create(rs_class, NULL,
-+ MKDEV(TTY_MAJOR, 66), NULL, "ttyS2");
-+#endif
-+#ifdef CONFIG_ETRAX_SERIAL_PORT3
-+ device_create(rs_class, NULL,
-+ MKDEV(TTY_MAJOR, 67), NULL, "ttyS3");
-+#endif
-+
- return 0;
- }
-
diff --git a/target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch b/target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch
deleted file mode 100644
index ed2bfe459f..0000000000
--- a/target/linux/etrax/patches-2.6.29/400-Kconfig_source.patch
+++ /dev/null
@@ -1,15 +0,0 @@
---- a/arch/cris/Kconfig
-+++ b/arch/cris/Kconfig
-@@ -662,6 +662,12 @@ source "drivers/block/Kconfig"
-
- source "drivers/ide/Kconfig"
-
-+source "drivers/scsi/Kconfig"
-+
-+source "drivers/media/Kconfig"
-+
-+source "sound/Kconfig"
-+
- source "drivers/net/Kconfig"
-
- source "drivers/i2c/Kconfig"
diff --git a/target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch b/target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch
deleted file mode 100644
index dc63165c5e..0000000000
--- a/target/linux/etrax/patches-2.6.29/500-i2c_gvc.patch
+++ /dev/null
@@ -1,41 +0,0 @@
---- a/arch/cris/arch-v10/drivers/Kconfig
-+++ b/arch/cris/arch-v10/drivers/Kconfig
-@@ -450,11 +450,18 @@ config ETRAX_I2C
- i2c_arg = I2C_READARG(STA013_READ_ADDR, reg);
- val = ioctl(fd, _IO(ETRAXI2C_IOCTYPE, I2C_READREG), i2c_arg);
-
-+config ETRAX_I2C_GVC
-+ bool "I2C GVC support"
-+ depends on ETRAX_ARCH_V10 && !ETRAX_I2C
-+ select ETRAX_I2C_USES_PB_NOT_PB_I2C
-+ help
-+ Enables an I2C driver with Geert Vancompernolle improvement.
-+
- # this is true for most products since PB-I2C seems to be somewhat
- # flawed..
- config ETRAX_I2C_USES_PB_NOT_PB_I2C
- bool "I2C uses PB not PB-I2C"
-- depends on ETRAX_I2C
-+ depends on ETRAX_I2C || ETRAX_I2C_GVC
- help
- Select whether to use the special I2C mode in the PB I/O register or
- not. This option needs to be selected in order to use some drivers
-@@ -478,7 +485,7 @@ config ETRAX_I2C_CLK_PORT
-
- config ETRAX_I2C_EEPROM
- bool "I2C EEPROM (non-volatile RAM) support"
-- depends on ETRAX_I2C
-+ depends on ETRAX_I2C || ETRAX_I2C_GVC
- help
- Enables I2C EEPROM (non-volatile RAM) on PB0 and PB1 using the I2C
- driver. Select size option: Probed, 2k, 8k, 16k.
---- a/arch/cris/arch-v10/drivers/Makefile
-+++ b/arch/cris/arch-v10/drivers/Makefile
-@@ -4,6 +4,7 @@
-
- obj-$(CONFIG_ETRAX_AXISFLASHMAP) += axisflashmap.o
- obj-$(CONFIG_ETRAX_I2C) += i2c.o
-+obj-$(CONFIG_ETRAX_I2C_GVC) += i2c_gvc.o
- obj-$(CONFIG_ETRAX_I2C_EEPROM) += eeprom.o
- obj-$(CONFIG_ETRAX_GPIO) += gpio.o
- obj-$(CONFIG_ETRAX_DS1302) += ds1302.o
diff --git a/target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch b/target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch
deleted file mode 100644
index 4032550661..0000000000
--- a/target/linux/etrax/patches-2.6.29/600-fix_serial_cris.patch
+++ /dev/null
@@ -1,263 +0,0 @@
---- a/drivers/serial/crisv10.c
-+++ b/drivers/serial/crisv10.c
-@@ -28,12 +28,15 @@ static char *serial_version = "$Revision
- #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 @@ static struct e100_serial rs_table[] = {
-
- #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 @@ rs_open(struct tty_struct *tty, struct f
- 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 @@ static const struct tty_operations rs_op
- .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;