提交 9d0de5a6 编写于 作者: R Rafael J. Wysocki

Merge branches 'acpi-ec', 'acpi-soc', 'acpi-video' and 'acpi-resources'

* acpi-ec:
  ACPI / EC: Remove non-standard log emphasis

* acpi-soc:
  ACPI / LPSS: Deassert resets for SPI host controllers on Braswell
  ACPI / LPSS: Always disable I2C host controllers
  Revert "ACPI / LPSS: Remove non-existing clock control from Intel Lynxpoint I2C"

* acpi-video:
  ACPI / video: Disable native backlight on Samsung Series 9 laptops

* acpi-resources:
  ACPI / resources: Change pr_info() to pr_debug() for debug information
...@@ -105,7 +105,7 @@ static void lpss_uart_setup(struct lpss_private_data *pdata) ...@@ -105,7 +105,7 @@ static void lpss_uart_setup(struct lpss_private_data *pdata)
} }
} }
static void byt_i2c_setup(struct lpss_private_data *pdata) static void lpss_deassert_reset(struct lpss_private_data *pdata)
{ {
unsigned int offset; unsigned int offset;
u32 val; u32 val;
...@@ -114,9 +114,18 @@ static void byt_i2c_setup(struct lpss_private_data *pdata) ...@@ -114,9 +114,18 @@ static void byt_i2c_setup(struct lpss_private_data *pdata)
val = readl(pdata->mmio_base + offset); val = readl(pdata->mmio_base + offset);
val |= LPSS_RESETS_RESET_APB | LPSS_RESETS_RESET_FUNC; val |= LPSS_RESETS_RESET_APB | LPSS_RESETS_RESET_FUNC;
writel(val, pdata->mmio_base + offset); writel(val, pdata->mmio_base + offset);
}
#define LPSS_I2C_ENABLE 0x6c
static void byt_i2c_setup(struct lpss_private_data *pdata)
{
lpss_deassert_reset(pdata);
if (readl(pdata->mmio_base + pdata->dev_desc->prv_offset)) if (readl(pdata->mmio_base + pdata->dev_desc->prv_offset))
pdata->fixed_clk_rate = 133000000; pdata->fixed_clk_rate = 133000000;
writel(0, pdata->mmio_base + LPSS_I2C_ENABLE);
} }
static struct lpss_device_desc lpt_dev_desc = { static struct lpss_device_desc lpt_dev_desc = {
...@@ -125,7 +134,7 @@ static struct lpss_device_desc lpt_dev_desc = { ...@@ -125,7 +134,7 @@ static struct lpss_device_desc lpt_dev_desc = {
}; };
static struct lpss_device_desc lpt_i2c_dev_desc = { static struct lpss_device_desc lpt_i2c_dev_desc = {
.flags = LPSS_CLK | LPSS_LTR, .flags = LPSS_CLK | LPSS_CLK_GATE | LPSS_LTR,
.prv_offset = 0x800, .prv_offset = 0x800,
}; };
...@@ -166,6 +175,12 @@ static struct lpss_device_desc byt_i2c_dev_desc = { ...@@ -166,6 +175,12 @@ static struct lpss_device_desc byt_i2c_dev_desc = {
.setup = byt_i2c_setup, .setup = byt_i2c_setup,
}; };
static struct lpss_device_desc bsw_spi_dev_desc = {
.flags = LPSS_CLK | LPSS_CLK_GATE | LPSS_CLK_DIVIDER | LPSS_SAVE_CTX,
.prv_offset = 0x400,
.setup = lpss_deassert_reset,
};
#else #else
#define LPSS_ADDR(desc) (0UL) #define LPSS_ADDR(desc) (0UL)
...@@ -198,7 +213,7 @@ static const struct acpi_device_id acpi_lpss_device_ids[] = { ...@@ -198,7 +213,7 @@ static const struct acpi_device_id acpi_lpss_device_ids[] = {
/* Braswell LPSS devices */ /* Braswell LPSS devices */
{ "80862288", LPSS_ADDR(byt_pwm_dev_desc) }, { "80862288", LPSS_ADDR(byt_pwm_dev_desc) },
{ "8086228A", LPSS_ADDR(byt_uart_dev_desc) }, { "8086228A", LPSS_ADDR(byt_uart_dev_desc) },
{ "8086228E", LPSS_ADDR(byt_spi_dev_desc) }, { "8086228E", LPSS_ADDR(bsw_spi_dev_desc) },
{ "808622C1", LPSS_ADDR(byt_i2c_dev_desc) }, { "808622C1", LPSS_ADDR(byt_i2c_dev_desc) },
{ "INT3430", LPSS_ADDR(lpt_dev_desc) }, { "INT3430", LPSS_ADDR(lpt_dev_desc) },
......
...@@ -680,7 +680,7 @@ static void acpi_ec_start(struct acpi_ec *ec, bool resuming) ...@@ -680,7 +680,7 @@ static void acpi_ec_start(struct acpi_ec *ec, bool resuming)
/* Enable GPE for event processing (SCI_EVT=1) */ /* Enable GPE for event processing (SCI_EVT=1) */
if (!resuming) if (!resuming)
acpi_ec_submit_request(ec); acpi_ec_submit_request(ec);
pr_info("+++++ EC started +++++\n"); pr_debug("EC started\n");
} }
spin_unlock_irqrestore(&ec->lock, flags); spin_unlock_irqrestore(&ec->lock, flags);
} }
...@@ -712,7 +712,7 @@ static void acpi_ec_stop(struct acpi_ec *ec, bool suspending) ...@@ -712,7 +712,7 @@ static void acpi_ec_stop(struct acpi_ec *ec, bool suspending)
acpi_ec_complete_request(ec); acpi_ec_complete_request(ec);
clear_bit(EC_FLAGS_STARTED, &ec->flags); clear_bit(EC_FLAGS_STARTED, &ec->flags);
clear_bit(EC_FLAGS_STOPPED, &ec->flags); clear_bit(EC_FLAGS_STOPPED, &ec->flags);
pr_info("+++++ EC stopped +++++\n"); pr_debug("EC stopped\n");
} }
spin_unlock_irqrestore(&ec->lock, flags); spin_unlock_irqrestore(&ec->lock, flags);
} }
......
...@@ -46,7 +46,7 @@ static bool acpi_dev_resource_len_valid(u64 start, u64 end, u64 len, bool io) ...@@ -46,7 +46,7 @@ static bool acpi_dev_resource_len_valid(u64 start, u64 end, u64 len, bool io)
if (len && reslen && reslen == len && start <= end) if (len && reslen && reslen == len && start <= end)
return true; return true;
pr_info("ACPI: invalid or unassigned resource %s [%016llx - %016llx] length [%016llx]\n", pr_debug("ACPI: invalid or unassigned resource %s [%016llx - %016llx] length [%016llx]\n",
io ? "io" : "mem", start, end, len); io ? "io" : "mem", start, end, len);
return false; return false;
......
...@@ -540,6 +540,15 @@ static struct dmi_system_id video_dmi_table[] __initdata = { ...@@ -540,6 +540,15 @@ static struct dmi_system_id video_dmi_table[] __initdata = {
DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"), DMI_MATCH(DMI_PRODUCT_NAME, "730U3E/740U3E"),
}, },
}, },
{
/* https://bugs.freedesktop.org/show_bug.cgi?id=87286 */
.callback = video_disable_native_backlight,
.ident = "SAMSUNG 900X3C/900X3D/900X3E/900X4C/900X4D",
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
DMI_MATCH(DMI_PRODUCT_NAME, "900X3C/900X3D/900X3E/900X4C/900X4D"),
},
},
{ {
/* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */ /* https://bugzilla.redhat.com/show_bug.cgi?id=1163574 */
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册