This patch removes the use of read_cnt, real_raw and rawreadok.
These variables don't exist in the new API. Reading the data
raw is no longer supported by the tty layer.

Signed-off-by: Lidza Louina <lidza.lou...@gmail.com>
---
 drivers/staging/dgap/dgap_tty.c | 47 ++++++++++++-----------------------------
 1 file changed, 14 insertions(+), 33 deletions(-)

diff --git a/drivers/staging/dgap/dgap_tty.c b/drivers/staging/dgap/dgap_tty.c
index c077e0d..3fc6c5a 100644
--- a/drivers/staging/dgap/dgap_tty.c
+++ b/drivers/staging/dgap/dgap_tty.c
@@ -774,14 +774,11 @@ void dgap_input(struct channel_t *ch)
        DPR_READ(("dgap_input start 2\n"));
 
        /* Decide how much data we can send into the tty layer */
-       if (dgap_rawreadok && tp->real_raw)
-               flip_len = MYFLIPLEN;
-       else
-               flip_len = TTY_FLIPBUF_SIZE;
+       flip_len = TTY_FLIPBUF_SIZE;
 
        /* Chop down the length, if needed */
        len = min(data_len, flip_len);
-       len = min(len, (N_TTY_BUF_SIZE - 1) - tp->read_cnt);
+       len = min(len, (N_TTY_BUF_SIZE - 1));
 
        ld = tty_ldisc_ref(tp);
                 
@@ -863,39 +860,23 @@ void dgap_input(struct channel_t *ch)
         * On the other hand, if we are not raw, we need to go through
         * the tty layer, which has its API more well defined.
         */
-        if (dgap_rawreadok && tp->real_raw) {
+       if (I_PARMRK(tp) || I_BRKINT(tp) || I_INPCK(tp)) {
+               dgap_parity_scan(ch, ch->ch_bd->flipbuf, 
ch->ch_bd->flipflagbuf, &len);
 
-               /* !!! WE *MUST* LET GO OF ALL LOCKS BEFORE CALLING RECEIVE BUF 
!!! */
-               DGAP_UNLOCK(ch->ch_lock, lock_flags2);
-               DGAP_UNLOCK(bd->bd_lock, lock_flags);
-
-               DPR_READ(("dgap_input. %d real_raw len:%d calling receive_buf 
for buffer for board %d\n", 
-                        __LINE__, len, ch->ch_bd->boardnum));
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,31)
-               tp->ldisc->ops->receive_buf(tp, ch->ch_bd->flipbuf, NULL, len);
-#else
-               tp->ldisc.ops->receive_buf(tp, ch->ch_bd->flipbuf, NULL, len);
-#endif
+               len = tty_buffer_request_room(tp->port, len);
+               tty_insert_flip_string_flags(tp->port, ch->ch_bd->flipbuf,
+                       ch->ch_bd->flipflagbuf, len);
        }
        else {
-               if (I_PARMRK(tp) || I_BRKINT(tp) || I_INPCK(tp)) {
-                       dgap_parity_scan(ch, ch->ch_bd->flipbuf, 
ch->ch_bd->flipflagbuf, &len);
-
-                       len = tty_buffer_request_room(tp->port, len);
-                       tty_insert_flip_string_flags(tp->port, 
ch->ch_bd->flipbuf,
-                               ch->ch_bd->flipflagbuf, len);
-               }
-               else {
-                       len = tty_buffer_request_room(tp->port, len);
-                       tty_insert_flip_string(tp->port, ch->ch_bd->flipbuf, 
len);
-               }
+               len = tty_buffer_request_room(tp->port, len);
+               tty_insert_flip_string(tp->port, ch->ch_bd->flipbuf, len);
+       }
 
-               DGAP_UNLOCK(ch->ch_lock, lock_flags2);
-               DGAP_UNLOCK(bd->bd_lock, lock_flags);
+       DGAP_UNLOCK(ch->ch_lock, lock_flags2);
+       DGAP_UNLOCK(bd->bd_lock, lock_flags);
 
-               /* Tell the tty layer its okay to "eat" the data now */
-               tty_flip_buffer_push(tp->port);
-       }
+       /* Tell the tty layer its okay to "eat" the data now */
+       tty_flip_buffer_push(tp->port);
 
        if (ld)
                tty_ldisc_deref(ld);
-- 
1.8.1.2

_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to