struct dw8250_data {
        u8                      usr_reg;
-       int                     last_mcr;
        int                     line;
        int                     msr_mask_on;
        int                     msr_mask_off;
 {
        struct dw8250_data *d = p->private_data;
 
-       /* If reading MSR, report CTS asserted when auto-CTS/RTS enabled */
-       if (offset == UART_MSR && d->last_mcr & UART_MCR_AFE) {
-               value |= UART_MSR_CTS;
-               value &= ~UART_MSR_DCTS;
-       }
-
        /* Override any modem control signals if needed */
        if (offset == UART_MSR) {
                value |= d->msr_mask_on;
 
 static void dw8250_serial_out(struct uart_port *p, int offset, int value)
 {
-       struct dw8250_data *d = p->private_data;
-
-       if (offset == UART_MCR)
-               d->last_mcr = value;
-
        writeb(value, p->membase + (offset << p->regshift));
 
        /* Make sure LCR write wasn't ignored */
 
 static void dw8250_serial_outq(struct uart_port *p, int offset, int value)
 {
-       struct dw8250_data *d = p->private_data;
-
-       if (offset == UART_MCR)
-               d->last_mcr = value;
-
        value &= 0xff;
        __raw_writeq(value, p->membase + (offset << p->regshift));
        /* Read back to ensure register write ordering. */
 
 static void dw8250_serial_out32(struct uart_port *p, int offset, int value)
 {
-       struct dw8250_data *d = p->private_data;
-
-       if (offset == UART_MCR)
-               d->last_mcr = value;
-
        writel(value, p->membase + (offset << p->regshift));
 
        /* Make sure LCR write wasn't ignored */