diff options
Diffstat (limited to 'drivers/serial')
-rw-r--r-- | drivers/serial/8250.c | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/drivers/serial/8250.c b/drivers/serial/8250.c index 31b8cca179cd..b586406f04ca 100644 --- a/drivers/serial/8250.c +++ b/drivers/serial/8250.c | |||
@@ -1722,12 +1722,6 @@ static void serial_unlink_irq_chain(struct uart_8250_port *up) | |||
1722 | mutex_unlock(&hash_mutex); | 1722 | mutex_unlock(&hash_mutex); |
1723 | } | 1723 | } |
1724 | 1724 | ||
1725 | /* Base timer interval for polling */ | ||
1726 | static inline int poll_timeout(int timeout) | ||
1727 | { | ||
1728 | return timeout > 6 ? (timeout / 2 - 2) : 1; | ||
1729 | } | ||
1730 | |||
1731 | /* | 1725 | /* |
1732 | * This function is used to handle ports that do not have an | 1726 | * This function is used to handle ports that do not have an |
1733 | * interrupt. This doesn't work very well for 16450's, but gives | 1727 | * interrupt. This doesn't work very well for 16450's, but gives |
@@ -1742,7 +1736,7 @@ static void serial8250_timeout(unsigned long data) | |||
1742 | iir = serial_in(up, UART_IIR); | 1736 | iir = serial_in(up, UART_IIR); |
1743 | if (!(iir & UART_IIR_NO_INT)) | 1737 | if (!(iir & UART_IIR_NO_INT)) |
1744 | serial8250_handle_port(up); | 1738 | serial8250_handle_port(up); |
1745 | mod_timer(&up->timer, jiffies + poll_timeout(up->port.timeout)); | 1739 | mod_timer(&up->timer, jiffies + uart_poll_timeout(&up->port)); |
1746 | } | 1740 | } |
1747 | 1741 | ||
1748 | static void serial8250_backup_timeout(unsigned long data) | 1742 | static void serial8250_backup_timeout(unsigned long data) |
@@ -1787,7 +1781,7 @@ static void serial8250_backup_timeout(unsigned long data) | |||
1787 | 1781 | ||
1788 | /* Standard timer interval plus 0.2s to keep the port running */ | 1782 | /* Standard timer interval plus 0.2s to keep the port running */ |
1789 | mod_timer(&up->timer, | 1783 | mod_timer(&up->timer, |
1790 | jiffies + poll_timeout(up->port.timeout) + HZ / 5); | 1784 | jiffies + uart_poll_timeout(&up->port) + HZ / 5); |
1791 | } | 1785 | } |
1792 | 1786 | ||
1793 | static unsigned int serial8250_tx_empty(struct uart_port *port) | 1787 | static unsigned int serial8250_tx_empty(struct uart_port *port) |
@@ -2071,7 +2065,7 @@ static int serial8250_startup(struct uart_port *port) | |||
2071 | up->timer.function = serial8250_backup_timeout; | 2065 | up->timer.function = serial8250_backup_timeout; |
2072 | up->timer.data = (unsigned long)up; | 2066 | up->timer.data = (unsigned long)up; |
2073 | mod_timer(&up->timer, jiffies + | 2067 | mod_timer(&up->timer, jiffies + |
2074 | poll_timeout(up->port.timeout) + HZ / 5); | 2068 | uart_poll_timeout(port) + HZ / 5); |
2075 | } | 2069 | } |
2076 | 2070 | ||
2077 | /* | 2071 | /* |
@@ -2081,7 +2075,7 @@ static int serial8250_startup(struct uart_port *port) | |||
2081 | */ | 2075 | */ |
2082 | if (!is_real_interrupt(up->port.irq)) { | 2076 | if (!is_real_interrupt(up->port.irq)) { |
2083 | up->timer.data = (unsigned long)up; | 2077 | up->timer.data = (unsigned long)up; |
2084 | mod_timer(&up->timer, jiffies + poll_timeout(up->port.timeout)); | 2078 | mod_timer(&up->timer, jiffies + uart_poll_timeout(port)); |
2085 | } else { | 2079 | } else { |
2086 | retval = serial_link_irq_chain(up); | 2080 | retval = serial_link_irq_chain(up); |
2087 | if (retval) | 2081 | if (retval) |