diff options
Diffstat (limited to 'drivers/acpi/acpi_lpss.c')
-rw-r--r-- | drivers/acpi/acpi_lpss.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c index fb78bb9ad8f6..d3961014aad7 100644 --- a/drivers/acpi/acpi_lpss.c +++ b/drivers/acpi/acpi_lpss.c | |||
@@ -30,6 +30,7 @@ ACPI_MODULE_NAME("acpi_lpss"); | |||
30 | /* Offsets relative to LPSS_PRIVATE_OFFSET */ | 30 | /* Offsets relative to LPSS_PRIVATE_OFFSET */ |
31 | #define LPSS_GENERAL 0x08 | 31 | #define LPSS_GENERAL 0x08 |
32 | #define LPSS_GENERAL_LTR_MODE_SW BIT(2) | 32 | #define LPSS_GENERAL_LTR_MODE_SW BIT(2) |
33 | #define LPSS_GENERAL_UART_RTS_OVRD BIT(3) | ||
33 | #define LPSS_SW_LTR 0x10 | 34 | #define LPSS_SW_LTR 0x10 |
34 | #define LPSS_AUTO_LTR 0x14 | 35 | #define LPSS_AUTO_LTR 0x14 |
35 | #define LPSS_TX_INT 0x20 | 36 | #define LPSS_TX_INT 0x20 |
@@ -68,11 +69,16 @@ struct lpss_private_data { | |||
68 | 69 | ||
69 | static void lpss_uart_setup(struct lpss_private_data *pdata) | 70 | static void lpss_uart_setup(struct lpss_private_data *pdata) |
70 | { | 71 | { |
71 | unsigned int tx_int_offset = pdata->dev_desc->prv_offset + LPSS_TX_INT; | 72 | unsigned int offset; |
72 | u32 reg; | 73 | u32 reg; |
73 | 74 | ||
74 | reg = readl(pdata->mmio_base + tx_int_offset); | 75 | offset = pdata->dev_desc->prv_offset + LPSS_TX_INT; |
75 | writel(reg | LPSS_TX_INT_MASK, pdata->mmio_base + tx_int_offset); | 76 | reg = readl(pdata->mmio_base + offset); |
77 | writel(reg | LPSS_TX_INT_MASK, pdata->mmio_base + offset); | ||
78 | |||
79 | offset = pdata->dev_desc->prv_offset + LPSS_GENERAL; | ||
80 | reg = readl(pdata->mmio_base + offset); | ||
81 | writel(reg | LPSS_GENERAL_UART_RTS_OVRD, pdata->mmio_base + offset); | ||
76 | } | 82 | } |
77 | 83 | ||
78 | static struct lpss_device_desc lpt_dev_desc = { | 84 | static struct lpss_device_desc lpt_dev_desc = { |