[parisc-linux] Patch to enable IrDA :-)
Grant Grundler
grundler@dsl2.external.hp.com
Sun, 02 Jun 2002 11:06:46 -0600
Jochen Friedrich wrote:
> Hi,
>
> this tiny patch enables the usage of IrDA dongles on the PA-RISC :-)
No one has committed this yet since Alan Cox suggested:
| With these ifdefs for ARM and parisc maybe
|
| arg = IRDA_MODEM_BITS;
|
| and sticking that in the header would be good ?
I took a quick look.
> #ifdef TIOCM_OUT2 /* Not defined for ARM */
> arg = TIOCM_OUT2;
> +#endif
This comment is wrong:
include/asm-arm/termios.h:#define TIOCM_OUT2 0x4000
Seems every arch defines this now in include/asm-*/termios.h.
> +#ifdef CONFIG_PARISC /* PA-RISC uses OUT1 as hardware flow control bit
> */
> + arg |= TIOCM_OUT1;
> #endif
I'v re-hacked this along the lines that Alan suggested.
But given the comment was wrong, thoughts?
I'm not able to test this.
Someone else will have to test and commit.
grant
Index: include/asm-i386/termios.h
===================================================================
RCS file: /var/cvs/linux/include/asm-i386/termios.h,v
retrieving revision 1.3
diff -u -p -r1.3 termios.h
--- include/asm-i386/termios.h 2001/07/05 21:38:41 1.3
+++ include/asm-i386/termios.h 2002/06/02 17:05:03
@@ -37,6 +37,8 @@ struct termio {
#define TIOCM_OUT2 0x4000
#define TIOCM_LOOP 0x8000
+#define TIOCM_MODEM_BITS TIOCM_OUT2 /* IRDA support */
+
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
/* line disciplines */
Index: include/asm-parisc/termios.h
===================================================================
RCS file: /var/cvs/linux/include/asm-parisc/termios.h,v
retrieving revision 1.6
diff -u -p -r1.6 termios.h
--- include/asm-parisc/termios.h 2001/07/11 17:20:32 1.6
+++ include/asm-parisc/termios.h 2002/06/02 17:05:03
@@ -37,6 +37,9 @@ struct termio {
#define TIOCM_OUT2 0x4000
#define TIOCM_LOOP 0x8000
+/* IRDA support - PA-RISC uses OUT1 as hardware flow control bit. */
+#define TIOCM_MODEM_BITS (TIOCM_OUT2 | TIOCM_OUT1)
+
/* ioctl (fd, TIOCSERGETLSR, &result) where result may be as below */
/* line disciplines */
Index: arch/parisc/config.in
===================================================================
RCS file: /var/cvs/linux/arch/parisc/config.in,v
retrieving revision 1.39
diff -u -p -r1.39 config.in
--- arch/parisc/config.in 2001/11/08 21:17:52 1.39
+++ arch/parisc/config.in 2002/06/02 17:05:03
@@ -128,6 +128,8 @@ if [ "$CONFIG_SCSI" != "n" ]; then
fi
endmenu
+source net/irda/Config.in
+
if [ "$CONFIG_NET" = "y" ]; then
mainmenu_option next_comment
comment 'Network device support'
Index: drivers/net/irda/irtty.c
===================================================================
RCS file: /var/cvs/linux/drivers/net/irda/irtty.c,v
retrieving revision 1.8
diff -u -p -r1.8 irtty.c
--- drivers/net/irda/irtty.c 2001/11/09 23:36:06 1.8
+++ drivers/net/irda/irtty.c 2002/06/02 17:05:03
@@ -760,14 +760,11 @@ static int irtty_set_dtr_rts(struct net_
struct irtty_cb *self;
struct tty_struct *tty;
mm_segment_t fs;
- int arg = 0;
+ int arg = TIOCM_MODEM_BITS;
self = (struct irtty_cb *) dev->priv;
tty = self->tty;
-#ifdef TIOCM_OUT2 /* Not defined for ARM */
- arg = TIOCM_OUT2;
-#endif
if (rts)
arg |= TIOCM_RTS;
if (dtr)