diff options
| -rw-r--r-- | drivers/acpi/acpi_lpss.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/acpi/acpi_lpss.c b/drivers/acpi/acpi_lpss.c index bd9867f592b7..a4e8c0337a59 100644 --- a/drivers/acpi/acpi_lpss.c +++ b/drivers/acpi/acpi_lpss.c | |||
| @@ -48,6 +48,7 @@ struct lpss_device_desc { | |||
| 48 | const char *clkdev_name; | 48 | const char *clkdev_name; |
| 49 | bool ltr_required; | 49 | bool ltr_required; |
| 50 | unsigned int prv_offset; | 50 | unsigned int prv_offset; |
| 51 | size_t prv_size_override; | ||
| 51 | bool clk_gate; | 52 | bool clk_gate; |
| 52 | struct lpss_shared_clock *shared_clock; | 53 | struct lpss_shared_clock *shared_clock; |
| 53 | void (*setup)(struct lpss_private_data *pdata); | 54 | void (*setup)(struct lpss_private_data *pdata); |
| @@ -91,6 +92,7 @@ static struct lpss_device_desc lpt_uart_dev_desc = { | |||
| 91 | 92 | ||
| 92 | static struct lpss_device_desc lpt_sdio_dev_desc = { | 93 | static struct lpss_device_desc lpt_sdio_dev_desc = { |
| 93 | .prv_offset = 0x1000, | 94 | .prv_offset = 0x1000, |
| 95 | .prv_size_override = 0x1018, | ||
| 94 | .ltr_required = true, | 96 | .ltr_required = true, |
| 95 | }; | 97 | }; |
| 96 | 98 | ||
| @@ -249,7 +251,10 @@ static int acpi_lpss_create_device(struct acpi_device *adev, | |||
| 249 | 251 | ||
| 250 | list_for_each_entry(rentry, &resource_list, node) | 252 | list_for_each_entry(rentry, &resource_list, node) |
| 251 | if (resource_type(&rentry->res) == IORESOURCE_MEM) { | 253 | if (resource_type(&rentry->res) == IORESOURCE_MEM) { |
| 252 | pdata->mmio_size = resource_size(&rentry->res); | 254 | if (dev_desc->prv_size_override) |
| 255 | pdata->mmio_size = dev_desc->prv_size_override; | ||
| 256 | else | ||
| 257 | pdata->mmio_size = resource_size(&rentry->res); | ||
| 253 | pdata->mmio_base = ioremap(rentry->res.start, | 258 | pdata->mmio_base = ioremap(rentry->res.start, |
| 254 | pdata->mmio_size); | 259 | pdata->mmio_size); |
| 255 | pdata->dev_desc = dev_desc; | 260 | pdata->dev_desc = dev_desc; |
