mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-06 01:09:08 +00:00
- Bug Fixes
- Fix PCI properties in intel-lpss-pci - Fix Resetting issue during suspend in intel-lpss-pci - Seperate IRQs for USBC device and CHRG in intel_soc_pmic_bxtwc - Add timeout to fix Resetting issue in stmpe - Ensure we 'put' reference to device when done in mfd-core -----BEGIN PGP SIGNATURE----- iQIcBAABCAAGBQJYLE+NAAoJEFGvii+H/HdhfWAP/2P9pgPcb3ffAOFxhcEpKSLp AUvYirE19hFjO4ZdnRCiWox5RziKc/yGZcWM7mJ80lFuYxx6bjYvFVY2AP0I7BUm +bUcuhRnMGpqb3NebL/6JJx2MEC9m5g2GP0rr5S2S1KQ7eQQl24OuK42gpWxO/mW VE+GSMWVAwj7Monlv156sHu5Op8DEDkuJ14/VX7p2TEDeoUlaNUyNI2eyevicyQA wfj9BfvebkEb0tCX80eM1X2DIWeaM5xHJu5vziDCGO/52zcrCEYGeFTmXvbx0wlk ZQigv/yN3E/FadCFNasJnqMeRnmkc9KnE8VBLvooH0ik2Bq74h9zYv950Hl543+e vxt4ppKPaDyOj5HcO1pMUHoCWOxPmC555B9/6G+I8zaWMOioJkCrPhXvnfH6a8Mg zEggS5mvV8kQLoKA0is2+3SItAhH6dvFb9J1niaEGQSUg1lZ1g9je6XoGcOmf0nh MnJAV4kKppq3RWMegE4aSSDuqZvabUodNPgQJCVUN4ymt8ri3C3YS8ClM0VtwzoX YbYT4LKfdEuCDJXJC0YZ9KFJTY/6+GSNFCymcjLs5Wy/tmYJ8da7+ezMPo/TZxSL +ccRJtQU53ndgJz1zqCaWR6Bcb/mAmHvTdTYEAtUJeNeVpKryiIA1KCyUFW61ZKH QNHmZpl2h3tPgHx31z90 =/C6J -----END PGP SIGNATURE----- Merge tag 'mfd-fixes-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd Pull MFD fixes from Lee Jones: - Fix PCI properties in intel-lpss-pci - Fix Resetting issue during suspend in intel-lpss-pci - Seperate IRQs for USBC device and CHRG in intel_soc_pmic_bxtwc - Add timeout to fix Resetting issue in stmpe - Ensure we 'put' reference to device when done in mfd-core * tag 'mfd-fixes-4.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: mfd: core: Fix device reference leak in mfd_clone_cell mfd: stmpe: Fix RESET regression on STMPE2401 mfd: intel_soc_pmic_bxtwc: Fix usbc interrupt mfd: intel-lpss: Do not put device in reset state on suspend mfd: lpss: Fix Intel Kaby Lake PCH-H properties
This commit is contained in:
commit
116fc01f2e
@ -123,19 +123,6 @@ static const struct intel_lpss_platform_info apl_i2c_info = {
|
|||||||
.properties = apl_i2c_properties,
|
.properties = apl_i2c_properties,
|
||||||
};
|
};
|
||||||
|
|
||||||
static const struct intel_lpss_platform_info kbl_info = {
|
|
||||||
.clk_rate = 120000000,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct intel_lpss_platform_info kbl_uart_info = {
|
|
||||||
.clk_rate = 120000000,
|
|
||||||
.clk_con_id = "baudclk",
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct intel_lpss_platform_info kbl_i2c_info = {
|
|
||||||
.clk_rate = 133000000,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct pci_device_id intel_lpss_pci_ids[] = {
|
static const struct pci_device_id intel_lpss_pci_ids[] = {
|
||||||
/* BXT A-Step */
|
/* BXT A-Step */
|
||||||
{ PCI_VDEVICE(INTEL, 0x0aac), (kernel_ulong_t)&bxt_i2c_info },
|
{ PCI_VDEVICE(INTEL, 0x0aac), (kernel_ulong_t)&bxt_i2c_info },
|
||||||
@ -207,15 +194,15 @@ static const struct pci_device_id intel_lpss_pci_ids[] = {
|
|||||||
{ PCI_VDEVICE(INTEL, 0xa161), (kernel_ulong_t)&spt_i2c_info },
|
{ PCI_VDEVICE(INTEL, 0xa161), (kernel_ulong_t)&spt_i2c_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa166), (kernel_ulong_t)&spt_uart_info },
|
{ PCI_VDEVICE(INTEL, 0xa166), (kernel_ulong_t)&spt_uart_info },
|
||||||
/* KBL-H */
|
/* KBL-H */
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2a7), (kernel_ulong_t)&kbl_uart_info },
|
{ PCI_VDEVICE(INTEL, 0xa2a7), (kernel_ulong_t)&spt_uart_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2a8), (kernel_ulong_t)&kbl_uart_info },
|
{ PCI_VDEVICE(INTEL, 0xa2a8), (kernel_ulong_t)&spt_uart_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2a9), (kernel_ulong_t)&kbl_info },
|
{ PCI_VDEVICE(INTEL, 0xa2a9), (kernel_ulong_t)&spt_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2aa), (kernel_ulong_t)&kbl_info },
|
{ PCI_VDEVICE(INTEL, 0xa2aa), (kernel_ulong_t)&spt_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2e0), (kernel_ulong_t)&kbl_i2c_info },
|
{ PCI_VDEVICE(INTEL, 0xa2e0), (kernel_ulong_t)&spt_i2c_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2e1), (kernel_ulong_t)&kbl_i2c_info },
|
{ PCI_VDEVICE(INTEL, 0xa2e1), (kernel_ulong_t)&spt_i2c_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2e2), (kernel_ulong_t)&kbl_i2c_info },
|
{ PCI_VDEVICE(INTEL, 0xa2e2), (kernel_ulong_t)&spt_i2c_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2e3), (kernel_ulong_t)&kbl_i2c_info },
|
{ PCI_VDEVICE(INTEL, 0xa2e3), (kernel_ulong_t)&spt_i2c_info },
|
||||||
{ PCI_VDEVICE(INTEL, 0xa2e6), (kernel_ulong_t)&kbl_uart_info },
|
{ PCI_VDEVICE(INTEL, 0xa2e6), (kernel_ulong_t)&spt_uart_info },
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
MODULE_DEVICE_TABLE(pci, intel_lpss_pci_ids);
|
MODULE_DEVICE_TABLE(pci, intel_lpss_pci_ids);
|
||||||
|
@ -502,9 +502,6 @@ int intel_lpss_suspend(struct device *dev)
|
|||||||
for (i = 0; i < LPSS_PRIV_REG_COUNT; i++)
|
for (i = 0; i < LPSS_PRIV_REG_COUNT; i++)
|
||||||
lpss->priv_ctx[i] = readl(lpss->priv + i * 4);
|
lpss->priv_ctx[i] = readl(lpss->priv + i * 4);
|
||||||
|
|
||||||
/* Put the device into reset state */
|
|
||||||
writel(0, lpss->priv + LPSS_PRIV_RESETS);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(intel_lpss_suspend);
|
EXPORT_SYMBOL_GPL(intel_lpss_suspend);
|
||||||
|
@ -86,6 +86,7 @@ enum bxtwc_irqs_level2 {
|
|||||||
BXTWC_THRM2_IRQ,
|
BXTWC_THRM2_IRQ,
|
||||||
BXTWC_BCU_IRQ,
|
BXTWC_BCU_IRQ,
|
||||||
BXTWC_ADC_IRQ,
|
BXTWC_ADC_IRQ,
|
||||||
|
BXTWC_USBC_IRQ,
|
||||||
BXTWC_CHGR0_IRQ,
|
BXTWC_CHGR0_IRQ,
|
||||||
BXTWC_CHGR1_IRQ,
|
BXTWC_CHGR1_IRQ,
|
||||||
BXTWC_GPIO0_IRQ,
|
BXTWC_GPIO0_IRQ,
|
||||||
@ -111,7 +112,8 @@ static const struct regmap_irq bxtwc_regmap_irqs_level2[] = {
|
|||||||
REGMAP_IRQ_REG(BXTWC_THRM2_IRQ, 2, 0xff),
|
REGMAP_IRQ_REG(BXTWC_THRM2_IRQ, 2, 0xff),
|
||||||
REGMAP_IRQ_REG(BXTWC_BCU_IRQ, 3, 0x1f),
|
REGMAP_IRQ_REG(BXTWC_BCU_IRQ, 3, 0x1f),
|
||||||
REGMAP_IRQ_REG(BXTWC_ADC_IRQ, 4, 0xff),
|
REGMAP_IRQ_REG(BXTWC_ADC_IRQ, 4, 0xff),
|
||||||
REGMAP_IRQ_REG(BXTWC_CHGR0_IRQ, 5, 0x3f),
|
REGMAP_IRQ_REG(BXTWC_USBC_IRQ, 5, BIT(5)),
|
||||||
|
REGMAP_IRQ_REG(BXTWC_CHGR0_IRQ, 5, 0x1f),
|
||||||
REGMAP_IRQ_REG(BXTWC_CHGR1_IRQ, 6, 0x1f),
|
REGMAP_IRQ_REG(BXTWC_CHGR1_IRQ, 6, 0x1f),
|
||||||
REGMAP_IRQ_REG(BXTWC_GPIO0_IRQ, 7, 0xff),
|
REGMAP_IRQ_REG(BXTWC_GPIO0_IRQ, 7, 0xff),
|
||||||
REGMAP_IRQ_REG(BXTWC_GPIO1_IRQ, 8, 0x3f),
|
REGMAP_IRQ_REG(BXTWC_GPIO1_IRQ, 8, 0x3f),
|
||||||
@ -146,7 +148,7 @@ static struct resource adc_resources[] = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
static struct resource usbc_resources[] = {
|
static struct resource usbc_resources[] = {
|
||||||
DEFINE_RES_IRQ_NAMED(BXTWC_CHGR0_IRQ, "USBC"),
|
DEFINE_RES_IRQ(BXTWC_USBC_IRQ),
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct resource charger_resources[] = {
|
static struct resource charger_resources[] = {
|
||||||
|
@ -399,6 +399,8 @@ int mfd_clone_cell(const char *cell, const char **clones, size_t n_clones)
|
|||||||
clones[i]);
|
clones[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
put_device(dev);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL(mfd_clone_cell);
|
EXPORT_SYMBOL(mfd_clone_cell);
|
||||||
|
@ -851,6 +851,8 @@ static int stmpe_reset(struct stmpe *stmpe)
|
|||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
|
msleep(10);
|
||||||
|
|
||||||
timeout = jiffies + msecs_to_jiffies(100);
|
timeout = jiffies + msecs_to_jiffies(100);
|
||||||
while (time_before(jiffies, timeout)) {
|
while (time_before(jiffies, timeout)) {
|
||||||
ret = __stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL]);
|
ret = __stmpe_reg_read(stmpe, stmpe->regs[STMPE_IDX_SYS_CTRL]);
|
||||||
|
Loading…
Reference in New Issue
Block a user