aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/acpi/acpi_lpss.c7
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
92static struct lpss_device_desc lpt_sdio_dev_desc = { 93static 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;